diff options
author | 2024-12-08 15:56:44 +0100 | |
---|---|---|
committer | 2025-01-05 20:34:02 +0000 | |
commit | c022c72762bb6b02bab66a63398a32f865d1a3ec (patch) | |
tree | a91f210b83f0f316d69bc470b3b748304889c902 | |
parent | dev-libs/protobuf: add 28.3-r1 27.5 25.5 (diff) | |
download | gentoo-c022c72762bb6b02bab66a63398a32f865d1a3ec.tar.gz gentoo-c022c72762bb6b02bab66a63398a32f865d1a3ec.tar.bz2 gentoo-c022c72762bb6b02bab66a63398a32f865d1a3ec.zip |
dev-libs/protobuf: add 29.2
Signed-off-by: Paul Zander <[email protected]>
Signed-off-by: Sam James <[email protected]>
-rw-r--r-- | dev-libs/protobuf/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/protobuf/protobuf-29.2.ebuild | 169 | ||||
-rw-r--r-- | dev-libs/protobuf/protobuf-9999.ebuild | 39 |
3 files changed, 195 insertions, 14 deletions
diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest index b0781706ea8a..92ff8602671f 100644 --- a/dev-libs/protobuf/Manifest +++ b/dev-libs/protobuf/Manifest @@ -13,3 +13,4 @@ DIST protobuf-27.4.tar.gz 9156456 BLAKE2B 004427f4923e523bf77298600bf91a8fe4ca8b DIST protobuf-27.5.tar.gz 9153935 BLAKE2B 08b1b5927188e68ef2ae8ce8cdc6f21c34ee8453f4dfaeb362a7f5a5f0ee5ddc24772e5583ab10fbf193aa43e7fdd316e8fbbe4d066df704aef5469dae01fc8d SHA512 bb266483b11268c207aa0e8ce76442351a331f30151586714d57ed7c9bae05f09aabf5042b90eac85658f708671ba0b33c64d1c58a91a24c00bbf4f4ffdce1bb DIST protobuf-28.0.tar.gz 9259114 BLAKE2B 328e09ebffb296d838557ea72a4fc4da8e0ad5f1edfccebcc8ee7c9e0e74d06e5e6dbad741fd89f6a4502c1cb246a973fd60c035ccdbf89700b7baff49e2a65e SHA512 8745f625ac781f3bbefe9494cbf570143d38aecc1521edef7a52ffb403b8be24df2c71f4f2410b5a5b78a0f3e8a38a7d19be2cf916b1b9125349d2da18262cd1 DIST protobuf-28.3.tar.gz 9256608 BLAKE2B 05162124676abe18300481e9f985fd2cfb09b052d06670a993e79ef02f3daf0d5380b521977ebc2362d4094486151ea285fe1c98a1d2f3799b18a1fa422fdc13 SHA512 a91e175fed7eb01c4240842a5af73a7d3cefccbb10885434bceeb7bc89ab6c56a74912cee290bf46e81d4026f3c9c2b10faad5545816064e215c4bae7908263d +DIST protobuf-29.2.tar.gz 9348408 BLAKE2B 847798474bc6a76b9badfdbf605e118dece5e321e81242d7fa1bf5f5d17ee05a3d365ec112dc6d861cade97efff8be1d5d04006a5144f613bdb3ff5eacc63b99 SHA512 aeb21773edc3dd92a6c1ba6ccd721cc8a20d61230a5309c75ee3ef19baa554c228a6d1095f191ccc18f10183b646f3140dfe6526f5812bcaa64b7d5260572643 diff --git a/dev-libs/protobuf/protobuf-29.2.ebuild b/dev-libs/protobuf/protobuf-29.2.ebuild new file mode 100644 index 000000000000..693b964a1462 --- /dev/null +++ b/dev-libs/protobuf/protobuf-29.2.ebuild @@ -0,0 +1,169 @@ +# 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/.gitmodules +ABSEIL_BRANCH="lts_2023_08_02" + +ABSEIL_MIN_VER="${ABSEIL_BRANCH//lts_}" +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" + + 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) +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 ) + libprotoc? ( protobuf ) + libupb? ( protobuf ) + protoc? ( 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-1.11[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + ${COMMON_DEPEND} + ${BDEPEND} +" + +PATCHES=( + "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" + "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" + "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" +) + +DOCS=( CONTRIBUTORS.txt README.md ) + +src_prepare() { + cmake_src_prepare + + cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die +} + +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)" + -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" + ) + if use protobuf ; then + if use examples ; then + mycmakeargs+=( + -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" + -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" + ) + fi + fi + + use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) + + 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" + + local -x TEST_TMPDIR="${T%/}/TEST_TMPDIR_${ABI}" + mkdir -m 777 "${TEST_TMPDIR}" || die + + setup_test_env() { + ln -sr "${S}/src" "${BUILD_DIR}/include" || die + } + + multilib_foreach_abi setup_test_env + + 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/dev-libs/protobuf/protobuf-9999.ebuild b/dev-libs/protobuf/protobuf-9999.ebuild index 30ab416efd86..3080cc281d8b 100644 --- a/dev-libs/protobuf/protobuf-9999.ebuild +++ b/dev-libs/protobuf/protobuf-9999.ebuild @@ -1,4 +1,4 @@ -# Copyright 2008-2024 Gentoo Authors +# Copyright 2008-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -30,32 +30,29 @@ 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 + examples? ( protobuf protoc ) + libprotoc? ( protobuf ) + libupb? ( protobuf ) + protoc? ( protobuf ) " RESTRICT="!test? ( test )" BDEPEND=" emacs? ( app-editors/emacs:* ) - !protobuf? ( - >=dev-libs/protobuf-${PV} - ) " COMMON_DEPEND=" - dev-libs/jsoncpp[${MULTILIB_USEDEP}] >=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-1.11[${MULTILIB_USEDEP}] ) " RDEPEND=" @@ -64,7 +61,6 @@ RDEPEND=" " PATCHES=( - "${FILESDIR}/${PN}-26.1-disable-32-bit-tests.patch" "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" "${FILESDIR}/${PN}-27.4-findJsonCpp.patch" "${FILESDIR}/${PN}-28.0-disable-test_upb-lto.patch" @@ -84,7 +80,6 @@ multilib_src_configure() { -Dprotobuf_JSONCPP_PROVIDER="package" -Dprotobuf_BUILD_CONFORMANCE="$(usex test "$(usex conformance)")" - -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" -Dprotobuf_BUILD_LIBPROTOC="$(usex libprotoc)" -Dprotobuf_BUILD_LIBUPB="$(usex libupb)" -Dprotobuf_BUILD_PROTOBUF_BINARIES="$(usex protobuf)" @@ -95,13 +90,21 @@ multilib_src_configure() { -Dprotobuf_DISABLE_RTTI="no" -Dprotobuf_INSTALL="yes" - -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" -Dprotobuf_TEST_XML_OUTDIR="$(usex test)" -Dprotobuf_WITH_ZLIB="$(usex zlib)" -Dprotobuf_VERBOSE="$(usex debug)" -DCMAKE_MODULE_PATH="${S}/cmake" ) + if use protobuf ; then + if use examples ; then + mycmakeargs+=( + -Dprotobuf_BUILD_EXAMPLES="$(usex examples)" + -Dprotobuf_INSTALL_EXAMPLES="$(usex examples)" + ) + fi + fi + use test && mycmakeargs+=( -Dprotobuf_USE_EXTERNAL_GTEST="yes" ) cmake_src_configure @@ -127,6 +130,14 @@ src_test() { multilib_foreach_abi setup_test_env + # Do headstands for LTO # 942985 + local -x GTEST_FILTER + GTEST_FILTER="-FileDescriptorSetSource/EncodeDecodeTest*" + + cmake-multilib_src_test + + GTEST_FILTER="${GTEST_FILTER//-/}" + cmake-multilib_src_test } |