summaryrefslogtreecommitdiff
path: root/dev-libs/protobuf/protobuf-32.1.ebuild
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-13 22:21:26 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-13 22:21:26 -0500
commitf997c3ee588099e4f43e9ec845935868e3e60b8e (patch)
tree07f0967cda575ee2edf2d62ed8c0f67855ae6bd3 /dev-libs/protobuf/protobuf-32.1.ebuild
parentb589bc93e15b300c3e5318fe97241d57e464bea1 (diff)
downloadbaldeagleos-repo-develop.tar.gz
baldeagleos-repo-develop.tar.xz
baldeagleos-repo-develop.zip
Adding metadataHEADdevelop
Diffstat (limited to 'dev-libs/protobuf/protobuf-32.1.ebuild')
-rw-r--r--dev-libs/protobuf/protobuf-32.1.ebuild168
1 files changed, 37 insertions, 131 deletions
diff --git a/dev-libs/protobuf/protobuf-32.1.ebuild b/dev-libs/protobuf/protobuf-32.1.ebuild
index bdd63d45ef17..e46cee6c6499 100644
--- a/dev-libs/protobuf/protobuf-32.1.ebuild
+++ b/dev-libs/protobuf/protobuf-32.1.ebuild
@@ -1,119 +1,63 @@
-# Copyright 2008-2025 Gentoo Authors
+# Copyright 2023-2025 Liguros Authors
# Distributed under the terms of the GNU General Public License v2
-
EAPI=8
-inherit cmake-multilib dot-a elisp-common flag-o-matic multilib toolchain-funcs
-
-# 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 ~arm64-macos ~x64-macos"
- SLOT="0/$(ver_cut 1-2).0"
-fi
+inherit cmake-multilib elisp-common toolchain-funcs
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 )
- protoc? ( libupb )
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~mips ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+GOOGLETEST_COMMIT="09ffd0015395354774c059a17d9f5bee36177ff9"
+SRC_URI="
+ https://github.com/protocolbuffers/protobuf/archive/refs/tags/v${PV}.tar.gz
+ https://github.com/google/googletest/archive/${GOOGLETEST_COMMIT}.tar.gz -> googletest-${GOOGLETEST_COMMIT}.tar.gz
"
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-2).0"
+IUSE="emacs examples test zlib"
RESTRICT="!test? ( test )"
BDEPEND="
emacs? ( app-editors/emacs:* )
"
-
-COMMON_DEPEND="
- >=dev-cpp/abseil-cpp-${ABSEIL_MIN_VER}:=[${MULTILIB_USEDEP}]
- zlib? ( virtual/zlib:=[${MULTILIB_USEDEP}] )
-"
-
DEPEND="
- ${COMMON_DEPEND}
- conformance? ( dev-libs/jsoncpp[${MULTILIB_USEDEP}] )
- test? (
- || (
- dev-cpp/abseil-cpp[test-helpers(-)]
- dev-cpp/abseil-cpp[test]
- )
- dev-cpp/gtest[${MULTILIB_USEDEP}]
- )
+ ${BDEPEND}
+ >=dev-cpp/abseil-cpp-20230125.3-r1:=[${MULTILIB_USEDEP}]
+ zlib? ( sys-libs/zlib[${MULTILIB_USEDEP}] )
+ test? ( >=dev-cpp/gtest-1.9[${MULTILIB_USEDEP}] )
"
RDEPEND="
- ${COMMON_DEPEND}
- ${BDEPEND}
+ ${DEPEND}
"
-PATCHES=(
- "${FILESDIR}/${PN}-23.3-static_assert-failure.patch"
- "${FILESDIR}/${PN}-30.0-findJsonCpp.patch"
-)
-
-DOCS=( CONTRIBUTORS.txt README.md )
+DOCS=(CONTRIBUTORS.txt README.md)
src_prepare() {
+ cp -r ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}/* ${S}/third_party/googletest
+ rm -rf ${WORKDIR}/googletest-${GOOGLETEST_COMMIT}
cmake_src_prepare
-
- cp "${FILESDIR}/FindJsonCpp.cmake" "${S}/cmake" || die
}
-multilib_src_configure() {
- # bug #963340 (seems to only happen when upgrading from older pb,
- # possibly w/o tests too).
- use libupb && filter-lto
+src_configure() {
+ if tc-ld-is-gold; then
+ # https://sourceware.org/bugzilla/show_bug.cgi?id=24527
+ tc-ld-disable-gold
+ fi
- # Currently, the only static library is libupb (and there is no
- # USE=static-libs), so optimize away the fat-lto build time penalty.
- use libupb && lto-guarantee-fat
+ cmake-multilib_src_configure
+}
+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"
+ -Dprotobuf_DISABLE_RTTI=ON
+ -Dprotobuf_BUILD_EXAMPLES=$(usex examples)
+ -Dprotobuf_WITH_ZLIB=$(usex zlib)
+ -Dprotobuf_BUILD_TESTS=$(usex test)
+ -Dprotobuf_ABSL_PROVIDER=package
+ -Dprotobuf_BUILD_TESTS=OFF
)
- 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=ON)
cmake_src_configure
}
@@ -126,50 +70,12 @@ src_compile() {
fi
}
-# 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[@]}"
-}
-
-src_test() {
- local -x srcdir="${S}/src"
-
- local GTEST_SKIP_TESTS=(
- "PackedTest/12.DecodeEmptyPackedField"
- )
-
- if tc-is-lto; then
- # Do headstands for LTO # 942985
- GTEST_SKIP_TESTS+=(
- "FileDescriptorSetSource/EncodeDecodeTest*"
- "LazilyBuildDependenciesTest.GeneratedFile"
- "PythonGeneratorTest/PythonGeneratorTest.PythonWithCppFeatures/*"
- )
- fi
-
- if [[ ! -v GTEST_FILTER ]]; then
- local -x GTEST_FILTER
- fi
-
- [[ -n ${GTEST_RUN_TESTS[*]} ]] && GTEST_FILTER+="$(IFS=':' ; echo "${GTEST_SKIP_TESTS[*]}")"
- [[ -n ${GTEST_SKIP_TESTS[*]} ]] && GTEST_FILTER+="${GTEST_FILTER+:}-$(IFS=':' ; echo "${GTEST_SKIP_TESTS[*]}")"
-
- cmake-multilib_src_test
-}
-
multilib_src_install_all() {
- use libupb && strip-lto-bytecode
-
find "${ED}" -name "*.la" -delete || die
- if [[ ! -f "${ED}/usr/$(get_libdir)/libprotobuf$(get_libname "${SLOT#*/}")" ]]; then
+ 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$(get_libname "${SLOT#*/}")"
+ "Expected value: ${ED}/usr/$(get_libdir)/libprotobuf.so.${SLOT#*/}"
die "Please update SLOT variable"
fi
@@ -179,13 +85,13 @@ multilib_src_install_all() {
doins "${FILESDIR}/proto.vim"
if use emacs; then
- elisp-install "${PN}" editors/protobuf-mode.el*
+ 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"
+ docompress -x /usr/share/doc/${PF}/examples
fi
einstalldocs