From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Nieuwenhuizen Subject: bug#32749: package-with-explicit-inputs leaks-in additional inputs Date: Tue, 18 Sep 2018 06:23:44 +0200 Message-ID: <87y3bz3033.fsf@gnu.org> References: <87tvmo4f1d.fsf@gnu.org> <87musf6fas.fsf@gnu.org> 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]:47306) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g27ZP-0007NY-H2 for bug-guix@gnu.org; Tue, 18 Sep 2018 00:25:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g27ZO-0006Cr-NS for bug-guix@gnu.org; Tue, 18 Sep 2018 00:25:03 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:39271) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1g27ZO-0006BU-H4 for bug-guix@gnu.org; Tue, 18 Sep 2018 00:25:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1g27ZO-0008Ip-9K for bug-guix@gnu.org; Tue, 18 Sep 2018 00:25:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87musf6fas.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 17 Sep 2018 22:26:51 +0200") 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" To: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 32749@debbugs.gnu.org Ludovic Court=C3=A8s writes: > The difference comes from the fact that =E2=80=98gnu-make-explicit-inputs= =E2=80=99 has > Guile in its =E2=80=98inputs=E2=80=99: Ah, I missed that! > scheme@(gnu packages pawei)> (package-direct-inputs gnu-make-explicit-inp= uts) > $5 =3D (("libc" #) ("gcc" #) ("binutils" #) ("coreutils&co" #) ("bash" #) ("guile" #)) > > This comes from the fact that the =E2=80=98inputs=E2=80=99 field is not o= verridden, > unlike in the case of =E2=80=98gnu-make-no-implicit-inputs=E2=80=99. > > To solve this, the solution is to add this one =E2=80=98inputs=E2=80=99 l= ine: > > (define gnu-make-explicit-inputs > (let ((p (package-with-explicit-inputs gnu-make > (%bootstrap-inputs+toolchain) > #:guile %bootstrap-guile))) > (package-with-bootstrap-guile > (package (inherit p) > (name "make-explicit-inputs") > (inputs '()) ;<- HERE > (arguments (package-arguments p)))))) > > Perhaps you hit similar cases on =E2=80=98wip-bootstrap=E2=80=99? It=E2= =80=99s easy to leave > out too many inputs=E2=80=A6 I tried this! The dependencies look OK, but the package won't build -- there's no tar, make etc. That can be fixed by repeating the explicit inputs, like this: --8<---------------cut here---------------start------------->8--- (define gnu-make-explicit-inputs (let ((p (package-with-explicit-inputs gnu-make (%bootstrap-inputs+toolchain) #:guile %bootstrap-guile))) (package-with-bootstrap-guile (package (inherit p) (name "make-explicit-inputs") (inputs (%bootstrap-inputs+toolchain)) (native-inputs '()) (arguments (package-arguments p)))))) --8<---------------cut here---------------end--------------->8--- ...but that looks a bit strange: if we have to mention the inputs a second time the advantage over using the `gnu-make-no-implicit-inputs' package description becomes real small? I also tried (inputs (package-inputs p)) but that pulls in gcc-bootstrap-0 again; which lead me to believe `package-with-explicit-inputs' has no observable effect? Still a bit puzzled whether to revert the rewrites that removed `package-with-explicit-inputs' and replace them by this second input repetition... janneke