debian porting, twisted[tls] dependency
Ramakrishnan Muthukrishnan
ram at rkrishnan.org
Thu Mar 31 10:11:29 UTC 2016
On Wed, Mar 30, 2016, at 11:20 PM, Brian Warner wrote:
> On 3/30/16 6:45 AM, Ramakrishnan Muthukrishnan wrote:
>
> > I made a package and am happy to report that it all went well. We no
> > longer need a bunch of debian specific patches that we used to apply.
>
> Huzzah!
>
> > Another observation: My Debian machine which runs the 'testing' flavour
> > had the version 15.2.1 of Twisted and with that I get an error:
>
> > File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py",
> > line 2610, in requires
> > "%s has no such extra feature %r" % (self, ext)
> > pkg_resources.UnknownExtra: Twisted 15.2.1 has no such extra feature
> > 'tls'
>
> Hm. It looks like Twisted added the "tls" extra in twisted-15.1.0. So
> that message will appear on any system that has twisted-15.0.0 or older
> installed. I'm not sure how that happened on 15.2.1 .. maybe Debian
> modifies the install to remove those "extras"? Maybe the .egg-info data
>
> Pip doesn't have a full dependency resolver, so it sees the numerical
> "Twisted >= 13.0.0" constraint satisfied, and doesn't/can't use a newer
> version to additionally satisfy the [tls] constraint. But the runtime
> (pkg_resources) check is much more strict.
Okay, thanks.
> > I am a bit puzzled because on the OS-X 10.10.5, I see that twisted
> > version that comes with the system is 13.2.0 and that seem to work
> > fine.
>
> Was this in a virtualenv? In that case, you'd be isolated from the
> system and wouldn't even see that twisted-13.2.0. Or maybe the older
> setuptools there doesn't even notice the extras?
I had been running older version of tahoe-lafs without virtualenv. But
yes, I haven't run the new release on OS-X without virtualenv.
> Our current _auto_deps.py calls for "Twisted[tls] >= 13.0.0". If we want
> to use the extra, I guess that ought to be "Twisted[tls] >= 15.1.0".
>
> But we don't really need that recent of a Twisted (see
> https://tahoe-lafs.org/~warner/deps.png for a week-old graph of tahoe's
> transitive dependencies).
>
> And depending upon it would force your hand as a packager, to make sure
> that the particular distribution you're targetting has a newer copy of
> Twisted too (I'm thinking about backports here: jessie has
> twisted-14.0.2, so anyone who's backporting Tahoe would also have to
> backport twisted). Although I guess we've already forced your hand by
> adding the [tls] constraint.
Yes. It makes life hard for backporters. But perhaps twisted is quite
popular that someone already backported it and that would make my life a
bit easier. :)
> There's one other constraint: the latest Foolscap-0.11.0 requires
> "Twisted[tls] >= 16.0.0". But the previous version (Foolscap-0.10.1)
> only wanted >=10.1.0 . So a legal solution (according to the numeric
> constraints) is (tahoe-lafs==1.11.0, foolscap==0.10.1,
> twisted[tls]==13.0.0), and that *does* trigger the "no such extra [tls]"
> error. So maybe it's best to be all-in, and upgrade/backport all of
> tahoe,foolscap,twisted.
>
> So in the short term, if twisted-16.0.0 is already in the pipeline for
> testing/"stretch", then that should satisfy pkg_resources.
>
> I'll update Tahoe's dependency from "Twisted[tls] >= 13.0.0" to
> "Twisted[tls] >= 15.1.0". Porters take note: if it's inconvenient for
> you to backport twisted and foolscap too, then you can modify tahoe's
> src/allmydata/_auto_deps.py to remove the "[tls]" from "Twisted >=
> 13.0.0", as long as the OS package adds dependencies on whatever the
> older Twisted needs to provide TLS support (things like
> service-identity, pyopenssl, idna, maybe characteristic).
Thanks.
I uploaded the 1.11.0 into debian a while ago. It should be available
widely on the 'unstable' archive in a few hours.
--
Ramakrishnan
More information about the tahoe-dev
mailing list