diff options
Diffstat (limited to 'dev-python/python-distutils-extra')
6 files changed, 183 insertions, 0 deletions
diff --git a/dev-python/python-distutils-extra/Manifest b/dev-python/python-distutils-extra/Manifest new file mode 100644 index 000000000000..3c6dcf4b79ad --- /dev/null +++ b/dev-python/python-distutils-extra/Manifest @@ -0,0 +1,2 @@ +DIST python-distutils-extra-2.44.tar.bz2 37687 BLAKE2B 3d7e3ad277440bfb6fbade8b890b95aad37589700b69a26ec9a5c30e97491871bc8c8f82b540131859d2ce82cebd3758f29ca510abe28046ffcaa0e7240fad3e SHA512 517222b4e34efba730db53ffeee8b8c8d96bd9d1b6044e6ca84c0f2c1d5c0e044240b899d460c50295615c94c513f7e57db3e34e5db6588a01ec92a73999f822 +DIST python-distutils-extra-2.45.tar.bz2 38094 BLAKE2B b8c0adcb92d07e087e10389c9671e9eca78a9a634d0092c1633e184fb9d128b006903ce8f2c9deb504b3d1557a8afc78e3edea7f1a2e95734c55099b4a21dd41 SHA512 04d2be290726d7ceed599031bfa960468c6a8654c8d9105dd77cb5744f6908d1c9a6732095692aebde1f1e042ef70b2695d41586663e4d539ee96247a39f02a1 diff --git a/dev-python/python-distutils-extra/files/python-distutils-extra-2.44-skip-build.patch b/dev-python/python-distutils-extra/files/python-distutils-extra-2.44-skip-build.patch new file mode 100644 index 000000000000..f2a19990ed34 --- /dev/null +++ b/dev-python/python-distutils-extra/files/python-distutils-extra-2.44-skip-build.patch @@ -0,0 +1,63 @@ +From 4f5e11110ce9cc3f511c798acfc009ce5db4e9ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Tue, 28 Apr 2020 10:48:18 +0200 +Subject: [PATCH] Fix install_auto command with --skip-build + +python-distutils-extra seems to rely on a very bad practice of modifying +internal state (file lists) in middle of `build` commands. As a result, +if the package is installed via `build` command followed by `install +--skip-build` (since everything was built already!), most of the files +are not installed. + +Ideally, this would be resolved by making internal state updates +independent of `build` command execution. However, given that +the package is not really alive and worth the effort, let's settle +on a cheap hack of calling all `build_*` subcommands from `install` +if `--skip-build` is used. This partially reverses what standard +distutils `install` command does but it will rebuild only the data files +rather than all C extensions. + +Modify tests to use `--skip-build` unconditionally to test this better. +Testing both scenarios probably makes little sense. +--- + DistUtilsExtra/auto.py | 7 +++++++ + test/auto.py | 5 +++-- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/DistUtilsExtra/auto.py b/DistUtilsExtra/auto.py +index ea15183..db45f7a 100644 +--- a/DistUtilsExtra/auto.py ++++ b/DistUtilsExtra/auto.py +@@ -711,6 +711,13 @@ class sdist_auto(distutils.command.sdist.sdist): + + class install_auto(distutils.command.install.install): + def run(self): ++ # run build_* subcommands to get file lists if install command ++ # won't run 'build' for us ++ if self.skip_build: ++ self.run_command('build_help') ++ self.run_command('build_i18n') ++ self.run_command('build_icons') ++ + # install files from etc/ + if os.path.isdir('etc'): + # work around a bug in copy_tree() which fails with "File exists" on +diff --git a/test/auto.py b/test/auto.py +index b9644ba..15780c6 100755 +--- a/test/auto.py ++++ b/test/auto.py +@@ -873,8 +873,9 @@ print ('import iamnota.module') + ''' + self.install_tree = tempfile.mkdtemp() + +- return self.setup_py(['install', '--no-compile', '--prefix=/usr', +- '--root=' + self.install_tree]) ++ self.setup_py(['build']) ++ return self.setup_py(['install', '--no-compile', '--skip-build', ++ '--prefix=/usr', '--root=' + self.install_tree]) + + def installed_files(self): + '''Return list of file paths in install tree.''' +-- +2.26.2 + diff --git a/dev-python/python-distutils-extra/files/python-distutils-extra-2.44-test.patch b/dev-python/python-distutils-extra/files/python-distutils-extra-2.44-test.patch new file mode 100644 index 000000000000..b00fc32d017a --- /dev/null +++ b/dev-python/python-distutils-extra/files/python-distutils-extra-2.44-test.patch @@ -0,0 +1,27 @@ +From 33026583f3b2f59bcc415fae4c1ae84bfd058817 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Mon, 27 Apr 2020 21:25:37 +0200 +Subject: [PATCH] test: Find .egg-info file rather than guessing path (wrong) + +--- + test/auto.py | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/test/auto.py b/test/auto.py +index b9644ba..1d605e6 100755 +--- a/test/auto.py ++++ b/test/auto.py +@@ -734,7 +734,9 @@ print ('import iamnota.module') + # parse .egg-info + (o, e, s) = self.setup_py(['install_egg_info', '-d', self.install_tree]) + self.assertEqual(e, 'ERROR: Python module unknown not found\n') +- egg = self._installed_contents('foo-0.1.egg-info').splitlines() ++ egg_paths = [x for x in inst if x.endswith('.egg-info')] ++ self.assertEqual(len(egg_paths), 1) ++ egg = self._installed_contents(egg_paths[0].strip(os.path.sep)).splitlines() + self.assertIn('Name: foo', egg) + + # check provides +-- +2.26.2 + diff --git a/dev-python/python-distutils-extra/metadata.xml b/dev-python/python-distutils-extra/metadata.xml new file mode 100644 index 000000000000..c841ecd95322 --- /dev/null +++ b/dev-python/python-distutils-extra/metadata.xml @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Python</name> + </maintainer> + <stabilize-allarches/> + <upstream> + <bugs-to>https://www.debian.org/Bugs/</bugs-to> + </upstream> + <origin>gentoo-staging</origin> +</pkgmetadata> diff --git a/dev-python/python-distutils-extra/python-distutils-extra-2.44-r1.ebuild b/dev-python/python-distutils-extra/python-distutils-extra-2.44-r1.ebuild new file mode 100644 index 000000000000..a53af5d7f0fd --- /dev/null +++ b/dev-python/python-distutils-extra/python-distutils-extra-2.44-r1.ebuild @@ -0,0 +1,42 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DISTUTILS_USE_SETUPTOOLS="rdepend" +PYTHON_COMPAT=( python{2_7,3_6,3_7,3_8} ) + +inherit distutils-r1 + +DESCRIPTION="Gettext support, themed icons and scrollkeeper-based documentation in distutils" +HOMEPAGE=" + https://salsa.debian.org/python-team/modules/python-distutils-extra + https://launchpad.net/python-distutils-extra" +SRC_URI=" + https://salsa.debian.org/python-team/modules/python-distutils-extra/-/archive/${PV}/${P}.tar.bz2" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="amd64 ~arm ~arm64 ppc x86" +IUSE="test" +RESTRICT="!test? ( test )" + +DOCS=( doc/{README,FAQ} ) + +BDEPEND=" + test? ( + dev-libs/gobject-introspection + dev-python/httplib2[${PYTHON_USEDEP}] + dev-python/pygobject[${PYTHON_USEDEP}] + dev-util/intltool + )" + +PATCHES=( + "${FILESDIR}"/python-distutils-extra-2.44-test.patch + "${FILESDIR}"/python-distutils-extra-2.44-skip-build.patch +) + +python_test() { + unset LINGUAS PYTHONDONTWRITEBYTECODE + "${EPYTHON}" test/auto.py -v || die "Tests fail with ${EPYTHON}" +} diff --git a/dev-python/python-distutils-extra/python-distutils-extra-2.45.ebuild b/dev-python/python-distutils-extra/python-distutils-extra-2.45.ebuild new file mode 100644 index 000000000000..426f03e80fb7 --- /dev/null +++ b/dev-python/python-distutils-extra/python-distutils-extra-2.45.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DISTUTILS_USE_SETUPTOOLS="rdepend" +PYTHON_COMPAT=( python2_7 python3_{6..9} ) + +inherit distutils-r1 + +DESCRIPTION="Gettext support, themed icons and scrollkeeper-based documentation in distutils" +HOMEPAGE=" + https://salsa.debian.org/python-team/modules/python-distutils-extra + https://launchpad.net/python-distutils-extra" +SRC_URI=" + https://salsa.debian.org/python-team/modules/python-distutils-extra/-/archive/${PV}/${P}.tar.bz2" + +LICENSE="GPL-2+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +DOCS=( doc/{README,FAQ} ) + +BDEPEND=" + test? ( + dev-libs/gobject-introspection + dev-python/httplib2[${PYTHON_USEDEP}] + dev-python/pygobject[${PYTHON_USEDEP}] + dev-util/intltool + )" + +python_test() { + "${EPYTHON}" test/auto.py -v || die "Tests fail with ${EPYTHON}" +} |
