unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* bug#37506: [core-updates] Inferiors cannot reference master branch
@ 2019-09-24 17:00 Marius Bakke
  2019-09-26 21:17 ` Ludovic Courtès
       [not found] ` <handler.37506.D37506.156978528014320.notifdone@debbugs.gnu.org>
  0 siblings, 2 replies; 8+ messages in thread
From: Marius Bakke @ 2019-09-24 17:00 UTC (permalink / raw)
  To: 37506

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

Hello,

On the 'core-updates' branch, if you try to reference the 'master'
branch in an inferior, your system will fail to build like so:

Backtrace:
          11 (primitive-load "/gnu/store/m5wq1irm2gb7r4k72qmzf1hi426?")
In ice-9/eval.scm:
    619:8 10 (_ #f)
In srfi/srfi-1.scm:
   466:18  9 (fold #<procedure 7ffff4f17ec0 at ice-9/eval.scm:336:1?> ?)
   466:18  8 (fold #<procedure 7ffff445c500 at ice-9/eval.scm:336:1?> ?)
   466:18  7 (fold #<procedure 7fffeff86ea0 at ice-9/eval.scm:336:1?> ?)
In ice-9/eval.scm:
    619:8  6 (_ #(#(#<directory (guix build utils) 7ffff5c9e500>) # ?))
In ice-9/boot-9.scm:
   2312:4  5 (save-module-excursion _)
In unknown file:
           4 (primitive-load "./guix/build/syscalls.scm")
In ice-9/eval.scm:
    619:8  3 (_ #f)
In ice-9/boot-9.scm:
  2071:24  2 (call-with-deferred-observers #<procedure 7fffeecd2480 ?>)
   260:13  1 (for-each #<procedure 7fffeecd2340 at ice-9/boot-9.scm?> ?)
In unknown file:
           0 (scm-error misc-error #f "~A ~S" ("re-exporting loc?" ?) ?)

ERROR: In procedure scm-error:
re-exporting local variable: AT_SYMLINK_NOFOLLOW
builder for `/gnu/store/3a5d7ykx6wpyw9z1i01w69cafhrzjc21-module-import-compiled.drv' failed with exit code 1
cannot build derivation `/gnu/store/l3kml1yk7ma9d1bybsjvv5iw1khy6b89-compute-guix-derivation.drv': 1 dependencies couldn't be built
guix system: error: exception thrown: #<condition &store-protocol-error [message: "build of `/gnu/store/l3kml1yk7ma9d1bybsjvv5iw1khy6b89-compute-guix-derivation.drv' failed" status: 100] 7f97fba2e540

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

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

* bug#37506: [core-updates] Inferiors cannot reference master branch
  2019-09-24 17:00 bug#37506: [core-updates] Inferiors cannot reference master branch Marius Bakke
@ 2019-09-26 21:17 ` Ludovic Courtès
  2019-09-27 12:16   ` Marius Bakke
       [not found] ` <handler.37506.D37506.156978528014320.notifdone@debbugs.gnu.org>
  1 sibling, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2019-09-26 21:17 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 37506

Hi,

Marius Bakke <mbakke@fastmail.com> skribis:

> On the 'core-updates' branch, if you try to reference the 'master'
> branch in an inferior, your system will fail to build like so:

Could you provide a manifest or something to reproduce this?

Thanks,
Ludo’.

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

* bug#37506: [core-updates] Inferiors cannot reference master branch
  2019-09-26 21:17 ` Ludovic Courtès
@ 2019-09-27 12:16   ` Marius Bakke
  2019-09-28 19:52     ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Marius Bakke @ 2019-09-27 12:16 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 37506


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

Ludovic Courtès <ludo@gnu.org> writes:

> Hi,
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> On the 'core-updates' branch, if you try to reference the 'master'
>> branch in an inferior, your system will fail to build like so:
>
> Could you provide a manifest or something to reproduce this?

Here is a manifest that reproduces this failure:


[-- Attachment #1.2: hello-manifest.scm --]
[-- Type: text/plain, Size: 394 bytes --]

(use-modules (guix channels)
             (guix inferior)
             (srfi srfi-1))

(define channels
  (list (channel
         (name 'guix)
         (url "https://git.savannah.gnu.org/git/guix.git")
         (commit "dec845606d2d184da31065fa26cd951b84b3ce2d"))))

(define inferior
  (inferior-for-channels channels))

(packages->manifest (first (lookup-inferior-packages inferior "hello")))

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

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

* bug#37506: [core-updates] Inferiors cannot reference master branch
  2019-09-27 12:16   ` Marius Bakke
@ 2019-09-28 19:52     ` Ludovic Courtès
  2019-09-29 11:46       ` Marius Bakke
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2019-09-28 19:52 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 37506

Hi Marius!

Marius Bakke <mbakke@fastmail.com> skribis:

> Here is a manifest that reproduces this failure:
>
> (use-modules (guix channels)
>              (guix inferior)
>              (srfi srfi-1))
>
> (define channels
>   (list (channel
>          (name 'guix)
>          (url "https://git.savannah.gnu.org/git/guix.git")
>          (commit "dec845606d2d184da31065fa26cd951b84b3ce2d"))))
>
> (define inferior
>   (inferior-for-channels channels))
>
> (packages->manifest (first (lookup-inferior-packages inferior "hello")))
                       ^~~~~
‘packages->manifest’ expects a list, so I had to remove the call to ‘first’.

But then it works for me on both ‘core-updates’ and ‘master’:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix package -m /tmp/t.scm -p /tmp/prof
Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
installing new manifest from '/tmp/t.scm' with 1 entries
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivation will be built:
   /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv
The following profile hooks will be built:
   /gnu/store/8rp1mzhlscri2ipx9xszld9sli79ywpn-ca-certificate-bundle.drv
   /gnu/store/g2cvc48yn91igp7bvsv6bw5cz47gzgzs-fonts-dir.drv
   /gnu/store/p5m0rag6q73qisrcnp0l79fdrp1hj2rv-manual-database.drv
   /gnu/store/pvhkcys50sz2apq1pb05fgva2hky91ap-info-dir.drv
building CA certificate bundle...
building fonts directory...
building directory of Info manuals...
building database for manual pages...
building /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv...
1 package in profile
hint: Consider setting the necessary environment variables by running:

     GUIX_PROFILE="/tmp/prof"
     . "$GUIX_PROFILE/etc/profile"

Alternately, see `guix package --search-paths -p "/tmp/prof"'.

$ git log|head -1
commit 3128d6a16a80d40d927c41f530dd48ebbb8a036d
--8<---------------cut here---------------end--------------->8---

Am I missing something?

Ludo’.

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

* bug#37506: [core-updates] Inferiors cannot reference master branch
  2019-09-28 19:52     ` Ludovic Courtès
@ 2019-09-29 11:46       ` Marius Bakke
  2019-09-29 19:27         ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Marius Bakke @ 2019-09-29 11:46 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 37506


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

Ludovic Courtès <ludo@gnu.org> writes:

> Hi Marius!
>
> Marius Bakke <mbakke@fastmail.com> skribis:
>
>> Here is a manifest that reproduces this failure:
>>
>> (use-modules (guix channels)
>>              (guix inferior)
>>              (srfi srfi-1))
>>
>> (define channels
>>   (list (channel
>>          (name 'guix)
>>          (url "https://git.savannah.gnu.org/git/guix.git")
>>          (commit "dec845606d2d184da31065fa26cd951b84b3ce2d"))))
>>
>> (define inferior
>>   (inferior-for-channels channels))
>>
>> (packages->manifest (first (lookup-inferior-packages inferior "hello")))
>                        ^~~~~
> ‘packages->manifest’ expects a list, so I had to remove the call to ‘first’.

Whoops...  It still fails in the same way for me without the (first ...).

> But then it works for me on both ‘core-updates’ and ‘master’:
>
> --8<---------------cut here---------------start------------->8---
> $ ./pre-inst-env guix package -m /tmp/t.scm -p /tmp/prof
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> installing new manifest from '/tmp/t.scm' with 1 entries
> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
> The following derivation will be built:
>    /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv
> The following profile hooks will be built:
>    /gnu/store/8rp1mzhlscri2ipx9xszld9sli79ywpn-ca-certificate-bundle.drv
>    /gnu/store/g2cvc48yn91igp7bvsv6bw5cz47gzgzs-fonts-dir.drv
>    /gnu/store/p5m0rag6q73qisrcnp0l79fdrp1hj2rv-manual-database.drv
>    /gnu/store/pvhkcys50sz2apq1pb05fgva2hky91ap-info-dir.drv
> building CA certificate bundle...
> building fonts directory...
> building directory of Info manuals...
> building database for manual pages...
> building /gnu/store/4h0y9413i4nvdwccz5svv1m5y36l384v-profile.drv...
> 1 package in profile
> hint: Consider setting the necessary environment variables by running:
>
>      GUIX_PROFILE="/tmp/prof"
>      . "$GUIX_PROFILE/etc/profile"
>
> Alternately, see `guix package --search-paths -p "/tmp/prof"'.
>
> $ git log|head -1
> commit 3128d6a16a80d40d927c41f530dd48ebbb8a036d
> --8<---------------cut here---------------end--------------->8---
>
> Am I missing something?

I have included a system configuration that works fine on 'master' but
not on 'core-updates'.  It consistently fails to `guix system build`
across multiple machines, including "berlin".


[-- Attachment #1.2: minimal-vm.scm --]
[-- Type: text/plain, Size: 943 bytes --]

(use-modules (gnu) (gnu system nss)
             (guix inferior) (guix channels)
             (srfi srfi-1))
(use-service-modules base)

(define channels
  (list (channel
         (name 'guix)
         (url "https://git.savannah.gnu.org/git/guix.git")
         (commit "9b983086345557ac0a6a40c8cb3a2afd5250d3ee"))))

(define inferior
  (inferior-for-channels channels))

(operating-system
  (host-name "antelope")
  (timezone "Europe/Paris")
  (locale "en_US.utf8")
  (kernel (first (lookup-inferior-packages "linux-libre")))

  (bootloader (bootloader-configuration
                (bootloader grub-bootloader)
                (target "/dev/sda")))

  (file-systems (cons (file-system
                        (device "/dev/sda1")
                        (mount-point "/")
                        (type "ext4"))
                      %base-file-systems))

  (users %base-user-accounts)
  (packages %base-packages)
  (services %base-services))

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

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

* bug#37506: [core-updates] Inferiors cannot reference master branch
  2019-09-29 11:46       ` Marius Bakke
@ 2019-09-29 19:27         ` Ludovic Courtès
  0 siblings, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2019-09-29 19:27 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 37506-done

Hi Marius,

Marius Bakke <mbakke@fastmail.com> skribis:

> I have included a system configuration that works fine on 'master' but
> not on 'core-updates'.  It consistently fails to `guix system build`
> across multiple machines, including "berlin".

Oh I see.  This is fixed by cherry-picking
96783ed6275cd2818ff56916274e6e4582f1dc9b from ‘core-updates’ into
‘master’.  Will push shortly.

Thank you!

Ludo’.

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

* bug#37506: [core-updates] Inferiors cannot reference master branch
       [not found] ` <handler.37506.D37506.156978528014320.notifdone@debbugs.gnu.org>
@ 2019-09-30  8:15   ` Ludovic Courtès
  2019-10-02  9:40     ` Ludovic Courtès
  0 siblings, 1 reply; 8+ messages in thread
From: Ludovic Courtès @ 2019-09-30  8:15 UTC (permalink / raw)
  To: Marius Bakke, 37506

Hello,

> Oh I see.  This is fixed by cherry-picking
> 96783ed6275cd2818ff56916274e6e4582f1dc9b from ‘core-updates’ into
> ‘master’.  Will push shortly.

On second thought, that doesn’t solve the problem for revisions on the
current ‘master’ branch between and
456c7ade095cce96f47389c37a4fe3b0390047fd and
7089f98ef1c274f1607ec314f3a16bd3c3ac89a4.  For any commit in that range,
‘guix pull --commit=COMMIT’ will now always fail with:

--8<---------------cut here---------------start------------->8---
[10/86] Loading './guix/build/syscalls.scm'...
Backtrace:
          11 (primitive-load "/gnu/store/yk0wdnkknq9wra78ndvzv2vhc11?")
In ice-9/eval.scm:
    619:8 10 (_ #f)
In srfi/srfi-1.scm:
   466:18  9 (fold #<procedure 7ffff5afbe00 at ice-9/eval.scm:336:1?> ?)
   466:18  8 (fold #<procedure 7fffef7ef0a0 at ice-9/eval.scm:336:1?> ?)
   466:18  7 (fold #<procedure 7ffff4a17420 at ice-9/eval.scm:336:1?> ?)
In ice-9/eval.scm:
    619:8  6 (_ #(#(#<directory (guix build utils) 7ffff5f51500>) # ?))
In ice-9/boot-9.scm:
   2312:4  5 (save-module-excursion _)
In unknown file:
           4 (primitive-load "./guix/build/syscalls.scm")
In ice-9/eval.scm:
    619:8  3 (_ #f)
In ice-9/boot-9.scm:
  2071:24  2 (call-with-deferred-observers #<procedure 7fffeec6ea40 ?>)
   260:13  1 (for-each #<procedure 7fffeec6e900 at ice-9/boot-9.scm?> ?)
In unknown file:
           0 (scm-error misc-error #f "~A ~S" ("re-exporting loc?" ?) ?)

ERROR: In procedure scm-error:
re-exporting local variable: AT_SYMLINK_NOFOLLOW
--8<---------------cut here---------------end--------------->8---

It’s a case where code isn’t “forward-compatible”, and it’s code needed
to build the “compute-guix-derivation” trampoline.  Bummer.

We could hack something to work around it.  For example, we could add to
‘compiled-modules’ a magic parameter that would tell it to undefine
AT_SYMLINK_NOFOLLOW & co., or we could build the trampoline with 2.2.4.

Problem is that we would potentially need to keep the hack forever.

Needs more thought…

Ludo’.

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

* bug#37506: [core-updates] Inferiors cannot reference master branch
  2019-09-30  8:15   ` Ludovic Courtès
@ 2019-10-02  9:40     ` Ludovic Courtès
  0 siblings, 0 replies; 8+ messages in thread
From: Ludovic Courtès @ 2019-10-02  9:40 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 37506-done

Hi,

Ludovic Courtès <ludo@gnu.org> skribis:

>> Oh I see.  This is fixed by cherry-picking
>> 96783ed6275cd2818ff56916274e6e4582f1dc9b from ‘core-updates’ into
>> ‘master’.  Will push shortly.
>
> On second thought, that doesn’t solve the problem for revisions on the
> current ‘master’ branch between and
> 456c7ade095cce96f47389c37a4fe3b0390047fd and
> 7089f98ef1c274f1607ec314f3a16bd3c3ac89a4.  For any commit in that range,
> ‘guix pull --commit=COMMIT’ will now always fail with:

[...]

> ERROR: In procedure scm-error:
> re-exporting local variable: AT_SYMLINK_NOFOLLOW
>
> It’s a case where code isn’t “forward-compatible”, and it’s code needed
> to build the “compute-guix-derivation” trampoline.  Bummer.
>
> We could hack something to work around it.  For example, we could add to
> ‘compiled-modules’ a magic parameter that would tell it to undefine
> AT_SYMLINK_NOFOLLOW & co., or we could build the trampoline with 2.2.4.

I added a “quirk” for that in 37c0d4580e464a5915ea34109f78898325aae2c4.

I suppose we’ll accumulate quirks like this over time here.  Normally
they should be quite rare because the code used to build the trampoline
targets the common denominator of all Guile and Guix revisions, but
we’ll see.

Ludo’.

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

end of thread, other threads:[~2019-10-02  9:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-24 17:00 bug#37506: [core-updates] Inferiors cannot reference master branch Marius Bakke
2019-09-26 21:17 ` Ludovic Courtès
2019-09-27 12:16   ` Marius Bakke
2019-09-28 19:52     ` Ludovic Courtès
2019-09-29 11:46       ` Marius Bakke
2019-09-29 19:27         ` Ludovic Courtès
     [not found] ` <handler.37506.D37506.156978528014320.notifdone@debbugs.gnu.org>
2019-09-30  8:15   ` Ludovic Courtès
2019-10-02  9:40     ` 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).