diff --git a/dev-python/grpcio/Manifest b/dev-python/grpcio/Manifest index cf74e9be271b5..6c28dc1760353 100644 --- a/dev-python/grpcio/Manifest +++ b/dev-python/grpcio/Manifest @@ -1,9 +1,12 @@ DIST grpc-1.80.0.gh.tar.gz 15772645 BLAKE2B 48f3acc5c3268f651dc865ce3095c306ad3fa0a4eacf6e6eea499d961c0e001e2ab43fe8f0d53713d19998f28ce0184045ad2a8ef4cdc41aee31e2fe70e2b53e SHA512 5ef6ec2277dcb2257f8ac7546057e9a3da6668676a3a4ff64e08e66abb465b5705103c4aa0b41955535ee437d4feef5b811aa3e31636c4cb76bf68c52caaccf7 DIST grpc-1.83.0.gh.tar.gz 16249899 BLAKE2B 6eb5aad73d603fe55ae7e88315a193346c4ae63f28b0800c48a5f9f915caaaf5b05aca4d26fe4be97ec6dd1006e4a85d0b27fa414df4a823358ba33f9a5fd2b2 SHA512 6bc1fa040a5087522f8b8292e00d289105e1343883290432e8327f9bca23248b31c95ef8d6954cad1fc9be7a4c1042cbfedc458da2e11de251e980a44ec753a4 DIST grpc-1.83.1.gh.tar.gz 16254795 BLAKE2B 2a8382cc0504c60272b84e699c8aaf5c7256d296357d914e6d3d63387f032be468e096f8147ffac5bfb018be375d0b24b6b135605346c2612e1ccceb0a54615d SHA512 2afa0e389beabfa6f16e845338b456a8b397ef66ca533c9ecac4461d9fa568b4f5a28bb64401d3d91122c26d65e66ce887f2680af0b5fb6069cdc8d01ac21032 +DIST grpc-1.84.0.gh.tar.gz 16364079 BLAKE2B b3b7aba77c8bc46662f58420ecaf3340a407bf8720a03e2d9a6c6355629254b4a5a6ab6e1e86d7d830be675ca20573deaf93bebb3be7875bf9915e9b733fb583 SHA512 59134070566c0f9964ee80d376162ff07c3627d3fc7e6bd4c238018fd798a1d2adbade1a413997ecbff040b2f8df0fd0a04fdc0c20e6d40b376d73ea4fd77570 DIST grpcio-1.80.0.tar.gz 12978905 BLAKE2B 2583bbdfcb05aaced115b4a4ab7d26b95efbe35bf7c2bd7989d9791d50553e05ba3e6323ce8b52c78459b34b5daeb1566ffd1e2b17c14208a13e4a06f0a2a6d5 SHA512 04ef676d6847f3d2820998c07d9f80585c105dc43e3f754b517566e86a92af94328ecdecba0b772e0abe2a53eb49102a12db93099b50d5bee576ac69cb928db5 DIST grpcio-1.83.0.tar.gz 13428824 BLAKE2B 0ddce59208ec61621e85c07cab32da67381e09ef22e47c2cc3dfac355fe2a4acd52b5fce80e1eb46e75263041aba50ebbb0839dae91124ea273847f472e3a308 SHA512 b9fbe71ea6c745473884400839b535fd305bff1f8e0ab35d9a8f1fbab5f5e30a6d2be1931a0fd48763493c8869049813814af81e5c99209a913541a3179df8d8 DIST grpcio-1.83.1.tar.gz 13445033 BLAKE2B 6d40c7fe05a85698925de774945595854838b161267c20213388306660bba9105fbc5f7f3d0941f5db7f0188d2be7b10f926ac5f5448c99eec9a7dd51f817a28 SHA512 b01a71938a4a1df648054e53c67a6fd070da2da1e09bb10c39519ed3f75735a4d05fd4446539235627395869b911286e671993f31e58a68072c5094af0a28e22 +DIST grpcio-1.84.0.tar.gz 13493876 BLAKE2B a2e7034727a1a55c91b517b93f897426aaac582c2d423a60ad0b0d0f3f2f9d2922a2bebbf169c0945de12f6e65c03f296ba26783bedb0ce38a00cd23cd6e2a3e SHA512 25ffad1f00b00fe106bd6fa4d07e41078aa134d3ea61a1b325cccd42dcb55ac3bffbf1d17326066d2ba7cebbaf925c6c2333a40c22cbc8f67644fec04104ca2d DIST grpcio_tools-1.80.0.tar.gz 6133212 BLAKE2B 9bf051314482ff946aa6edd4f8b517dec63c1188914d76a2b4d130b68408ee5ec3ec3b5a2075b7ec2257e92ee9dbad37c18c425a2b947b81640f67cadd284df6 SHA512 7d9e17cee024af6731a8b75da6de0c26b554f2c50d75acfefc7708545935af4ab8f60fe0e16550c4c2943eb6c3414c49c38dc1a71df948c87c6c743ee72fff68 DIST grpcio_tools-1.83.0.tar.gz 6400437 BLAKE2B 537209842337e749b0689d7e114395f8eeb6435d3bbcb4d8a857e487e58fc10b31b65fa313ea51f483f048125ea2a2351c88690020e6cc16e7782021c0377d51 SHA512 f18ba3130d1134eaced50f19dbc64edafffe4ad4a7edf66641316c980b0a4a1fe8c3bba21162303841e929a94de689ed1e2d015b2cef7534c9bb99a27e9f4365 DIST grpcio_tools-1.83.1.tar.gz 6399877 BLAKE2B 66b3f52f76ca0d342d74b7e61d2bfecfea1127a938742d824c67e695601349dc6d0625c8ea141960d3e88702e2b9a260d12c079beec0c114427ff50e89df66fc SHA512 828d6f5e382eb28eb7366e479a51e17fe7e7baeef08aae33f02b3f0b54604afdb54910632670f09ba26bd568d1c45fdd7f49a8b2bad46f73d55279d612b287df +DIST grpcio_tools-1.84.0.tar.gz 6401750 BLAKE2B 900df1a351252ddba7a63d7e656c999c9c6946a78c7d65d4b6239e65e42e947149d65d40fdd3f42615fc64d9fbd7d0aa77322c39171a3b761aee38ac8086a3e1 SHA512 2782982639bda49feaf979d50068598a1fbbd015c8ecb7abe244c70987d6c01a2ee9186ae4f7206d33927cb8186ade17dfb10723970b47faaae70737eb2a8f70 diff --git a/dev-python/grpcio/grpcio-1.84.0.ebuild b/dev-python/grpcio/grpcio-1.84.0.ebuild new file mode 100644 index 0000000000000..3052bfc03f186 --- /dev/null +++ b/dev-python/grpcio/grpcio-1.84.0.ebuild @@ -0,0 +1,138 @@ +# Copyright 2024-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{12..15} ) + +inherit distutils-r1 flag-o-matic multiprocessing pypi + +MY_P=grpc-${PV} +DESCRIPTION="HTTP/2-based RPC framework" +HOMEPAGE=" + https://grpc.io/ + https://github.com/grpc/grpc/ + https://pypi.org/project/grpcio/ +" +# Tests need other packages from the source tree, so use a GitHub +# archive. sdist provides bundled library sources (git submodules). +SRC_URI+=" + test? ( + https://github.com/grpc/grpc/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz + $(pypi_sdist_url grpcio_tools) + ) +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +DEPEND=" + dev-libs/openssl:= + net-dns/c-ares:= + virtual/zlib:= +" +RDEPEND=" + ${DEPEND} + >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}] +" +# TODO: try to remove coverage dep +BDEPEND=" + >=dev-python/cython-3.1.1[${PYTHON_USEDEP}] + test? ( + dev-python/coverage[${PYTHON_USEDEP}] + >=dev-python/protobuf-7.35.1[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +# signal handling tests hang often +EPYTEST_RERUNS=5 +: ${EPYTEST_TIMEOUT=15} +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + sed -i -e '/INSTALL_REQUIRES/s:~=:>=:' setup.py || die +} + +src_configure() { + # -Werror=odr -Werror=lto-type-mismatch + # https://bugs.gentoo.org/856775 + # https://github.com/grpc/grpc/issues/36158 + filter-lto + + export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$(makeopts_jobs)" + # system abseil-cpp crashes with USE=-debug, sigh + # https://bugs.gentoo.org/942021 + #export GRPC_PYTHON_BUILD_SYSTEM_ABSL=1 + export GRPC_PYTHON_BUILD_SYSTEM_CARES=1 + export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 + # re2 needs to be built against the same abseil-cpp version + #export GRPC_PYTHON_BUILD_SYSTEM_RE2=1 + export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1 + export GRPC_PYTHON_BUILD_WITH_CYTHON=1 + + # copied from setup.py, except for removed -std= that does not apply + # to C code and causes warnings + export GRPC_PYTHON_CFLAGS="-fvisibility=hidden -fno-wrapv -fno-exceptions" + # required by abseil-cpp + append-cxxflags -std=c++17 + # silence a lot of harmless noise from bad quality code + append-cxxflags -Wno-attributes +} + +python_test() { + local EPYTEST_DESELECT=( + # Internet + tests/unit/_dns_resolver_test.py::DNSResolverTest::test_connect_loopback + # not a test + tests/unit/_compression_test.py::test_compression + tests_aio/unit/channel_argument_test.py::test_if_reuse_port_enabled + # expects grpcio-admin + tests/unit/test_all_modules_installed.py::TestAllModulesInstalled::test_import_all_modules + # TODO + tests_py3_only/unit/_simple_stubs_test.py::SimpleStubsTest::test_default_ssl + tests/unit/_cython/_channel_test.py::ChannelTest::test_multiple_channels_lonely_connectivity + tests/unit/_cython/_channel_test.py::ChannelTest::test_single_channel_lonely_connectivity + tests/unit/_auth_context_test.py::AuthContextTest::testSecureNoCert + ) + local EPYTEST_IGNORE=( + # not a test + tests/unit/test_common.py + # requires oauth2client + tests/unit/beta/_implementations_test.py + ) + + cp -a "${BUILD_DIR}"/{install,test} || die + local -x PATH=${BUILD_DIR}/test/usr/bin:${PATH} + + # grpcio proper builds against system libs + # grpcio_tools supports bundled libs only, and requires different + # flags + unset GRPC_PYTHON_CFLAGS + cd "${WORKDIR}/grpcio_tools-${PV}" || die + distutils_pep517_install "${BUILD_DIR}"/test + + cd "${WORKDIR}/${MY_P}" || die + local protodir=src/proto/grpc/testing + local testdir=src/python/grpcio_tests + "${EPYTHON}" -m grpc_tools.protoc -I. --python_out="${testdir}" \ + "${protodir}"/{empty,messages}.proto || die + "${EPYTHON}" -m grpc_tools.protoc -I. --grpc_python_out="${testdir}" \ + "${protodir}"/test.proto || die + + cd "${testdir}" || die + "${EPYTHON}" -m grpc_tools.protoc -I. --python_out=. \ + tests/testing/proto/{requests,services}.proto || die + "${EPYTHON}" -m grpc_tools.protoc -I. --grpc_python_out=. \ + tests/testing/proto/services.proto || die + + # TODO: aio tests are failing randomly, so we're skipping them entirely + epytest tests{_py3_only,}/unit +}