From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#19816: 'guix environment' always downloads all the outputs of dependencies Date: Mon, 21 Dec 2015 22:31:53 +0100 Message-ID: <87zix3h4ja.fsf@gnu.org> References: <87a90op8gq.fsf@gnu.org> <87zix4rbp3.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]:34527) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aB84o-0004Bl-Ta for bug-guix@gnu.org; Mon, 21 Dec 2015 16:33:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aB84k-00058L-6R for bug-guix@gnu.org; Mon, 21 Dec 2015 16:33:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:51550) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aB84k-00058H-3e for bug-guix@gnu.org; Mon, 21 Dec 2015 16:33:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84) (envelope-from ) id 1aB84j-0001JH-Vq for bug-guix@gnu.org; Mon, 21 Dec 2015 16:33:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: (David Thompson's message of "Mon, 21 Dec 2015 12:21:38 -0500") 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: "Thompson, David" Cc: 19816@debbugs.gnu.org, Dave Thompson "Thompson, David" skribis: > On Sun, Dec 20, 2015 at 5:34 PM, Ludovic Court=C3=A8s wrot= e: >> ludo@gnu.org (Ludovic Court=C3=A8s) skribis: >> >>>>From : >>> >>> There=E2=80=99s another problem, though. When a dependency is a multip= le-output >>> package, all its outputs are added to the environment, because >>> =E2=80=98package->transitive-inputs=E2=80=99 discards the information o= f which output is >>> needed. >>> >>> So for instance, both the =E2=80=98out=E2=80=99 and the =E2=80=98debug= =E2=80=99 output of Coreutils end >>> up being downloaded and added to the environment, even though only =E2= =80=98out=E2=80=99 >>> is an input. >>> >>> Now, the problem is that =E2=80=98build-derivations=E2=80=99 can only b= uild *all* the >>> outputs of the given derivation. This could be worked around either: >>> >>> 1. by creating a =E2=80=9Csink=E2=80=9D derivation, for instance with >>> =E2=80=98profile-derivation=E2=80=99, that could refer precisely t= o the output(s) >>> needed; not ideal. >> >> David, I think you had started looking at doing exactly this. Do you >> have a preliminary patch you=E2=80=99d like to post? >> >> I understand you may be busy preparing the Lisp Game Jam now and I >> wouldn=E2=80=99t want to distract you from that. ;-) If you have somet= hing to >> share, I=E2=80=99m happy to help start from there though (says the guy w= ho sees >> its =E2=80=98guix environment=E2=80=99 pointlessly downloading =E2=80=9C= debug=E2=80=9D and =E2=80=9Cdoc=E2=80=9D outputs >> again.) > > The wip-environment-profiles branch has the code I've written thus > far. I rebased it on master and resolved some conflicts in hopefully > the right way. :) > > When I last hacked on it I got into a fully working state AFAICT, but > the tests needed updating and that proved to be the most challenging > part. If you're willing to finish it up, that would be awesome! Excellent, I had forgotten there was already a branch. I=E2=80=99ll see what I can do before or after my vacations! Ludo=E2=80=99.