dependency issues in the pymacaroons stack
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
pymacaroons (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Trusty |
Fix Released
|
Undecided
|
Andreas Hasenack | ||
Xenial |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* The pymacaroons stack has dependency issues identified when further
testing the backport to trusty (currently in proposed)
* Ensure that the pymacaroons stack works well in Trusty (for Ubuntu
Advantage client) but also fix the issues that matter for Xenial in
Xenial as well.
[Test Case]
* install python3-
* Without the latest fix from proposed, this command will backtrace as shown:
$ python3 -c "__requires__ = 'pymacaroons';from pkg_resources import load_entry_point"
Traceback (most recent call last):
File "/usr/lib/
ws.
File "/usr/lib/
needed = self.resolve(
File "/usr/lib/
raise VersionConflict
pkg_resources.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/
working_set = WorkingSet.
File "/usr/lib/
return cls._build_
File "/usr/lib/
dists = ws.resolve(reqs, Environment())
File "/usr/lib/
raise DistributionNot
pkg_resources.
* the python3-six dependency check isn't reached, because the check stops at the first unsatisfied dependency and that happened to be libnacl. But when testing the fixed packages, there must be no backtrace like above.
[Fix]
* Changes
- Trusty: drop python2 binaries in trusty (was not released there yet)
Xenial has those already published, we are not gonna take them away.
see [1]
- Trusty: adapt python-six dependency to match what is really needed
and available in Trusty. Xenial has a version higher than that so
don't bother modifying it there.
see [2]
- Trusty and Xenial: adapt python-libnacl dependency by backporting
upstream fix on a too struct version requirement.
see [3]
[1]: https:/
[2]: https:/
[3]: https:/
[Regression Potential]
* Lets split this section for Trusty and Xenial.
a) Xenial only gets slightly relaxed version dependencies, those should
allow pymacaroons to run, but actually never cause any additional
issues.
b) Trusty this isn't released in trusty at all yet (still in proposed
intention
regression risk next to zero. If anything then issues out of the py2
removal not working as expected, but it seems to be ok in build and
tests.
[Other Info]
* This is related to the SRU in bug 1817665
* Furthermore it is related to the MIR extension to Trusty in
bug 1746772 bug 1817327 and bug 1621386
---
On the extended testing for the SRU in bug 1817665 we found that there are a few dependency issues that need to be fixed.
Affects X&T:
python-libnacl - depends on <1.4 but xenial (and trusty soon) have 1.4.5
Fix by importing https:/
Affects T:
python-six - depends on >=1.8.0 - but trusty is on 1.5.2 still
We evaluated if we need to backport six as well (a lot or reverse deps).
We found that the usage of pymacaroons is actually ok with 1.5.2
Upstream regularly bumps the dependency level as well as some changes that got added but in the meantime removed (e.g. the serialization).
Eventually only two use cases for python3-six are left
- pymacaroons/
- pymacaroons/
None of these are changed in six between 1.5.2 and 1.8 checked by Odd_Bloke, ahasenack and me.
Affects T:
python2 - we don't need/want python2 support in this, so since we don't usually exercise and have no interest in supporting the python2 paths lets drop them from pymacaroons in trusty (where they are not published yet).
Related branches
- Canonical Server: Pending requested
- Canonical Server packageset reviewers: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 1142 lines (+117/-579)22 files modifiedPKG-INFO (+1/-1)
debian/.git-dpm (+7/-7)
debian/changelog (+8/-15)
debian/patches/fix-trusty-dependencies-libnacl.patch (+29/-0)
debian/patches/series (+1/-0)
docs/conf.py (+2/-2)
pymacaroons.egg-info/PKG-INFO (+1/-1)
pymacaroons.egg-info/requires.txt (+1/-1)
pymacaroons/__init__.py (+1/-5)
pymacaroons/caveat.py (+3/-19)
pymacaroons/caveat_delegates/base_third_party.py (+1/-2)
pymacaroons/caveat_delegates/encrypted_first_party.py (+1/-1)
pymacaroons/caveat_delegates/first_party.py (+3/-7)
pymacaroons/caveat_delegates/third_party.py (+8/-10)
pymacaroons/field_encryptors/base_field_encryptor.py (+2/-2)
pymacaroons/macaroon.py (+8/-43)
pymacaroons/serializers/binary_serializer.py (+10/-251)
pymacaroons/serializers/json_serializer.py (+15/-157)
pymacaroons/utils.py (+2/-39)
pymacaroons/verifier.py (+10/-13)
setup.cfg (+1/-1)
setup.py (+2/-2)
- Andreas Hasenack (community): Needs Fixing
- Dan Watkins (community): Approve
-
Diff: 153 lines (+74/-23)6 files modifieddebian/changelog (+18/-0)
debian/control (+0/-22)
debian/patches/fix-trusty-dependencies-libnacl.patch (+29/-0)
debian/patches/fix-trusty-dependencies-six.patch (+24/-0)
debian/patches/series (+2/-0)
debian/rules (+1/-1)
description: | updated |
Changed in pymacaroons (Ubuntu Trusty): | |
status: | New → Triaged |
Changed in pymacaroons (Ubuntu Xenial): | |
status: | New → Triaged |
Changed in pymacaroons (Ubuntu): | |
status: | New → Fix Released |
description: | updated |
description: | updated |
Changed in pymacaroons (Ubuntu Xenial): | |
assignee: | Dan Watkins (daniel-thewatkins) → Andreas Hasenack (ahasenack) |
description: | updated |
description: | updated |
Changed in pymacaroons (Ubuntu Xenial): | |
status: | Triaged → Invalid |
assignee: | Andreas Hasenack (ahasenack) → nobody |
Changed in pymacaroons (Ubuntu Trusty): | |
status: | Triaged → In Progress |
Changed in pymacaroons (Ubuntu Xenial): | |
status: | Invalid → Won't Fix |
Linked two MPs for later discussion. /launchpad. net/~paelzer/ +archive/ ubuntu/ bug-1822780- pymacaroons- dependencies/ +packages
PPA is at https:/
I expect the python2 removal (which was rather rude) to fail at first, so force pushes to those MPs might come (that is why they are still marked WIP).