commit 153126d90ea5979db34977a454aa3a5176db8194 Author: zyppe <210hcl@gmail.com> Date: Wed Feb 28 21:07:31 2024 +0800 Initialize for lz4 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a8d328c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +v1.9.3.tar.gz diff --git a/.lz4.metadata b/.lz4.metadata new file mode 100644 index 0000000..83e626c --- /dev/null +++ b/.lz4.metadata @@ -0,0 +1 @@ +7bf25eb6614b68b3983d86317682f1574bb3ecdcc91200b6ce6d23aae0a6deca v1.9.3.tar.gz diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..5de8b08 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1 @@ +liblz4-1 diff --git a/lz-export.diff b/lz-export.diff new file mode 100644 index 0000000..6bec000 --- /dev/null +++ b/lz-export.diff @@ -0,0 +1,21 @@ + +[ 9s] bench.o: In function `BMK_benchMem': +[ 9s] /home/abuild/rpmbuild/BUILD/lz4-1.8.0/programs/bench.c:221: undefined reference to `LZ4_XXH64' + +--- + lib/xxhash.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: lz4-1.9.1/lib/xxhash.h +=================================================================== +--- lz4-1.9.1.orig/lib/xxhash.h ++++ lz4-1.9.1/lib/xxhash.h +@@ -107,7 +107,7 @@ typedef enum { XXH_OK=0, XXH_ERROR } XXH + # define XXH_PUBLIC_API static + # endif + #else +-# define XXH_PUBLIC_API /* do nothing */ ++# define XXH_PUBLIC_API __attribute__((visibility("default"))) /* do nothing */ + #endif /* XXH_INLINE_ALL || XXH_PRIVATE_API */ + + /*! XXH_NAMESPACE, aka Namespace Emulation : diff --git a/lz4.changes b/lz4.changes new file mode 100644 index 0000000..27c9bf8 --- /dev/null +++ b/lz4.changes @@ -0,0 +1,148 @@ +* Mon Oct 4 2021 pgajdos@suse.com +- version 1.9.3 fixes also CVE-2021-3520 [bsc#1185438] +* Mon Nov 16 2020 jengelh@inai.de +- Update to release 1.9.3 + * api: LZ4_decompress_safe_partial() now supports unknown + compressed size + * api: improved LZ4F_compressBound() with automatic flushing + * cli: multiple files are compressed now using the legacy format +* Wed Oct 16 2019 pgajdos@suse.com +- enable testsuite +- verbose build +* Tue Oct 15 2019 pgajdos@suse.com +- version update to 1.9.2 + * decompression functions were reading a few bytes beyond input size + * api: lz4frame initializers compatibility with c++, reported by @degski + * cli : added command --list, based on a patch by @gabrielstedman + * fixes CVE-2019-17543 [bsc#1153936] +* Thu Jun 6 2019 jengelh@inai.de +- Update to new upstream release 1.9.1 + * Decompression speed was improved by about 12%% (x86/x64). + * New option `lz4 --list` to inspect the block type, checksum + information, compressed and decompressed sizes (if present). The + command is limited to single-frame files for the time being. +* Fri Oct 12 2018 astieger@suse.com +- lz4 1.8.3: + * minor decompression speed improvement (~+2%%) with gcc + * fix corruption in v1.8.2 at level 9 for files > 64KB under + rare conditions + * Add new command --fast + * api: LZ4_decompress_safe_partial() now decodes exactly the + number of bytes requested +* Thu Jun 28 2018 astieger@suse.com +- lz4 1.8.2: + * speed inprovemtns for compression and decompression + * fix compression compatible with low memory addresses + * fix decompression segfault when provided with NULL input + * cli: new command --favor-decSpeed + * cli: benchmark mode more accurate for small inputs +* Wed Feb 7 2018 avindra@opensuse.org +- Update to new upstream release 1.8.1.2 + * Most visible new feature is support for dictionary compression + * Support is now more formally added on the API side within + lib/lz4frame_static.h. It's early days, and this new API is + tagged "experimental" for the time being. + * Support is also added in the command line utility lz4, using + the new command -D. The behavior of this command is identical + to zstd, should you be already familiar. + * lz4 doesn't specify how to build a dictionary. All it says is + that it can be any file up to 64 KB. + * This approach is compatible with zstd dictionary builder, which + can be instructed to create a 64 KB dictionary. + * Improved performance at ultra settings (levels 10+). + * These levels receive a new code, called optimal parser, + available in lib/lz4_opt.h. + * New parser uses less memory (from 384KB to 256KB), performs + faster, compresses a little bit better (not much, as it was + already close to theoretical limit), and resists pathological + patterns which could destroy performance. + * New parser is directly compatible with lower compression levels, + which brings additional benefits: + + Compatibility with LZ4_*_destSize() variant, which reverses + the logic by trying to fit as much data as possible into a + predefined limited size buffer. + + Compatibility with Dictionary compression, as it uses the + same tables as regular HC mode + * In the future, this compatibility will also allow dynamic change + of compression level. + * Small set of bug fixes and improvements: + + perf : faster and stronger ultra modes (levels 10+) + + perf : slightly faster compression and decompression speed + + perf : fix bad degenerative case + + fix : decompression failed when using a combination of + extDict + low memory address + + cli : support for dictionary compression (-D) + + cli : fix : lz4 -d --rm preserves timestamp + + cli : fix : do not modify /dev/null permission as root + + api : _destSize() variant supported for all compression + levels +- partial cleanup with spec-cleaner +- drop lz4-use-shlib.diff, breaks build +- misc spec cleanups + - remove Makefile fix + - build and install separately + - New URL +* Fri Aug 25 2017 jengelh@inai.de +- Update to new upstream release 1.8.0 + * cli: fix: do not modify /dev/null's permissions. + * cli: added POSIX separator "--" for specifying that all + following arguments are non-options. + * cli: restored -BX command enabling block checksum. + * API: added LZ4_compress_HC_destSize() and + LZ4F_resetDecompressionContext(). + * API: lz4frame: negative compression levels trigger fast + acceleration. + * API: lz4frame: ability to control block checksum and + dictionary ID. + * API: fix: expose obsolete decoding functions + * API: experimental: lz4frame_static.h: + new dictionary compression API + * doc: Updated LZ4 Frame format to v1.6.0, restoring + Dictionary ID field in header. +- Add lz-export.diff +* Tue Aug 15 2017 ddiss@suse.com +- Use official upstream repository; (boo#1053910) +* Wed Jul 5 2017 jengelh@inai.de +- Update to new upstrema release 1.7.5 (2017-01-03) + * back to the old version scheme + * lz4hc: new compression levels 10-12 +- Remove lz4-soversion.diff (not needed), + lz4-killdate.diff (no longer needed) +* Mon Jan 16 2017 dimstar@opensuse.org +- Add baselibs.conf: provide liblz4-1_7 as -32bit compatibility + package, required by systemd-32bit. +* Sat Apr 2 2016 jengelh@inai.de +- Update to new upstream release 131 (library 1.7) (boo#973735) + * slightly improved decoding speed + * lz4frame API is included in liblz4 + * new -m command line option to compress multiple files + * new lz4 and lz4hc compression API (old one retained) +* Fri Nov 28 2014 jengelh@inai.de +- Update to version 1.4+svn124 + * LZ4F_compressBound() may be called with NULL preferencesPtr + * LZ4_loadDict now returns the dictionary size instead of 1 + on success +- Add lz4-soversion.diff to address ABI changes +* Wed Oct 1 2014 jengelh@inai.de +- Update to version 1.3.1+svn123 + * Added a pkgconfig file + * Fix a LZ4HC streaming bug + * Updated the framing specificaiton to 1.4.1 +* Wed Jul 16 2014 jengelh@inai.de +- Update to svn revision 119, set version to 1.2.0 (based upon + Makefile contents; it's still odd to see the 1.4 Windows release) + * Provide LZ4 as a shared library +- Remove lz4-automake.diff (no longer deemed necessary) +- Add lz4-use-shlib.diff +* Mon Nov 25 2013 dsterba@suse.com +- update to svn 108, set version to 1.4 (current windows release) + - added manpage + - minor code updates +* Tue Sep 3 2013 jengelh@inai.de +- Update to new snapshot svn102; set version as 1.3.3 in accordance + with latest Windows releases. + * Add lz4-killdate.diff (kill the ungodly __DATE__s) +* Thu Feb 21 2013 jengelh@inai.de +- I hate %%makeinstall (it fails all the SLES builds), kill it! +* Sat Mar 17 2012 jengelh@medozas.de +- Initial package for build.opensuse.org diff --git a/lz4.spec b/lz4.spec new file mode 100644 index 0000000..8d32c19 --- /dev/null +++ b/lz4.spec @@ -0,0 +1,89 @@ +# +# spec file for package lz4 +# +# Copyright (c) 2022-2023 ZhuningOS +# + + +%define lname liblz4-1 +Name: lz4 +Version: 1.9.3 +Release: 150400.1.7 +Summary: Hash-based Predictive Lempel–Ziv compressor +License: BSD-2-Clause AND GPL-2.0-or-later +Group: Productivity/Archiving/Compression +URL: https://lz4.github.io/lz4/ + +#Git-Clone: https://github.com/lz4/lz4 +Source: https://github.com/lz4/lz4/archive/v%version.tar.gz +Source99: baselibs.conf +Patch2: lz-export.diff +BuildRequires: pkgconfig + +%description +LZ4 is a lossless data compression algorithm that is focused on +compression and decompression speed. It belongs to the LZ77 +(Lempel–Ziv) family of byte-oriented compression schemes. It is a +LZP2 fork and provides better compression ratio for text files. + +This subpackage provides a GPL command-line utility to make use of +the LZ4 algorithm. + +%package -n %lname +Summary: Hash-based predictive Lempel-Ziv compressor +License: BSD-2-Clause +Group: System/Libraries + +%description -n %lname +LZ4 is a lossless data compression algorithm that is focused on +compression and decompression speed. It belongs to the LZ77 +(Lempel–Ziv) family of byte-oriented compression schemes. It is a + +This subpackage contains the (de)compressor code as a shared library. + +%package -n liblz4-devel +Summary: Development files for the LZ4 compressor +License: BSD-2-Clause +Group: Development/Libraries/C and C++ +Requires: %lname = %version + +%description -n liblz4-devel +LZ4 is a lossless data compression algorithm that is focused on +compression and decompression speed. It belongs to the LZ77 +(Lempel–Ziv) family of byte-oriented compression schemes. It is a + +This subpackage contains libraries and header files for developing +applications that want to make use of liblz4. + +%prep +%autosetup -p1 + +%build +V=1 %make_build CFLAGS="%optflags" + +%install +%make_install PREFIX="%_prefix" LIBDIR="%_libdir" +rm -f "%buildroot/%_libdir"/*.a + +%check +LD_LIBRARY_PATH="%buildroot/%_libdir" ldd -r "%buildroot/%_bindir/lz4" +# TS fails on its own help output +make %{?_smp_mflags} check -k || : + +%post -n %lname -p /sbin/ldconfig +%postun -n %lname -p /sbin/ldconfig + +%files +%_bindir/lz4* +%_bindir/unlz4 +%_mandir/man1/*.1* + +%files -n %lname +%_libdir/liblz4.so.1* + +%files -n liblz4-devel +%_includedir/lz4*.h +%_libdir/liblz4.so +%_libdir/pkgconfig/*.pc + +%changelog