# # spec file for package brotli # # Copyright (c) 2023 SUSE LLC # Copyright (c) 2017 Buschmann # # 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 sover 1 Name: brotli Version: 1.1.0 Release: 1.3 Summary: Lossless Compression Algorithm License: MIT Group: Productivity/Archiving/Compression URL: https://github.com/google/brotli Source: https://github.com/google/brotli/archive/v%version.tar.gz Source99: baselibs.conf BuildRequires: cmake >= 2.8.6 BuildRequires: gcc-c++ BuildRequires: gzip BuildRequires: pkg-config %{?suse_build_hwcaps_libs} %description This package contains the brotli command line utility to compress and decompress data with the brotli compression algorithm. Brotli is a generic-purpose lossless compression algorithm that compresses data using a combination of a modern variant of the LZ77 algorithm, Huffman coding and 2nd order context modeling, with a compression ratio comparable to the best currently available general-purpose compression methods. It is similar in speed with deflate but offers more dense compression. The specification of the Brotli Compressed Data Format is defined in RFC 7932. %package -n libbrotlicommon%sover Summary: Common Library for Brotli Compression Group: System/Libraries %description -n libbrotlicommon%sover Common library for the Brotli general purpose lossless data compression algorithm. %package -n libbrotlidec%sover Summary: Library for Brotli Decompression Group: System/Libraries %description -n libbrotlidec%sover Decompression library for the Brotli general purpose lossless data compression algorithm. The specification of the Brotli Compressed Data Format is defined in RFC 7932. %package -n libbrotlienc%sover Summary: Library for Brotli Compression Group: System/Libraries %description -n libbrotlienc%sover Compression library for the Brotli general purpose lossless data compression algorithm. The specification of the Brotli Compressed Data Format is defined in RFC 7932. %package -n libbrotli-devel Summary: Development and Header Files for Brotli Compression Group: Development/Libraries/C and C++ Requires: libbrotlicommon%sover = %version-%release Requires: libbrotlidec%sover = %version-%release Requires: libbrotlienc%sover = %version-%release Provides: libbrotlicommon-devel = %version-%release Provides: libbrotlidec-devel = %version-%release Provides: libbrotlienc-devel = %version-%release Obsoletes: libbrotlicommon-devel < %version-%release Obsoletes: libbrotlidec-devel < %version-%release Obsoletes: libbrotlienc-devel < %version-%release %description -n libbrotli-devel Development and headers files for (de)compressing data using the Brotli general purpose lossless compression algorithm. The specification of the Brotli Compressed Data Format is defined in RFC 7932. %prep %autosetup -p1 %build export CFLAGS="%{optflags} -DBROTLI_ENCODER_CLEANUP_ON_OOM" %cmake %cmake_build %install %cmake_install mkdir -p "%buildroot/%_mandir/man1" "%buildroot/%_mandir/man3" install -pm0644 docs/*.1 "%buildroot/%_mandir/man1/" install -pm0644 docs/*.3 "%buildroot/%_mandir/man3/" %check %ctest %post -n libbrotlicommon%sover -p /sbin/ldconfig %postun -n libbrotlicommon%sover -p /sbin/ldconfig %post -n libbrotlidec%sover -p /sbin/ldconfig %postun -n libbrotlidec%sover -p /sbin/ldconfig %post -n libbrotlienc%sover -p /sbin/ldconfig %postun -n libbrotlienc%sover -p /sbin/ldconfig %files %license LICENSE %_bindir/brotli %_mandir/man1/brotli.1* %files -n libbrotlicommon%sover %_libdir/libbrotlicommon.so.* %files -n libbrotlidec%sover %_libdir/libbrotlidec.so.* %files -n libbrotlienc%sover %_libdir/libbrotlienc.so.* %files -n libbrotli-devel %_includedir/brotli/ %_libdir/libbrotlicommon.so %_libdir/libbrotlidec.so %_libdir/libbrotlienc.so %_libdir/pkgconfig/*.pc %_mandir/man3/*.3* %changelog * Tue Oct 17 2023 Dirk Müller - build with optflags again * Thu Aug 31 2023 Jan Engelhardt - Update to release 1.1 * CLI: added a --dictionary option - Reomve 0001-Revert-Add-runtime-linker-path-to-pkg-config-files-7.patch * Wed Mar 8 2023 Martin Pluskal - Build AVX2 enabled hwcaps library for x86_64-v3 * Sat Feb 25 2023 Marcus Meissner - add 32bit devel package for Wine development. * Tue Sep 1 2020 Jan Engelhardt - Add 0001-Revert-Add-runtime-linker-path-to-pkg-config-files-7.patch * Thu Aug 27 2020 Jan Engelhardt - Update to 1.0.9 * Fix integer overflow when input chunk is longer than 2GiB [boo#1175825] * `brotli -v` now reports raw / compressed size * decoder: minor speed / memory usage improvements * encoder: fix rare access to uninitialized data in ring-buffer - Drop brotli_Ensure-decompression-consumes-all-input.patch, brotli_Verbose-CLI+Shared-Brotli.patch (merged) * Wed Aug 12 2020 andy great - Fix W: shared-lib-calls-exit /usr/lib64/libbrotlienc.so.1.0.7 exit@GLIBC_2.2.5. * Tue Nov 19 2019 Simon Lees - %%make_jobs is deprecated and replaced by %%cmake_build * Sun Jan 13 2019 bjorn.lie@gmail.com - Add brotli_Verbose-CLI+Shared-Brotli.patch: Verbose CLI + start pulling "Shared-Brotli". * verbose CLI output; fix gh#google/brotlie#666. * pull `SHIFT` transforms; currently this is semantically dead code; later it will be used by "Shared-Brotli". - Add brotli_Ensure-decompression-consumes-all-input.patch: Ensure decompression consumes all input. If not, it's a corrupt stream. - Tweak spec slightly. * Fri Dec 14 2018 Jan Engelhardt - Avoid bashisms, install manpages without +x bit, get rid of wrap descriptions, feed through cleaner. * Fri Dec 14 2018 astieger@suse.com - brotli 1.0.7: * faster decoding on ARM * improved precision of window size calculation in CLI - includes changes from 1.0.6: * fix unaligned 64-bit accesses on AArch32 * add ASAN/MSAN unaligned read specializations * fix JDK 8<->9 incompatibility * Wed Jul 25 2018 bjorn.lie@gmail.com - Add baselibs.conf, build 32bit library support. * Tue Jul 24 2018 mpluskal@suse.com - Use cmake macros for building and tests * Thu Jun 28 2018 mpluskal@suse.com - Update to version 1.0.5: * improve q=1 compression on small files * inverse Bazel workspace tree * add rolling-composite-hasher for large-window mode * add tools to download and transform static dictionary data - Changes for version 1.0.4: * fix unaligned access for aarch64-cross-armhf build * fix aarch64 target detection * allow CLI to compress with enabled "large window" feature * add NPOSTFIX / NDIRECT encoder parameters * automatic NDIRECT/NPOSTFIX tuning (better compression) * fix "memory leak" in python tests * fix bug in durchschlag * fix source file lists (add params.h) * fix Bazel/MSVC compilator options * fix "fall though" warnings * Wed May 2 2018 bjorn.lie@gmail.com - Add missing libbrotlicommon%%%%{sover} and libbrotlidec%%%%{sover} Requires to devel subpackage. * Mon Mar 5 2018 jengelh@inai.de - Update to new upstream release 1.0.3 * New "Large Window Brotli" feature * New dictionary generator * Wed Jan 3 2018 jengelh@inai.de - Merge devel subpackages as libbrotli-devel * Sat Dec 30 2017 jengelh@inai.de - Avoid shipping duplicate files. Avoid shipping README.md, this just contains the description - and build instructions. - Drop duplicate Requires on -devel. * Wed Dec 20 2017 pgajdos@suse.com - build for SLE_12 and SLE_12_SP1 * Thu Nov 30 2017 buschmann23@opensuse.org - update to Brotli 1.0.2 + Major chnages * added Autotools build files * switched shared library version to libtool scheme + Minor changes * BrotliDictionary members are not const now * ZopfliNode distance could be up to 128MiB * fixed API documentation typos * total_out is always set by decoder * fixed BROTLI_ENSURE_CAPACITY macro; no-op in preprocessed output + Other changes * fixed scripts for oss-fuzz, test them with Travis * made Bazel JNI tests less messy * fixed linter warnings in JS decoder * fixed permissions of various files * added Bazel build to Appveyor matrix * added Sieve dictionary generator * Tue Oct 24 2017 buschmann23@opensuse.org - update to Brotli 1.0.1 + updated README.md + fixed parallel exeuction of CMake "compatibility" tests - update to Brotli 1.0.0 + new CLI; bro -> brotli; + man page + remove "custom dictionary" support + add ability to side-load brotli RFC dictionary + add decoder API to avoid ringbuffer reallocation + PY streaming decompression support + PY wrapper accepts memview - spec file changes + improve descriptions + add man pages * Wed Sep 20 2017 buschmann23@opensuse.org - spec file changes + improve package description * Fri Jun 23 2017 buschmann23@opensuse.org - update to Brotli 0.6.0 + better compression on 1MiB+ files + update "common" API to make dictionary fetching more flexible + fix decoder bug #502 + faster compression on mid-low quality levels + fix encoder q10-11 slowdown after long copy #468 + introduce Brotli*TakeOutput API - now build shared libraries and development files in the following new packages: + libbrotlicommon0_6_0 + libbrotlicommon-devel + libbrotlidec0_6_0 + libbrotlidec-devel + libbrotlienc0_6_0 + libbrtolienc-devel * Fri Mar 24 2017 buschmann23@opensuse.org - initial package