diff options
Diffstat (limited to 'dev-python/distlib')
| -rw-r--r-- | dev-python/distlib/distlib-0.4.0-r1.ebuild | 60 | ||||
| -rw-r--r-- | dev-python/distlib/files/distlib-0.4.0-py315.patch | 51 |
2 files changed, 111 insertions, 0 deletions
diff --git a/dev-python/distlib/distlib-0.4.0-r1.ebuild b/dev-python/distlib/distlib-0.4.0-r1.ebuild new file mode 100644 index 000000000000..85b064aea2cb --- /dev/null +++ b/dev-python/distlib/distlib-0.4.0-r1.ebuild @@ -0,0 +1,60 @@ +# Copyright 2021-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..14} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level components of distutils2/packaging" +HOMEPAGE=" + https://pypi.org/project/distlib/ + https://github.com/pypa/distlib/ +" +SRC_URI=" + https://github.com/pypa/distlib/archive/${PV}.tar.gz -> ${P}.gh.tar.gz +" + +LICENSE="PSF-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" +IUSE="test" +RESTRICT="!test? ( test )" + +# pypiserver is called as external executable +BDEPEND=" + test? ( + dev-python/pypiserver + ) +" + +src_prepare() { + local PATCHES=( + # use system pypiserver instead of bundled one + "${FILESDIR}/distlib-0.3.9-system-pypiserver.patch" + # https://github.com/pypa/distlib/commit/6286442857de9f734686d08f0e59ca8048ee357a + "${FILESDIR}/${P}-py314-test.patch" + # https://github.com/pypa/distlib/pull/256 + "${FILESDIR}/${P}-py315.patch" + ) + + # make sure it's not used + rm tests/pypi-server-standalone.py || die + + distutils-r1_src_prepare +} + +python_test() { + local -x SKIP_ONLINE=1 + local -x PYTHONHASHSEED=0 + + # disable system-site-packages -- distlib has no deps, and is very + # fragile to packages actually installed on the system + sed -i -e '/system-site-packages/s:true:false:' \ + "${BUILD_DIR}/install${EPREFIX}/usr/pyvenv.cfg" || die + + "${EPYTHON}" tests/test_all.py -v -x || + die "Tests failed with ${EPYTHON}" +} diff --git a/dev-python/distlib/files/distlib-0.4.0-py315.patch b/dev-python/distlib/files/distlib-0.4.0-py315.patch new file mode 100644 index 000000000000..4a27f0203705 --- /dev/null +++ b/dev-python/distlib/files/distlib-0.4.0-py315.patch @@ -0,0 +1,51 @@ +From 53a497ae37b3220662ac177e9477e9551e4e37b0 Mon Sep 17 00:00:00 2001 +From: Victor Stinner <vstinner@python.org> +Date: Wed, 14 Jan 2026 14:32:40 +0100 +Subject: [PATCH] Update cache_from_source() for Python 3.15 + +The debug_override parameter of cache_from_source() is deprecated in +Python 3.14. The function docstring says: + + The debug_override parameter is deprecated. If debug_override + is not None, a True value is the same as setting 'optimization' + to the empty string while a False value is equivalent to setting + 'optimization' to '1'. + +The parameter has been removed in Python 3.15. + +Fixes #255 +--- + distlib/util.py | 6 +++++- + tests/test_util.py | 2 +- + 2 files changed, 6 insertions(+), 2 deletions(-) + +diff --git a/distlib/util.py b/distlib/util.py +index 0d5bd7a..b700384 100644 +--- a/distlib/util.py ++++ b/distlib/util.py +@@ -589,7 +589,11 @@ def ensure_dir(self, path): + self.dirs_created.add(path) + + def byte_compile(self, path, optimize=False, force=False, prefix=None, hashed_invalidation=False): +- dpath = cache_from_source(path, not optimize) ++ if not optimize: ++ optimization = '' ++ else: ++ optimization = '1' ++ dpath = cache_from_source(path, optimization=optimization) + logger.info('Byte-compiling %s to %s', path, dpath) + if not self.dry_run: + if force or self.newer(path, dpath): +diff --git a/tests/test_util.py b/tests/test_util.py +index d8694a9..d4bb572 100644 +--- a/tests/test_util.py ++++ b/tests/test_util.py +@@ -652,7 +652,7 @@ def test_is_writable(self): + + def test_byte_compile(self): + path = os.path.join(self.workdir, 'hello.py') +- dpath = cache_from_source(path, True) ++ dpath = cache_from_source(path, optimization='') + self.fileop.write_text_file(path, 'print("Hello, world!")', 'utf-8') + self.fileop.byte_compile(path, optimize=False) + self.assertTrue(os.path.exists(dpath)) |
