commit:     1d80ee7e93a4286890e7845064139b205b39c93c
Author:     Paul Zander <negril.nx+gentoo <AT> gmail <DOT> com>
AuthorDate: Thu Mar  6 11:37:49 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Apr  5 00:39:50 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1d80ee7e

dev-libs/protobuf: add 30.2

Closes: https://bugs.gentoo.org/943218
Signed-off-by: Paul Zander <negril.nx+gentoo <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-libs/protobuf/Manifest                         |  1 +
 .../protobuf/files/protobuf-30.0-findJsonCpp.patch | 44 +++++++++++++++++++++
 .../{protobuf-9999.ebuild => protobuf-30.2.ebuild} | 46 ++++++++++------------
 dev-libs/protobuf/protobuf-9999.ebuild             | 46 ++++++++++------------
 4 files changed, 87 insertions(+), 50 deletions(-)

diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest
index 7f7a526e4496..3275bd5760a8 100644
--- a/dev-libs/protobuf/Manifest
+++ b/dev-libs/protobuf/Manifest
@@ -16,3 +16,4 @@ DIST protobuf-28.0.tar.gz 9259114 BLAKE2B 
328e09ebffb296d838557ea72a4fc4da8e0ad5
 DIST protobuf-28.3.tar.gz 9256608 BLAKE2B 
05162124676abe18300481e9f985fd2cfb09b052d06670a993e79ef02f3daf0d5380b521977ebc2362d4094486151ea285fe1c98a1d2f3799b18a1fa422fdc13
 SHA512 
a91e175fed7eb01c4240842a5af73a7d3cefccbb10885434bceeb7bc89ab6c56a74912cee290bf46e81d4026f3c9c2b10faad5545816064e215c4bae7908263d
 DIST protobuf-29.2.tar.gz 9348408 BLAKE2B 
847798474bc6a76b9badfdbf605e118dece5e321e81242d7fa1bf5f5d17ee05a3d365ec112dc6d861cade97efff8be1d5d04006a5144f613bdb3ff5eacc63b99
 SHA512 
aeb21773edc3dd92a6c1ba6ccd721cc8a20d61230a5309c75ee3ef19baa554c228a6d1095f191ccc18f10183b646f3140dfe6526f5812bcaa64b7d5260572643
 DIST protobuf-29.4.tar.gz 9350942 BLAKE2B 
fd3b81905e26db2ec3b54eaf30cf250db2894f91d5da73130106f6778f4e2f13b690961eecb8f5b8c23ac72428753611cd9bf719da986083e09ab32160e25314
 SHA512 
c888cb9961d58b7fb11a3363ff4d2684605cdd79756712f407ffe5f275569bf69b4370f1d2a0e20775646745cddd41a9b510f1c1981be4e969c9acf0dc2ba734
+DIST protobuf-30.2.tar.gz 9506934 BLAKE2B 
3a7d6bfa38500b16b1ce52b244fd9448fe7be2933a77224a1423a67e3ae3155846c0974ee1b6c579f6050f60b7784ace21b149b3cbdff2ef1e6bf954acbb1b51
 SHA512 
555d1b18d175eeaf17f3879f124d33080f490367840d35b34bfc4e4a5b383bf6a1d09f1570acb6af9c53ac4940a14572d46423b6e3dd0c712e7802c986fb6be6

diff --git a/dev-libs/protobuf/files/protobuf-30.0-findJsonCpp.patch 
b/dev-libs/protobuf/files/protobuf-30.0-findJsonCpp.patch
new file mode 100644
index 000000000000..9848a6101349
--- /dev/null
+++ b/dev-libs/protobuf/files/protobuf-30.0-findJsonCpp.patch
@@ -0,0 +1,44 @@
+From 2fe6cac5797bead74c473c795fdc5f9d50703894 Mon Sep 17 00:00:00 2001
+From: Paul Zander <[email protected]>
+Date: Thu, 6 Mar 2025 13:19:01 +0100
+Subject: [PATCH] fix JsonCPP name
+
+Signed-off-by: Paul Zander <[email protected]>
+
+diff --git a/cmake/conformance.cmake b/cmake/conformance.cmake
+index 7377841..dba05aa 100644
+--- a/cmake/conformance.cmake
++++ b/cmake/conformance.cmake
+@@ -1,9 +1,9 @@
+ # Don't run jsoncpp tests.
+ set(JSONCPP_WITH_TESTS OFF)
+ 
+-if (NOT TARGET jsoncpp_lib)
++if (NOT TARGET JsonCpp::JsonCpp)
+   if (NOT protobuf_FORCE_FETCH_DEPENDENCIES)
+-    find_package(jsoncpp)
++    find_package(JsonCpp)
+   endif()
+ 
+   # Fallback to fetching Googletest from github if it's not found locally.
+@@ -21,7 +21,7 @@ if (NOT TARGET jsoncpp_lib)
+   endif()
+ endif()
+ 
+-if (NOT TARGET jsoncpp_lib)
++if (NOT TARGET JsonCpp::JsonCpp)
+   message(FATAL_ERROR
+           "Cannot find jsoncpp dependency that's needed to build conformance 
tests.\n"
+           "If instead you want to skip these tests, run cmake with:\n"
+@@ -151,7 +151,7 @@ add_test(NAME conformance_cpp_test
+ set(JSONCPP_WITH_TESTS OFF CACHE BOOL "Disable tests")
+ 
+ if(BUILD_SHARED_LIBS)
+-  target_link_libraries(conformance_test_runner jsoncpp_lib)
++  target_link_libraries(conformance_test_runner JsonCpp::JsonCpp)
+ else()
+   target_link_libraries(conformance_test_runner jsoncpp_static)
+ endif()
+-- 
+2.48.1
+

diff --git a/dev-libs/protobuf/protobuf-9999.ebuild 
b/dev-libs/protobuf/protobuf-30.2.ebuild
similarity index 77%
copy from dev-libs/protobuf/protobuf-9999.ebuild
copy to dev-libs/protobuf/protobuf-30.2.ebuild
index 42712e4699f4..b100f58a75c6 100644
--- a/dev-libs/protobuf/protobuf-9999.ebuild
+++ b/dev-libs/protobuf/protobuf-30.2.ebuild
@@ -5,11 +5,8 @@ EAPI=8
 
 inherit cmake-multilib elisp-common multilib
 
-# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules
-ABSEIL_BRANCH="lts_2023_08_02"
-
-ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}"
-ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}"
+# NOTE from 
https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake
+ABSEIL_MIN_VER="20250127.0"
 
 if [[ "${PV}" == *9999 ]]; then
        EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git";
@@ -19,7 +16,7 @@ if [[ "${PV}" == *9999 ]]; then
        inherit git-r3
 else
        
SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz";
-       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc64 ~riscv 
~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
        SLOT="0/$(ver_cut 1-2).0"
 fi
 
@@ -32,10 +29,10 @@ IUSE="conformance debug emacs examples +libprotoc libupb 
+protobuf +protoc test
 # Require protobuf for the time being
 REQUIRED_USE="
        protobuf
-       examples? ( protobuf protoc )
+       protobuf? ( protoc )
+       examples? ( protobuf )
        libprotoc? ( protobuf )
-       libupb? (       protobuf )
-       protoc? ( protobuf )
+       libupb? ( protobuf )
 "
 
 RESTRICT="!test? ( test )"
@@ -52,7 +49,7 @@ COMMON_DEPEND="
 DEPEND="
        ${COMMON_DEPEND}
        conformance? ( dev-libs/jsoncpp[${MULTILIB_USEDEP}] )
-       test? ( >=dev-cpp/gtest-1.11[${MULTILIB_USEDEP}] )
+       test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
 "
 RDEPEND="
        ${COMMON_DEPEND}
@@ -61,8 +58,8 @@ RDEPEND="
 
 PATCHES=(
        "${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
-       "${FILESDIR}/${PN}-27.4-findJsonCpp.patch"
        "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch"
+       "${FILESDIR}/${PN}-30.0-findJsonCpp.patch"
 )
 
 DOCS=( CONTRIBUTORS.txt README.md )
@@ -75,9 +72,6 @@ src_prepare() {
 
 multilib_src_configure() {
        local mycmakeargs=(
-               -Dprotobuf_ABSL_PROVIDER="package"
-               -Dprotobuf_JSONCPP_PROVIDER="package"
-
                -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex 
conformance)")"
                -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)"
                -Dprotobuf_BUILD_LIBUPB="$(usex libupb)"
@@ -94,6 +88,9 @@ multilib_src_configure() {
                -Dprotobuf_WITH_ZLIB="$(usex zlib)"
                -Dprotobuf_VERBOSE="$(usex debug)"
                -DCMAKE_MODULE_PATH="${S}/cmake"
+
+               -Dprotobuf_LOCAL_DEPENDENCIES_ONLY="yes"
+               # -Dprotobuf_FORCE_FETCH_DEPENDENCIES="no"
        )
        if use protobuf ; then
                if use examples ; then
@@ -104,8 +101,6 @@ multilib_src_configure() {
                fi
        fi
 
-       use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" )
-
        cmake_src_configure
 }
 
@@ -120,18 +115,19 @@ src_compile() {
 src_test() {
        local -x srcdir="${S}/src"
 
-       local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}"
-       mkdir -m 777 "${TEST_TMPDIR}" || die
+       # we override here to inject env vars
+       multilib_src_test() {
+               local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}"
+               mkdir -p -m 770 "${TEST_TMPDIR}" || die
 
-       setup_test_env() {
-               ln -sr "${S}/src" "${BUILD_DIR}/include" || die
-       }
+               ln -srf "${S}/src" "${BUILD_DIR}/include" || die
 
-       multilib_foreach_abi setup_test_env
+               cmake_src_test "${_cmake_args[@]}"
+       }
 
        # Do headstands for LTO # 942985
        local -x GTEST_FILTER
-       GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*"
+       
GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*:LazilyBuildDependenciesTest.GeneratedFile:PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*"
 
        cmake-multilib_src_test
 
@@ -143,9 +139,9 @@ src_test() {
 multilib_src_install_all() {
        find "${ED}" -name "*.la" -delete || die
 
-       if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname 
${SLOT#*/})" ]]; then
+       if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname 
"${SLOT#*/}")" ]]; then
                eerror "No matching library found with SLOT variable, currently 
set: ${SLOT}\n" \
-                       "Expected value: 
${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})"
+                       "Expected value: 
${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")"
                die "Please update SLOT variable"
        fi
 

diff --git a/dev-libs/protobuf/protobuf-9999.ebuild 
b/dev-libs/protobuf/protobuf-9999.ebuild
index 42712e4699f4..b100f58a75c6 100644
--- a/dev-libs/protobuf/protobuf-9999.ebuild
+++ b/dev-libs/protobuf/protobuf-9999.ebuild
@@ -5,11 +5,8 @@ EAPI=8
 
 inherit cmake-multilib elisp-common multilib
 
-# NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules
-ABSEIL_BRANCH="lts_2023_08_02"
-
-ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}"
-ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}"
+# NOTE from 
https://github.com/protocolbuffers/protobuf/blob/main/cmake/dependencies.cmake
+ABSEIL_MIN_VER="20250127.0"
 
 if [[ "${PV}" == *9999 ]]; then
        EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git";
@@ -19,7 +16,7 @@ if [[ "${PV}" == *9999 ]]; then
        inherit git-r3
 else
        
SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz";
-       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc64 ~riscv 
~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
+       KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos"
        SLOT="0/$(ver_cut 1-2).0"
 fi
 
@@ -32,10 +29,10 @@ IUSE="conformance debug emacs examples +libprotoc libupb 
+protobuf +protoc test
 # Require protobuf for the time being
 REQUIRED_USE="
        protobuf
-       examples? ( protobuf protoc )
+       protobuf? ( protoc )
+       examples? ( protobuf )
        libprotoc? ( protobuf )
-       libupb? (       protobuf )
-       protoc? ( protobuf )
+       libupb? ( protobuf )
 "
 
 RESTRICT="!test? ( test )"
@@ -52,7 +49,7 @@ COMMON_DEPEND="
 DEPEND="
        ${COMMON_DEPEND}
        conformance? ( dev-libs/jsoncpp[${MULTILIB_USEDEP}] )
-       test? ( >=dev-cpp/gtest-1.11[${MULTILIB_USEDEP}] )
+       test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] )
 "
 RDEPEND="
        ${COMMON_DEPEND}
@@ -61,8 +58,8 @@ RDEPEND="
 
 PATCHES=(
        "${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
-       "${FILESDIR}/${PN}-27.4-findJsonCpp.patch"
        "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch"
+       "${FILESDIR}/${PN}-30.0-findJsonCpp.patch"
 )
 
 DOCS=( CONTRIBUTORS.txt README.md )
@@ -75,9 +72,6 @@ src_prepare() {
 
 multilib_src_configure() {
        local mycmakeargs=(
-               -Dprotobuf_ABSL_PROVIDER="package"
-               -Dprotobuf_JSONCPP_PROVIDER="package"
-
                -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex 
conformance)")"
                -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)"
                -Dprotobuf_BUILD_LIBUPB="$(usex libupb)"
@@ -94,6 +88,9 @@ multilib_src_configure() {
                -Dprotobuf_WITH_ZLIB="$(usex zlib)"
                -Dprotobuf_VERBOSE="$(usex debug)"
                -DCMAKE_MODULE_PATH="${S}/cmake"
+
+               -Dprotobuf_LOCAL_DEPENDENCIES_ONLY="yes"
+               # -Dprotobuf_FORCE_FETCH_DEPENDENCIES="no"
        )
        if use protobuf ; then
                if use examples ; then
@@ -104,8 +101,6 @@ multilib_src_configure() {
                fi
        fi
 
-       use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" )
-
        cmake_src_configure
 }
 
@@ -120,18 +115,19 @@ src_compile() {
 src_test() {
        local -x srcdir="${S}/src"
 
-       local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}"
-       mkdir -m 777 "${TEST_TMPDIR}" || die
+       # we override here to inject env vars
+       multilib_src_test() {
+               local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}"
+               mkdir -p -m 770 "${TEST_TMPDIR}" || die
 
-       setup_test_env() {
-               ln -sr "${S}/src" "${BUILD_DIR}/include" || die
-       }
+               ln -srf "${S}/src" "${BUILD_DIR}/include" || die
 
-       multilib_foreach_abi setup_test_env
+               cmake_src_test "${_cmake_args[@]}"
+       }
 
        # Do headstands for LTO # 942985
        local -x GTEST_FILTER
-       GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*"
+       
GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*:LazilyBuildDependenciesTest.GeneratedFile:PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*"
 
        cmake-multilib_src_test
 
@@ -143,9 +139,9 @@ src_test() {
 multilib_src_install_all() {
        find "${ED}" -name "*.la" -delete || die
 
-       if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname 
${SLOT#*/})" ]]; then
+       if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname 
"${SLOT#*/}")" ]]; then
                eerror "No matching library found with SLOT variable, currently 
set: ${SLOT}\n" \
-                       "Expected value: 
${ED}/usr/$(get_libdir)/libprotobuf$(get_libname ${SLOT#*/})"
+                       "Expected value: 
${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")"
                die "Please update SLOT variable"
        fi
 

Reply via email to