commit bc91015470b925642f6c729213701abfd5e4b306 Author: MSVSphere Packaging Team Date: Fri Oct 25 14:04:50 2024 +0300 import brotli-1.1.0-5.el10 diff --git a/.brotli.metadata b/.brotli.metadata new file mode 100644 index 0000000..ea0679e --- /dev/null +++ b/.brotli.metadata @@ -0,0 +1 @@ +2b048546afec020cf922f6af75058cc60fcf4fbf SOURCES/brotli-1.1.0.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b8d6881 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/brotli-1.1.0.tar.gz diff --git a/SOURCES/RHEL-32153-kBrotliBitMask-bounds.patch b/SOURCES/RHEL-32153-kBrotliBitMask-bounds.patch new file mode 100644 index 0000000..e42fcee --- /dev/null +++ b/SOURCES/RHEL-32153-kBrotliBitMask-bounds.patch @@ -0,0 +1,14 @@ +--- brotli-1.1.0/c/dec/bit_reader.h.RHEL-32153-kBrotliBitMask-bounds 2023-08-29 13:00:29.000000000 +0200 ++++ brotli-1.1.0/c/dec/bit_reader.h 2024-09-11 13:38:21.608972528 +0200 +@@ -32,8 +32,10 @@ static BROTLI_INLINE brotli_reg_t BitMas + /* Masking with this expression turns to a single + "Unsigned Bit Field Extract" UBFX instruction on ARM. */ + return ~(~((brotli_reg_t)0) << n); +- } else { ++ } else if (n < 33) { + return kBrotliBitMask[n]; ++ } else { ++ return 0; + } + } + diff --git a/SPECS/brotli.spec b/SPECS/brotli.spec new file mode 100644 index 0000000..4f488fc --- /dev/null +++ b/SPECS/brotli.spec @@ -0,0 +1,296 @@ +Name: brotli +Version: 1.1.0 +Release: 5%{?dist} +Summary: Lossless compression algorithm + +License: MIT +URL: https://github.com/google/brotli +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +Patch1: RHEL-32153-kBrotliBitMask-bounds.patch + +%if 0%{?rhel} == 7 +BuildRequires: devtoolset-7-toolchain, devtoolset-7-libatomic-devel +BuildRequires: cmake3 +%else +BuildRequires: cmake +%endif +BuildRequires: gcc +BuildRequires: gcc-c++ +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 -p1 +# 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 +%cmake3 \ + -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ + -DCMAKE_INSTALL_LIBDIR="%{_libdir}" +%cmake3_build +%else +%cmake \ + -DCMAKE_INSTALL_PREFIX="%{_prefix}" \ + -DCMAKE_INSTALL_LIBDIR="%{_libdir}" +%cmake_build +%endif +%py3_build + +%install +%if 0%{?rhel} == 7 +. /opt/rh/devtoolset-7/enable +%cmake3_install +%else +%cmake_install +%endif + +# I couldn't find the option to not build the static libraries +#rm "%{buildroot}%{_libdir}/"*.a + +%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 +%ctest3 +%else +%ctest +%endif + +%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-1.1.0-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/constants.h.3brotli* +%{_mandir}/man3/decode.h.3brotli* +%{_mandir}/man3/encode.h.3brotli* +%{_mandir}/man3/types.h.3brotli* + + +%changelog +* Wed Sep 11 2024 Eike Rathke - 1.1.0-5 +- Check BitMask(n) n value for kBrotliBitMask[n] bounds + +* Mon Jun 24 2024 Troy Dawson - 1.1.0-4 +- Bump release for June 2024 mass rebuild + +* Tue Jan 23 2024 Fedora Release Engineering - 1.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 1.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Sep 15 2023 Jonathan Wright - 1.1.0-1 +- Update to 1.1.1 rhbz#2233368 + +* Wed Jul 19 2023 Fedora Release Engineering - 1.0.9-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 1.0.9-12 +- Rebuilt for Python 3.12 + +* Wed Jan 18 2023 Fedora Release Engineering - 1.0.9-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Dec 03 2022 Jonathan Wright - 1.0.9-10 +- Fix EL7 builds + +* Wed Jul 20 2022 Fedora Release Engineering - 1.0.9-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 1.0.9-8 +- Rebuilt for Python 3.11 + +* Wed Jan 19 2022 Fedora Release Engineering - 1.0.9-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 1.0.9-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jun 03 2021 Python Maint - 1.0.9-5 +- Rebuilt for Python 3.10 + +* Tue Jan 26 2021 Fedora Release Engineering - 1.0.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Thu Oct 01 2020 Travis Kendrick - 1.0.9-3 +- Apparently %%autosetup calls %%patch on its own + +* Thu Oct 01 2020 Travis Kendrick - 1.0.9-2 +- Fix pc file (#1884364) + +* Wed Sep 30 2020 Travis Kendrick - 1.0.9-1 +- Update to 1.0.9 (#1872932) + +* Wed Aug 12 2020 Carl George - 1.0.7-14 +- Update cmake invocation rhbz#1863298 + +* Sat Aug 01 2020 Fedora Release Engineering - 1.0.7-13 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 1.0.7-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat May 23 2020 Miro Hrončok - 1.0.7-11 +- Rebuilt for Python 3.9 + +* 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