--- Begin Message ---
Package: python-setuptools
Version: 18.4-2
Severity: normal
Tags: patch
Dear Maintainer,
while debugging a case of /usr/lib/python2.7/dist-packages erroneously
being added to easy_install.pth when runnning "setup.py install --user"
for a package of mine, I found a possible bug in a Debian patch
to python-setuptools.
The function get_site_dirs in command/easy_install.py does not return
the system dist-packages path. The reason is that the current patch in
install-layout.diff modifies the wrong section of get_site_dirs. The
current version after applying install-layout.diff reads
[...]
if sys.platform in ('os2emx', 'riscos'):
sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
elif os.sep == '/':
sitedirs.extend([os.path.join(prefix,
"lib",
"python" + sys.version[:3],
"site-packages"),
os.path.join(prefix, "lib", "site-python")])
else:
if sys.version[:3] in ('2.3', '2.4', '2.5'):
sdir = "site-packages"
else:
sdir = "dist-packages"
sitedirs.extend(
[os.path.join(prefix, "local/lib", "python" + sys.version[:3], sdir),
os.path.join(prefix, "lib", "python" + sys.version[:3],
sdir)]
)
[...]
You can see that the modifications involving dist-packages are in the block for
the case that os.sep != '/', which is presumably never executed on Debian. I
think they should rather be included in the elif block.
I tried to fix the problem and prepared a debdiff of my changes against version
18.4-2. This fixed my original problem mentioned in the first paragraph.
Best,
Philipp
-- System Information:
Debian Release: stretch/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.2.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages python-setuptools depends on:
ii python-pkg-resources 18.4-2
pn python:any <none>
python-setuptools recommends no packages.
Versions of packages python-setuptools suggests:
pn python-setuptools-doc <none>
-- no debconf information
diff -Nru python-setuptools-18.4/debian/changelog python-setuptools-18.4/debian/changelog
--- python-setuptools-18.4/debian/changelog 2015-10-24 16:41:14.000000000 +0200
+++ python-setuptools-18.4/debian/changelog 2015-11-06 21:09:35.000000000 +0100
@@ -1,3 +1,9 @@
+python-setuptools (18.4-2.1~tux1) unstable; urgency=medium
+
+ * Correct return value for get_sire_dirs to use dist-packages.
+
+ -- Philipp Edelmann <[email protected]> Fri, 06 Nov 2015 21:06:34 +0100
+
python-setuptools (18.4-2) unstable; urgency=medium
* Don't install the SOURCES.txt egg-info file when setup.py is called
diff -Nru python-setuptools-18.4/debian/patches/install-layout.diff python-setuptools-18.4/debian/patches/install-layout.diff
--- python-setuptools-18.4/debian/patches/install-layout.diff 2015-10-24 16:19:26.000000000 +0200
+++ python-setuptools-18.4/debian/patches/install-layout.diff 2015-11-06 21:22:05.000000000 +0100
@@ -1,5 +1,3 @@
-Index: b/setuptools/command/easy_install.py
-===================================================================
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -134,13 +134,15 @@ class easy_install(Command):
@@ -108,25 +106,26 @@
for attr, val in scheme.items():
if getattr(self, attr, None) is None:
setattr(self, attr, val)
-@@ -1328,9 +1372,14 @@ def get_site_dirs():
- "site-packages"),
- os.path.join(prefix, "lib", "site-python")])
- else:
+@@ -1322,11 +1366,14 @@ def get_site_dirs():
+ if sys.platform in ('os2emx', 'riscos'):
+ sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
+ elif os.sep == '/':
+- sitedirs.extend([os.path.join(prefix,
+- "lib",
+- "python" + sys.version[:3],
+- "site-packages"),
+- os.path.join(prefix, "lib", "site-python")])
+ if sys.version[:3] in ('2.3', '2.4', '2.5'):
+ sdir = "site-packages"
+ else:
+ sdir = "dist-packages"
- sitedirs.extend(
-- [prefix, os.path.join(prefix, "lib", "site-packages")]
-- )
++ sitedirs.extend(
+ [os.path.join(prefix, "local/lib", "python" + sys.version[:3], sdir),
+ os.path.join(prefix, "lib", "python" + sys.version[:3], sdir)]
+ )
- if sys.platform == 'darwin':
- # for framework builds *only* we add the standard Apple
- # locations. Currently only per-user, but /Library and
-Index: b/setuptools/command/install_egg_info.py
-===================================================================
+ else:
+ sitedirs.extend(
+ [prefix, os.path.join(prefix, "lib", "site-packages")]
--- a/setuptools/command/install_egg_info.py
+++ b/setuptools/command/install_egg_info.py
@@ -1,5 +1,5 @@
signature.asc
Description: PGP signature
--- End Message ---