On Thu, 26 Nov 2015 09:59:12 +0100 ludo@gnu.org (Ludovic Courtès) wrote: > Ricardo Wurmus skribis: > > > Efraim Flashner writes: > > > >> Guix build python2-cryptography builds fine, guix build python2-oauthlib > >> rebuilds python2-cryptography, and fails to build. Python2-cryptography has > >> an additional input of python2-ipaddress which doesn't get carried along when > >> python2-cryptography is an input and not the final build. > > > > I think that’s pretty normal. We have the same situation in > > ‘python2-openssl’ where we have to explicitly add ‘python2-cryptography’ > > and remove ‘python-cryptography’. > > Yes, and this is due to the fact that ‘python2-cryptography’ is not just > an automatically-translated package: > > (define-public python2-cryptography > (let ((crypto (package-with-python2 python-cryptography))) > (package (inherit crypto) > (propagated-inputs > `(("python2-ipaddress" ,python2-ipaddress) > ,@(package-propagated-inputs crypto)))))) > > If it were simply equal to (package-with-python2 python-cryptography), > there would be no need for the manual tweak in ‘python-pyopenssl’. > > Efraim, could you apply the same strategy as for ‘python2-pyopenssl’ in > ‘python2-oauthlib’? Ok, I understand now. I thought I had to edit python2-cryptography to fix python2-oauthlib, now I realize everytime I use python2-cryptography I need to make sure it pulls the right one. > > > It would, of course, be nice if package-with-python2 could handle this > > automatically. > > I think we would need a way to register “translation” results. > Currently ‘package-with-python2’ internally uses a hash table to memoize > conversion results. We could imagine adding something like: > > (register-python2-variant PY3VARIANT PY2VARIANT) > > to explicitly add a pair to that hash table. > > The downside of this approach is that this would break referential > transparency. > > WDYT? > > Thanks, > Ludo’. We already have the python- and python2- variants as the same packages, just with the occasional additional input to make it build. Mapping the two together might speed up package-with-python2. I'm going to keep on looking at guix/build-systems/python.scm to see if I can come up with something to not need to specifically declare python2-foo every time python-foo ends up being used. -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted