From 2ae29beb71161799ff4e45873df88f7f026ffc29 Mon Sep 17 00:00:00 2001 From: Andreas Billmeier Date: Wed, 26 Jun 2024 21:41:07 +0200 Subject: [PATCH] dev-libs/protobuf: fix abseil problems Closes: https://git.edevau.net/onkelbeh/HomeAssistantRepository/issues/3503 Signed-off-by: Andreas Billmeier --- README.md | 4 +- dev-libs/protobuf/Manifest | 2 + dev-libs/protobuf/protobuf-25.1-r1.ebuild | 107 ++++++++++++++++++++++ dev-libs/protobuf/protobuf-25.2-r1.ebuild | 107 ++++++++++++++++++++++ 4 files changed, 218 insertions(+), 2 deletions(-) create mode 100644 dev-libs/protobuf/protobuf-25.1-r1.ebuild create mode 100644 dev-libs/protobuf/protobuf-25.2-r1.ebuild diff --git a/README.md b/README.md index b552c61a7..b3e06eedb 100644 --- a/README.md +++ b/README.md @@ -606,14 +606,14 @@ A daily compile test is run at Github with Python 3.9 to catch general faults. E ## Licenses This repository itself is released under GPL-3 (like most Gentoo repositories), all work on the depending components under the licenses they came from. Perhaps you came here because I filed an issue at your component about a bad or missing license. It is easy to [assign a license](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository). During cleanups and license investigations I have been asked often which license to choose. I am not a lawyer, but I can offer the following table, counted over this repository, perhaps this helps your decision. If a package has more than one license listed, all of them are counted. -There are 1950 Ebuilds in total, 1939 of them have in total 1963 (42 different) licenses assigned. +There are 1952 Ebuilds in total, 1941 of them have in total 1965 (42 different) licenses assigned. |License| Ebuilds using it| |-------|-----| |MIT|1122| |Apache-2.0|437| |GPL-3|114| -|BSD|111| +|BSD|113| |LGPL-3|25| |GPL-2|23| |GPL-3+|16| diff --git a/dev-libs/protobuf/Manifest b/dev-libs/protobuf/Manifest index aa91d5955..8cc7cd35c 100644 --- a/dev-libs/protobuf/Manifest +++ b/dev-libs/protobuf/Manifest @@ -7,6 +7,8 @@ DIST protobuf-25.1.tar.gz 5878124 BLAKE2B a0b917e4518b07b221afd01e801e45b5b6fa35 DIST protobuf-25.2.tar.gz 5878387 BLAKE2B 1ee7a48d3a481f523ff240c79e8cacb39b6a7e2c671279812cbffd5ce9be595034461fba41f03bed363133118c1b92bd14bcfd8c4e46ac6368e6407a23fb02ea SHA512 66f0b177eae0e2e40b8b17c8f411cd9dec5355dcfc145b8a79426e6367babcc28b9a8078bbe4ba2de47a82811a2e1a89d36955d6fa0c8d391cfeada4eb160fdb EBUILD protobuf-24.2.ebuild 2499 BLAKE2B d20fc60b8ee0c13339074e3c5669baea5dc5f30004f2a6ebb958dbe9f21c66c257e6441c9a1ecfe96e1ea97b70684917a89419f7b85bf03d47b15a1e931c1336 SHA512 f40a776398989d120b6a28e59f4d6b56e5bb1f4441f72982fd24ccaa194a10f0d3dcda7cca7481a62f7eb3d60034a4fef2cc33d0454e40dab7ee696381228645 EBUILD protobuf-24.3.ebuild 2525 BLAKE2B 56715d3d86d843bd41bfa1e105f0ee57df8bedf465061a28337b148be8a7f693a4f97cd64ec5d365b61797394fbddd760c86c8990055a252dc23a98333cb20c6 SHA512 4294d66c9a9096017543a08972f0689159545efad0e4e6b33e66073d429ed272ee93187832b2d6aa64a189e15f205f8d02f69b0c9c633d5fe28410ceccc81a72 +EBUILD protobuf-25.1-r1.ebuild 2525 BLAKE2B 5c544165afffc4669c2fa236cfbcfa299c74f01fa944e9f29d789b44eff2451a4adfef0ce99aa6cf950fd410ea8cad2cf6788ff2945a00aa7c698a3628d3da99 SHA512 8df88dc07b6a21e7573a4ee48c2cfff569462e1373d9653146bf7dec63dd1071f3b83b27a01a7d174ae24f55485008fb76f667f5b317b172a58049f58c83e2a3 EBUILD protobuf-25.1.ebuild 2525 BLAKE2B 56715d3d86d843bd41bfa1e105f0ee57df8bedf465061a28337b148be8a7f693a4f97cd64ec5d365b61797394fbddd760c86c8990055a252dc23a98333cb20c6 SHA512 4294d66c9a9096017543a08972f0689159545efad0e4e6b33e66073d429ed272ee93187832b2d6aa64a189e15f205f8d02f69b0c9c633d5fe28410ceccc81a72 +EBUILD protobuf-25.2-r1.ebuild 2525 BLAKE2B 5c544165afffc4669c2fa236cfbcfa299c74f01fa944e9f29d789b44eff2451a4adfef0ce99aa6cf950fd410ea8cad2cf6788ff2945a00aa7c698a3628d3da99 SHA512 8df88dc07b6a21e7573a4ee48c2cfff569462e1373d9653146bf7dec63dd1071f3b83b27a01a7d174ae24f55485008fb76f667f5b317b172a58049f58c83e2a3 EBUILD protobuf-25.2.ebuild 2525 BLAKE2B 56715d3d86d843bd41bfa1e105f0ee57df8bedf465061a28337b148be8a7f693a4f97cd64ec5d365b61797394fbddd760c86c8990055a252dc23a98333cb20c6 SHA512 4294d66c9a9096017543a08972f0689159545efad0e4e6b33e66073d429ed272ee93187832b2d6aa64a189e15f205f8d02f69b0c9c633d5fe28410ceccc81a72 MISC metadata.xml 595 BLAKE2B ba1b916e26b1e53f68e660f03d2e53fea8d22db04e8241ebec3ec20fbb251c2b164cf25d5fb6118423ce7721a822ae2302aab137b0748730e9a6860bf8e65668 SHA512 785e2550621b79b6350e1a6b52ed9992610769885fb29a9e92ee45a35158cc08707a3590dfcbece9ee9a5e16e1abfb614e8186132da7b942f2761b5e6ecfa827 diff --git a/dev-libs/protobuf/protobuf-25.1-r1.ebuild b/dev-libs/protobuf/protobuf-25.1-r1.ebuild new file mode 100644 index 000000000..b22bbe99f --- /dev/null +++ b/dev-libs/protobuf/protobuf-25.1-r1.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +if [[ "${PV}" == *9999 ]]; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" + EGIT_SUBMODULES=() +else + SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" +KEYWORDS="amd64 arm arm64 x86" +fi + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND="emacs? ( app-editors/emacs:* )" +DEPEND=" + >=dev-cpp/abseil-cpp-20230802.0:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + >=dev-cpp/abseil-cpp-20230802.0:=[${MULTILIB_USEDEP}] + emacs? ( app-editors/emacs:* ) + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) +" + +PATCHES=( + "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" +) + +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 + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + ) + use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) + + cmake_src_configure +} + +src_compile() { + cmake-multilib_src_compile + + if use emacs; then + elisp-compile editors/protobuf-mode.el + fi +} + +multilib_src_install_all() { + find "${ED}" -name "*.la" -delete || die + + if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then + eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ + "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${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-25.2-r1.ebuild b/dev-libs/protobuf/protobuf-25.2-r1.ebuild new file mode 100644 index 000000000..b22bbe99f --- /dev/null +++ b/dev-libs/protobuf/protobuf-25.2-r1.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake-multilib elisp-common toolchain-funcs + +if [[ "${PV}" == *9999 ]]; then + inherit git-r3 + + EGIT_REPO_URI="https://github.com/protocolbuffers/protobuf.git" + EGIT_SUBMODULES=() +else + SRC_URI="https://github.com/protocolbuffers/protobuf/archive/v${PV}.tar.gz -> ${P}.tar.gz" +KEYWORDS="amd64 arm arm64 x86" +fi + +DESCRIPTION="Google's Protocol Buffers - Extensible mechanism for serializing structured data" +HOMEPAGE="https://protobuf.dev/" + +LICENSE="BSD" +SLOT="0/$(ver_cut 1-2).0" +IUSE="emacs examples test zlib" +RESTRICT="!test? ( test )" + +BDEPEND="emacs? ( app-editors/emacs:* )" +DEPEND=" + >=dev-cpp/abseil-cpp-20230802.0:=[${MULTILIB_USEDEP}] + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) + test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] ) +" +RDEPEND=" + >=dev-cpp/abseil-cpp-20230802.0:=[${MULTILIB_USEDEP}] + emacs? ( app-editors/emacs:* ) + zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] ) +" + +PATCHES=( + "${FILESDIR}/${PN}-23.3-static_assert-failure.patch" +) + +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 + -Dprotobuf_BUILD_EXAMPLES=$(usex examples) + -Dprotobuf_WITH_ZLIB=$(usex zlib) + -Dprotobuf_BUILD_TESTS=$(usex test) + -Dprotobuf_ABSL_PROVIDER=package + ) + use test && mycmakeargs+=(-Dprotobuf_USE_EXTERNAL_GTEST=ON) + + cmake_src_configure +} + +src_compile() { + cmake-multilib_src_compile + + if use emacs; then + elisp-compile editors/protobuf-mode.el + fi +} + +multilib_src_install_all() { + find "${ED}" -name "*.la" -delete || die + + if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}" ]]; then + eerror "No matching library found with SLOT variable, currently set: ${SLOT}\n" \ + "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${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 +}