Projects
Mega:24.03:SP1:Everything
protobuf
_service:tar_scm:protobuf.spec
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:protobuf.spec of Package protobuf
#needsrootforbuild # Build -python subpackage %bcond_without python # Build -java subpackage %bcond_without java Summary: Protocol Buffers - Google's data interchange format Name: protobuf Version: 25.1 Release: 4 License: BSD URL: https://github.com/protocolbuffers/protobuf Source: https://github.com/protocolbuffers/protobuf/releases/download/v%{version}%{?rcver}/%{name}-all-%{version}%{?rcver}.tar.gz Source1: protobuf-init.el %global so_version 25.1 Patch9000: 0001-add-secure-compile-option.patch Patch9001: 0002-Fix-CC-compiler-support.patch Patch9002: 0003-backport-CVE-2024-7254-1.patch Patch9003: 0003-backport-CVE-2024-7254-2.patch BuildRequires: cmake gcc-c++ emacs zlib-devel gmock-devel gtest-devel jsoncpp-devel BuildRequires: fdupes pkgconfig python-rpm-macros pkgconfig(zlib) ninja-build BuildRequires: abseil-cpp-devel >= 20230802 %description Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data. You can find protobuf's documentation on the Google Developers site. %package compiler Summary: Protocol Buffers compiler Requires: %{name} = %{version}-%{release} Obsoletes: protobuf-emacs < %{version} Obsoletes: protobuf-emacs-el < %{version} Obsoletes: protobuf2-compiler Requires: emacs-filesystem >= %{_emacs_version} %description compiler This package containers Protocol Buffers compiler for all programming languages. %package devel Summary: Protocol Buffers C++ headers and libraries Requires: %{name} = %{version}-%{release} Requires: %{name}-compiler = %{version}-%{release} Requires: zlib-devel pkgconfig vim-enhanced Requires: abseil-cpp-devel >= 20230802 Provides: %{name}-static Provides: %{name}-vim Obsoletes: %{name}-static < %{version} Obsoletes: %{name}-vim < %{version} Obsoletes: protobuf2-devel Obsoletes: protobuf2-vim Obsoletes: protobuf2-static %description devel This package contains Protocol Buffers compiler for all languages and C++ headers and libraries %package lite Summary: Protocol Buffers LITE_RUNTIME libraries %description lite Protocol Buffers 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} Requires: %{name}-lite = %{version}-%{release} Provides: %{name}-lite-static Obsoletes: %{name}-lite-static < %{version} Obsoletes: protobuf2-lite-devel Obsoletes: protobuf2-lite-static %description lite-devel This package contains 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. %if %{with python} %package -n python%{python3_pkgversion}-%{name} Summary: Python 3 bindings for Google Protocol Buffers BuildArch: noarch BuildRequires: python%{python3_pkgversion}-devel BuildRequires: python%{python3_pkgversion}-setuptools BuildRequires: python%{python3_pkgversion}-wheel Requires: python%{python3_pkgversion}-six >= 1.9 Conflicts: %{name}-compiler > %{version}-%{release} Conflicts: %{name}-compiler < %{version}-%{release} Provides: %{name}-python3 = %{version}-%{release} %{?python_provide:%python_provide python%{python3_pkgversion}-%{name}} %description -n python%{python3_pkgversion}-%{name} This package contains Python 3 libraries for Google Protocol Buffers %endif %if %{with java} %package java Summary: Java Protocol Buffers runtime library BuildArch: noarch BuildRequires: java-devel >= 1.6 BuildRequires: jpackage-utils BuildRequires: maven-local BuildRequires: mvn(com.google.code.gson:gson) BuildRequires: mvn(com.google.guava:guava) BuildRequires: mvn(junit:junit) BuildRequires: mvn(org.easymock:easymock) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) BuildRequires: maven-compiler-plugin BuildRequires: maven-install-plugin BuildRequires: maven-jar-plugin BuildRequires: maven-javadoc-plugin BuildRequires: maven-release-plugin BuildRequires: maven-resources-plugin BuildRequires: maven-surefire-plugin BuildRequires: maven-antrun-plugin Obsoletes: %{name}-javanano < 3.6.0 %description java This package contains Java Protocol Buffers runtime library. %package javalite Summary: Java Protocol Buffers lite runtime library BuildArch: noarch %description javalite This package contains Java Protocol Buffers lite runtime library. %package java-util Summary: Utilities for Protocol Buffers BuildArch: noarch %description java-util Utilities to work with protos. It contains JSON support as well as utilities to work with proto3 well-known types. %package javadoc Summary: Javadoc for %{name}-java BuildArch: noarch %description javadoc This package contains the API documentation for %{name}-java. %package parent Summary: Protocol Buffer Parent POM BuildArch: noarch %description parent Protocol Buffer Parent POM. %package bom Summary: Protocol Buffer BOM POM BuildArch: noarch %description bom Protocol Buffer BOM POM. %endif %prep %setup -q -n %{name}-%{version}%{?rcver} %autopatch -p1 find -name \*.cc -o -name \*.h | xargs chmod -x chmod 644 examples/* %if %{with java} #%pom_remove_dep com.google.truth:truth java/pom.xml #%pom_remove_dep org.easymock:easymockclassextension java/pom.xml java/*/pom.xml #%pom_remove_dep org.easymock:easymockclassextension java/pom.xml java/core/pom.xml java/lite/pom.xml java/util/pom.xml %pom_remove_dep com.google.truth:truth java/pom.xml java/util/pom.xml java/lite/pom.xml java/core/pom.xml %pom_remove_dep com.google.errorprone:error_prone_annotations java/util/pom.xml %pom_remove_dep com.google.guava:guava-testlib java/pom.xml java/util/pom.xml %pom_remove_dep com.google.j2objc:j2objc-annotations java/util/pom.xml %pom_remove_plugin org.codehaus.mojo:animal-sniffer-maven-plugin java/pom.xml java/util/pom.xml %pom_remove_dep org.mockito:mockito-core java/pom.xml java/core/pom.xml java/lite/pom.xml java/util/pom.xml # These use easymockclassextension rm java/core/src/test/java/com/google/protobuf/ServiceTest.java #rm -r java/core/src/test # These use truth or error_prone_annotations or guava-testlib rm java/core/src/test/java/com/google/protobuf/LiteralByteStringTest.java rm java/core/src/test/java/com/google/protobuf/BoundedByteStringTest.java rm java/core/src/test/java/com/google/protobuf/RopeByteStringTest.java rm java/core/src/test/java/com/google/protobuf/RopeByteStringSubstringTest.java rm java/core/src/test/java/com/google/protobuf/TextFormatTest.java rm java/core/src/test/java/com/google/protobuf/UnknownFieldSetTest.java rm java/core/src/test/java/com/google/protobuf/UnknownFieldSetPerformanceTest.java rm -r java/util/src/test/java/com/google/protobuf/util rm -r java/util/src/main/java/com/google/protobuf/util # Make OSGi dependency on sun.misc package optional %pom_xpath_inject "pom:configuration/pom:instructions" "<Import-Package>sun.misc;resolution:=optional,*</Import-Package>" java/core # Backward compatibility symlink %mvn_file :protobuf-java:jar: %{name}/%{name}-java %{name} # This test is incredibly slow on arm # https://github.com/protocolbuffers/protobuf/issues/2389 %ifarch %{arm} mv java/core/src/test/java/com/google/protobuf/IsValidUtf8Test.java \ java/core/src/test/java/com/google/protobuf/IsValidUtf8Test.java.slow mv java/core/src/test/java/com/google/protobuf/DecodeUtf8Test.java \ java/core/src/test/java/com/google/protobuf/DecodeUtf8Test.java.slow %endif %endif rm -f src/solaris/libstdc++.la mkdir build pushd build %cmake \ -Dprotobuf_BUILD_EXAMPLES:BOOL=OFF \ -Dprotobuf_BUILD_LIBPROTOC:BOOL=ON \ -Dprotobuf_BUILD_SHARED_LIBS:BOOL=ON \ -Dprotobuf_USE_EXTERNAL_GTEST:BOOL=ON \ -Dprotobuf_ABSL_PROVIDER=package \ -Dprotobuf_BUILD_TESTS:BOOL=OFF \ -DCMAKE_EXE_LINKER_FLAGS=-Wl,--as-needed \ -DCMAKE_MODULE_LINKER_FLAGS=-Wl,--as-needed \ -DCMAKE_SHARED_LINKER_FLAGS=-Wl,--as-needed \ -DCMAKE_CXX_FLAGS="-g -O2" \ -DCMAKE_C_COMPILER=%{__cc} \ -DCMAKE_CXX_COMPILER=%{__cxx} \ -DCMAKE_SKIP_RPATH=TRUE \ -G Ninja \ ../ popd mkdir build-static pushd build-static export CMAKE_BUILD_DIR=build-static %cmake \ -Dprotobuf_BUILD_EXAMPLES:BOOL=OFF \ -Dprotobuf_BUILD_LIBPROTOC:BOOL=ON \ -Dprotobuf_BUILD_SHARED_LIBS:BOOL=OFF \ -Dprotobuf_USE_EXTERNAL_GTEST:BOOL=ON \ -Dprotobuf_ABSL_PROVIDER=package \ -Dprotobuf_BUILD_TESTS:BOOL=OFF \ -DCMAKE_CXX_FLAGS="-fPIC" \ -DCMAKE_C_COMPILER=%{__cc} \ -DCMAKE_CXX_COMPILER=%{__cxx} \ -DCMAKE_SKIP_RPATH=TRUE \ -G Ninja \ ../ popd %build %ninja_build -C build %ninja_build -C build-static # we have to override LD_LIBRARY_PATH because we eliminated rpath export LD_LIBRARY_PATH="${PWD}/build":$LD_LIBRARY_PATH %if %{with python} # Use the just built protoc instead of any # system version for python and/or java bindings export PROTOC=../build/protoc pushd python CXXFLAGS="%{build_cxxflags}" \ LDFLAGS="-L../%{_vpath_builddir} -L../%{_vpath_builddir}/third_party/utf8_range %{build_ldflags}" \ %py3_build popd %endif %if %{with java} cp build/protoc ./ %pom_disable_module kotlin java/pom.xml %pom_disable_module kotlin-lite java/pom.xml %mvn_build -s -- -Dmaven.test.skip=true -f java/pom.xml %endif %{_emacs_bytecompile} editors/protobuf-mode.el %check # Java tests fail on s390x %ifarch s390x fail=0 %else fail=1 %endif %install %ninja_install -C build-static %ninja_install -C build %if %{with python} pushd python CXXFLAGS="%{build_cxxflags}" \ LDFLAGS="-L../%{_vpath_builddir} -L../%{_vpath_builddir}/third_party/utf8_range %{build_ldflags}" \ #python ./setup.py install --root=%{buildroot} --single-version-externally-managed --record=INSTALLED_FILES --optimize=1 %py3_install find %{buildroot}%{python3_sitelib} -name \*.py | xargs sed -i -e '1{\@^#!@d}' popd %endif install -p -m 644 -D editors/proto.vim %{buildroot}%{_datadir}/vim/vimfiles/syntax/proto.vim %if %{with java} %mvn_install %endif mkdir -p %{buildroot}%{_emacs_sitelispdir}/%{name} install -p -m 0644 editors/protobuf-mode.el %{buildroot}%{_emacs_sitelispdir}/%{name} install -p -m 0644 editors/protobuf-mode.elc %{buildroot}%{_emacs_sitelispdir}/%{name} mkdir -p %{buildroot}%{_emacs_sitestartdir} install -p -m 0644 %{SOURCE1} %{buildroot}%{_emacs_sitestartdir} %ldconfig_scriptlets %ldconfig_scriptlets lite %ldconfig_scriptlets compiler %files %doc CONTRIBUTORS.txt README.md %license LICENSE %{_libdir}/libprotobuf.so.%{so_version}{,.*} %files compiler %{_bindir}/protoc* %{_libdir}/libprotoc.so.%{so_version}{,.*} %{_emacs_sitelispdir}/%{name}/ %{_emacs_sitestartdir}/protobuf-init.el %license LICENSE %doc README.md %files devel %doc CONTRIBUTORS.txt README.md %{_bindir}/protoc* %{_includedir}/google %{_includedir}/*.h %{_libdir}/cmake/protobuf %{_libdir}/cmake/utf8_range %{_libdir}/pkgconfig/* %{_libdir}/libprotobuf-lite.so %{_libdir}/libprotobuf.so %{_libdir}/libprotoc.so %{_libdir}/libutf8_range.a %{_libdir}/libutf8_validity.a %{_libdir}/libprotobuf.a %{_libdir}/libprotoc.a %{_datadir}/vim %{_includedir}/java/core/src/main/java/com/google/protobuf/java_features.proto %files lite %{_libdir}/libprotobuf-lite.so.%{so_version}{,.*} %files lite-devel %{_libdir}/libprotobuf-lite.so %{_libdir}/pkgconfig/protobuf-lite.pc %{_libdir}/libprotobuf-lite.a %if %{with python} %files -n python%{python3_pkgversion}-protobuf %dir %{python3_sitelib}/google %{python3_sitelib}/google/protobuf/ %{python3_sitelib}/%{name}-*-py3.*.egg-info/ %{python3_sitelib}/%{name}-*-py3.*-nspkg.pth %doc python/README.md %doc examples/add_person.py examples/list_people.py examples/addressbook.proto %endif %if %{with java} %files java -f .mfiles-protobuf-java %doc examples/AddPerson.java examples/ListPeople.java %doc java/README.md %license LICENSE %{_includedir}/java/core/src/main/java/com/google/protobuf/java_features.proto %files java-util -f .mfiles-protobuf-java-util %files javadoc -f .mfiles-javadoc %license LICENSE %files parent -f .mfiles-protobuf-parent %license LICENSE %files bom -f .mfiles-protobuf-bom %license LICENSE %files javalite -f .mfiles-protobuf-javalite %license LICENSE %endif %changelog * Thu Sep 19 2024 zhangxianting <zhangxianting@uniontech.com> - 25.1-4 - Type:bugfix - ID:NA - SUG:NA - DESC: fix CVE-2024-7254 * Tue Apr 09 2024 zhongtao <zhongtao17@huawei.com> - 25.1-3 - Type:bugfix - ID:NA - SUG:NA - DESC: add secure complie option and code improve * Wed Mar 20 2024 wangqiang <wangqiang1@kylinos.cn> - 25.1-2 - Support package build with clang * Wed Jan 10 2024 zhongtao <zhongtao17@huawei.com> - 25.1-1 - Type:upgrade - ID:NA - SUG:NA - DESC: update to 25.1 * Wed Dec 06 2023 konglidong <konglidong@uniontech.com> - 3.19.6-2 - Type:enhancement - ID:NA - SUG:NA - DESC: obsolets protobuf2 for fix install conflict * Mon Jul 17 2023 zhongtao <zhongtao17@huawei.com> - 3.19.6-1 - Type:upgrade - ID:NA - SUG:NA - DESC: update to 3.19.6 * Tue Oct 18 2022 chengzeruizhi <chengzeruizhi@huawei.com> - 3.14.0-6 - Type:bugfix - ID:NA - SUG:NA - DESC: fix CVE-2022-3171 * Tue Oct 11 2022 chengzeruizhi <chengzeruizhi@huawei.com> - 3.14.0-5 - Type:bugfix - ID:NA - SUG:NA - DESC: fix CVE-2022-1941 * Wed Apr 27 2022 wangxiaochao <wangxiaochao2@huawei.com> - 3.14.0-4 - Type:bugfix - ID:NA - SUG:NA - DESC: Improve performance of parsing unknown fields in Java * Fri Mar 18 2022 wangxiaochao <wangxiaochao2@huawei.com> - 3.14.0-3 - Type:bugfix - ID:NA - SUG:NA - DESC: fix CVE-2021-22570 * Thu Mar 10 2022 wangxiaochao <wangxiaochao2@huawei.com> - 3.14.0-2 - Type:bugfix - ID:NA - SUG:NA - DESC: fix mainline compile failed * Fri Jul 30 2021 liyanan <liyanan32@huawei.com> - 3.14.0-1 - update to 3.14.0 * Mon Apr 26 2021 haozi007 <liuhao27@huawei.com> - 3.12.3-16 - Type:enhancement - ID:NA - SUG:NA - DESC: split compiler from devel * Sat Feb 20 2021 haozi007 <liuhao27@huawei.com> - 3.12.3-15 - Type:enhancement - ID:NA - SUG:NA - DESC: add fstack check * Tue Sep 1 2020 wutao <wutao61@huawei.com> - 3.12.3-14 - Type:enhancement - ID:NA - SUG:NA - DESC: enhance java function and fix build errors * Sat Aug 29 2020 openEuler Buildteam <buildteam@openeuler.org> - 3.12.3-13 - Type:bugfix - ID:NA - SUG:NA - DESC: remove Conflicts * Fri Aug 28 2020 openEuler Buildteam <buildteam@openeuler.org> - 3.12.3-12 - Type:bugfix - ID:NA - SUG:NA - DESC: invalid version of Conflicts * Thu Jul 23 2020 openEuler Buildteam <buildteam@openeuler.org> - 3.12.3-11 - Type:enhancement - ID:NA - SUG:NA - DESC: drop python2-protobuf and refactor .spec file * Thu Jul 16 2020 openEuler Buildteam <buildteam@openeuler.org> - 3.12.3-10 - Type:bugfix - ID:NA - SUG:NA - DESC:upgrade from 3.9.0 to 3.12.3 * Wed Apr 08 2020 openEuler Buildteam <buildteam@openeuler.org> - 3.9.0-9 - Type:enhancement - ID:NA - SUG:NA - DESC: remove unnecessary files * Thu Dec 12 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.9.0-8.h3 - Type:bugfix - ID:NA - SUG:NA - DESC:add bind now secure compile option * Wed Nov 27 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.9.0-8.h2 - Type:enhancement - ID:NA - SUG:NA - DESC:compatible to centos 7.5 * Tue Nov 26 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.9.0-8.h1 - Type:bugfix - ID:NA - SUG:NA - DESC:upgrade from 3.5.0 to 3.9.0 * Fri Nov 01 2019 openEuler Buildteam <buildteam@openeuler.org> - 3.5.0-8.h1 - Type:bugfix - ID:NA - SUG:NA - DESC:change patch's names according to new rules
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2