diff --git a/dev-python/absl-py/Manifest b/dev-python/absl-py/Manifest index 8fead701e1889..5f9908eac1cee 100644 --- a/dev-python/absl-py/Manifest +++ b/dev-python/absl-py/Manifest @@ -1 +1,2 @@ DIST abseil-py-2.4.0.gh.tar.gz 241073 BLAKE2B bd1d2d0771f64be4eedfa8475dae16cb4590cda5fe66edc8ccfcb395b93cc9f95a561538d1002eccf5fb764c4c4e902ddfa5bf736a31cbaec1450f89105ba225 SHA512 26278e1b64e803f3a171cb7cbe4e188df0d1e27c69042b932a97160b77778e72af518b62564f5682b0a6d506ec74f8491015e37dcd1b1e1a305ac19b1505a935 +DIST abseil-py-2.5.0.gh.tar.gz 244482 BLAKE2B 51d35b7ef5f18a8579962de43d4a707c6aeaca0471ff83769f2d43728cd2fa3f53a50eab3dc263248d5f18ddf55ebb580b5c4bd11cc0d24a1c19a4fec3c81bfe SHA512 7c38a940467e518e9a9617d97da1411ef893d616ca3057faa1be6ad279ecfe0c2a49d912e2dddfa65bedebb9b5ddf31f9c3af8ada103fc7e2dc095d27998dac8 diff --git a/dev-python/absl-py/absl-py-2.5.0.ebuild b/dev-python/absl-py/absl-py-2.5.0.ebuild new file mode 100644 index 0000000000000..4fba16ad5f0a7 --- /dev/null +++ b/dev-python/absl-py/absl-py-2.5.0.ebuild @@ -0,0 +1,85 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{12..14} ) + +inherit distutils-r1 + +MY_P=abseil-py-${PV} +DESCRIPTION="Abseil Python Common Libraries" +HOMEPAGE=" + https://github.com/abseil/abseil-py/ + https://pypi.org/project/absl-py/ +" +SRC_URI=" + https://github.com/abseil/abseil-py/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + +RDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] +" + +src_prepare() { + distutils-r1_src_prepare + + # what a nightmare... well, we could have called bazel but that would + # even worse + local helpers=( + absl/flags/tests/argparse_flags_test_helper.py:absl/flags/tests/argparse_flags_test_helper + absl/logging/tests/logging_functional_test_helper.py:absl/logging/tests/logging_functional_test_helper + absl/testing/tests/absltest_fail_fast_test_helper.py:absl/testing/tests/absltest_fail_fast_test_helper + absl/testing/tests/absltest_filtering_test_helper.py:absl/testing/tests/absltest_filtering_test_helper + absl/testing/tests/absltest_randomization_testcase.py:absl/testing/tests/absltest_randomization_testcase + absl/testing/tests/absltest_sharding_test_helper.py:absl/testing/tests/absltest_sharding_test_helper + absl/testing/tests/absltest_sharding_test_helper_no_tests.py:absl/testing/tests/absltest_sharding_test_helper_no_tests + absl/testing/tests/absltest_test_helper.py:absl/testing/tests/absltest_test_helper + absl/testing/tests/absltest_test_helper_skipped.py:absl/testing/tests/absltest_test_helper_skipped + absl/testing/tests/xml_reporter_helper_test.py:absl/testing/tests/xml_reporter_helper_test + absl/tests/app_test_helper.py:absl/tests/app_test_helper_pure_python + ) + + local x + for x in "${helpers[@]}"; do + local script=${x%:*} + local sym=${x#*:} + sed -i -e "1i#!/usr/bin/env python" "${script}" || die + chmod +x "${script}" || die + ln -s "${script##*/}" "${sym}" || die + done + + # i don't wanna know how these pass for upstream with wrong helper names + sed -e 's:\(app_test_helper\)\.py:\1_pure_python:' \ + -i absl/tests/app_test.py || die + sed -e 's:\(logging_functional_test_helper\)\.py:\1:' \ + -i absl/logging/tests/logging_functional_test.py || die +} + +python_test() { + local -x PYTHONPATH=. + local -x COLUMNS=80 + local fails=0 + while read -r -d '' x; do + # This test is plain broken, as it assumes shutil.get_terminal_size() + # will fail and a broken mock will take over. + [[ ${x} == *flags_formatting_test* ]] && continue + ebegin "${x}" + "${EPYTHON}" "${x}" + eend ${?} || : "$(( fails += 1 ))" + done < <(find -name '*_test.py' -print0) + + [[ ${fails} -ne 0 ]] && die "${fails} tests failed on ${EPYTHON}" + + # we actually need to clean this up manually before running the test + # suite again... + chmod -R u+rwX "${T}"/absl_testing || die + rm -rf "${T}"/absl_testing || die +}