Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 595350 - dev-python/fabric-1.12: should depend on <dev-python/paramiko-2.0
Summary: dev-python/fabric-1.12: should depend on <dev-python/paramiko-2.0
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-09-28 09:53 UTC by Thomas Capricelli
Modified: 2017-12-18 13:39 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Capricelli 2016-09-28 09:53:35 UTC
the ebuild contains
    >=dev-python/paramiko-1.10[${PYTHON_USEDEP}]"

but installs a file:
cat /usr/lib64/python2.7/site-packages/Fabric-1.12.0-py2.7.egg-info/requires.txt 
paramiko>=1.10,<2.0

With current portage (~amd64), paramiko 2.0.2 is installed. As a result:


% fab
Traceback (most recent call last):
  File "/usr/lib/python-exec/python2.7/fab", line 6, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib64/python2.7/site-packages/pkg_resources/__init__.py", line 2985, in <module>
    @_call_aside
  File "/usr/lib64/python2.7/site-packages/pkg_resources/__init__.py", line 2971, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/pkg_resources/__init__.py", line 2998, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib64/python2.7/site-packages/pkg_resources/__init__.py", line 662, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib64/python2.7/site-packages/pkg_resources/__init__.py", line 675, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib64/python2.7/site-packages/pkg_resources/__init__.py", line 854, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'paramiko<2.0,>=1.10' distribution was not found and is required by Fabric
Comment 1 Thomas Capricelli 2016-10-05 08:06:53 UTC
This is quite an obvious change to the ebuild, isn't it ?

meanwhile, a workaround is to add this to /etc/package.mask/*


# fix bad dep in fabric ebuild
>=dev-python/paramiko-2.0.0
Comment 2 eroen 2016-11-03 20:00:29 UTC
https://github.com/fabric/fabric/issues/1461 kinda indicates the paramiko<2.0 restriction is pointless and the result of confusion about how pip works. Perhaps just sed-ing it out would be better.
Comment 3 Martin Wegner 2017-01-22 21:09:15 UTC
(In reply to eroen from comment #2)
> https://github.com/fabric/fabric/issues/1461 kinda indicates the
> paramiko<2.0 restriction is pointless and the result of confusion about how
> pip works. Perhaps just sed-ing it out would be better.

I think that this seems the way to go: As of today's update to =dev-python/pycrypto-2.6.1-r2 all paramiko-based packages such as fabric or duplicity failed with errors like this on my systems:

ValueError: CTR mode needs counter parameter, not IV

This seems to be known and deliberately, see e. g. here: https://github.com/dlitz/pycrypto/issues/149

So forcing a mask like >=dev-python/paramiko-2.0.0 no longer works for me, but letting paramiko be updated to version >2.0.0 and just dropping "<2.0" from /usr/lib64/python2.7/site-packages/Fabric-1.12.0-py2.7.egg-info/requires.txt restores working fabric (and duplicity, etc.) for me.

OTOH, maybe <paramiko-2.0.0 would need a fix for the aforementioned pycrypto issue anyways.
Comment 4 Thomas Capricelli 2017-01-22 22:27:02 UTC
(In reply to eroen from comment #2)
> https://github.com/fabric/fabric/issues/1461 kinda indicates the
> paramiko<2.0 restriction is pointless and the result of confusion about how
> pip works. Perhaps just sed-ing it out would be better.


I agree with all of that !
Comment 5 Thomas Capricelli 2017-01-23 15:21:58 UTC
(In reply to Martin Wegner from comment #3)
> I think that this seems the way to go: As of today's update to
> =dev-python/pycrypto-2.6.1-r2 all paramiko-based packages such as fabric or
> duplicity failed with errors like this on my systems:


Yeps, everything is broken again now, and even masking paramiko >=2.0 doesn't help, you need to mask pycrypto as well..
Please do something, it's getting out of control

The diff between r1 and r2 for pycrypto-2.6.1 is really big. Not what i would expect for r1->r2... And it breaks a lot.
Comment 6 Radoslaw Jozwik 2017-03-05 23:57:23 UTC
Fabric issue #1461 from Github is now closed and bumping Fabric ebuild to 1.13.1 resolved problem with Paramiko 2 for me.
Comment 7 Thomas Capricelli 2017-03-18 20:55:25 UTC
(In reply to Radoslaw Jozwik from comment #6)
> Fabric issue #1461 from Github is now closed and bumping Fabric ebuild to
> 1.13.1 resolved problem with Paramiko 2 for me.


Great, can someone bumps fabric then ?????
Comment 8 Thomas Capricelli 2017-10-22 01:42:40 UTC
Fabric 1.13 is still not in tree... is there any chance we got a fix for this bug meanwhile ?
Comment 9 Thomas Capricelli 2017-12-18 13:39:08 UTC
1.14.0 is in tree now