From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#22013: python2 versions of packages failing as inputs Date: Thu, 26 Nov 2015 09:59:12 +0100 Message-ID: <87mvu13zmn.fsf@gnu.org> References: <20151125205517.0505f317@debian-netbook> <878u5livsz.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38657) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1sPW-0005zy-Q2 for bug-guix@gnu.org; Thu, 26 Nov 2015 04:00:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a1sPR-0007jP-1F for bug-guix@gnu.org; Thu, 26 Nov 2015 04:00:14 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:35465) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a1sPQ-0007jL-Uz for bug-guix@gnu.org; Thu, 26 Nov 2015 04:00:08 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1a1sPQ-0003Et-Er for bug-guix@gnu.org; Thu, 26 Nov 2015 04:00:08 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <878u5livsz.fsf@elephly.net> (Ricardo Wurmus's message of "Wed, 25 Nov 2015 23:00:28 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org To: Ricardo Wurmus Cc: 22013@debbugs.gnu.org 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=E2=80=99s pretty normal. We have the same situation in > =E2=80=98python2-openssl=E2=80=99 where we have to explicitly add =E2=80= =98python2-cryptography=E2=80=99 > and remove =E2=80=98python-cryptography=E2=80=99. Yes, and this is due to the fact that =E2=80=98python2-cryptography=E2=80= =99 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 =E2=80=98python-pyopenssl=E2= =80=99. Efraim, could you apply the same strategy as for =E2=80=98python2-pyopenssl= =E2=80=99 in =E2=80=98python2-oauthlib=E2=80=99? > It would, of course, be nice if package-with-python2 could handle this > automatically. I think we would need a way to register =E2=80=9Ctranslation=E2=80=9D resul= ts. Currently =E2=80=98package-with-python2=E2=80=99 internally uses a hash tab= le 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=E2=80=99.