mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-05 12:38:09 -07:00
dev-python/protobuf: add 5.29.5
Signed-off-by: Paul Zander <negril.nx+gentoo@gmail.com> Part-of: https://github.com/gentoo/gentoo/pull/44225 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
DIST protobuf-29.5.gh.tar.gz 9351493 BLAKE2B bb591ebe69cc76830ac84e4af10a3de3cc5c760ffd682a9b9d6bab6f838d4bcb32c361118b41fdc6c6a6e6c3eb00657b0a345d8cc709d95c9635e76dd71494af SHA512 fb35f36145356fbc65a5c9a9501ea9d1e089fc1cd4dd2c8098068b7f10a378efff5b04429bc500347e98cf2b239d49f8c503c60bd35ddaad3d4f6b0a076ebabf
|
||||
DIST protobuf-32.0.gh.tar.gz 9692366 BLAKE2B 37e09bec62a5c35a3ca45d4bd4fd27e719a4f04b95f049b265ca7c231459d8333eafc13cfd1126dda5ccf799ab2e2e9f305fcae5525a64b4b1eb45b1fb3a897b SHA512 89806b219fa2132e46bf01b7a5831c2977ad7ebe06750956d0e17bcdc028498e883704445fca56bb813f4b78e935709f67f8fa1b46b597840c58a843483cdafb
|
||||
DIST protobuf-32.1.gh.tar.gz 9694736 BLAKE2B 37a310799eaa58b14f67c62410f1e150c031b94db5a499ceeda749bd13a1165403a5d4c86ffa45729ae333080697ce0619b29a51d2bc345de012f99a3ce5dd20 SHA512 840239f4fb57450ffe61f2cdc73daf5f1f3ea317b1ab1135a90303783e62722cfa410ff27bb2c5c6d3106be39ccdc95cdfbc5bf271ba79f935ab85f9b8ce3075
|
||||
DIST protobuf-33.0.gh.tar.gz 6869946 BLAKE2B ee9a600d67873f129138cb3ab13b3d5197301e8cfc682f194317c8389f7115d10bab73e410116570f8f0ccfe2dc20f8f629b47c90f7b31a3df54acfacda18506 SHA512 365f975f2e982dd2d5588dc0ff435316bf6e50d272e419c01793e4d02f1a9f1e98026fc854ec73f1ee4eb0391701201ae82c7af9b18f3b677d451dd3dd78c468
|
||||
|
||||
156
dev-python/protobuf/protobuf-5.29.5.ebuild
Normal file
156
dev-python/protobuf/protobuf-5.29.5.ebuild
Normal file
@@ -0,0 +1,156 @@
|
||||
# Copyright 2008-2025 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
# Default implementation currently is upb, which doesn't match dev-libs/protobuf
|
||||
# https://github.com/protocolbuffers/protobuf/blob/main/python/README.md#implementation-backends
|
||||
|
||||
DISTUTILS_EXT=1
|
||||
DISTUTILS_USE_PEP517=setuptools
|
||||
PYTHON_COMPAT=( python3_{11..14} )
|
||||
|
||||
inherit distutils-r1 pypi
|
||||
|
||||
GH_PV=$(ver_cut 2-3)
|
||||
GH_P=${PN}-${GH_PV}
|
||||
|
||||
DESCRIPTION="Google's Protocol Buffers - Python bindings"
|
||||
HOMEPAGE="
|
||||
https://protobuf.dev/
|
||||
https://pypi.org/project/protobuf/
|
||||
"
|
||||
# Rename sdist to avoid conflicts with dev-libs/protobuf
|
||||
SRC_URI="
|
||||
$(pypi_sdist_url) -> ${P}.py.tar.gz
|
||||
test? (
|
||||
https://github.com/protocolbuffers/protobuf/archive/v${GH_PV}.tar.gz
|
||||
-> ${GH_P}.gh.tar.gz
|
||||
)
|
||||
"
|
||||
|
||||
LICENSE="BSD"
|
||||
SLOT="0/$(ver_cut 1-3)"
|
||||
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
|
||||
|
||||
# need protobuf compiler
|
||||
BDEPEND="
|
||||
test? (
|
||||
dev-libs/protobuf
|
||||
dev-python/absl-py[${PYTHON_USEDEP}]
|
||||
dev-python/numpy[${PYTHON_USEDEP}]
|
||||
dev-python/pytest-forked[${PYTHON_USEDEP}]
|
||||
)
|
||||
"
|
||||
|
||||
EPYTEST_XDIST=1
|
||||
distutils_enable_tests pytest
|
||||
|
||||
src_unpack() {
|
||||
unpack "${P}.py.tar.gz"
|
||||
|
||||
if use test; then
|
||||
mkdir "${WORKDIR}/test" || die
|
||||
cd "${WORKDIR}/test" || die
|
||||
unpack "${GH_P}.gh.tar.gz"
|
||||
fi
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
distutils-r1_src_prepare
|
||||
|
||||
# strip old-style namespace
|
||||
rm google/__init__.py || die
|
||||
}
|
||||
|
||||
python_test() {
|
||||
local EPYTEST_DESELECT=()
|
||||
local EPYTEST_IGNORE=(
|
||||
# TODO: figure out how to build the pybind11 test extension
|
||||
google/protobuf/internal/recursive_message_pybind11_test.py
|
||||
)
|
||||
|
||||
case ${EPYTHON} in
|
||||
python3.11)
|
||||
EPYTEST_IGNORE+=(
|
||||
# syntax error...
|
||||
google/protobuf/internal/json_format_test.py
|
||||
)
|
||||
;;
|
||||
python3.14*)
|
||||
EPYTEST_DESELECT+=(
|
||||
# exception message mismatch
|
||||
google/protobuf/internal/json_format_test.py::JsonFormatTest::testInvalidTimestamp
|
||||
google/protobuf/internal/well_known_types_test.py::TimeUtilTest::testInvalidTimestamp
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
||||
cp -r "${BUILD_DIR}"/{install,test} || die
|
||||
local -x PATH="${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}"
|
||||
cd "${BUILD_DIR}/test$(python_get_sitedir)" || die
|
||||
|
||||
# copy test files from the source tree
|
||||
cp -r "${WORKDIR}/test/${GH_P}/python/google/protobuf/internal/." \
|
||||
google/protobuf/internal/ || die
|
||||
# link the test data for text_format_test.py
|
||||
# (it traverses directories upwards until to finds src/google...)
|
||||
ln -s "${WORKDIR}/test/${GH_P}/src" ../src || die
|
||||
|
||||
# compile test-related protobufs
|
||||
local test_protos=(
|
||||
# from src
|
||||
any_test.proto
|
||||
map_proto2_unittest.proto
|
||||
map_unittest.proto
|
||||
unittest.proto
|
||||
unittest_custom_options.proto
|
||||
unittest_delimited.proto
|
||||
unittest_delimited_import.proto
|
||||
unittest_features.proto
|
||||
unittest_import.proto
|
||||
unittest_import_public.proto
|
||||
unittest_legacy_features.proto
|
||||
unittest_mset.proto
|
||||
unittest_mset_wire_format.proto
|
||||
unittest_no_field_presence.proto
|
||||
unittest_no_generic_services.proto
|
||||
unittest_proto3.proto
|
||||
unittest_proto3_arena.proto
|
||||
unittest_proto3_extensions.proto
|
||||
unittest_retention.proto
|
||||
util/json_format.proto
|
||||
util/json_format_proto3.proto
|
||||
# from python
|
||||
internal/descriptor_pool_test1.proto
|
||||
internal/descriptor_pool_test2.proto
|
||||
internal/factory_test1.proto
|
||||
internal/factory_test2.proto
|
||||
internal/file_options_test.proto
|
||||
internal/import_test_package/import_public.proto
|
||||
internal/import_test_package/import_public_nested.proto
|
||||
internal/import_test_package/inner.proto
|
||||
internal/import_test_package/outer.proto
|
||||
internal/message_set_extensions.proto
|
||||
internal/missing_enum_values.proto
|
||||
internal/more_extensions.proto
|
||||
internal/more_messages.proto
|
||||
internal/no_package.proto
|
||||
internal/packed_field_test.proto
|
||||
internal/self_recursive.proto
|
||||
internal/test_bad_identifiers.proto
|
||||
internal/test_proto2.proto
|
||||
internal/test_proto3_optional.proto
|
||||
internal/well_known_types_test.proto
|
||||
)
|
||||
local proto
|
||||
for proto in "${test_protos[@]}"; do
|
||||
protoc --python_out=. -I"${WORKDIR}/test/${GH_P}/src" -I. \
|
||||
"google/protobuf/${proto}" || die
|
||||
done
|
||||
|
||||
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
|
||||
# pytest-forked prevents segfault on py3.13
|
||||
# https://github.com/protocolbuffers/protobuf/issues/22067
|
||||
epytest -p pytest_forked --forked
|
||||
}
|
||||
Reference in New Issue
Block a user