From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#22990: Grafts leads to inefficient substitute info retrieval Date: Sun, 13 Mar 2016 13:11:36 +0100 Message-ID: <874mcazifb.fsf@gnu.org> References: <8737rxx8gk.fsf@gnu.org> <87a8m4123s.fsf@gmail.com> 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]:44768) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1af4sR-0008GM-Hl for bug-guix@gnu.org; Sun, 13 Mar 2016 08:12:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1af4sM-0001pz-HQ for bug-guix@gnu.org; Sun, 13 Mar 2016 08:12:07 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:49533) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1af4sM-0001ps-D0 for bug-guix@gnu.org; Sun, 13 Mar 2016 08:12:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1af4sM-0001j4-Ai for bug-guix@gnu.org; Sun, 13 Mar 2016 08:12:02 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87a8m4123s.fsf@gmail.com> (Alex Kost's message of "Sat, 12 Mar 2016 12:23:35 +0300") 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: Alex Kost Cc: 22990@debbugs.gnu.org Alex Kost skribis: > Ludovic Court=C3=A8s (2016-03-11 19:52 +0300) wrote: > >> As of right now (v0.9.0-2007-g66a30a3), =E2=80=98graft-derivation=E2=80= =99 works either by: >> >> 1. Fetching substitute info about the things being built so that it >> can determine its references, which in turns allows it to determine >> whether they need to be grafted. >> >> 2. Building stuff, as a last resort, so that it can determine its >> references. > > I noticed that #1 is happening even with --no-substitutes option. Is it > intended? Not really, but I see this is because =E2=80=98substitutable-path-info=E2= =80=99 (called from =E2=80=98references/substitutes=E2=80=99, called from =E2=80=98graft-d= erivation=E2=80=99) works regardless of whether substitutes are enabled: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> ,use(guix) scheme@(guile-user)> (define s (open-connection)) scheme@(guile-user)> (set-build-options s #:use-substitutes? #f) $2 =3D #t scheme@(guile-user)> (valid-path? s "/gnu/store/qf2lm7jpiiyygxz8zq0r1ca1faz= v6smn-mutt-1.5.24") $3 =3D #f scheme@(guile-user)> (substitutable-path-info s '("/gnu/store/qf2lm7jpiiyyg= xz8zq0r1ca1fazv6smn-mutt-1.5.24")) $4 =3D (#< path: "/gnu/store/qf2lm7jpiiyygxz8zq0r1ca1fazv6sm= n-mutt-1.5.24" deriver: "/gnu/store/jcl9c3w463xa2g963q5a60rrd97y1g28-mutt-1= .5.24.drv" refs: ("/gnu/store/3gmzl5jpk700hqyr8p3kfg0vgcnw8d97-libassuan-2.= 4.2" "/gnu/store/b02lmk67jq1vcflk2m2bwzc8gmwmndqp-ncurses-6.0" "/gnu/store/= d3xdc2w87yw3raafwb9q34gxx4xqci8k-cyrus-sasl-2.1.26" "/gnu/store/pkasxagsa4z= 4viscfpl6sjszmdmwncl1-gcc-4.9.3-lib" "/gnu/store/qf2lm7jpiiyygxz8zq0r1ca1fa= zv6smn-mutt-1.5.24" "/gnu/store/qvx4q6lbwi4s3cwr8wqaa7kcva0a5c4b-openssl-1.= 0.2f" "/gnu/store/sb40mddkia0brc814xkbnhxccfm32q3a-gpgme-1.6.0" "/gnu/store= /sgzfawy95pfn7nsw3xvmca58llm5zzbc-glibc-2.22" "/gnu/store/x2p2biyybcb2wac77= qz9468asc5fm48i-perl-5.22.1" "/gnu/store/x8dmdlrn5qn0wrbcnngj55y3ab73h0pp-b= ash-4.3.42" "/gnu/store/zpxg45dq67psrn4wmfk4l635h0si8q63-libgpg-error-1.21"= ) dl-size: 0 nar-size: 6661016>) --8<---------------cut here---------------end--------------->8--- However, substitutes are not downloaded, so in this regard --no-substitutes is honored. Ludo=E2=80=99.