SHA256
1
0
forked from pool/brotli
brotli/brotli.spec

178 lines
6.0 KiB
RPMSpec

#
# spec file for package brotli
#
# Copyright (c) 2017 Buschmann <buschmann23@opensuse.org>
#
# 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 http://bugs.opensuse.org/
#
%define _soname 1
Name: brotli
Version: 1.0.2
Release: 0
License: MIT
Summary: Lossless Compression Algorithm
Url: https://github.com/google/brotli
Group: Productivity/Archiving/Compression
Source0: https://github.com/google/brotli/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: cmake >= 2.8.6
BuildRequires: gcc-c++
BuildRequires: pkg-config
BuildRequires: gzip
%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%{_soname}
Summary: Common Library for Brotli Compression
Group: System/Libraries
%description -n libbrotlicommon%{_soname}
Common library for the Brotli general purpose lossless data compression algorithm.
%package -n libbrotlicommon-devel
Summary: Common Development Files and Headers for Brotli
Group: Development/Libraries/C and C++
Requires: libbrotlicommon%{_soname} = %{version}-%{release}
%description -n libbrotlicommon-devel
Common development and header files for the Brotli general purpose lossless data compression algorithm.
The specification of the Brotli Compressed Data Format is defined in RFC 7932.
%package -n libbrotlidec%{_soname}
Summary: Library for Brotli Decompression
Group: System/Libraries
%description -n libbrotlidec%{_soname}
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 libbrotlidec-devel
Summary: Development and Header Files for Brotli Decompression
Group: Development/Libraries/C and C++
Requires: libbrotlidec%{_soname} = %{version}-%{release}
%description -n libbrotlidec-devel
Development and header files for decompressing data compressed with the Brotli general purpose lossless
data compression algorithm.
The specification of the Brotli Compressed Data Format is defined in RFC 7932.
%package -n libbrotlienc%{_soname}
Summary: Library for Brotli Compression
Group: System/Libraries
%description -n libbrotlienc%{_soname}
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 libbrotlienc-devel
Summary: Development and Header Files for Brotli Compression
Group: Development/Libraries/C and C++
Requires: libbrotlienc%{_soname} = %{version}-%{release}
%description -n libbrotlienc-devel
Development and headers files for compressing data using the Brotli general purpose lossless data compression algorithm.
The specification of the Brotli Compressed Data Format is defined in RFC 7932.
%prep
%setup -q
%build
%cmake -DCMAKE_INSTALL_PREFIX:PATH="%{_prefix}" \
-DCMAKE_INSTALL_LIBDIR:PATH="%{_libdir}" \
-DBROTLI_DISABLE_TESTS:BOOL=off \
-DCMAKE_SKIP_RPATH:BOOL=off
make %{?_smp_mflags}
%install
%cmake_install
rm %{buildroot}%{_libdir}/libbrotli*-static.a
%if 0%{?suse_version} > 1315
for i in docs/{brotli.1,decode.h.3,encode.h.3,types.h.3}; do
install -D -t %{buildroot}%{_datadir}/man/man$(echo $i | sed 's:.*\.\([^\.]\)$:\1:') $i
done
%else
mkdir -p %{buildroot}%{_datadir}/man/man{1,3}
for i in docs/{brotli.1,decode.h.3,encode.h.3,types.h.3}; do
cp $i %{buildroot}%{_datadir}/man/man$(echo $i | sed 's:.*\.\([^\.]\)$:\1:')
done
%endif
%check
cd build
make test
%post -n libbrotlicommon%{_soname} -p /sbin/ldconfig
%postun -n libbrotlicommon%{_soname} -p /sbin/ldconfig
%post -n libbrotlidec%{_soname} -p /sbin/ldconfig
%postun -n libbrotlidec%{_soname} -p /sbin/ldconfig
%post -n libbrotlienc%{_soname} -p /sbin/ldconfig
%postun -n libbrotlienc%{_soname} -p /sbin/ldconfig
%files
%defattr(0644,root,root,755)
%doc LICENSE
%attr(755,root,root) /usr/bin/brotli
%{_mandir}/man1/brotli.1%{ext_man}
%files -n libbrotlicommon%{_soname}
%defattr(0644,root,root,755)
%{_libdir}/libbrotlicommon.so.*
%files -n libbrotlicommon-devel
%defattr(0644,root,root,755)
%{_libdir}/libbrotlicommon.so
%{_libdir}/pkgconfig/libbrotlicommon.pc
%dir %{_includedir}/brotli
%{_includedir}/brotli/port.h
%{_includedir}/brotli/types.h
%{_mandir}/man3/types.h.3%{ext_man}
%files -n libbrotlidec%{_soname}
%defattr(0644,root,root,755)
%{_libdir}/libbrotlidec.so.*
%files -n libbrotlidec-devel
%defattr(0644,root,root,755)
%{_libdir}/libbrotlidec.so
%{_libdir}/pkgconfig/libbrotlidec.pc
%{_includedir}/brotli/decode.h
%{_mandir}/man3/decode.h.3%{ext_man}
%files -n libbrotlienc%{_soname}
%defattr(0644,root,root,755)
%{_libdir}/libbrotlienc.so.*
%files -n libbrotlienc-devel
%defattr(0644,root,root,755)
%{_libdir}/libbrotlienc.so
%{_libdir}/pkgconfig/libbrotlienc.pc
%{_includedir}/brotli/encode.h
%{_mandir}/man3/encode.h.3%{ext_man}
%changelog