unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* cross-compiling in core-updates
@ 2017-04-25 11:44 rennes
  2017-04-25 14:10 ` Manolis Ragkousis
  0 siblings, 1 reply; 8+ messages in thread
From: rennes @ 2017-04-25 11:44 UTC (permalink / raw)
  To: guix-devel


When I try './pre-inst-env guix build --target=i586-pc-gnu  
bootstrap-tarballs' in core-updates, get the error:

@ build-started  
/gnu/store/ya79b5bk7b819nh64k3lk5iwjmg5hnan-bash-static-4.4.12.drv -  
x86_64-linux  
/var/log/guix/drvs/ya//79b5bk7b819nh64k3lk5iwjmg5hnan-bash-static-4.4.12.drv.bz2
ice-9/psyntax.scm:1534:32: In procedure expand-macro:
ice-9/psyntax.scm:1534:32: Syntax error:
/gnu/store/9drn9v3pkgwxys8wkmv0pkiqaqv5dqyg-bash-static-4.4.12-guile-builder:1:2300:  
source expression failed to match any pattern in form (%modify-phases  
phases* (delete (quote move-development-files)))
builder for  
`/gnu/store/ya79b5bk7b819nh64k3lk5iwjmg5hnan-bash-static-4.4.12.drv'  
failed with exit code 1
@ build-failed  
/gnu/store/ya79b5bk7b819nh64k3lk5iwjmg5hnan-bash-static-4.4.12.drv - 1  
builder for  
`/gnu/store/ya79b5bk7b819nh64k3lk5iwjmg5hnan-bash-static-4.4.12.drv'  
failed with exit code 1

I'm trying to find the cause!

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

* Re: cross-compiling in core-updates
  2017-04-25 11:44 cross-compiling in core-updates rennes
@ 2017-04-25 14:10 ` Manolis Ragkousis
  2017-04-25 21:26   ` Sergei Trofimovich
  0 siblings, 1 reply; 8+ messages in thread
From: Manolis Ragkousis @ 2017-04-25 14:10 UTC (permalink / raw)
  To: rennes; +Cc: Guix-devel

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

Hello Rene,

I am currently looking into that.

Manolis

[-- Attachment #2: Type: text/html, Size: 170 bytes --]

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

* Re: cross-compiling in core-updates
  2017-04-25 14:10 ` Manolis Ragkousis
@ 2017-04-25 21:26   ` Sergei Trofimovich
  2017-04-28 19:04     ` Manolis Ragkousis
  0 siblings, 1 reply; 8+ messages in thread
From: Sergei Trofimovich @ 2017-04-25 21:26 UTC (permalink / raw)
  To: Manolis Ragkousis, Ludovic Courtès, Andy Wingo; +Cc: Guix-devel, rennes

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

On Tue, 25 Apr 2017 17:10:58 +0300
Manolis Ragkousis <manolis837@gmail.com> wrote:

> Hello Rene,
> 
> I am currently looking into that.
> 
> Manolis

I've tracked it down to guile-2.-0>2.2 bump.
'define-syntax %modify-phases' somehow changed the meaning:
    https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00315.html
but I know almost nothing on how all the nested guix's quotations interact.

Would be nice to hear from those who Know Things (CCed Andy and Ludovic :)

-- 

  Sergei

[-- Attachment #2: Цифровая подпись OpenPGP --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: cross-compiling in core-updates
  2017-04-25 21:26   ` Sergei Trofimovich
@ 2017-04-28 19:04     ` Manolis Ragkousis
  2017-05-02  7:14       ` Andy Wingo
  0 siblings, 1 reply; 8+ messages in thread
From: Manolis Ragkousis @ 2017-04-28 19:04 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: Guix-devel, rennes

The reason for the cascading errors is bash-minimal.

Trying to build `./pre-inst-env guix build bash-minimal'
on core-updates ends up with :

The following derivation will be built:
   /gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv
@ build-started
/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv -
x86_64-linux
/usr/local/var/log/guix/drvs/1r//0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv.bz2
ice-9/psyntax.scm:1534:32: In procedure expand-macro:
ice-9/psyntax.scm:1534:32: Syntax error:
/gnu/store/k84sww1zzh33a5hw8bcmsa5yp7w628a8-bash-minimal-4.4.12-guile-builder:1:2285:
source expression failed to match any pattern in form (%modify-phases
phases* (delete (quote move-development-files)))
builder for
`/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv'
failed with exit code 1
@ build-failed
/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv - 1
builder for
`/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv'
failed with exit code 1
guix build: error: build failed: build of
`/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv' failed

It's the same issue Sergei reported and commit 78dea6f1d4a did not fix it.

On 04/26/17 00:26, Sergei Trofimovich wrote:
> On Tue, 25 Apr 2017 17:10:58 +0300
> Manolis Ragkousis <manolis837@gmail.com> wrote:
> 
>> Hello Rene,
>>
>> I am currently looking into that.
>>
>> Manolis
> 
> I've tracked it down to guile-2.-0>2.2 bump.
> 'define-syntax %modify-phases' somehow changed the meaning:
>     https://lists.gnu.org/archive/html/guix-devel/2017-04/msg00315.html
> but I know almost nothing on how all the nested guix's quotations interact.
> 
> Would be nice to hear from those who Know Things (CCed Andy and Ludovic :)
> 

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

* Re: cross-compiling in core-updates
  2017-04-28 19:04     ` Manolis Ragkousis
@ 2017-05-02  7:14       ` Andy Wingo
  2017-05-02 19:03         ` Sergei Trofimovich
  0 siblings, 1 reply; 8+ messages in thread
From: Andy Wingo @ 2017-05-02  7:14 UTC (permalink / raw)
  To: Manolis Ragkousis; +Cc: Guix-devel, rennes

On Fri 28 Apr 2017 21:04, Manolis Ragkousis <manolis837@gmail.com> writes:

> The reason for the cascading errors is bash-minimal.
>
> Trying to build `./pre-inst-env guix build bash-minimal'
> on core-updates ends up with :
>
> The following derivation will be built:
>    /gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv
> @ build-started
> /gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv -
> x86_64-linux
> /usr/local/var/log/guix/drvs/1r//0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv.bz2
> ice-9/psyntax.scm:1534:32: In procedure expand-macro:
> ice-9/psyntax.scm:1534:32: Syntax error:
> /gnu/store/k84sww1zzh33a5hw8bcmsa5yp7w628a8-bash-minimal-4.4.12-guile-builder:1:2285:
> source expression failed to match any pattern in form (%modify-phases
> phases* (delete (quote move-development-files)))
> builder for
> `/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv'
> failed with exit code 1
> @ build-failed
> /gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv - 1
> builder for
> `/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv'
> failed with exit code 1
> guix build: error: build failed: build of
> `/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv' failed
>
> It's the same issue Sergei reported and commit 78dea6f1d4a did not fix it.

Hi!

I suspect I know what this is.  First, the package in question:

  (define-public bash-minimal
    ;; A stripped-down Bash for non-interactive use.
    (package (inherit bash)
      (name "bash-minimal")
      (inputs '())                                ; no readline, no curses

      ;; No "include" output because there's no support for loadable modules.
      (outputs (delete "include" (package-outputs bash)))

      (arguments
       (let ((args `(#:modules ((guix build gnu-build-system)
                                (guix build utils)
                                (srfi srfi-1)
                                (srfi srfi-26))
                     ,@(package-arguments bash))))
         (substitute-keyword-arguments args
           ((#:configure-flags flags)
            `(list "--without-bash-malloc"
                   "--disable-readline"
                   "--disable-history"
                   "--disable-help-builtin"
                   "--disable-progcomp"
                   "--disable-net-redirections"
                   "--disable-nls"

                   ;; Pretend 'dlopen' is missing so we don't build loadable
                   ;; modules and related code.
                   "ac_cv_func_dlopen=no"

                   ,@(if (%current-target-system)
                         '("bash_cv_job_control_missing=no"
                           "bash_cv_getcwd_malloc=yes")
                         '())))
           ((#:phases phases)
            `(modify-phases ,phases
               ;; No loadable modules.
               (delete 'move-development-files))))))))

So you are aware of the change in Guile regarding "keyword" matching in
macros.  In this case the "delete" in the modify-phases macro is a
keyword.  Whereas before in Guile, they were only matched by name, now
they are matched by binding.  If the keyword was bound where the macro
was defined, then it will only be matched to identifiers bound to the
same variable when the macro is used.  Otherwise if the keyword was
unbound when the macro was defined, then it will match by name, but only
if the name is also unbound at the macro use.

In (guix build utils), `delete' is bound to "delete" from (srfi srfi-1).
In the bash package definition, I am not sure what the scope is because
it's staged.  However let's assume that the #:modules bit intends to
make it so that srfi-1 is present also in the bash-minimal module.  That
should work, right?  Except I think because the bash package *also*
defines a #:modules argument, that will result in:

  #:modules the-bash-minimal-modules ... #:modules the-bash-modules

and the last keyword wins.  So, perhaps try putting the
,@(package-arguments bash) first in this list?

                    (#:modules ((guix build gnu-build-system)
                                (guix build utils)
                                (srfi srfi-1)
                                (srfi srfi-26))
                     ,@(package-arguments bash))

Andy

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

* Re: cross-compiling in core-updates
  2017-05-02  7:14       ` Andy Wingo
@ 2017-05-02 19:03         ` Sergei Trofimovich
  2017-05-02 19:20           ` Andy Wingo
  0 siblings, 1 reply; 8+ messages in thread
From: Sergei Trofimovich @ 2017-05-02 19:03 UTC (permalink / raw)
  To: Andy Wingo; +Cc: Guix-devel, rennes

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

On Tue, 02 May 2017 09:14:21 +0200
Andy Wingo <wingo@igalia.com> wrote:

> On Fri 28 Apr 2017 21:04, Manolis Ragkousis <manolis837@gmail.com> writes:
> 
> > The reason for the cascading errors is bash-minimal.
> >
> > Trying to build `./pre-inst-env guix build bash-minimal'
> > on core-updates ends up with :
> >
> > The following derivation will be built:
> >    /gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv
> > @ build-started
> > /gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv -
> > x86_64-linux
> > /usr/local/var/log/guix/drvs/1r//0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv.bz2
> > ice-9/psyntax.scm:1534:32: In procedure expand-macro:
> > ice-9/psyntax.scm:1534:32: Syntax error:
> > /gnu/store/k84sww1zzh33a5hw8bcmsa5yp7w628a8-bash-minimal-4.4.12-guile-builder:1:2285:
> > source expression failed to match any pattern in form (%modify-phases
> > phases* (delete (quote move-development-files)))
> > builder for
> > `/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv'
> > failed with exit code 1
> > @ build-failed
> > /gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv - 1
> > builder for
> > `/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv'
> > failed with exit code 1
> > guix build: error: build failed: build of
> > `/gnu/store/1r0fpfcik796g2b5v9ns163sgan1rkmz-bash-minimal-4.4.12.drv' failed
> >
> > It's the same issue Sergei reported and commit 78dea6f1d4a did not fix it.  
> 
> Hi!
> 
> I suspect I know what this is.  First, the package in question:
> 
>   (define-public bash-minimal
>     ;; A stripped-down Bash for non-interactive use.
>     (package (inherit bash)
>       (name "bash-minimal")
>       (inputs '())                                ; no readline, no curses
> 
>       ;; No "include" output because there's no support for loadable modules.
>       (outputs (delete "include" (package-outputs bash)))
> 
>       (arguments
>        (let ((args `(#:modules ((guix build gnu-build-system)
>                                 (guix build utils)
>                                 (srfi srfi-1)
>                                 (srfi srfi-26))
>                      ,@(package-arguments bash))))
>          (substitute-keyword-arguments args
>            ((#:configure-flags flags)
>             `(list "--without-bash-malloc"
>                    "--disable-readline"
>                    "--disable-history"
>                    "--disable-help-builtin"
>                    "--disable-progcomp"
>                    "--disable-net-redirections"
>                    "--disable-nls"
> 
>                    ;; Pretend 'dlopen' is missing so we don't build loadable
>                    ;; modules and related code.
>                    "ac_cv_func_dlopen=no"
> 
>                    ,@(if (%current-target-system)
>                          '("bash_cv_job_control_missing=no"
>                            "bash_cv_getcwd_malloc=yes")
>                          '())))
>            ((#:phases phases)
>             `(modify-phases ,phases
>                ;; No loadable modules.
>                (delete 'move-development-files))))))))
> 
> So you are aware of the change in Guile regarding "keyword" matching in
> macros.  In this case the "delete" in the modify-phases macro is a
> keyword.  Whereas before in Guile, they were only matched by name, now
> they are matched by binding.  If the keyword was bound where the macro
> was defined, then it will only be matched to identifiers bound to the
> same variable when the macro is used.  Otherwise if the keyword was
> unbound when the macro was defined, then it will match by name, but only
> if the name is also unbound at the macro use.
> 
> In (guix build utils), `delete' is bound to "delete" from (srfi srfi-1).
> In the bash package definition, I am not sure what the scope is because
> it's staged.  However let's assume that the #:modules bit intends to
> make it so that srfi-1 is present also in the bash-minimal module.  That
> should work, right?  Except I think because the bash package *also*
> defines a #:modules argument, that will result in:
> 
>   #:modules the-bash-minimal-modules ... #:modules the-bash-modules
> 
> and the last keyword wins.  So, perhaps try putting the
> ,@(package-arguments bash) first in this list?
> 
>                     (#:modules ((guix build gnu-build-system)
>                                 (guix build utils)
>                                 (srfi srfi-1)
>                                 (srfi srfi-26))
>                      ,@(package-arguments bash))

Yay! The following patch makes bash-minimal compile fine!

diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index ef22728a9..38aa1786e 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -213,7 +213,7 @@ without modification.")
     (arguments
-     (let ((args `(#:modules ((guix build gnu-build-system)
+     (let ((args `(,@(package-arguments bash)
+                   #:modules ((guix build gnu-build-system)
                               (guix build utils)
                               (srfi srfi-1)
-                              (srfi srfi-26))
-                   ,@(package-arguments bash))))
+                              (srfi srfi-26)))))
        (substitute-keyword-arguments args

I'm afraid I understood almost nothing about your comments of 
visibility. The only thing I've got is that keyword argument order
matters :)

Would the similar ordering change have the no-op effect in master
branch or does it mean core-updates should do this reordering while
master should not?

Thank you!

-- 

  Sergei

[-- Attachment #2: Цифровая подпись OpenPGP --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

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

* Re: cross-compiling in core-updates
  2017-05-02 19:03         ` Sergei Trofimovich
@ 2017-05-02 19:20           ` Andy Wingo
  2017-05-03 19:32             ` rennes
  0 siblings, 1 reply; 8+ messages in thread
From: Andy Wingo @ 2017-05-02 19:20 UTC (permalink / raw)
  To: Sergei Trofimovich; +Cc: Guix-devel, rennes

On Tue 02 May 2017 21:03, Sergei Trofimovich <slyfox@inbox.ru> writes:

> Yay! The following patch makes bash-minimal compile fine!
>
> diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
> index ef22728a9..38aa1786e 100644
> --- a/gnu/packages/bash.scm
> +++ b/gnu/packages/bash.scm
> @@ -213,7 +213,7 @@ without modification.")
>      (arguments
> -     (let ((args `(#:modules ((guix build gnu-build-system)
> +     (let ((args `(,@(package-arguments bash)
> +                   #:modules ((guix build gnu-build-system)
>                                (guix build utils)
>                                (srfi srfi-1)
> -                              (srfi srfi-26))
> -                   ,@(package-arguments bash))))
> +                              (srfi srfi-26)))))
>         (substitute-keyword-arguments args

Excellent!  Thank you and Rennes and Manolis for the excellent bug
sleuthing.

> I'm afraid I understood almost nothing about your comments of 
> visibility. The only thing I've got is that keyword argument order
> matters :)

Sorry for the digression!  I didn't help things by using the term
"keyword" in two different ways :P

> Would the similar ordering change have the no-op effect in master
> branch or does it mean core-updates should do this reordering while
> master should not?

Yes, it should have no effect.  On the other hand I don't know if it
would cause a whole-world rebuild; maybe that would be a reason to not
apply it to master?  I defer to Ludovic here.

Andy

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

* Re: cross-compiling in core-updates
  2017-05-02 19:20           ` Andy Wingo
@ 2017-05-03 19:32             ` rennes
  0 siblings, 0 replies; 8+ messages in thread
From: rennes @ 2017-05-03 19:32 UTC (permalink / raw)
  To: Andy Wingo; +Cc: Guix-devel

Hello,
Following the tests('./pre-inst-env guix build --target=i586-pc-gnu  
bootstrap-tarballs'), now shows the following:

-----------------------
environment variable `PATH' set to  
`/gnu/store/5if2cargrflg5j9jh7ykqpgvm6p2ydid-tar-1.29/bin:/gnu/store/hbcpwp65nngw0abyhk27dgmbac47ymk0-xz-5.2.2/bin'
@ build-succeeded  
/gnu/store/40j2pslf5saqw7zs4z1cpr8lj7w6ibym-glibc-stripped-tarball-2.23.drv  
-
@ build-started  
/gnu/store/w26zkmxffr6b86g14631md9nq16mgi2l-grep-3.0.drv - x86_64-linux  
/var/log/guix/drvs/w2//6zkmxffr6b86g14631md9nq16mgi2l-grep-3.0.drv.bz2
ice-9/psyntax.scm:1534:32: In procedure expand-macro:
ice-9/psyntax.scm:1534:32: Syntax error:
/gnu/store/9hq535wqqxg4rxa6z4mnmykmrw368hkw-grep-3.0-guile-builder:2:1887:  
source expression failed to match any pattern in form (%modify-phases  
phases* (delete (quote fix-egrep-and-fgrep)))
builder for `/gnu/store/w26zkmxffr6b86g14631md9nq16mgi2l-grep-3.0.drv'  
failed with exit code 1
@ build-failed /gnu/store/w26zkmxffr6b86g14631md9nq16mgi2l-grep-3.0.drv  
- 1 builder for  
`/gnu/store/w26zkmxffr6b86g14631md9nq16mgi2l-grep-3.0.drv' failed with  
exit code 1
@ build-started  
/gnu/store/jf8pnajml667p4926hpfr26ma7rbqvsi-guile-static-2.0.14.drv -  
x86_64-linux  
/var/log/guix/drvs/jf//8pnajml667p4926hpfr26ma7rbqvsi-guile-static-2.0.14.drv.bz2
cannot build derivation  
`/gnu/store/jq4llinka0r42763sgnq9wlcbnbvjnmc-static-binaries-0.drv': 1  
dependencies couldn't be built
cannot build derivation  
`/gnu/store/l2fj6didfwkaqc3r2h80yvzwf350q7a4-static-binaries-tarball-0.drv':  
1 dependencies couldn't be built
cannot build derivation  
`/gnu/store/4a0n4ji7vjapyvlwpg9l3lxqb03vcr4q-bootstrap-tarballs-0.drv':  
1 dependencies couldn't be built
guix build: error: build failed: build of  
`/gnu/store/4a0n4ji7vjapyvlwpg9l3lxqb03vcr4q-bootstrap-tarballs-0.drv'  
failed
-----------------------

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

end of thread, other threads:[~2017-05-03 19:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-25 11:44 cross-compiling in core-updates rennes
2017-04-25 14:10 ` Manolis Ragkousis
2017-04-25 21:26   ` Sergei Trofimovich
2017-04-28 19:04     ` Manolis Ragkousis
2017-05-02  7:14       ` Andy Wingo
2017-05-02 19:03         ` Sergei Trofimovich
2017-05-02 19:20           ` Andy Wingo
2017-05-03 19:32             ` rennes

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).