summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2020-04-28 11:06:24 +0200
committerMichał Górny <mgorny@gentoo.org>2020-04-28 11:09:24 +0200
commit989d3afa60f33f990a777c254afe4dfe4e248f3a (patch)
tree42fa0e35dc05a40b8e0dbfc37f21420b15566108 /dev-python/python-distutils-extra
parentnet-libs/libtorrent-rasterbar: remove py27 (diff)
downloadgentoo-989d3afa60f33f990a777c254afe4dfe4e248f3a.tar.gz
gentoo-989d3afa60f33f990a777c254afe4dfe4e248f3a.tar.bz2
gentoo-989d3afa60f33f990a777c254afe4dfe4e248f3a.zip
dev-python/python-distutils-extra: Fix --skip-build support
Closes: https://bugs.gentoo.org/718394 Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/python-distutils-extra')
-rw-r--r--dev-python/python-distutils-extra/files/python-distutils-extra-2.44-skip-build.patch63
-rw-r--r--dev-python/python-distutils-extra/python-distutils-extra-2.44-r1.ebuild (renamed from dev-python/python-distutils-extra/python-distutils-extra-2.44.ebuild)1
2 files changed, 64 insertions, 0 deletions
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/python-distutils-extra-2.44.ebuild b/dev-python/python-distutils-extra/python-distutils-extra-2.44-r1.ebuild
index 7b03b650654a..459bb16f3d89 100644
--- a/dev-python/python-distutils-extra/python-distutils-extra-2.44.ebuild
+++ b/dev-python/python-distutils-extra/python-distutils-extra-2.44-r1.ebuild
@@ -32,6 +32,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/python-distutils-extra-2.44-test.patch
+ "${FILESDIR}"/python-distutils-extra-2.44-skip-build.patch
)
python_test() {