diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-01-07 06:41:06 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-01-07 06:41:06 +0000 |
commit | d69399c7befdd98cda62d6a1788ae2aa7f104c5e (patch) | |
tree | eac7184f4cfe7d67580c1d0a0d9942a91e6cb4ee /dev-libs/protobuf | |
parent | e4d9d6796d5018e338f0b27a3bc97716195bf0b8 (diff) |
gentoo auto-resync : 07:01:2025 - 06:41:06
Diffstat (limited to 'dev-libs/protobuf')
-rw-r--r-- | dev-libs/protobuf/Manifest | 12 | ||||
-rw-r--r-- | dev-libs/protobuf/protobuf-25.5.ebuild | 169 | ||||
-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.ebuild | 10 | ||||
-rw-r--r-- | dev-libs/protobuf/protobuf-28.3-r1.ebuild | 178 | ||||
-rw-r--r-- | dev-libs/protobuf/protobuf-29.2.ebuild | 177 | ||||
-rw-r--r-- | dev-libs/protobuf/protobuf-9999.ebuild | 39 |
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 } |