GNU bug report logs - #39771
[core-updates] 'guix pull' and './pre-inst-env' produces different derivations

Previous Next

Package: guix;

Reported by: Marius Bakke <mbakke <at> fastmail.com>

Date: Mon, 24 Feb 2020 21:34:01 UTC

Severity: normal

Done: Timothy Sample <samplet <at> ngyro.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 39771 in the body.
You can then email your comments to 39771 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#39771; Package guix. (Mon, 24 Feb 2020 21:34:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Marius Bakke <mbakke <at> fastmail.com>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Mon, 24 Feb 2020 21:34:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: bug-guix <at> gnu.org
Subject: [core-updates] 'guix pull' and './pre-inst-env' produces different
 derivations
Date: Mon, 24 Feb 2020 22:33:08 +0100
[Message part 1 (text/plain, inline)]
Hello,

There is a strange bug on the core-updates branch: if you 'guix pull
--branch=core-updates', everything from around 'guile-bootstrap <at> 2.0' in
the package graph will have different derivations from what you get in
the git checkout:

On my local fork of core-updates:

./pre-inst-env guix build -d bash
/gnu/store/y834q3sf056hkglpli4gr3ijmpvgzb7c-bash-5.0.16.drv

After 'guix pull -p /tmp/core-updates --url=/my/checkout
--branch=core-updates', on the same commit:

/tmp/core-updates/bin/guix build -d bash
/gnu/store/m3q1w669f7br5cs4admdy5p8rijrjmvp-bash-5.0.16.drv

I believe this is a recent regression (probably the wip-bootstrap
changes?), as I've pulled (and reconfigured) on the branch before.

Any idea what is going on here?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#39771; Package guix. (Mon, 02 Mar 2020 18:16:02 GMT) Full text and rfc822 format available.

Message #8 received at 39771 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 39771 <at> debbugs.gnu.org
Cc: Timothy Sample <samplet <at> ngyro.com>
Subject: Re: [core-updates] 'guix pull' and './pre-inst-env' produces
 different derivations
Date: Mon, 02 Mar 2020 19:14:54 +0100
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Hello,
>
> There is a strange bug on the core-updates branch: if you 'guix pull
> --branch=core-updates', everything from around 'guile-bootstrap <at> 2.0' in
> the package graph will have different derivations from what you get in
> the git checkout:
>
> On my local fork of core-updates:
>
> ./pre-inst-env guix build -d bash
> /gnu/store/y834q3sf056hkglpli4gr3ijmpvgzb7c-bash-5.0.16.drv
>
> After 'guix pull -p /tmp/core-updates --url=/my/checkout
> --branch=core-updates', on the same commit:
>
> /tmp/core-updates/bin/guix build -d bash
> /gnu/store/m3q1w669f7br5cs4admdy5p8rijrjmvp-bash-5.0.16.drv

I've tracked this down to 'gash-boot'.  Namely the use of ,(version): it
evaluates to '2.2.6' when run with ./pre-inst-env and "3.0.0" after
'guix pull'.

I suspect both are wrong, and that it really intends to use the version
of gash here.  Timothy, can you confirm?

Currently trying to 'guix pull' with a hard coded "2.2.6" version to
see if other instances need changing.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#39771; Package guix. (Mon, 02 Mar 2020 20:24:01 GMT) Full text and rfc822 format available.

Message #11 received at 39771 <at> debbugs.gnu.org (full text, mbox):

From: Marius Bakke <mbakke <at> fastmail.com>
To: 39771 <at> debbugs.gnu.org
Cc: Timothy Sample <samplet <at> ngyro.com>
Subject: Re: [core-updates] 'guix pull' and './pre-inst-env' produces
 different derivations
Date: Mon, 02 Mar 2020 21:23:32 +0100
[Message part 1 (text/plain, inline)]
Marius Bakke <mbakke <at> fastmail.com> writes:

> Marius Bakke <mbakke <at> fastmail.com> writes:
>
>> Hello,
>>
>> There is a strange bug on the core-updates branch: if you 'guix pull
>> --branch=core-updates', everything from around 'guile-bootstrap <at> 2.0' in
>> the package graph will have different derivations from what you get in
>> the git checkout:
>>
>> On my local fork of core-updates:
>>
>> ./pre-inst-env guix build -d bash
>> /gnu/store/y834q3sf056hkglpli4gr3ijmpvgzb7c-bash-5.0.16.drv
>>
>> After 'guix pull -p /tmp/core-updates --url=/my/checkout
>> --branch=core-updates', on the same commit:
>>
>> /tmp/core-updates/bin/guix build -d bash
>> /gnu/store/m3q1w669f7br5cs4admdy5p8rijrjmvp-bash-5.0.16.drv
>
> I've tracked this down to 'gash-boot'.  Namely the use of ,(version): it
> evaluates to '2.2.6' when run with ./pre-inst-env and "3.0.0" after
> 'guix pull'.
>
> I suspect both are wrong, and that it really intends to use the version
> of gash here.  Timothy, can you confirm?
>
> Currently trying to 'guix pull' with a hard coded "2.2.6" version to
> see if other instances need changing.

This patch solves the problem without triggering a full rebuild:

[diff (text/x-patch, inline)]
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm
index cfbb5e3bff..0d5bfa4dfa 100644
--- a/gnu/packages/commencement.scm
+++ b/gnu/packages/commencement.scm
@@ -151,7 +151,7 @@ pure Scheme to Tar and decompression in one easy step.")
          (use-modules (guix build gnu-bootstrap))
          (modify-phases %standard-phases
            (replace 'configure
-             (bootstrap-configure ,(version) "gash" "scripts"))
+             (bootstrap-configure "2.2.6" "gash" "scripts"))
            (replace 'build (bootstrap-build "gash"))
            (replace 'install (bootstrap-install "gash" "scripts"))
            (add-after 'install 'install-symlinks
@@ -214,7 +214,7 @@ pure Scheme to Tar and decompression in one easy step.")
                (delete-file "scripts/template.in")
                #t))
            (replace 'configure
-             (bootstrap-configure ,(version) "gash" "scripts"))
+             (bootstrap-configure "2.2.6" "gash" "scripts"))
            (replace 'build (bootstrap-build "gash"))
            (replace 'install (bootstrap-install "gash" "scripts"))
            ;; XXX: The scripts should add Gash to their load paths and
[Message part 3 (text/plain, inline)]
I have another full-rebuild commit in the pipeline (bzip2 currently
keeps a reference to the Mes toolchain), so we might as well fix it
properly.

Waiting for confirmation from Timothy as to what the proper fix is,
though.
[signature.asc (application/pgp-signature, inline)]

Reply sent to Timothy Sample <samplet <at> ngyro.com>:
You have taken responsibility. (Mon, 02 Mar 2020 23:13:02 GMT) Full text and rfc822 format available.

Notification sent to Marius Bakke <mbakke <at> fastmail.com>:
bug acknowledged by developer. (Mon, 02 Mar 2020 23:13:02 GMT) Full text and rfc822 format available.

Message #16 received at 39771-done <at> debbugs.gnu.org (full text, mbox):

From: Timothy Sample <samplet <at> ngyro.com>
To: Marius Bakke <mbakke <at> fastmail.com>
Cc: 39771-done <at> debbugs.gnu.org
Subject: Re: [core-updates] 'guix pull' and './pre-inst-env' produces
 different derivations
Date: Mon, 02 Mar 2020 18:11:56 -0500
Hi Marius,

Marius Bakke <mbakke <at> fastmail.com> writes:

> Marius Bakke <mbakke <at> fastmail.com> writes:
>
>>
>> I've tracked this down to 'gash-boot'.  Namely the use of ,(version): it
>> evaluates to '2.2.6' when run with ./pre-inst-env and "3.0.0" after
>> 'guix pull'.
>>
>> I suspect both are wrong, and that it really intends to use the version
>> of gash here.  Timothy, can you confirm?

Definitely wrong!  I think I had somehow convinced myself that the
version of Gash was available when inheriting but delayed via a thunk.
The fact that it happily returns the current Guile version means that I
never noticed how wrong I was.  Sorry!

>> Currently trying to 'guix pull' with a hard coded "2.2.6" version to
>> see if other instances need changing.
>
> This patch solves the problem without triggering a full rebuild:
>
> [...]
>
> I have another full-rebuild commit in the pipeline (bzip2 currently
> keeps a reference to the Mes toolchain), so we might as well fix it
> properly.
>
> Waiting for confirmation from Timothy as to what the proper fix is,
> though.

It should be using “package-version” to get the versions from the parent
packages.  Fixed in 0b870f7915f5da43758753fd088a22033936dc50.


-- Tim




Information forwarded to bug-guix <at> gnu.org:
bug#39771; Package guix. (Sun, 08 Mar 2020 21:00:02 GMT) Full text and rfc822 format available.

Message #19 received at 39771 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 39771 <at> debbugs.gnu.org
Cc: samplet <at> ngyro.com, mbakke <at> fastmail.com
Subject: Re: bug#39771: [core-updates] 'guix pull' and './pre-inst-env'
 produces different derivations
Date: Sun, 08 Mar 2020 21:59:28 +0100
Hi!

Timothy Sample <samplet <at> ngyro.com> skribis:

> It should be using “package-version” to get the versions from the parent
> packages.  Fixed in 0b870f7915f5da43758753fd088a22033936dc50.

Alternately, you can write:

  (arguments
    `(… ,(package-version this-package) …))

so that the version number remains correct when inheriting
(‘this-package’ is a self reference.)

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Mon, 06 Apr 2020 11:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 4 years and 20 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.