summaryrefslogtreecommitdiff
path: root/dev-libs/protobuf
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-01-07 06:41:06 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-01-07 06:41:06 +0000
commitd69399c7befdd98cda62d6a1788ae2aa7f104c5e (patch)
treeeac7184f4cfe7d67580c1d0a0d9942a91e6cb4ee /dev-libs/protobuf
parente4d9d6796d5018e338f0b27a3bc97716195bf0b8 (diff)
gentoo auto-resync : 07:01:2025 - 06:41:06
Diffstat (limited to 'dev-libs/protobuf')
-rw-r--r--dev-libs/protobuf/Manifest12
-rw-r--r--dev-libs/protobuf/protobuf-25.5.ebuild169
-rw-r--r--dev-libs/protobuf/protobuf-27.5.ebuild (renamed from dev-libs/protobuf/protobuf-28.3.ebuild)28
-rw-r--r--dev-libs/protobuf/protobuf-28.0.ebuild10
-rw-r--r--dev-libs/protobuf/protobuf-28.3-r1.ebuild178
-rw-r--r--dev-libs/protobuf/protobuf-29.2.ebuild177
-rw-r--r--dev-libs/protobuf/protobuf-9999.ebuild39
7 files changed, 583 insertions, 30 deletions
diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest
index 5e4111ad75a8..007fa3c1778a 100644
--- a/dev-libs/protobuf/Manifest
+++ b/dev-libs/protobuf/Manifest
@@ -21,11 +21,14 @@ DIST protobuf-23.4.tar.gz 5043507 BLAKE2B bf6a50771eb977ef92b779a32fd909693faae6
DIST protobuf-24.4.tar.gz 5180235 BLAKE2B 1c7e9035d9f3810886baaea7d679414c882463c79828c99dd8895a9549638c1ca17f9ab3b38d461019f3e1412d9cb9584b995b1da99866eb6fdbb8bdeb063e6f SHA512 52b6ab5587d03cbd1f35cf3cdc388e1710fa50f3031559ac53cf754965407ded7602cdead56080444ab695588112cc3391a1d7fdd5e565d90d0af7ad08706315
DIST protobuf-25.3.tar.gz 5878962 BLAKE2B 9268f9bd993a1cfd6d3937a2ad56ba4cfe3d84923756513841cbf13039d4a07acb260468745cb1294f30334cb34b45c6fde272f5c40d9de63ac6a4ce5c263077 SHA512 1f73e237c919082e5423ae9e2ea8813dccf672c059051d1531fe89ffaa45872d3cf3052b8c3af26f674296ec17d7dc861c67b8f0834ed80261ce4a6a14ed7115
DIST protobuf-25.4.tar.gz 5878444 BLAKE2B 9b40985bda31a84dd3ab7a1d18f746d5f88660d9e036a20234cbc85e79322005d2ffd4e60d72c55a8b5f624d7cc50522771f0804f203f2eabca7b0b8ace0545e SHA512 1b3ba1a1575bcc9d52ddce93d466912863d600dfbb40f64845b8e66c8000047d05508b8f1baba8d5eef42a7ff90eb778f7c8a553c9ec2778fd3a9a18122c67ab
+DIST protobuf-25.5.tar.gz 5877036 BLAKE2B a8174c7cbda47afa3f31d64c7a7aa7f233efd5df5a783abedd229613c8c27a2380684fb5851dad67f76f063688dd8060a0a373f2c95441c2ad91630eb187af22 SHA512 9fe130f5c04919accc99113e13096df93db4c2254a9c2428faf9459416907c77fbf4adefbae3fe644e1f26d9c1fc597165e2c5b6219156c97500d6ef3fdc0793
DIST protobuf-26.1.tar.gz 5957903 BLAKE2B 1a7faab2f56aa0995801a80f73a812c7fc38a00af0bf25bdd5eecf7aec27a86a575ea2fb8484787d19c9ac6e46007c9864e79464f529c446f31af732981feed1 SHA512 0363ac09f92d8e040491425d444c8dca0b9b430e02d2dff6e2b28a0c2b2bea0d33a47f50bc9e2e2d4e8e22b65a02009a20c0066fb89c75df93a7b703dda42ed4
DIST protobuf-27.2.tar.gz 6282174 BLAKE2B 86d12e9f87e8e1c2961ad517115c8689a8dd984722513816d8d626e59a76f5e7a698a90cbf6007daacf66c6053c9ff28108ff113579a442ce61cd221178bda44 SHA512 664c66b62cf1ed0c65d9b910d8e67d4d5d471113697f1b8edf1573cd5c0fc8e850ac53ce984e48e6c6b9cbbefa12f8530058384e7388e65a59c1e46d03772397
DIST protobuf-27.4.tar.gz 9156456 BLAKE2B 004427f4923e523bf77298600bf91a8fe4ca8be4bd6da5b7efcfe9186a032155e525426f83f683e1bed1e799ed1e62d250053386c1463cbd0c062bd05da786d0 SHA512 d076ce7e075096d0dba7ee2314b12e3223c4239c019e25670636a0ef812ddf0ce3f1fd9b9fe8517319db87b14bbdb2653cc4e06023f90032dfedb014457b2863
+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
EBUILD protobuf-21.12.ebuild 2504 BLAKE2B b90c7eb65835f98825faf41fb70b7edcd40030c5c430be7faf13308a74cbc3576a910b83a73dcf593ebb248392900536b96152ba18d05f532b0632ad637b2ad8 SHA512 454f7104106edd5cbc9c1897cdc57fcef337fef51239d5e8832064a9a049b238bb3d4d549df88369098b26a350b4828131ecda74a65c832cf4aa9b1128445d7b
EBUILD protobuf-21.9.ebuild 4163 BLAKE2B 8c4897218ecde9eab2ab95d68c613d4e0990de5570f51f2d3d8e5367f83887be37d3aff6412f961aeb8db27d08380dd5df8845cd144afe841524150a38c8c23f SHA512 160efd25da58ca8dc6cfa68f8a50e8ca98b682d4e21b1e38bdaf4a6ebb3bd7810c657fe7f06bf931358d30a2f2c524658628200444e89f2bf6a6532e51e05d86
EBUILD protobuf-22.5-r1.ebuild 3094 BLAKE2B 6bcee931b6cd9a85365b59fd5f3ce58378918c248d12e5c6793c2a5afacc2596c8f3985a59bb790d17449085f9581b908db26025bc120676df65ce6a34c90453 SHA512 5b09aa886dcc68070f77bb836a271580bd88ea8c8945700bc57e19c814a38cb33db87aa0f233aa6537a70a0b92071eb546d68f745c05dc1eae8d16a1e70f8487
@@ -35,10 +38,13 @@ EBUILD protobuf-23.4.ebuild 2980 BLAKE2B ffd3be624f60c7b8a9f0780a4b5d3fc55a05ef2
EBUILD protobuf-24.4.ebuild 2915 BLAKE2B 2fd3f84bf7e86b64393fd39962080809ef4d65b9b06928abe03d3755360ac5768ffad5bb132c205e25f5bd3829b09b1b14e7e3e1840895edd99229d5dafa4807 SHA512 91ddec809ffb71f23f5884d37e46dcb3a98c48423712ffe6e45607a114b6054c959dc59990c9c1c5a3b709b21653eb38f05b767bb3fe040740905f29a28bedcb
EBUILD protobuf-25.3.ebuild 2914 BLAKE2B 4ddc5b0263ce920a014c805cd0bbb5c7f2e436c7e0185e1aa80e58f47610ae83ed55f64183d7ced81badc1e002ab3d60bd236df8da8d8111f19a03d3b236f451 SHA512 9e401d708de3865310db104d8a61ea763a24997b36e31e3770a1cf038772f12d3b8d956f11e62330ba2bb6ace0abc38576312015d16dadcad1966d3528c9b0db
EBUILD protobuf-25.4.ebuild 3888 BLAKE2B 92e102f7dc8925101f54bc8bc9b51d57f0f4881f5acfa32940370889949526001ffc613d292e5960ac3f0fc3cd20bb6fef03cd64f29eae01108a59860dfb9c5d SHA512 683bd2e998acb32705d7c120503ed9d7b09559eb2267e238dac9284ad920de2bf4c17fc487906e5a1eca88a4ed44e0ade46e5aff44fab3b55ec8727aec8dc266
+EBUILD protobuf-25.5.ebuild 4045 BLAKE2B c98840d788637334043b704f2dc75c460df66df7666ab2e9d07a51fe9dd2e33241110a108c268d40cf5541d8f391917114e7c7594dd2b639fef84c7bc7b0d434 SHA512 0920ba6ddb6846a1045f2db1b9381ef52c58fbc4f5cf140b6531824913b5e6f806dfea9b62dfae74bcfebf75dbffe1e49b9e4a17709e767404bb15e58f7e079c
EBUILD protobuf-26.1-r2.ebuild 2915 BLAKE2B 75df59e6ca105a529cf582cda4371c26f0b9bf1df94fb11c3b409e1b01fcde43e0705e05212ea630839446aba819c4b8132514383f94fa2aa455b232a3f64eae SHA512 8daaf04ef736d389f634f2366e833e7c6ce40a9e60b022a31df31868b01a282f948d583270827b1714cc7cfacac4cdd0e9971944dc5b3dd823afa4696c4cf1c7
EBUILD protobuf-27.2.ebuild 3739 BLAKE2B f93b87963a5c0e5d78c21817ac657e02b1869a36679eb0501d06ce3523518260e6a55e65de5f2b251ebff3a36e4006cf9eaa8fd18f186dbf7a46c4fb416e4bd9 SHA512 f801b662ce4a47c137f061ca17010481cfe40f87bca22f7c895fe42e85c7e33a7a865092aa2db21aaf5e78177a7127902cfdabfd969bca6c567045790a8fcb0f
EBUILD protobuf-27.4.ebuild 3942 BLAKE2B 6f5050e4120d890fdf88c743c8fb214862f8ea23c6105094242a41f9146acb325bb815d6edc0ce877b0bb4d866ebfdb14b24d9321e213fb90480a1af805cea37 SHA512 23cc67686171e88490bc604236fe8d5b204a0ad6583b01cf9fd4c86a35e6503f1e53db90d02d86759f7ef67bd221aa255b086badc02d89979d8f3100d58b0490
-EBUILD protobuf-28.0.ebuild 3936 BLAKE2B bc04bab7ca7fa824694bf2328a1d60912aef9ced11d58ecc12bd1386871c17846f697b9c8bb215ba790d1494764b60e165fad1c7d22fb78df2aac9250ac702f0 SHA512 80aa6ea9b52d15d4267cd18713e6aff5dba5e9531d673f670047f52121978f68830e2696bbf76e5ce069442dff3543505026100ef26b72dbaed1a3864792497f
-EBUILD protobuf-28.3.ebuild 3942 BLAKE2B c10a6bb36fb1190db1c1d97c248c2083803f74f47cef6bc62755564f77636400157941f1ec29937c1884e5027fba082986dcfd9ed475733db50e35ed1a4c58bb SHA512 19087b6c287d0df254bb7686e600655a1cc32ff5163d2baa24fedc901fcf2fb4f682741f1e1f7061000dfc721f896c12e0811416ccd50d2daa9c87ef41b9897b
-EBUILD protobuf-9999.ebuild 3942 BLAKE2B 6f5050e4120d890fdf88c743c8fb214862f8ea23c6105094242a41f9146acb325bb815d6edc0ce877b0bb4d866ebfdb14b24d9321e213fb90480a1af805cea37 SHA512 23cc67686171e88490bc604236fe8d5b204a0ad6583b01cf9fd4c86a35e6503f1e53db90d02d86759f7ef67bd221aa255b086badc02d89979d8f3100d58b0490
+EBUILD protobuf-27.5.ebuild 4098 BLAKE2B ebac46fe3198ada4f12aa5965c74a143a0526d363fda32497d2b22ca86913a43fc1b3553a71f0108b292587bfe460e9c41173b4a023cf5b838cff0502b290ff8 SHA512 3615721bc15433ff52439d64b512feedb04f43cc17aac76779d91a4c2a735af50b72fd654b8ed3ae8479fd20df4d140b62951fd5a5ed5c7c862ccda40d6dedee
+EBUILD protobuf-28.0.ebuild 4116 BLAKE2B bbf35a188a559c2ce720d502befb96c85ffb44a889d70d09c959bb292eb7ee6d1516f07389554ebc1ae2fa37a2d990a7be3275332d7ff388429e54d10aefa5e7 SHA512 7dbe1d3a031cee32ef793c1a535ac47bc12d108029b451394446b7fe9d62b9b83bc88c1dc8d8094d4698a6942ef7573119b4a5423a49c6ac8663cc1778d05626
+EBUILD protobuf-28.3-r1.ebuild 4278 BLAKE2B bb02aee6792a9773ae311add71bc8492cf33f3e38a30fc4799b7e0a462d82668c5ce5a62f299e778321b8a5f704b25cd51b97fee660bd879f8a6fc6505ce30c6 SHA512 c47411af0a205592f5cb42f62322525e4ae0ee70d523dd5d9f4d78e223288829949b3c2642d5e7b8e4380a1da12945258cc6fc3946f3cd2f49ce8a9ee6b01e64
+EBUILD protobuf-29.2.ebuild 4225 BLAKE2B e7b3624a0621d5ba7d6beeebe19231a849cd926dc317e0111109a8b34f42f69e07e55e9da2284b360a46142f4e5e00b971e59e09bb5d83378ef072590f19331c SHA512 1d361fa2439bd0e373be128128c19db12d63edf7c89c2965731907148e58559269e028568348d409093a1feffa35efecdb0457e8fdc96f1fe8bbf7a2a35ca3f6
+EBUILD protobuf-9999.ebuild 4225 BLAKE2B e7b3624a0621d5ba7d6beeebe19231a849cd926dc317e0111109a8b34f42f69e07e55e9da2284b360a46142f4e5e00b971e59e09bb5d83378ef072590f19331c SHA512 1d361fa2439bd0e373be128128c19db12d63edf7c89c2965731907148e58559269e028568348d409093a1feffa35efecdb0457e8fdc96f1fe8bbf7a2a35ca3f6
MISC metadata.xml 917 BLAKE2B c25c810e47e764843ad71be5eb5ebe617d881e7363ce3206401eb59c6df12969bc22bbedc34f08b0a2fbcf955de5b85aa8e4d3a964c1349f07ed1d0eb344a915 SHA512 baa5737981669f1b28ce32884698a4d91e0f1fbdde6056779307e1a6c85dde8ca36ee47ca3ce8794b996934dfafc5482afbe9532a7f3e17c833c3aef0a330376
diff --git a/dev-libs/protobuf/protobuf-25.5.ebuild b/dev-libs/protobuf/protobuf-25.5.ebuild
new file mode 100644
index 000000000000..6a9820f1a034
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-25.5.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}-26.1-disable-32-bit-tests.patch"
+ "${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
+ "${FILESDIR}/${PN}-27.4-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_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-28.3.ebuild b/dev-libs/protobuf/protobuf-27.5.ebuild
index bffa811e8049..3c5e73019120 100644
--- a/dev-libs/protobuf/protobuf-28.3.ebuild
+++ b/dev-libs/protobuf/protobuf-27.5.ebuild
@@ -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="
@@ -84,7 +81,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 +91,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
diff --git a/dev-libs/protobuf/protobuf-28.0.ebuild b/dev-libs/protobuf/protobuf-28.0.ebuild
index 7e7dfd9eae0a..08a9d6fd464f 100644
--- a/dev-libs/protobuf/protobuf-28.0.ebuild
+++ b/dev-libs/protobuf/protobuf-28.0.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
@@ -127,6 +127,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
}
diff --git a/dev-libs/protobuf/protobuf-28.3-r1.ebuild b/dev-libs/protobuf/protobuf-28.3-r1.ebuild
new file mode 100644
index 000000000000..ed7af8070753
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-28.3-r1.ebuild
@@ -0,0 +1,178 @@
+# 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}-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"
+)
+
+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
+
+ # 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
+}
+
+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-29.2.ebuild b/dev-libs/protobuf/protobuf-29.2.ebuild
new file mode 100644
index 000000000000..3080cc281d8b
--- /dev/null
+++ b/dev-libs/protobuf/protobuf-29.2.ebuild
@@ -0,0 +1,177 @@
+# 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
+
+ # 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
+}
+
+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
}