Sync from SUSE:SLFO:Main xxhash revision c1089c1f7559fb9033680b0c89778830

This commit is contained in:
Adrian Schröter 2024-05-04 02:18:45 +02:00
commit f9eec010d5
7 changed files with 430 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View File

@ -0,0 +1,40 @@
From 15ce80f9f2760609d8cc68cea76d3f3217ab70e1 Mon Sep 17 00:00:00 2001
From: Mattias Ellert <mattias.ellert@physics.uu.se>
Date: Tue, 30 Nov 2021 23:19:38 +0100
Subject: [PATCH] Fix compilation on RHEL 7 ppc64le (gcc 4.8)
---
xxhash.h | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/xxhash.h b/xxhash.h
index 08ab7945..7850622a 100644
--- a/xxhash.h
+++ b/xxhash.h
@@ -4129,7 +4129,7 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc,
const void* XXH_RESTRICT secret)
{
/* presumed aligned */
- unsigned long long* const xacc = (unsigned long long*) acc;
+ unsigned int* const xacc = (unsigned int*) acc;
xxh_u64x2 const* const xinput = (xxh_u64x2 const*) input; /* no alignment restriction */
xxh_u64x2 const* const xsecret = (xxh_u64x2 const*) secret; /* no alignment restriction */
xxh_u64x2 const v32 = { 32, 32 };
@@ -4145,7 +4145,7 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc,
/* product = ((xxh_u64x2)data_key & 0xFFFFFFFF) * ((xxh_u64x2)shuffled & 0xFFFFFFFF); */
xxh_u64x2 const product = XXH_vec_mulo((xxh_u32x4)data_key, shuffled);
/* acc_vec = xacc[i]; */
- xxh_u64x2 acc_vec = vec_xl(0, xacc + 2 * i);
+ xxh_u64x2 acc_vec = (xxh_u64x2)vec_xl(0, xacc + 4 * i);
acc_vec += product;
/* swap high and low halves */
@@ -4155,7 +4155,7 @@ XXH3_accumulate_512_vsx( void* XXH_RESTRICT acc,
acc_vec += vec_xxpermdi(data_vec, data_vec, 2);
#endif
/* xacc[i] = acc_vec; */
- vec_xst(acc_vec, 0, xacc + 2 * i);
+ vec_xst((xxh_u32x4)acc_vec, 0, xacc + 4 * i);
}
}

View File

@ -0,0 +1,126 @@
From 836f4e735cf368542f14005e41d2f84ec29dfd60 Mon Sep 17 00:00:00 2001
From: Yann Collet <yann.collet.73@gmail.com>
Date: Sat, 4 Dec 2021 10:29:49 -0800
Subject: [PATCH] fix man page installation
for variant redirectors (`xxh32sum`, `xxh64sum` and `xxh128sum`).
fix #647, reported by @jpalus.
Also : slightly updated man page text, for clarity and accuracy.
---
Makefile | 14 ++++++++------
cli/xxhsum.1 | 8 ++++----
cli/xxhsum.1.md | 8 +++++---
3 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/Makefile b/Makefile
index 2fbefbc6..63273e16 100644
--- a/Makefile
+++ b/Makefile
@@ -457,6 +457,7 @@ endif
INSTALL_PROGRAM ?= $(INSTALL)
INSTALL_DATA ?= $(INSTALL) -m 644
+INSTALL_DIR ?= $(INSTALL) -d -m 755
# Escape special symbols by putting each character into its separate class
@@ -496,7 +497,7 @@ libxxhash.pc: libxxhash.pc.in
.PHONY: install
install: lib libxxhash.pc xxhsum ## install libraries, CLI, links and man page
@echo Installing libxxhash
- $(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(LIBDIR)
+ $(Q)$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
$(Q)$(INSTALL_DATA) libxxhash.a $(DESTDIR)$(LIBDIR)
$(Q)$(INSTALL_PROGRAM) $(LIBXXH) $(DESTDIR)$(LIBDIR)
$(Q)ln -sf $(LIBXXH) $(DESTDIR)$(LIBDIR)/libxxhash.$(SHARED_EXT_MAJOR)
@@ -508,19 +509,20 @@ ifeq ($(DISPATCH),1)
$(Q)$(INSTALL_DATA) xxh_x86dispatch.h $(DESTDIR)$(INCLUDEDIR)
endif
@echo Installing pkgconfig
- $(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(PKGCONFIGDIR)/
+ $(Q)$(INSTALL_DIR) $(DESTDIR)$(PKGCONFIGDIR)/
$(Q)$(INSTALL_DATA) libxxhash.pc $(DESTDIR)$(PKGCONFIGDIR)/
@echo Installing xxhsum
- $(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(BINDIR)/ $(DESTDIR)$(MANDIR)/
+ $(Q)$(INSTALL_DIR) $(DESTDIR)$(BINDIR)/
$(Q)$(INSTALL_PROGRAM) xxhsum $(DESTDIR)$(BINDIR)/xxhsum
$(Q)ln -sf xxhsum $(DESTDIR)$(BINDIR)/xxh32sum
$(Q)ln -sf xxhsum $(DESTDIR)$(BINDIR)/xxh64sum
$(Q)ln -sf xxhsum $(DESTDIR)$(BINDIR)/xxh128sum
@echo Installing man pages
+ $(Q)$(INSTALL_DIR) $(DESTDIR)$(MANDIR)/
$(Q)$(INSTALL_DATA) $(MAN) $(DESTDIR)$(MANDIR)/xxhsum.1
- $(Q)ln -sf $(MAN) $(DESTDIR)$(MANDIR)/xxh32sum.1
- $(Q)ln -sf $(MAN) $(DESTDIR)$(MANDIR)/xxh64sum.1
- $(Q)ln -sf $(MAN) $(DESTDIR)$(MANDIR)/xxh128sum.1
+ $(Q)ln -sf xxhsum.1 $(DESTDIR)$(MANDIR)/xxh32sum.1
+ $(Q)ln -sf xxhsum.1 $(DESTDIR)$(MANDIR)/xxh64sum.1
+ $(Q)ln -sf xxhsum.1 $(DESTDIR)$(MANDIR)/xxh128sum.1
@echo xxhash installation completed
.PHONY: uninstall
diff --git a/cli/xxhsum.1 b/cli/xxhsum.1
index 27e6808e..715fc4be 100644
--- a/cli/xxhsum.1
+++ b/cli/xxhsum.1
@@ -1,14 +1,14 @@
-.TH "XXHSUM" "1" "November 2021" "xxhsum 0.8.1" "User Commands"
+.TH "XXHSUM" "1" "December 2021" "xxhsum 0.8.1" "User Commands"
.SH "NAME"
\fBxxhsum\fR \- print or check xxHash non\-cryptographic checksums
.SH "SYNOPSIS"
\fBxxhsum [<OPTION>] \|\.\|\.\|\. [<FILE>] \|\.\|\.\|\.\fR \fBxxhsum \-b [<OPTION>] \|\.\|\.\|\.\fR
.P
-\fBxxh32sum\fR is equivalent to \fBxxhsum \-H0\fR \fBxxh64sum\fR is equivalent to \fBxxhsum \-H1\fR \fBxxh128sum\fR is equivalent to \fBxxhsum \-H2\fR
+\fBxxh32sum\fR is equivalent to \fBxxhsum \-H0\fR, \fBxxh64sum\fR is equivalent to \fBxxhsum \-H1\fR, \fBxxh128sum\fR is equivalent to \fBxxhsum \-H2\fR
.SH "DESCRIPTION"
Print or check xxHash (32, 64 or 128 bits) checksums\. When no \fIFILE\fR, read standard input, except if it\'s the console\. When \fIFILE\fR is \fB\-\fR, read standard input even if it\'s the console\.
.P
-\fBxxhsum\fR supports a command line syntax similar but not identical to md5sum(1)\. Differences are: \fBxxhsum\fR doesn\'t have text/binary mode switch (\fB\-b\fR, \fB\-t\fR); \fBxxhsum\fR always treats files as binary file; \fBxxhsum\fR has a hash bit width switch (\fB\-H\fR);
+\fBxxhsum\fR supports a command line syntax similar but not identical to md5sum(1)\. Differences are: \fBxxhsum\fR doesn\'t have text/binary mode switch (\fB\-b\fR, \fB\-t\fR); \fBxxhsum\fR always treats files as binary file; \fBxxhsum\fR has a hash selection switch (\fB\-H\fR);
.P
As xxHash is a fast non\-cryptographic checksum algorithm, \fBxxhsum\fR should not be used for security related purposes\.
.P
@@ -19,7 +19,7 @@ As xxHash is a fast non\-cryptographic checksum algorithm, \fBxxhsum\fR should n
Displays xxhsum version and exits
.TP
\fB\-H\fR\fIHASHTYPE\fR
-Hash selection\. \fIHASHTYPE\fR means \fB0\fR=XXH32, \fB1\fR=XXH64, \fB2\fR=XXH128, \fB3\fR=XXH3\. Alternatively, \fIHASHTYPE\fR \fB32\fR=XXH32, \fB64\fR=XXH64, \fB128\fR=XXH128\. Default value is \fB1\fR (64bits)
+Hash selection\. \fIHASHTYPE\fR means \fB0\fR=XXH32, \fB1\fR=XXH64, \fB2\fR=XXH128, \fB3\fR=XXH3\. Note that \fB\-H3\fR triggers \fB\-\-tag\fR, which can\'t be skipped (this is to reduce risks of confusion with \fB\-H2\fR (\fBXXH64\fR))\. Alternatively, \fIHASHTYPE\fR \fB32\fR=XXH32, \fB64\fR=XXH64, \fB128\fR=XXH128\. Default value is \fB1\fR (64bits)
.TP
\fB\-\-tag\fR
Output in the BSD style\.
diff --git a/cli/xxhsum.1.md b/cli/xxhsum.1.md
index 777d1cae..df2cb914 100644
--- a/cli/xxhsum.1.md
+++ b/cli/xxhsum.1.md
@@ -7,8 +7,8 @@ SYNOPSIS
`xxhsum [<OPTION>] ... [<FILE>] ...`
`xxhsum -b [<OPTION>] ...`
-`xxh32sum` is equivalent to `xxhsum -H0`
-`xxh64sum` is equivalent to `xxhsum -H1`
+`xxh32sum` is equivalent to `xxhsum -H0`,
+`xxh64sum` is equivalent to `xxhsum -H1`,
`xxh128sum` is equivalent to `xxhsum -H2`
@@ -23,7 +23,7 @@ When <FILE> is `-`, read standard input even if it's the console.
Differences are:
`xxhsum` doesn't have text/binary mode switch (`-b`, `-t`);
`xxhsum` always treats files as binary file;
-`xxhsum` has a hash bit width switch (`-H`);
+`xxhsum` has a hash selection switch (`-H`);
As xxHash is a fast non-cryptographic checksum algorithm,
`xxhsum` should not be used for security related purposes.
@@ -38,6 +38,8 @@ OPTIONS
* `-H`<HASHTYPE>:
Hash selection. <HASHTYPE> means `0`=XXH32, `1`=XXH64, `2`=XXH128, `3`=XXH3.
+ Note that `-H3` triggers `--tag`, which can't be skipped
+ (this is to reduce risks of confusion with `-H2` (`XXH64`)).
Alternatively, <HASHTYPE> `32`=XXH32, `64`=XXH64, `128`=XXH128.
Default value is `1` (64bits)

BIN
xxHash-0.8.1.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,13 @@
Index: xxHash-0.8.1/xxhash.h
===================================================================
--- xxHash-0.8.1.orig/xxhash.h
+++ xxHash-0.8.1/xxhash.h
@@ -1408,7 +1408,7 @@ XXH3_128bits_reset_withSecretandSeed(XXH
(defined(__INTEL_COMPILER) && !defined(_WIN32)) || \
( \
defined(__GNUC__) && ( \
- (defined(__ARM_ARCH) && __ARM_ARCH >= 7) || \
+ (defined(__ARM_ARCH) && __ARM_ARCH >= 6) || \
( \
defined(__mips__) && \
(__mips <= 5 || __mips_isa_rev < 6) && \

127
xxhash.changes Normal file
View File

@ -0,0 +1,127 @@
-------------------------------------------------------------------
Wed Mar 8 21:28:23 UTC 2023 - Michael Gorse <mgorse@suse.com>
- Add 15ce80f9f2760609d8cc68cea76d3f3217ab70e1.patch: fix build
failure on ppc64le when using gcc 7 (boo#1208794).
-------------------------------------------------------------------
Mon Dec 20 10:27:32 UTC 2021 - Dirk Müller <dmueller@suse.com>
- fix racy check execution
-------------------------------------------------------------------
Thu Dec 2 22:20:24 UTC 2021 - Dirk Müller <dmueller@suse.com>
- update to 0.8.1:
* perf : much improved performance for XXH3 streaming variants, notably on
gcc and msvc
* perf : improved XXH64 speed and latency on small inputs
* perf : small XXH32 speed and latency improvement on small inputs of random
size
* perf : minor stack usage improvement for XXH32 and XXH64
* api : new experimental variants XXH3_*_withSecretandSeed()
* api : update XXH3_generateSecret(), can no generate secret of any size (>=
XXH3_SECRET_SIZE_MIN)
* cli : xxhsum can now generate and check XXH3 checksums, using command `-H3`
* build: can build xxhash without XXH3, with new build macro XXH_NO_XXH3
* build: fix xxh_x86dispatch build with MSVC, by @apankrat
* build: XXH_INLINE_ALL can always be used safely, even after XXH_NAMESPACE
or a previous XXH_INLINE_ALL
* build: improved PPC64LE vector support
* install: fix pkgconfig
* install: compatibility with Haiku
* doc : code comments made compatible with doxygen
* misc : XXH_ACCEPT_NULL_INPUT_POINTER is no longer necessary, all functions
can accept NULL input pointers, as long as size == 0
* misc : complete refactor of CI tests on Github Actions, offering much
larger coverage
* misc : xxhsum code base split into multiple specialized units, within
directory cli/
- add 836f4e735cf368542f14005e41d2f84ec29dfd60.patch (fix manpage installation)
-------------------------------------------------------------------
Tue Jul 6 17:15:34 CEST 2021 - ro@suse.de
- add patch xxhash-avoid-armv6-unaligned-access.patch
do not expect unaligned accesses to work on armv6, it breaks
in our build setup using aarch64 kernels
-------------------------------------------------------------------
Mon Aug 3 05:43:31 UTC 2020 - Ismail Dönmez <idonmez@suse.com>
- Update to version 0.8.0
* api : stabilize XXH3
* cli : xxhsum can produce BSD-style lines, with command --tag
* cli : xxhsum can parse and check BSD-style lines, using command --check
* cli : xxhsum - accepts console input
* cli : xxhsum accepts -- separator
* cli : fix : print correct default algo for symlinked helpers
- Add BR on c++_compiler, needed for test programs
-------------------------------------------------------------------
Wed Dec 18 23:57:43 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- Enable test suite run in %check
-------------------------------------------------------------------
Tue Dec 17 13:17:59 UTC 2019 - Michał Rostecki <mrostecki@opensuse.org>
- Update to version 0.7.2
* Fixed collision ratio of XXH128 for some specific input lengths
* Improved VSX and NEON variants
* Improved performance of scalar code path (XXH_VECTOR=0),
* xxhsum: can generate 128-bit hash with command -H2 (note: for
experimental purposes only! XXH128 is not yet frozen)
* xxhsum: option -q removes status notifications
-------------------------------------------------------------------
Thu Sep 26 10:06:43 UTC 2019 - simmphonie@opensuse.org
- update to version 0.7.1
- XXH3 updates:
* Secret first : the algorithm computation can be altered by
providing a "secret", which is any blob of bytes, of
size >= XXH3_SECRET_SIZE_MIN.
* seed is still available, and acts as a secret generator
* As a consequence of these changes, note that new return
values of XXH3 are not compatible with v0.7.0
* updated ARM NEON variant
* Streaming implementation is available
* Improve compatibility and performance with Visual Studio
* Better integration when using XXH_INLINE_ALL : do not pollute
host namespace, use its own macros, such as XXH_ASSERT(), XXH_ALIGN, etc.
* 128-bits variant provide helper function, for comparison of hashes.
- general improvements:
* Better clang generation of rotl instruction
* XXH_REROLL build macro, to reduce binary size
* Improved cmake script
* Full benchmark program provided in /tests/bench
- update to version 0.7.0
- Add XXH3 hash algorithm
-------------------------------------------------------------------
Thu Dec 6 09:25:19 UTC 2018 - Michał Rostecki <mrostecki@suse.de>
- Remove false information from description - xxHash does not
derive from Argon2 algorithm.
-------------------------------------------------------------------
Mon Dec 3 21:20:05 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
- Trim bias from description
-------------------------------------------------------------------
Tue Oct 16 20:10:06 UTC 2018 - t.gruner@katodev.de
- update to version 0.6.5
- Improved performance on small keys, thanks to suggestions from Jens Bauer
- New build macro, XXH_INLINE_ALL, extremely effective for small keys of fixed length (see this article for details)
- XXH32() : better performance on OS-X clang by disabling auto-vectorization
- Improved benchmark measurements accuracy on small keys
- Included xxHash specification document
-------------------------------------------------------------------
Sun Jan 21 18:49:27 UTC 2018 - bugs@vdm-design.de
- Initial package of version 0.6.4

98
xxhash.spec Normal file
View File

@ -0,0 +1,98 @@
#
# spec file for package xxhash
#
# Copyright (c) 2023 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/
#
Name: xxhash
Version: 0.8.1
Release: 0
Summary: Non-cryptographic hash algorithm
License: BSD-2-Clause AND GPL-2.0-only
Group: Productivity/Security
URL: https://github.com/Cyan4973/xxHash
Source0: https://github.com/Cyan4973/xxHash/archive/v%{version}.tar.gz#/xxHash-%{version}.tar.gz
Patch0: xxhash-avoid-armv6-unaligned-access.patch
Patch1: https://github.com/Cyan4973/xxHash/commit/836f4e735cf368542f14005e41d2f84ec29dfd60.patch
Patch2: https://github.com/Cyan4973/xxHash/commit/15ce80f9f2760609d8cc68cea76d3f3217ab70e1.patch
BuildRequires: gcc-c++
BuildRequires: pkgconfig
%description
xxHash is a hash algorithm. It completes the SMHasher test suite which
evaluates collision, dispersion and randomness qualities of hash functions.
Hashes are identical on all platforms.
%package -n libxxhash0
Summary: Shared library for xxHash - a non-cryptographic hash algorithm
License: BSD-2-Clause
Group: System/Libraries
%description -n libxxhash0
Shared library for xxHash - a hash algorithm. It completes the SMHasher test
suite which evaluates collision, dispersion and randomness qualities of hash
functions. Hashes are identical on all platforms.
%package devel
Summary: Development files for xxHash - a non-cryptographic hash algorithm
License: BSD-2-Clause
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: libxxhash0 = %{version}
%description devel
Development files for xxHash - a hash algorithm. It completes the SMHasher test
suite which evaluates collision, dispersion and randomness qualities of hash
functions. Hashes are identical on all platforms.
%prep
%autosetup -p1 -n xxHash-%{version}
%build
%make_build prefix=%{_prefix} libdir=%{_libdir}
%install
%make_install prefix=%{_prefix} libdir=%{_libdir}
rm -rf %{buildroot}%{_libdir}/libxxhash.a
%check
# not safe for parallel execution as it removes xxhash.o and recreates it with different flags
%make_build -j1 test
%post -n libxxhash0 -p /sbin/ldconfig
%postun -n libxxhash0 -p /sbin/ldconfig
%files
%license LICENSE
%doc README.md
%{_bindir}/xxhsum
%{_bindir}/xxh32sum
%{_bindir}/xxh64sum
%{_bindir}/xxh128sum
%{_mandir}/man1/xxh32sum.*
%{_mandir}/man1/xxh64sum.*
%{_mandir}/man1/xxh128sum.*
%{_mandir}/man1/xxhsum.*
%files -n libxxhash0
%{_libdir}/libxxhash.so.*
%files devel
%{_includedir}/xxhash.h
%{_includedir}/xxh3.h
%{_libdir}/pkgconfig/libxxhash.pc
%{_libdir}/libxxhash.so
%changelog