** Description changed:

+ foolscap has accidentally dropped a build dependency on python-setuptools so 
the requires.txt is not installed.
+ This leads to software breaking which use this setuptools feature to check if 
a package provides the [secure_connections] feature and a missing dependency on 
python-twisted.
+ 
+ This is fixed by lp:~jtaylor/ubuntu/natty/foolscap/foolscap-fix-782414
+ 
+ TESTCASE:
+ > python -c 'import pkg_resources; print 
pkg_resources.require("foolscap[secure_connections]")'
+ What should happen:
+ [foolscap 0.6.1 (/usr/lib/python2.7/dist-packages), pyOpenSSL 0.10 
(/usr/lib/python2.7/dist-packages), Twisted 10.2.0 
(/usr/lib/python2.7/dist-packages)]
+ What happens:
+ $ python -c 'import pkg_resources; print 
pkg_resources.require("foolscap[secure_connections]")'
+ Traceback (most recent call last):
+   File "<string>", line 1, in <module>
+   File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 654, in 
require
+     needed = self.resolve(parse_requirements(requirements))
+   File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 557, in 
resolve
+     requirements.extend(dist.requires(req.extras)[::-1])
+   File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2180, in 
requires
+     "%s has no such extra feature %r" % (self, ext)
+ pkg_resources.UnknownExtra: foolscap 0.6.1 has no such extra feature 
'secure_connections'
+ 
+ the dependency tahoe-lafs is broken by this
+ (it is also broken by bug 782461 and bug 769935 unrelated to foolscap)
+ 
+ 
+ original description:
+ 
  The foolscap setup.py file
  
(http://foolscap.lothar.com/trac/browser/setup.py?annotate=blame&rev=7c7b1185b68076cc6176ea41b5fc677445e1e45b#L75
  ) says that if a package that requires foolscap requires an extra
  feature named "secure_connections" then foolscap requires pyOpenSSL.
  
  Other Python packages can then specify that they depend on "foolscap
  with its extra feature of 'secure_connections'". This is spelled
  "foolscap[secure_connections]". Tahoe-LAFS does this:
  
  http://tahoe-lafs.org/trac/tahoe-
  lafs/browser/trunk/src/allmydata/_auto_deps.py?annotate=blame&rev=4976#L21
  
  Currently the packaging of foolscap in Natty claims that it doesn't know
  about the "secure_connections" feature:
  
  $ python
  Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) 
  [GCC 4.5.2] on linux2
  Type "help", "copyright", "credits" or "license" for more information.
  >>> import pkg_resources
  >>> pkg_resources.require('foolscap')
  [foolscap 0.6.1 (/usr/lib/python2.7/dist-packages)]
  >>> pkg_resources.require('foolscap[secure_connections]')
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 654, in 
require
      needed = self.resolve(parse_requirements(requirements))
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 557, in 
resolve
      requirements.extend(dist.requires(req.extras)[::-1])
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2180, in 
requires
      "%s has no such extra feature %r" % (self, ext)
  pkg_resources.UnknownExtra: foolscap 0.6.1 has no such extra feature 
'secure_connections'
  
  This means that, for example, the tahoe-lafs executable that is packaged
  in Natty cannot start:
  
  $ tahoe --version
  Traceback (most recent call last):
    File "/usr/bin/tahoe", line 6, in <module>
      from pkg_resources import load_entry_point
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2671, in 
<module>
      working_set.require(__requires__)
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 654, in 
require
      needed = self.resolve(parse_requirements(requirements))
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 557, in 
resolve
      requirements.extend(dist.requires(req.extras)[::-1])
    File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2180, in 
requires
      "%s has no such extra feature %r" % (self, ext)
  pkg_resources.UnknownExtra: foolscap 0.6.1 has no such extra feature 
'secure_connections'
  $ type tahoe
  tahoe is hashed (/usr/bin/tahoe)
  $ dpkg --search /usr/bin/tahoe
  tahoe-lafs: /usr/bin/tahoe
  $ apt-cache policy tahoe-lafs
  tahoe-lafs:
    Installed: 1.8.2-0ubuntu1
    Candidate: 1.8.2-0ubuntu1
    Version table:
   *** 1.8.2-0ubuntu1 0
          500 http://us-east-1.ec2.archive.ubuntu.com/ubuntu/ natty/universe 
i386 Packages
          100 /var/lib/dpkg/status
  
  By inspecting the foolscap setup.py, you can see that the stanza that
  declares this extra feature is inside a test for the existence of
  setuptools:
  
http://foolscap.lothar.com/trac/browser/setup.py?annotate=blame&rev=7c7b1185b68076cc6176ea41b5fc677445e1e45b#L65
  
  So the easiest way to fix this is probably to configure the Ubuntu
  packaging of foolscap to indicate that setuptools is a build-time
  requirement of foolscap, and then rebuild. This should produce the
  metadata file (named /usr/share/pyshared/foolscap-0.6.1.egg-
  info/requires.txt ) that indicates that this distribution of foolscap
  knows how to provide secure_connections, as long as it is in turn
  provided with pyOpenSSL.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 11.04
  Package: python-foolscap 0.6.1-1
  ProcVersionSignature: Ubuntu 2.6.38-8.42-virtual 2.6.38.2
  Uname: Linux 2.6.38-8-virtual i686
  Architecture: i386
  Date: Fri May 13 20:23:17 2011
  Ec2AMI: ami-ccf405a5
  Ec2AMIManifest: (unknown)
  Ec2AvailabilityZone: us-east-1a
  Ec2InstanceType: t1.micro
  Ec2Kernel: aki-407d9529
  Ec2Ramdisk: unavailable
  PackageArchitecture: all
  ProcEnviron:
   LANG=en_US.UTF-8
   SHELL=/bin/bash
  SourcePackage: foolscap
  UpgradeStatus: Upgraded to natty on 2011-05-13 (0 days ago)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/782414

Title:
  tahoe-lafs can't start because foolscap packaging metadata doesn't
  declare the fact that it supports secure_connections

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to