Name: brotli Version: 1.0.7 Release: 10%{?dist} Summary: Lossless compression algorithm License: MIT URL: https://github.com/google/brotli Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz %if 0%{?rhel} == 7 BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel %endif BuildRequires: gcc BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools Requires: lib%{name}%{?_isa} = %{version}-%{release} %description 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. %package -n libbrotli Summary: Library for brotli lossless compression algorithm %description -n libbrotli 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. %package -n python%{python3_pkgversion}-%{name} Summary: Lossless compression algorithm (python 3) %{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} %description -n python%{python3_pkgversion}-%{name} 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. This package installs a Python 3 module. %package devel Summary: Lossless compression algorithm (development files) Requires: %{name}%{?_isa} = %{version}-%{release} Requires: lib%{name}%{?_isa} = %{version}-%{release} %description devel 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. This package installs the development files %prep %autosetup # fix permissions for -debuginfo # rpmlint will complain if I create an extra %%files section for # -debuginfo for this so we'll put it here instead chmod 644 c/enc/*.[ch] chmod 644 c/include/brotli/*.h chmod 644 c/tools/brotli.c %build %if 0%{?rhel} == 7 . /opt/rh/devtoolset-7/enable %endif mkdir -p build cd build %cmake .. -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ -DCMAKE_INSTALL_LIBDIR="%{_libdir}" %make_build cd .. %py3_build %install %if 0%{?rhel} == 7 . /opt/rh/devtoolset-7/enable %endif cd build %make_install # I couldn't find the option to not build the static libraries rm "%{buildroot}%{_libdir}/"*.a cd .. %py3_install install -dm755 "%{buildroot}%{_mandir}/man3" cd docs for i in *.3;do install -m644 "$i" "%{buildroot}%{_mandir}/man3/${i}brotli" done %ldconfig_scriptlets %check %if 0%{?rhel} == 7 . /opt/rh/devtoolset-7/enable %endif cd build ctest -V cd .. %{__python3} setup.py test %files %{_bindir}/brotli %files -n libbrotli %license LICENSE %{_libdir}/libbrotlicommon.so.1* %{_libdir}/libbrotlidec.so.1* %{_libdir}/libbrotlienc.so.1* # Note that there is no %%files section for the unversioned python module # if we are building for several python runtimes %files -n python%{python3_pkgversion}-%{name} %license LICENSE %{python3_sitearch}/brotli.py %{python3_sitearch}/_brotli.cpython-%{python3_version_nodots}*.so %{python3_sitearch}/__pycache__/brotli.cpython-%{python3_version_nodots}*.py* %{python3_sitearch}/Brotli-%{version}-py%{python3_version}.egg-info %files devel %{_includedir}/brotli %{_libdir}/libbrotlicommon.so %{_libdir}/libbrotlidec.so %{_libdir}/libbrotlienc.so %{_libdir}/pkgconfig/libbrotlicommon.pc %{_libdir}/pkgconfig/libbrotlidec.pc %{_libdir}/pkgconfig/libbrotlienc.pc %{_mandir}/man3/decode.h.3brotli* %{_mandir}/man3/encode.h.3brotli* %{_mandir}/man3/types.h.3brotli* %changelog * Tue Jan 28 2020 Fedora Release Engineering - 1.0.7-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Sat Dec 7 2019 Peter Robinson 1.0.7-9 - Splil out the libs to a separate package * Thu Oct 03 2019 Miro Hrončok - 1.0.7-8 - Rebuilt for Python 3.8.0rc1 (#1748018) * Sat Aug 17 2019 Miro Hrončok - 1.0.7-7 - Rebuilt for Python 3.8 * Wed Jul 24 2019 Fedora Release Engineering - 1.0.7-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Sat Apr 20 2019 Orion Poplawski - 1.0.7-5 - Build with devtoolset-7 on EPEL7 to fix aarch64 builds * Thu Mar 28 2019 Carl George - 1.0.7-4 - EPEL compatibility * Thu Jan 31 2019 Fedora Release Engineering - 1.0.7-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Sun Dec 09 2018 Miro Hrončok - 1.0.7-2 - Remove last python2 bits * Wed Nov 28 2018 Travis Kendrick pouar@pouar.net> - 1.0.7-1 - Update to 1.0.7 * Wed Nov 28 2018 Travis Kendrick pouar@pouar.net> - 1.0.5-2 - remove Python 2 support https://fedoraproject.org/wiki/Changes/Mass_Python_2_Package_Removal * Fri Jul 13 2018 Travis Kendrick pouar@pouar.net> - 1.0.5-1 - update to 1.0.5 * Thu Jul 12 2018 Fedora Release Engineering - 1.0.4-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Mon Jun 18 2018 Miro Hrončok - 1.0.4-3 - Rebuilt for Python 3.7 * Wed Apr 18 2018 Travis Kendrick pouar@pouar.net> - 1.0.4-2 - update to 1.0.4 * Sat Mar 03 2018 Travis Kendrick - 1.0.3-1 - update to 1.0.3 * Wed Feb 07 2018 Fedora Release Engineering - 1.0.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Sat Feb 03 2018 Igor Gnatenko - 1.0.1-2 - Switch to %%ldconfig_scriptlets * Fri Sep 22 2017 Travis Kendrick - 1.0.1-1 - update to 1.0.1 * Wed Aug 02 2017 Fedora Release Engineering - 0.6.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 0.6.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Tue May 23 2017 Travis Kendrick - 0.6.0-4 - add man pages * Sun May 14 2017 Travis Kendrick - 0.6.0-3 - wrong directory for ctest - LICENSE not needed in -devel - fix "spurious-executable-perm" - rpmbuild does the cleaning for us, so 'rm -rf %%{buildroot}' isn't needed * Sat May 13 2017 Travis Kendrick - 0.6.0-2 - include libraries and development files * Sat May 06 2017 Travis Kendrick - 0.6.0-1 - Initial build