commit: 30faadd221690ba251f7f23597e02eb61560a398
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 20 02:01:54 2026 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Feb 20 14:07:37 2026 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=30faadd2
dev-python/grpcio: Bump to 1.78.1
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
dev-python/grpcio/Manifest | 3 +
dev-python/grpcio/grpcio-1.78.1.ebuild | 132 +++++++++++++++++++++++++++++++++
2 files changed, 135 insertions(+)
diff --git a/dev-python/grpcio/Manifest b/dev-python/grpcio/Manifest
index 8fe6e64f3782..e9821722ed72 100644
--- a/dev-python/grpcio/Manifest
+++ b/dev-python/grpcio/Manifest
@@ -1,6 +1,9 @@
DIST grpc-1.76.0.gh.tar.gz 15387277 BLAKE2B
529effe73d8a8f0a07b18127c05f3d9752294ffbba9b44470974905ce6a458bd2d7cbb70be59c1c22d32b56151a3f2c891b815b5eb0d8a381bf7744ceb513d0a
SHA512
6338448d7c0fc78c38480f1fafd7605d031b600a702df3771a9d1b1236da7bf97a93dbdbc2d93d12d395411dc2f2ac57587ad1b697c4b2a5ac56fb8af1184501
DIST grpc-1.78.0.gh.tar.gz 15477838 BLAKE2B
10900e436c7ad4dc79cb05e9dc18b560333c583225930c7f10f9f4c3421fb6ea4a7a98d971ae2cd8ba04ed53086faf85e2f4f489b38751b8ae5537240a5548b7
SHA512
6ec7a8acab5418e6ce85a03f749113a6e2546b39de5618217a78f9ed36e57a6b02be76a481c3ae3692405ee722a3884dd10df1a07fe83417f4247ce749a7b800
+DIST grpc-1.78.1.gh.tar.gz 15481241 BLAKE2B
b0ee12443674c238b7e9bcd15099dc2157931939069381217dea3f97ed56941421c7ad7861193e507e33227df59dc9773f45805604e4d6c92860a14799be7a76
SHA512
273098845d16aba71da0e0a35acfbf90b7dccb876e691d65712977998b58795208296431913c7b922390d76aff4ed8f05a5fae6d014e4394a6b8482e2d8ebcf8
DIST grpcio-1.76.0.tar.gz 12785182 BLAKE2B
dbd3bf849ac2a721a114087e484d8f759bc4799e2e8a4ea58236a6bcf926ccf1ee183bc61f616f7acbbff59418b9e39de921e50aa6b890e6a642f2969f9513cf
SHA512
f6cd5bb70d839c7f0a17da9635c3363d1073f590fb53518a2c603a1a93f03742e135f86105494852ae343c699a9de8a3286fd150ef9074d8a51727c61c5a55c5
DIST grpcio-1.78.0.tar.gz 12852416 BLAKE2B
bfa0f02333ebb856c3218cce4b0648b8bbc43a6288d54bee56c192092cc109d74f552915f35716ec9bf8c4fcdea87ecf62251c69af129974a28c8e170697418a
SHA512
2d6b7a5969db17c250c460085bfb6307818ad1c4e0876b3de957a75124ca8466e613446e1590121c983cca6975d97057a2978eebe1c0780cedca74c572593960
+DIST grpcio-1.78.1.tar.gz 12835760 BLAKE2B
45c2c811d5970731e88539ab60d8f99f4477a6cd6f9e64a85dee618a56709c8bd8c7476849dff9bf4d5af75e5dd845bd9a7e1259cb345394a9e8add7ededc6db
SHA512
5e123927cf9dd6cbee6c623f88007c6b89e3c0cd67ad911f9fc594546597a3a98542f04ee54b431660eaf6be5248fef67af256400209af1df61e01b1b2222829
DIST grpcio_tools-1.76.0.tar.gz 5390807 BLAKE2B
fdbd33aa1be371714d23aa0de0095e2c42d5bccd989cb562b8b2a4babe4288b6443e08bdf00927f437cda8378e3c7ec66f4d03b61b3a67bc244a3b2183d2ce95
SHA512
b1ff224387caf577beb9fdb6805e3e1b7ab7a02bb5dee3b3fce9acb83781a452e2460b6ad81b9c3a14fbe750f0b8c5e7abc4630059a2c22d4cec970a459333a0
DIST grpcio_tools-1.78.0.tar.gz 5393026 BLAKE2B
c0722de3abb2f575a86e4f1ab76cb1d84c4d0126511d9d49f9c40966e1d629ea0403760085274e94414e9ab92af3c779597f504d359df04755bd235f37b25b42
SHA512
9e5b4a9e232e916376b5ee0d344838fadadc6da6a4335cacc1293b71410bb48e77bab4789e1cd2e2f14bfaa96a81606aaa270f36ce788474a8782d0cf969c02b
+DIST grpcio_tools-1.78.1.tar.gz 5392610 BLAKE2B
21b7b7aa2291351045cef62d4457f3afdf9eabf6754b9371a873032bc7dd96003314b594dd5474914c08965e9aaa206ce110c0e922cd7556c2df341da4bfa128
SHA512
c8e6e0624fbf59d8a15bf8bcf695ac8548fa54475ed196b47b917335d456a67dfd7770c1d94246f46769d62d35075c0b6ea6d2f500af173fb7c1b1cd0be5bf96
diff --git a/dev-python/grpcio/grpcio-1.78.1.ebuild
b/dev-python/grpcio/grpcio-1.78.1.ebuild
new file mode 100644
index 000000000000..bbd8ee78db69
--- /dev/null
+++ b/dev-python/grpcio/grpcio-1.78.1.ebuild
@@ -0,0 +1,132 @@
+# 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_{11..14} )
+
+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-6.31.1[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_PLUGINS=()
+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
+ )
+ 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
+}