# remirepo spec file for brotli / libbrotli1 # renamed for parallel installation, from: # # Fedora spec file for brotli # # License: MIT # http://opensource.org/licenses/MIT # # Please preserve changelog entries # %global libname libbrotli %global soname 1 # Version 1.0.1 in F28+ # Nothing in EPEL, but we only provide the lib %if 0%{?fedora} >= 28 Name: brotli %else Name: %{libname}%{soname} %endif Version: 1.0.3 Release: 1%{?dist} Summary: Lossless compression algorithm License: MIT URL: https://github.com/google/brotli Source0: https://github.com/google/brotli/archive/v%{version}.tar.gz BuildRequires: gcc-c++ gcc cmake %if "%{name}" == "brotli" Obsoletes: %{libname}%{soname} <= %{version} %endif %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. %if 0%{?fedora} >= 28 %package -n python2-%{name} Summary: Lossless compression algorithm (python 2) BuildRequires: python2-devel Requires: python2 %{?python_provide:%python_provide python2-%{name}} %description -n python2-%{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 2 module. %package -n python3-%{name} Requires: python3 Summary: Lossless compression algorithm (python 3) BuildRequires: python3-devel %{?python_provide:%python_provide python3-%{name}} %description -n python3-%{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. %endif %package -n %{name}-devel Summary: Lossless compression algorithm (development files) Requires: %{name}%{?_isa} = %{version}-%{release} %if "%{name}" == "brotli" Obsoletes: %{libname}%{soname}-devel <= %{version} %else Conflicts: brotli-devel Provides: brotli-devel = %{version}-%{release} %endif %description -n %{name}-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 %setup -q -n brotli-%{version} # 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 mkdir -p build cd build %cmake .. -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ -DCMAKE_INSTALL_LIBDIR="%{_libdir}" make %{?_smp_mflags} cd .. %if 0%{?fedora} >= 28 %py2_build %py3_build %endif %install cd build make install DESTDIR=%{buildroot} # I couldn't find the option to not build the static libraries %__rm "%{buildroot}%{_libdir}/"*.a cd .. %if 0%{?fedora} >= 28 # Must do the python2 install first because the scripts in /usr/bin are # overwritten with every setup.py install, and in general we want the # python3 version to be the default. If, however, we're installing separate # executables for python2 and python3, the order needs to be reversed so # the unversioned executable is the python2 one. %py2_install %py3_install %endif %{__install} -dm755 "%{buildroot}%{_mandir}/man3" cd docs for i in *.3;do %{__install} -m644 "$i" "%{buildroot}%{_mandir}/man3/${i}brotli" done %if 0%{?fedora} < 28 && 0%{?rhel} < 8 %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %endif %check cd build ctest -V cd .. %if 0%{?fedora} >= 28 %{__python2} setup.py test %{__python3} setup.py test %endif %files %{!?_licensedir:%global license %%doc} %exclude %{_bindir}/brotli %{_libdir}/*.so.%{soname}* %license LICENSE %if 0%{?fedora} >= 28 # Note that there is no %%files section for the unversioned python module # if we are building for several python runtimes %files -n python2-%{name} %{python2_sitearch}/* %license LICENSE %files -n python3-%{name} %{python3_sitearch}/* %license LICENSE %endif %files -n %{name}-devel %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/* %{_mandir}/man3/* # DON'T run the build for F28+ %changelog * Tue Apr 10 2018 Remi Collet - 1.0.3-1 - rename to libbrotli1 - drop command and python bindings * Fri Mar 02 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