[Python-modules-team] Bug#510901: python-foolscap: should advertise [secure_connections] feature to setuptools
warner-debbugs at lothar.com
warner-debbugs at lothar.com
Mon Jan 5 20:02:21 UTC 2009
Package: python-foolscap
Version: 0.3.2.dfsg-1
Severity: normal
[note: I'm the upstream author of Foolscap]
Hey there.. first off, thanks for getting foolscap into debian!
I'm running into a problem that results from differences between the .deb
package that I used to build locally (which uses the packaging rules in the
foolscap mercurial repository in the misc/sid/debian/ directory) and the new
package that just arrived in sid.
Our "Tahoe" project uses setuptools and pkg_resources to declare its
dependencies. When it announces a dependency on foolscap, it also requires an
"extra feature" named [secure_connections]. Foolscap announces that it
provides this extra feature, but only when the pyOpenSSL package is
available. We use this combination to make sure that everything gets built
from source correctly.
The foolscap 'setup.py' makes this announcement by adding an extra argument
to the call to setup():
setup_args['extras_require'] = { 'secure_connections' : ["pyOpenSSL"] }
The problem is that the package that is currently in sid does not make this
announcement, so Tahoe fails to build against it. There's a one-line shell
command you can use to see if the installed foolscap package provides this
feature or not:
python -c 'from pkg_resources import require; require("foolscap[secure_connections]")'
When run against my old package, it exits silently. When run against the new
package from sid, it complains:
% python -c 'from pkg_resources import require; require("foolscap[secure_connections]")'
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python2.5/site-packages/pkg_resources.py", line 626, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.5/site-packages/pkg_resources.py", line 529, in resolve
requirements.extend(dist.requires(req.extras)[::-1])
File "/usr/lib/python2.5/site-packages/pkg_resources.py", line 2115, in requires
"%s has no such extra feature %r" % (self, ext)
pkg_resources.UnknownExtra: foolscap 0.3.2 has no such extra feature 'secure_connections'
Since the extras_require= argument in the foolscap setup.py is
conditionalized upon the availability of setuptools (so it can run even
without setuptools), the problem might simply be that the sid package was
built in an environment where setuptools was unavailable. If so, the simplest
fix is probably to add python-setuptools to the "Build-Depends:" line.
I noticed that the sid package installs fewer egg-related files than my old
package did, but I think that's related to the lack of setuptools during the
build. When I debuild the package on a setuptools-capable machine, there are
more .egg-info files in the .deb, including a
foolscap-0.3.2.egg-info/requires.txt which mentions the [secure_connections]
feature.
thanks!
-Brian
-- System Information:
Debian Release: 5.0
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.22.1
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/bash
Versions of packages python-foolscap depends on:
ii python 2.5.2-3 An interactive high-level object-o
ii python-central 0.6.8 register and build utility for Pyt
ii python-twisted-core 8.1.0-4 Event-based framework for internet
ii python-twisted-web 8.1.0-1 An HTTP protocol implementation to
ii python-zopeinterface 3.3.1-7 The implementation of interface de
Versions of packages python-foolscap recommends:
hi python-openssl 0.6-5 Python wrapper around the OpenSSL
ii python-twisted-names 8.1.0-1 A DNS protocol implementation with
python-foolscap suggests no packages.
-- no debconf information
More information about the Python-modules-team
mailing list