diff --git a/protobuf.spec b/protobuf.spec index c22ccab77826c05cfd4b1d651b01d3fc5850b572..d9310293d73c909bc7d254c423cc2d5ba2209413 100644 --- a/protobuf.spec +++ b/protobuf.spec @@ -1,4 +1,4 @@ -%define anolis_release 6 +%define anolis_release 1 %define googletest_ver 5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081 %bcond_without python %bcond_with java @@ -8,7 +8,7 @@ %global gtest_dir googletest-%{gtest_commit} Name: protobuf -Version: 3.19.6 +Version: 3.25.0 Release: %{anolis_release}%{?dist} Summary: Protocol Buffers - Google's data interchange format @@ -27,11 +27,9 @@ Source3: %{gtest_url}/archive/%{gtest_commit}/%{gtest_dir}.tar.gz Source4: protoc.1 Patch3: protobuf-3.19.4-jre17-add-opens.patch -BuildRequires: libtool -BuildRequires: pkgconfig -BuildRequires: zlib-devel -BuildRequires: emacs emacs-common -BuildRequires: make autoconf automake gcc-c++ + +BuildRequires: gcc-c++ cmake ninja-build pkgconfig +BuildRequires: emacs zlib-devel gmock-devel gtest-devel abseil-cpp-devel jsoncpp-devel %description Protobuf, short for Protocol Buffers, is a data serialization protocol. It was @@ -87,13 +85,6 @@ Requires: %{name} = %{version}-%{release} This package contains Protocol Buffers compiler for all programming languages -%package static -Summary: Static development files for %{name} -Requires: %{name}-devel = %{version}-%{release} - -%description static -Static libraries for Protocol Buffers - %package lite Summary: Protocol Buffers LITE_RUNTIME libraries @@ -104,18 +95,6 @@ The "optimize_for = LITE_RUNTIME" option causes the compiler to generate code which only depends libprotobuf-lite, which is much smaller than libprotobuf but lacks descriptors, reflection, and some other features. -%package lite-static -Summary: Static development files for %{name}-lite -Requires: %{name}-devel = %{version}-%{release} - -%description lite-static -This package contains static development libraries built with -optimize_for = LITE_RUNTIME. - -The "optimize_for = LITE_RUNTIME" option causes the compiler to generate code -which only depends libprotobuf-lite, which is much smaller than libprotobuf but -lacks descriptors, reflection, and some other features. - %package lite-devel Summary: Protocol Buffers LITE_RUNTIME development libraries Requires: %{name}-devel = %{version}-%{release} @@ -284,18 +263,22 @@ rm -f src/solaris/libstdc++.la iconv -f iso8859-1 -t utf-8 CONTRIBUTORS.txt > CONTRIBUTORS.txt.utf8 mv CONTRIBUTORS.txt.utf8 CONTRIBUTORS.txt export PTHREAD_LIBS="-lpthread" -./autogen.sh -%configure +%cmake \ + -Dprotobuf_BUILD_TESTS=OFF \ + -Dprotobuf_ABSL_PROVIDER:STRING="package" \ + -DABSL_BUILD_TESTING=OFF \ + -DABSL_USE_GOOGLETEST_HEAD=OFF \ + -DABSL_PROPAGATE_CXX_STD=ON \ + -DCMAKE_CXX_STANDARD=17 . -# -Wno-error=type-limits: -# https://github.com/protocolbuffers/protobuf/issues/7514 -# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95148 -# (also set in %%check) -%make_build CXXFLAGS="%{build_cxxflags} -Wno-error=type-limits" +%cmake_build %if %{with python} pushd python -%py3_build +PROTOC="../%{_vpath_builddir}/protoc" \ +CXXFLAGS="%{build_cxxflags}" \ +LDFLAGS="-L../%{_vpath_builddir} -L../%{_vpath_builddir}/third_party/utf8_range %{build_ldflags}" \ +%py3_build %{?with_python_cpp:-- --cpp_implementation} popd %endif @@ -308,7 +291,7 @@ popd %{_emacs_bytecompile} editors/protobuf-mode.el %install -%make_install STRIPBINARIES=no INSTALL="%{__install} -p" CPPROG="cp -p" +%cmake_install # protoc.1 man page install -p -m 0644 -D -t '%{buildroot}%{_mandir}/man1' %{SOURCE4} @@ -338,13 +321,14 @@ install -m 0644 -p %{SOURCE2} %{buildroot}%{_emacs_sitestartdir} %check fail=1 -%make_build check CXXFLAGS="%{build_cxxflags} -Wno-error=type-limits" || exit $fail +%ctest %files %dir %{abidir} -%{_libdir}/libprotobuf.so.30* +%{_libdir}/libprotobuf.so.* +%{_bindir}/protoc-* +%{abidir}/protoc-*-option.list %{abidir}/libprotobuf.dump -%{abidir}/protoc-option.list %license LICENSE %files compiler @@ -352,7 +336,7 @@ fail=1 %license LICENSE %{_bindir}/protoc %{_mandir}/man1/protoc.1* -%{_libdir}/libprotoc.so.30* +%{_libdir}/libprotoc.so.* %{abidir}/libprotoc.dump %files devel @@ -360,36 +344,37 @@ fail=1 %{_libdir}/libprotobuf.so %dir %{_includedir}/google %{_includedir}/google/protobuf/ +%{_includedir}/utf8_*.h +%{_libdir}/cmake/protobuf/ +%{_libdir}/cmake/utf8_range/ +%{_libdir}/pkgconfig/protobuf.pc +%{_libdir}/pkgconfig/protobuf-lite.pc +%{_libdir}/pkgconfig/utf8_range.pc %{_libdir}/pkgconfig/protobuf.pc -%doc examples/add_person.cc examples/addressbook.proto +%{_libdir}/libutf8_*.a +%doc examples/add_person.cc examples/addressbook.proto %doc examples/list_people.cc examples/Makefile examples/README.md +%{_includedir}/java/core/src/main/java/com/google/protobuf/java_features.proto %files emacs %{_emacs_sitelispdir}/%{name}/ %{_emacs_sitestartdir}/protobuf-init.el -%files static -%{_libdir}/libprotoc.a -%{_libdir}/libprotobuf.a - %files lite -%{_libdir}/libprotobuf-lite.so.30* +%{_libdir}/libprotobuf-lite.so.* %{abidir}/libprotobuf-lite.dump %files lite-devel %{_libdir}/libprotobuf-lite.so %{_libdir}/pkgconfig/protobuf-lite.pc -%files lite-static -%{_libdir}/libprotobuf-lite.a - %if %{with python} %files -n python3-protobuf %doc python/README.md %dir %{python3_sitelib}/google %{python3_sitelib}/google/protobuf/ -%{python3_sitelib}/protobuf-%{version}%{?rcver}-py3.*.egg-info/ -%{python3_sitelib}/protobuf-%{version}%{?rcver}-py3.*-nspkg.pth +%{python3_sitelib}/protobuf-*-py3.*.egg-info/ +%{python3_sitelib}/protobuf-*-py3.*-nspkg.pth %doc examples/add_person.py examples/list_people.py examples/addressbook.proto %endif @@ -419,9 +404,12 @@ fail=1 %endif %files doc -%doc CHANGES.txt CONTRIBUTORS.txt README.md +%doc CONTRIBUTORS.txt README.md %changelog +* Fri Sep 06 2024 mgb01105731 - 3.25.0-1 +- update to 3.25.0 to fix CVE-2024-2410 + * Wed Mar 13 2024 Zhao Hang - 3.19.6-6 - Rebuild with python3.11 diff --git a/v3.19.6.tar.gz b/v3.25.0.tar.gz similarity index 41% rename from v3.19.6.tar.gz rename to v3.25.0.tar.gz index 9ed632b2bd5e471942e19a14afcafe693f0e5907..8d65346cef3584fe539aebeee92def734a56885d 100644 Binary files a/v3.19.6.tar.gz and b/v3.25.0.tar.gz differ