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
