From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: Package inputs in manifests Date: Sun, 17 Nov 2019 11:35:07 +0100 Message-ID: <87mucupz8k.fsf_-_@gnu.org> References: <87mudrxvs8.fsf@ambrevar.xyz> <87mudd59ho.fsf@gnu.org> <877e4glyc3.fsf@ambrevar.xyz> <87ftj1x8fw.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:470:142:3::10]:36271) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iWHth-0002yG-Gf for guix-devel@gnu.org; Sun, 17 Nov 2019 05:35:14 -0500 In-Reply-To: (zimoun's message of "Thu, 7 Nov 2019 13:57:08 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: zimoun Cc: Guix Devel Hi Simon! zimoun skribis: >> Ah, that no. But (guix scripts environment) has >> =E2=80=98package-environment-inputs=E2=80=99, which does exactly that, a= nd I guess we >> could expose it and document it. > > Maybe I am doing wrong but I get: > > $ ./pre-inst-env guix package -p /tmp/guix-dev -m ~/tmp/manif-dep.scm > > installing new manifest from '/home/simon/tmp/manif-dep.scm' with 53 entr= ies > guix package: error: profile contains conflicting entries for gzip > guix package: error: first entry: gzip@1.10 > /gnu/store/py3k9zla9fj3z7430v4crqj5pyrsd3qj-gzip-1.10 > guix package: error: second entry: gzip@1.10 > /gnu/store/i2cdl0hvrml8hjdqplqln8didnvxkgp5-gzip-1.10 > hint: You cannot have two different versions or variants of `gzip' in > the same profile. > > > where I tweak guix/scripts/environment.scm to export > `package-environment-inputs' and ~/tmp/manif-dep.scm contains: > > (use-modules (guix) > (guix profiles) > (guix scripts environment) > (gnu packages package-management)) > > (make-manifest (package-environment-inputs guix)) You=E2=80=99re doing it right! It turns out that two different variants of =E2=80=9Cgzip=E2=80=9D appear: one in =E2=80=98%final-inputs=E2=80=99 (the = implicit inputs of =E2=80=98gnu-build-system=E2=80=99) and another one somewhere else, hence t= he collision. The solution is to pass =E2=80=98--allow-collisions=E2=80=99, which is what= =E2=80=98guix environment=E2=80=99 does by default precisely for that reason (see commit afd06f605bf88a796acefc7ed598b43879346a6b). We could check exactly why we end up with several =E2=80=98gzip=E2=80=99 in= stances, but overall I think this kind of thing is hard to avoid for package inputs. Thanks, Ludo=E2=80=99.