From c089396984cb6efadf3c25e210595170cdea5943 Mon Sep 17 00:00:00 2001 From: Flatcar Buildbot Date: Mon, 7 Apr 2025 07:06:47 +0000 Subject: [PATCH] dev-libs/protobuf: Sync with Gentoo It's from Gentoo commit 8b9eaa8d809ee6bf5058a7d81f1ceece34f01f1f. --- .../portage-stable/dev-libs/protobuf/Manifest | 1 + .../files/protobuf-30.0-findJsonCpp.patch | 44 +++++ .../dev-libs/protobuf/protobuf-21.12.ebuild | 13 +- .../dev-libs/protobuf/protobuf-25.3.ebuild | 13 +- .../dev-libs/protobuf/protobuf-25.5.ebuild | 13 +- .../dev-libs/protobuf/protobuf-25.6.ebuild | 13 +- .../dev-libs/protobuf/protobuf-28.0.ebuild | 17 +- .../dev-libs/protobuf/protobuf-28.3-r1.ebuild | 11 +- .../dev-libs/protobuf/protobuf-29.2.ebuild | 11 +- .../dev-libs/protobuf/protobuf-29.4.ebuild | 13 +- .../dev-libs/protobuf/protobuf-30.2.ebuild | 172 ++++++++++++++++++ .../dev-libs/protobuf/protobuf-9999.ebuild | 46 +++-- 12 files changed, 276 insertions(+), 91 deletions(-) create mode 100644 sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-30.0-findJsonCpp.patch create mode 100644 sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/Manifest b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/Manifest index 7f7a526e44..3275bd5760 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/Manifest +++ b/sdk_container/src/third_party/portage-stable/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/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-30.0-findJsonCpp.patch b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/files/protobuf-30.0-findJsonCpp.patch new file mode 100644 index 0000000000..9848a61013 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/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 +Date: Thu, 6 Mar 2025 13:19:01 +0100 +Subject: [PATCH] fix JsonCPP name + +Signed-off-by: Paul Zander + +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/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild index 3672570cf1..7c343d581c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-21.12.ebuild @@ -1,9 +1,9 @@ -# Copyright 2008-2023 Gentoo Authors +# Copyright 2008-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit cmake-multilib elisp-common toolchain-funcs +inherit cmake-multilib elisp-common if [[ "${PV}" == *9999 ]]; then inherit git-r3 @@ -40,15 +40,6 @@ PATCHES=( DOCS=( CONTRIBUTORS.txt README.md ) -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - multilib_src_configure() { local mycmakeargs=( -Dprotobuf_DISABLE_RTTI=ON diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.3.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.3.ebuild index d878a5ea4e..cf1d9198d9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.3.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.3.ebuild @@ -1,9 +1,9 @@ -# Copyright 2008-2024 Gentoo Authors +# Copyright 2008-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit cmake-multilib elisp-common toolchain-funcs +inherit cmake-multilib elisp-common ABSEIL_BRANCH="lts_2023_08_02" # NOTE from https://github.com/protocolbuffers/protobuf/blob/main/.gitmodules @@ -54,15 +54,6 @@ PATCHES=( DOCS=( CONTRIBUTORS.txt README.md ) -src_configure() { - if tc-ld-is-gold; then - # https://sourceware.org/bugzilla/show_bug.cgi?id=24527 - tc-ld-disable-gold - fi - - cmake-multilib_src_configure -} - multilib_src_configure() { local mycmakeargs=( -Dprotobuf_DISABLE_RTTI="yes" # TODO why? diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.5.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.5.ebuild index 6a9820f1a0..e947731a59 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.5.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.5.ebuild @@ -14,29 +14,27 @@ ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" + SLOT="0/9999" inherit git-r3 else SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) + SLOT="0/$(ver_cut 1-2).0" fi DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" +IUSE="conformance debug emacs examples +libprotoc +protobuf +protoc test zlib" # Require protobuf for the time being REQUIRED_USE=" protobuf - examples? ( protobuf protoc ) + protobuf? ( protoc ) + examples? ( protobuf ) libprotoc? ( protobuf ) - libupb? ( protobuf ) - protoc? ( protobuf ) " RESTRICT="!test? ( test )" @@ -81,7 +79,6 @@ multilib_src_configure() { -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" -Dprotobuf_BUILD_SHARED_LIBS="yes" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild index 6a9820f1a0..e947731a59 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-25.6.ebuild @@ -14,29 +14,27 @@ ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" + SLOT="0/9999" inherit git-r3 else SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) + SLOT="0/$(ver_cut 1-2).0" fi DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" -IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" +IUSE="conformance debug emacs examples +libprotoc +protobuf +protoc test zlib" # Require protobuf for the time being REQUIRED_USE=" protobuf - examples? ( protobuf protoc ) + protobuf? ( protoc ) + examples? ( protobuf ) libprotoc? ( protobuf ) - libupb? ( protobuf ) - protoc? ( protobuf ) " RESTRICT="!test? ( test )" @@ -81,7 +79,6 @@ multilib_src_configure() { -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" - -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" -Dprotobuf_BUILD_SHARED_LIBS="yes" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild index 08a9d6fd46..2621d4f7ba 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.0.ebuild @@ -14,29 +14,28 @@ ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" + SLOT="0/9999" inherit git-r3 else SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" KEYWORDS="~alpha amd64 arm arm64 ~loong ~mips ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) + SLOT="0/$(ver_cut 1-2).0" fi DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" +# Require protobuf for the time being REQUIRED_USE=" - || ( - libprotoc - libupb - protobuf - protoc - ) + protobuf + protobuf? ( protoc ) + examples? ( protobuf ) + libprotoc? ( protobuf ) + libupb? ( protobuf ) " RESTRICT="!test? ( test )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.3-r1.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.3-r1.ebuild index ed7af80707..e53658010c 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.3-r1.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-28.3-r1.ebuild @@ -14,29 +14,28 @@ ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" + SLOT="0/9999" inherit git-r3 else SRC_URI="https://github.com/protocolbuffers/protobuf/releases/download/v${PV}/${P}.tar.gz" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" - MY_SLOT=$(ver_cut 1-2) + SLOT="0/$(ver_cut 1-2).0" fi DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" # 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 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.2.ebuild index 90c31cdfe7..d1c1fc5e95 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.2.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.2.ebuild @@ -14,29 +14,28 @@ ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" + SLOT="0/9999" 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" - MY_SLOT=$(ver_cut 1-2) + SLOT="0/$(ver_cut 1-2).0" fi DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" # 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 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild index 90c31cdfe7..8ce1e903d9 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-29.4.ebuild @@ -14,29 +14,28 @@ ABSEIL_MIN_VER="${ABSEIL_MIN_VER//_/}" if [[ "${PV}" == *9999 ]]; then EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" EGIT_SUBMODULES=( '-*' ) - MY_SLOT="28.0" + SLOT="0/9999" 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" - MY_SLOT=$(ver_cut 1-2) + 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 DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" HOMEPAGE="https://protobuf.dev/" LICENSE="BSD" -SLOT="0/${MY_SLOT}.0" IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" # 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 )" diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild new file mode 100644 index 0000000000..b100f58a75 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-30.2.ebuild @@ -0,0 +1,172 @@ +# Copyright 2008-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake-multilib elisp-common multilib + +# 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" + EGIT_SUBMODULES=( '-*' ) + SLOT="0/9999" + + 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 ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" + SLOT="0/$(ver_cut 1-2).0" +fi + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" + +LICENSE="BSD" +IUSE="conformance debug emacs examples +libprotoc libupb +protobuf +protoc test zlib" + +# Require protobuf for the time being +REQUIRED_USE=" + protobuf + protobuf? ( protoc ) + examples? ( protobuf ) + libprotoc? ( protobuf ) + libupb? ( protobuf ) +" + +RESTRICT="!test? ( test )" + +BDEPEND=" + emacs? ( app-editors/emacs:* ) +" + +COMMON_DEPEND=" + >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) +" + +DEPEND=" + ${COMMON_DEPEND} + conformance? ( dev-libs/jsoncpp[${MULTILIB_USEDEP}] ) + test? ( dev-cpp/gtest[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${COMMON_DEPEND} + ${BDEPEND} +" + +PATCHES=( + "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" + "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" + "${FILESDIR}/${PN}-30.0-findJsonCpp.patch" +) + +DOCS=( CONTRIBUTORS.txt README.md ) + +src_prepare() { + cmake_src_prepare + + cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die +} + +multilib_src_configure() { + local mycmakeargs=( + -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" + -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" + -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" + -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" + -Dprotobuf_BUILD_PROTOC_BINARIES="$(usex protoc)" + -Dprotobuf_BUILD_SHARED_LIBS="yes" + -Dprotobuf_BUILD_TESTS="$(usex test)" + + -Dprotobuf_DISABLE_RTTI="no" + + -Dprotobuf_INSTALL="yes" + -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" + + -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 + mycmakeargs+=( + -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" + -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" + ) + fi + fi + + cmake_src_configure +} + +src_compile() { + cmake-multilib_src_compile + + if use emacs; then + elisp-compile editors/protobuf-mode.el + fi +} + +src_test() { + local -x srcdir="${S}/src" + + # 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 + + ln -srf "${S}/src" "${BUILD_DIR}/include" || die + + cmake_src_test "${_cmake_args[@]}" + } + + # Do headstands for LTO # 942985 + local -x GTEST_FILTER + GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*:LazilyBuildDependenciesTest.GeneratedFile:PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*" + + cmake-multilib_src_test + + GTEST_FILTER="${GTEST_FILTER//-/}" + + cmake-multilib_src_test +} + +multilib_src_install_all() { + find "${ED}" -name "*.la" -delete || die + + 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#*/}")" + die "Please update SLOT variable" + fi + + insinto /usr/share/vim/vimfiles/syntax + doins editors/proto.vim + insinto /usr/share/vim/vimfiles/ftdetect + doins "${FILESDIR}/proto.vim" + + if use emacs; then + elisp-install "${PN}" editors/protobuf-mode.el* + elisp-site-file-install "${FILESDIR}/70${PN}-gentoo.el" + fi + + if use examples; then + DOCS+=(examples) + docompress -x "/usr/share/doc/${PF}/examples" + fi + + einstalldocs +} + +pkg_postinst() { + use emacs && elisp-site-regen +} + +pkg_postrm() { + use emacs && elisp-site-regen +} diff --git a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-9999.ebuild b/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-9999.ebuild index 42712e4699..b100f58a75 100644 --- a/sdk_container/src/third_party/portage-stable/dev-libs/protobuf/protobuf-9999.ebuild +++ b/sdk_container/src/third_party/portage-stable/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 + + cmake_src_test "${_cmake_args[@]}" } - multilib_foreach_abi setup_test_env - # 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