unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#39771: [core-updates] 'guix pull' and './pre-inst-env' produces different derivations
@ 2020-02-24 21:33 Marius Bakke
  2020-03-02 18:14 ` Marius Bakke
  0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2020-02-24 21:33 UTC (permalink / raw)
  To: 39771

[-- Attachment #1: Type: text/plain, Size: 739 bytes --]

Hello,

There is a strange bug on the core-updates branch: if you 'guix pull
--branch=core-updates', everything from around 'guile-bootstrap@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?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#39771: [core-updates] 'guix pull' and './pre-inst-env' produces different derivations
  2020-02-24 21:33 bug#39771: [core-updates] 'guix pull' and './pre-inst-env' produces different derivations Marius Bakke
@ 2020-03-02 18:14 ` Marius Bakke
  2020-03-02 20:23   ` Marius Bakke
  0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2020-03-02 18:14 UTC (permalink / raw)
  To: 39771

[-- Attachment #1: Type: text/plain, Size: 1022 bytes --]

Marius Bakke <mbakke@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@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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#39771: [core-updates] 'guix pull' and './pre-inst-env' produces different derivations
  2020-03-02 18:14 ` Marius Bakke
@ 2020-03-02 20:23   ` Marius Bakke
  2020-03-02 23:11     ` Timothy Sample
  0 siblings, 1 reply; 5+ messages in thread
From: Marius Bakke @ 2020-03-02 20:23 UTC (permalink / raw)
  To: 39771


[-- Attachment #1.1: Type: text/plain, Size: 1170 bytes --]

Marius Bakke <mbakke@fastmail.com> writes:

> Marius Bakke <mbakke@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@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:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: diff --]
[-- Type: text/x-patch, Size: 1187 bytes --]

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

[-- Attachment #1.3: Type: text/plain, Size: 224 bytes --]


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.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* bug#39771: [core-updates] 'guix pull' and './pre-inst-env' produces different derivations
  2020-03-02 20:23   ` Marius Bakke
@ 2020-03-02 23:11     ` Timothy Sample
  2020-03-08 20:59       ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Timothy Sample @ 2020-03-02 23:11 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 39771-done

Hi Marius,

Marius Bakke <mbakke@fastmail.com> writes:

> Marius Bakke <mbakke@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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#39771: [core-updates] 'guix pull' and './pre-inst-env' produces different derivations
  2020-03-02 23:11     ` Timothy Sample
@ 2020-03-08 20:59       ` Ludovic Courtès
  0 siblings, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2020-03-08 20:59 UTC (permalink / raw)
  To: 39771

Hi!

Timothy Sample <samplet@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’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-03-08 21:00 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-24 21:33 bug#39771: [core-updates] 'guix pull' and './pre-inst-env' produces different derivations Marius Bakke
2020-03-02 18:14 ` Marius Bakke
2020-03-02 20:23   ` Marius Bakke
2020-03-02 23:11     ` Timothy Sample
2020-03-08 20:59       ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).