Package: python-setuptools
Version: 16.0-1
Severity: normal
I know setuptools/pip/etc are in flux, so this may be premature.
To work around bugs in the (older) version of Pip that sid currently has
(#786440), I uninstalled python-pip and python-wheel, and installed the
current pip directly from source. Then I attempted to build a wheel
for one package ('pip wheel zope.interface'). I got an error from the
system-installed setuptools:
File "/usr/lib/python2.7/dist-packages/setuptools/command/install_lib.py",
line 129, in pf
if new_suffix and self.multiarch and dst.endswith(ext_suffix) and not
dst.endswith(new_suffix):
NameError: free variable 'new_suffix' referenced before assignment in
enclosing scope
It appears that the debian-specific patching of install_lib.py (from
debian/patches/multiarch-extname.diff) has a bug:
@@ -97,12 +112,24 @@ class install_lib(orig.install_lib):
outfiles = []
+ if self.multiarch:
+ import sysconfig
+ ext_suffix = sysconfig.get_config_var ('EXT_SUFFIX')
+ if ext_suffix.endswith(_multiarch + ext_suffix[-3:]):
+ new_suffix = None
+ else:
+ new_suffix = "%s-%s%s" % (ext_suffix[:-3], self.multiarch,
ext_suffix[-3:])
+
def pf(src, dst):
if dst in exclude:
log.warn("Skipping installation of %s (namespace package)",
dst)
return False
+ if new_suffix and self.multiarch and dst.endswith(ext_suffix) and
not dst.endswith(new_suffix):
+ dst = dst.replace(ext_suffix, new_suffix)
+ log.info("renaming extension to %s", os.path.basename(dst))
+
If self.multiarch is ever False, then the 'if new_suffix..' line inside
pf() will reference the non-existent 'new_suffix'.
I'd suggest swapping the conditions in that line:
if self.multiarch and new_suffix and ...
so that the test will be short-circuited in the non-multiarch case.
Patching it this way seems to allow me to build wheels again.
Steps To Reproduce:
dpkg --purge python-pip python-wheel
apt-get install python-setuptools
curl https://bootstrap.pypa.io/get-pip.py | sudo python
pip wheel zope.interface
Expected:
a zope.interface .whl file in the current directory
Got Instead:
the exception described above
cheers,
-Brian
-- System Information:
Debian Release: stretch/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.16.0-4-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: sysvinit (via /sbin/init)
Versions of packages python-setuptools depends on:
ii python-pkg-resources 16.0-1
pn python:any <none>
python-setuptools recommends no packages.
python-setuptools suggests no packages.
-- no debconf information
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]