summaryrefslogtreecommitdiff
path: root/dev-python/distlib
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/distlib')
-rw-r--r--dev-python/distlib/Manifest2
-rw-r--r--dev-python/distlib/distlib-0.4.0-r1.ebuild60
-rw-r--r--dev-python/distlib/distlib-0.4.0.ebuild58
-rw-r--r--dev-python/distlib/distlib-0.4.1.ebuild58
-rw-r--r--dev-python/distlib/files/distlib-0.3.9-system-pypiserver.patch25
-rw-r--r--dev-python/distlib/files/distlib-0.4.0-py314-test.patch28
-rw-r--r--dev-python/distlib/files/distlib-0.4.0-py315.patch51
-rw-r--r--dev-python/distlib/metadata.xml9
8 files changed, 291 insertions, 0 deletions
diff --git a/dev-python/distlib/Manifest b/dev-python/distlib/Manifest
new file mode 100644
index 000000000000..51132f026dc4
--- /dev/null
+++ b/dev-python/distlib/Manifest
@@ -0,0 +1,2 @@
+DIST distlib-0.4.0.gh.tar.gz 1245571 BLAKE2B c36fe726918bc04849465a55a2708b8686d2ba0b05baa7ff0595e03b7ff95a1afc45b037dbeab9bd14ec7a26ec49807ea5a7c458d8f8da16038c92f32291c62e SHA512 ff61f9ab4e38061d5fee3168c8b26c741a21403d793476477e0733b28b2ba5b1fb31ae6ddb5275efe7ad6936b7e79a5e7ec1b160c86bfbfe6b4ecff10e0193d2
+DIST distlib-0.4.1.gh.tar.gz 1246126 BLAKE2B 3399dce7e1c064964edbe0eecb7f96974ce65d97dcf7645547584396008e6036885725a32b323f76c767762607fd9e58feac4b4d10ac28095fcfa0546302e61b SHA512 a8d99a1b6f32fb0ca3a705db109d12ddb46aa344b153b0a8c56c857f4c1fed681cfb4f34c594ade0bbbd5097e389c2b164b2347a30b9d114d62a5e23d8733714
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..8ffb8e5146a6
--- /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_{13..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/distlib-0.4.0.ebuild b/dev-python/distlib/distlib-0.4.0.ebuild
new file mode 100644
index 000000000000..3e886ef100ab
--- /dev/null
+++ b/dev-python/distlib/distlib-0.4.0.ebuild
@@ -0,0 +1,58 @@
+# 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_{13..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"
+ )
+
+ # 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/distlib-0.4.1.ebuild b/dev-python/distlib/distlib-0.4.1.ebuild
new file mode 100644
index 000000000000..37fd6430bc35
--- /dev/null
+++ b/dev-python/distlib/distlib-0.4.1.ebuild
@@ -0,0 +1,58 @@
+# 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_{13..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/pull/256
+ "${FILESDIR}/${PN}-0.4.0-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.3.9-system-pypiserver.patch b/dev-python/distlib/files/distlib-0.3.9-system-pypiserver.patch
new file mode 100644
index 000000000000..42c3557a778c
--- /dev/null
+++ b/dev-python/distlib/files/distlib-0.3.9-system-pypiserver.patch
@@ -0,0 +1,25 @@
+diff --git a/tests/test_index.py b/tests/test_index.py
+index 95b1f05..984e241 100644
+--- a/tests/test_index.py
++++ b/tests/test_index.py
+@@ -60,11 +60,6 @@ class PackageIndexTestCase(DistlibTestCase):
+ def setUpClass(cls):
+ if cls.run_test_server:
+ cls.server = None
+- server_script = os.path.join(HERE, 'pypi-server-standalone.py')
+- if not os.path.exists(server_script):
+- logger.debug('test server not available - some tests '
+- 'will be skipped.')
+- return
+ pwdfn = os.path.join(HERE, 'passwords')
+ if not os.path.exists(pwdfn): # pragma: no cover
+ with open(pwdfn, 'w') as f:
+@@ -76,7 +71,7 @@ class PackageIndexTestCase(DistlibTestCase):
+ os.close(fd)
+ cls.sink = sink = open(cls.sinkfile, 'w')
+ cmd = [
+- sys.executable, 'pypi-server-standalone.py', '--interface', '127.0.0.1', '--port', TEST_SERVER_PORT,
++ 'pypi-server', '--interface', '127.0.0.1', '--port', TEST_SERVER_PORT,
+ '-P', 'passwords', 'packages'
+ ]
+ cls.server = subprocess.Popen(cmd, stdout=sink, stderr=sink, cwd=HERE)
diff --git a/dev-python/distlib/files/distlib-0.4.0-py314-test.patch b/dev-python/distlib/files/distlib-0.4.0-py314-test.patch
new file mode 100644
index 000000000000..cf08838092a4
--- /dev/null
+++ b/dev-python/distlib/files/distlib-0.4.0-py314-test.patch
@@ -0,0 +1,28 @@
+From 6286442857de9f734686d08f0e59ca8048ee357a Mon Sep 17 00:00:00 2001
+From: Vinay Sajip <vinay_sajip@yahoo.co.uk>
+Date: Fri, 18 Jul 2025 07:59:29 +0100
+Subject: [PATCH] Fix #251: Use more appropriate function in test.
+
+--- a/tests/test_scripts.py
++++ b/tests/test_scripts.py
+@@ -341,10 +341,8 @@ def test_dry_run(self):
+ def test_script_run(self):
+ if sys.version_info[:2] < (3, 13):
+ target = 'cgi:print_directory'
+- elif os.name != 'nt':
+- target = 'test.support.interpreters:list_all'
+ else:
+- raise unittest.SkipTest('test not available on Windows for Python >= 3.13')
++ target = 'logging:getHandlerNames'
+ files = self.maker.make('test = %s' % target)
+ self.assertEqual(len(files), 2)
+ p = subprocess.Popen([sys.executable, files[0]], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+@@ -353,7 +351,7 @@ def test_script_run(self):
+ self.assertIn(b'<H3>Current Working Directory:</H3>', stdout)
+ self.assertIn(os.getcwd().encode('utf-8'), stdout)
+ else:
+- self.assertIn(b'[Interpreter(0)]', stderr)
++ self.assertIn(b'frozenset(', stderr)
+ self.assertEqual(p.returncode, 1)
+
+ @unittest.skipUnless(os.name == 'posix', 'Test only valid for POSIX')
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))
diff --git a/dev-python/distlib/metadata.xml b/dev-python/distlib/metadata.xml
new file mode 100644
index 000000000000..d34971a915e9
--- /dev/null
+++ b/dev-python/distlib/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>