# # spec file for package rhash # # Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define major 1 Name: rhash Version: 1.4.5 Release: 1.2 Summary: Recursive Hasher License: 0BSD URL: https://github.com/rhash/RHash Source0: https://github.com/rhash/RHash/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz BuildRequires: pkgconfig BuildRequires: pkgconfig(openssl) %description RHash (Recurcive Hasher) is a console utility for computing and verifying magnet links and hash sums of files. It supports CRC32, MD4, MD5, SHA1/SHA2, Tiger, DC++ TTH, BitTorrent BTIH, AICH, eDonkey hash, GOST R 34.11-94, RIPEMD-160, HAS-160, EDON-R, Whirlpool and Snefru hash algorithms. Hash sums are used to ensure and verify integrity of large volumes of data for a long-term storing or transferring. Program features: * Calculation of Magnet links and EDonkey 2000 links. * Output in a predefined (SFV, BSD-like) or a user-defined format. * Updating crc files (adding hash sums of files missing in the crc file). * Ability to process directories recursively. %package -n librhash%{major} Summary: LibRHash Shared Library %description -n librhash%{major} LibRHash is a professional, portable, thread-safe C library for computing a wide variety of hash sums, such as CRC32, MD4, MD5, SHA1, SHA256, SHA512, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R 34.11-94, RIPEMD-160 HAS-160, EDON-R, Whirlpool and Snefru. Hash sums are used to ensure and verify integrity of large volumes of data for a long-term storing or transferring. %package devel Summary: Headers and Static Library for LibRHash Requires: librhash%{major} = %{version} Provides: librhash-devel = %{version} Obsoletes: librhash-devel < 1.3.1 %description devel LibRHash is a professional, portable, thread-safe C library for computing a wide variety of hash sums, such as CRC32, MD4, MD5, SHA1, SHA256, SHA512, AICH, ED2K, Tiger, DC++ TTH, BitTorrent BTIH, GOST R 34.11-94, RIPEMD-160 HAS-160, EDON-R, Whirlpool and Snefru. Hash sums are used to ensure and verify integrity of large volumes of data for a long-term storing or transferring. This package includes LibRHash development files. %lang_package %prep %autosetup -n RHash-%{version} -p1 %build # repleace unwanted fomit-frame pointer with desirable optflags sed -i "s|-fomit-frame-pointer|%{optflags}|g" configure # not a autotools configure ./configure \ --prefix=%{_prefix} \ --exec-prefix=%{_prefix} \ --bindir=%{_bindir} \ --sysconfdir=%{_sysconfdir} \ --libdir=%{_libdir} \ --mandir=%{_mandir} \ --enable-lib-shared \ --enable-gettext %make_build %install %make_install install-lib-so-link install-lib-headers install-gmo %find_lang %{name} %{?no_lang_C} %check %make_build test %post -n librhash%{major} -p /sbin/ldconfig %postun -n librhash%{major} -p /sbin/ldconfig %files %license COPYING %doc ChangeLog README.md %config(noreplace) %{_sysconfdir}/rhashrc %{_bindir}/ed2k-link %{_bindir}/edonr256-hash %{_bindir}/edonr512-hash %{_bindir}/gost12-256-hash %{_bindir}/gost12-512-hash %{_bindir}/has160-hash %{_bindir}/magnet-link %{_bindir}/rhash %{_bindir}/sfv-hash %{_bindir}/tiger-hash %{_bindir}/tth-hash %{_bindir}/whirlpool-hash %{_mandir}/man1/ed2k-link.1%{?ext_man} %{_mandir}/man1/edonr256-hash.1%{?ext_man} %{_mandir}/man1/edonr512-hash.1%{?ext_man} %{_mandir}/man1/gost12-256-hash.1%{?ext_man} %{_mandir}/man1/gost12-512-hash.1%{?ext_man} %{_mandir}/man1/has160-hash.1%{?ext_man} %{_mandir}/man1/magnet-link.1%{?ext_man} %{_mandir}/man1/rhash.1%{?ext_man} %{_mandir}/man1/sfv-hash.1%{?ext_man} %{_mandir}/man1/tiger-hash.1%{?ext_man} %{_mandir}/man1/tth-hash.1%{?ext_man} %{_mandir}/man1/whirlpool-hash.1%{?ext_man} %files -n librhash%{major} %{_libdir}/librhash.so.%{major}* %files devel %license COPYING %doc ChangeLog README.md %{_includedir}/rhash.h %{_includedir}/rhash_torrent.h %{_libdir}/librhash.so %files lang -f %{name}.lang %changelog * Tue Dec 10 2024 Martin Pluskal - Update to version 1.4.5: * Support --one-hash formatting option * Bugfix: Show correct config directory in the manpage * Bugfix: Updating must continue after a file access error * Bugfix: Show correct size and time for Windows symlinks * Bugfix: Enable large file support on 32-bit platforms * Bugfix: Fix runtime error on WinXP * Bugfix: Fix building with glibc < 2.15 * Bugfix: Fix building on Solaris * Bugfix: Fix building on Unix * Bugfix: Fix dynamic library symlink on macOS * Bugfix: Fix dynamic library symlink on *BSD * Sat Jul 29 2023 Dirk Müller - update to 1.4.4: * Remove obsolete rhash_timer functions (API breaking change) * Increment LibRHash soname version on Linux and Unix * Support leading and trailing spaces in a file names * Changed the simple file format to fit the sfv format * Bugfix: Fix slash usage with wilcards on Windows * Print the algorithms being calculated on -vv * Renamed --maxdepth option to --max-depth * Supported escaping of special characters in file paths * New printf-format directive '%%d' to print file directory * New option --unverified to print unverified files * New option --missing to print missing files * Sat Jun 18 2022 Dirk Müller - update to 1.4.3: * Support runtime loading of OpenSSL 3.0 * Bugfix: Show total speed in the update mode * LibRHash: add rhash_import() and rhash_export() functions * Bugfix: fix building of the LibRHash static library on Solaris * Honor hash file extension in --update mode * Support --ignore-missing option, to ignore missing files in --check mode * Support --brief option to show verification report without header and footer * Bugfix: hash options were sometimes ignored in the --check mode * Allow simultaneous usage of --update and --check options * Honor --lowercase option while --embed-crc is in action * Improve ripemd160 performance * Add --bt-transmission option to create Transmission compatible torrent files * Bugfix: star character at the start of filepath must be ignored * Tue Jul 27 2021 Dirk Müller - update to 1.4.2: * print 'Nothing to verify' when verifying a hash file without a message digest * significantly improve file reading performance on Linux/Unix * Bugfix: fix verification of some hash files containing spaces in file paths * count unparsed lines of a hash file as errors * print line numbers of unparsed lines of a hash file * Mon Jan 18 2021 Dirk Müller - update to 1.4.1: * look for config file at $HOME/.config/rhash/rhashrc * supported --blake2s, --blake2b options for the BLAKE2 hash functions * Bugfix: fix computing of EDON-R 512 by big data chunks * support --no-detect-by-ext option * speed up verification by detecting hash type from file extension * Bugfix: correctly print long paths on Windows * Bugfix: print correct '%%{mtime}' when --file-list is specified * Bugfix: only follow symbolic links when --follow is specified * Bugfix: fix buffer overflow in GOST12 * Thu Aug 13 2020 Paolo Stivanin - Update to 1.4.0: * librhash: supported rhash_get_version() - get library version * Bugfix: fix broken output on Win 7 * Bugfix: fix broken 'configure --localedir=' option * Bugfix: fix broken makefile install-so-link target * Bugfix: restore behavior of 'rhash -rc' to be the same as in v1.3.8 * Bugfix: fix a segfault and memory errors - Remove rhash-uk.patch * Tue Feb 4 2020 Martin Pluskal - Update to version 1.3.9: * change project license to BSD Zero Clause License * add uk translations * new printf-format modifier '%%u' to print url-encoded filename, path or hash * Bugfix: btih in magnet links shall be hex-encoded * correctly align UTF8 file paths, while printing verification results * respect UTF8 BOM when updating or verifying a hash file * print a new-line after ed2k link, when --ed2k-link option is passed * exit on output errors with exit_code = 2 * change option --update= to update the specified file * make short option '-P' to be an alias for --percents * change %%{mtime} format to 'YYYY-MM-DD hh:mm:ss' * Bugfix: --sysconfdir was ignored while searching for config on Linux * support verification of base64-formated hash sums * add formatting options: --hex, --base32, -b/--base64 * Bugfix: properly handle symlinks on the command line - Fix localisation building by rhash-uk.patch * Wed Oct 16 2019 Martin Pluskal - Cleanup spec file: * Honor optflags and allow creation of debuginfo package * Add missed dependencies on openssl and pkgconfig * Use url for download * Misc small cleanups * Fri Feb 22 2019 dliw@posteo.net - Update to version 1.3.8 Version 1.3.8 * rename Windows encoding options: --ansi to --win, --oem to --dos * support GOST R 34.11-2012 hash function (options: --gost12-256, --gost12-512) * changed the short option `-G' to be alias of --gost12-256 * changed printf format token `%%g' to be alias of %%{gost12-256} Version 1.3.7 * option `--message==' to calculate a hash for string * option `--crc32c' for CRC32C hash function * changed magnet link short option from '-m' to '-g' * Bugfix: `--file-list=-' shall read a file list from stdin * speedup CRC32 hash function Version 1.3.6 * support --file-list option * librhash: speedup sha3 * Bugfix: fix --follow option * better MSYS and CygWin support * configuration script * Bugfix: broken binary hash output - Remove rhash-1.3.0-shared.patch * Wed Aug 16 2017 mpluskal@suse.com - Update to version 1.3.5: * look for locales directory at PROGRAM_DIRECTORY\locale on Windows * look for config at PROGRAM_DIRECTORY\rhashrc on Windows * Tue Jun 13 2017 mpluskal@suse.com - Do not use openssl (avoid build cycle with cmake) * Fri Jun 2 2017 mpluskal@suse.com - Update to version 1.3.4: * Compilation fixes for FreeBSD * return non zero exit code if a file was not found - Refresh rhash-1.3.0-shared.patch * Tue Aug 5 2014 lazy.kent@opensuse.org - Update to 1.3.3. * Ctrl-C now interrupts benchmarking. * Set a boolean in config to true by a string `true', `on' or `yes'. * Changed the `-p' format names of sha* families, see manpage. * Fixed test_rhash.sh script failing on the en_US.UTF-8 locale. * LibRHash now exports torrent functions. * Support torrents with more than one announce url. * Update the SHA3 algorithm to follow the changes of the FIPS 202 draft. * Option --exclude for skipping some files during recursive scanning. * librhash: small optimization of Whirlpool. * Sat Jul 5 2014 lazy.kent@opensuse.org - Update to 1.3.2. * BTIH piece length calculation updated to follow the uTorrent algorithm change. * Option --follow for following symlinks to directories. * Ignore non-regular files while scanning directories recursively. * Report warnings on files locked by some processes. * Fri Jan 10 2014 lazy.kent@opensuse.org - Update to 1.3.1. Bugfix: corrected sha3-224 for big-endian processors. * Fixed 'value too large' error on 32-bit Linux. * Improved directory scanning. * Exclude the files specified by -o and -l from processing. - Drop rhash-remove-assert.patch (fixed upstream). - Rename librhash-devel package to rhash-devel. * Sun Oct 27 2013 lazy.kent@opensuse.org - Add rhash-remove-assert.patch: remove wrong assertion statement (https://sourceforge.net/p/rhash/bugs/43/). * Wed Sep 18 2013 lazy.kent@opensuse.org - Update to 1.3.0. * Bugfixes: + %%{mtime} formating option was broken. + Fixed memory leaks. + Fixed output of percents when two or more files are hashed. * Supported SHA3 (Keccak) hash function. * Updated translations: de, es, gl, it. * Add baselibs.conf as a source. * Refresh rhash-shared.patch. * Mon Dec 24 2012 lazy.kent@opensuse.org - Update to 1.2.10. * Bugfixes: + Different BTIH were generated for the same file. + Path issue with verification of hash files. + Non-zero exit code if some files were not found. + Incorrect GOST hash for ("\FF" x 64) on non-x86 CPU. * Improved Ctrl-C processing. * Shortcut -k for --check-embedded. * Update rhash-*-shared.patch. * Fri Apr 13 2012 lazy.kent@opensuse.org - Update to 1.2.9. * Option --bt-batch for batch torrents. - Updated "shared" patch. - Splitted off language package. * Mon Sep 19 2011 lazy.kent@opensuse.org - Update to 1.2.8. * Fix bugs (sf#3391587). - Dropped obsolete patches (fixed upstream). - Build shared library. - Build rhash against shared library (added patch). * Tue Sep 6 2011 lazy.kent@opensuse.org - Build shared library. * Sat Aug 20 2011 lazy.kent@opensuse.org - Added fix_crash and memfix patches (sf#3391587). * Sun Aug 14 2011 lazy.kent@opensuse.org - Update to 1.2.7. * Supported verification of sha256, sha512 and other hash sum. * Bugfix: percents option was broken in v1.2.6. * Wed Jun 15 2011 lazy.kent@opensuse.org - Update to 1.2.6. * Bugfix: --output failed for cyrillic file name. - Updated description. - Updated make options. * Sat May 28 2011 lazy.kent@opensuse.org - Update to 1.2.5. * Option --openssl allows to replace some algorithms by the OpenSSL ones. * Bugfix: incorrect recursive traversing of very long UTF-8 filepaths. * Bugfix: corrected calculation of BTIH hash and torrent files. - Build requires libopenssl-devel. - Use full URL for source. * Fri Apr 15 2011 lazy.kent@opensuse.org - Update to 1.2.4. * Option --benchmark-raw for machine-readable benchmark output format. * On Intel/AMD CPUs benchmark now prints the clocks-per-byte value. * Bugfix: repaired --path-separator on linux/unix. * Mon Apr 4 2011 lazy.kent@opensuse.org - Update to 1.2.3. * One-line percent for linux/unix. * Bugfix: verification of base2-like formated md5 hash sums. * Sun Jan 23 2011 lazy.kent@opensuse.org - update to 1.2.2. * Bugfix: --accept/--crc-accept were not working since 1.1.9. * Wed Nov 24 2010 lazy.kent.suse@gmail.com - Initial package created - 1.2.0.