3 %bcond_without python2 # Python 2 module
4 %bcond_without python3 # Python 3 module
5 %bcond_without static_libs # don't build static libraries
7 Summary: Brotli - generic-purpose lossless compression algorithm
8 Summary(pl.UTF-8): Brotli - algorytm bezstratnej kompresji ogólnego przeznaczenia
14 #Source0Download: https://github.com/google/brotli/releases
15 Source0: https://github.com/google/brotli/archive/v%{version}/Brotli-%{version}.tar.gz
16 # Source0-md5: e7a6c1fe7795475f4273ee4c36a3ad5c
17 # metapackage to build shared libraries from brotli sources
18 Source1: https://github.com/bagder/libbrotli/archive/ccb89e138b0948d7c353bc508b0d8fc584e01ff2/libbrotli-20160820.tar.gz
19 # Source1-md5: 27b5dba9342cf6461c5847667f7340e2
20 Patch0: libbrotli-update.patch
21 URL: https://github.com/google/brotli/
22 BuildRequires: autoconf >= 2.57
23 BuildRequires: automake
24 BuildRequires: libstdc++-devel >= 6:4.7
25 BuildRequires: libtool >= 2:2
26 %{?with_python2:BuildRequires: python-devel >= 2}
27 %{?with_python3:BuildRequires: python3-devel >= 1:3.2}
28 BuildRequires: rpm-pythonprov
29 BuildRequires: rpmbuild(macros) >= 1.714
30 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
33 Brotli is a generic-purpose lossless compression algorithm that
34 compresses data using a combination of a modern variant of the LZ77
35 algorithm, Huffman coding and 2nd order context modeling, with a
36 compression ratio comparable to the best currently available
37 general-purpose compression methods. It is similar in speed with
38 deflate but offers more dense compression.
40 The specification of the Brotli Compressed Data Format is defined in
41 the following Internet draft:
42 <http://www.ietf.org/id/draft-alakuijala-brotli>.
44 %description -l pl.UTF-8
45 Brotli to algorytm kompresji bezstratnej ogólnego przeznaczenia,
46 kompresujący dane przy użyciu kombinacji współczesnego wariantu
47 algorytmu LZ77, kodowania Huffmana oraz modelowania kontekstu 2.
48 rzędu, ze współczynnikami kompresji porównywalnymi do najlepszych
49 obecnie dostępnych metod kompresji ogólnego przeznaczenia. Szybkość
50 jest podobna do deflatingu, ale kompresja jest bardziej zwarta.
52 Specyfikacja formatu danych kompresji Brotli jest zdefiniowana w
53 następującym szkicu internetowym:
54 <http://www.ietf.org/id/draft-alakuijala-brotli>.
57 Summary: Brotli compression encoding/decoding libraries
58 Summary(pl.UTF-8): Biblioteki do kodowania/dekodowania kompresji Brotli
61 %description -n libbrotli
62 Brotli compression encoding/decoding libraries.
64 %description -n libbrotli -l pl.UTF-8
65 Biblioteki do kodowania/dekodowania kompresji Brotli.
67 %package -n libbrotli-devel
68 Summary: Header files for Brotli libraries
69 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Brotli
70 Group: Development/Libraries
71 Requires: libbrotli = %{version}-%{release}
72 Requires: libstdc++-devel >= 6:4.7
74 %description -n libbrotli-devel
75 Header files for Brotli libraries.
77 %description -n libbrotli-devel -l pl.UTF-8
78 Pliki nagłówkowe bibliotek Brotli.
80 %package -n libbrotli-static
81 Summary: Static Brotli libraries
82 Summary(pl.UTF-8): Statyczne biblioteki Brotli
83 Group: Development/Libraries
84 Requires: libbrotli-devel = %{version}-%{release}
86 %description -n libbrotli-static
87 Static Brotli libraries.
89 %description -n libbrotli-static -l pl.UTF-8
90 Statyczne biblioteki Brotli.
92 %package -n python-brotli
93 Summary: Python 2 module for Brotli compression decoding/encoding
94 Summary(pl.UTF-8): Moduł Pythona 2 do kodowania/dekodowania kompresji Brotli
95 Group: Libraries/Python
97 %description -n python-brotli
98 Python 2 module for Brotli compression decoding/encoding.
100 %description -n python-brotli -l pl.UTF-8
101 Moduł Pythona 2 do kodowania/dekodowania kompresji Brotli.
103 %package -n python3-brotli
104 Summary: Python 3 module for Brotli compression decoding/encoding
105 Summary(pl.UTF-8): Moduł Pythona 3 do kodowania/dekodowania kompresji Brotli
106 Group: Libraries/Python
108 %description -n python3-brotli
109 Python 3 module for Brotli compression decoding/encoding.
111 %description -n python3-brotli -l pl.UTF-8
112 Moduł Pythona 3 do kodowania/dekodowania kompresji Brotli.
117 ln -snf libbrotli-* libbrotli
118 rmdir libbrotli/brotli
119 ln -snf .. libbrotli/brotli
129 # use subdir so that tools build gets clean tree
133 --disable-silent-rules \
134 %{!?with_static_libs:--disable-static}
140 CFLAGS="%{rpmcflags}" \
141 CXXFLAGS="%{rpmcxxflags}" \
142 CPPFLAGS="%{rpmcppflags}" \
153 rm -rf $RPM_BUILD_ROOT
155 %{__make} -C libbrotli/build install \
156 DESTDIR=$RPM_BUILD_ROOT
158 install -D bin/bro $RPM_BUILD_ROOT%{_bindir}/bro
160 # obsoleted by pkg-config
161 %{__rm} $RPM_BUILD_ROOT%{_libdir}/libbrotli*.la
171 rm -rf $RPM_BUILD_ROOT
173 %post -p /sbin/ldconfig
174 %postun -p /sbin/ldconfig
177 %defattr(644,root,root,755)
178 %doc README.md docs/brotli-comparison-study-2015-09-22.pdf
179 %attr(755,root,root) %{_bindir}/bro
182 %defattr(644,root,root,755)
183 %attr(755,root,root) %{_libdir}/libbrotlidec.so.*.*.*
184 %attr(755,root,root) %ghost %{_libdir}/libbrotlidec.so.1
185 %attr(755,root,root) %{_libdir}/libbrotlienc.so.*.*.*
186 %attr(755,root,root) %ghost %{_libdir}/libbrotlienc.so.1
188 %files -n libbrotli-devel
189 %defattr(644,root,root,755)
190 %attr(755,root,root) %{_libdir}/libbrotlidec.so
191 %attr(755,root,root) %{_libdir}/libbrotlienc.so
192 %{_includedir}/brotli
193 %{_pkgconfigdir}/libbrotlidec.pc
194 %{_pkgconfigdir}/libbrotlienc.pc
196 %if %{with static_libs}
197 %files -n libbrotli-static
198 %defattr(644,root,root,755)
199 %{_libdir}/libbrotlidec.a
200 %{_libdir}/libbrotlienc.a
204 %files -n python-brotli
205 %defattr(644,root,root,755)
206 %attr(755,root,root) %{py_sitedir}/brotli.so
207 %{py_sitedir}/Brotli-0.5.2-py*.egg-info
211 %files -n python3-brotli
212 %defattr(644,root,root,755)
213 %attr(755,root,root) %{py3_sitedir}/brotli.cpython-*.so
214 %{py3_sitedir}/Brotli-0.5.2-py*.egg-info