Failing to build the website

  • Done
  • quality assurance status badge
Details
4 participants
  • Julien Lepiller
  • Ludovic Courtès
  • pelzflorian (Florian Pelz)
  • zimoun
Owner
unassigned
Submitted by
Julien Lepiller
Severity
important
J
J
Julien Lepiller wrote on 4 Sep 2022 17:18
(address . bug-guix@gnu.org)
20220904171804.76b42325@sybil.lepiller.eu
Hi Guix!

I tried to update the po files for the website today, but I was unable
to test. Trying to build the website from a clean checkout (without
updating translations) gives this error. I think it's related to the
code that generate the list of packages:

Backtrace:
In ice-9/eval.scm:
177:49 19 (lp (#<procedure 7ffff75d7e20 at ice-9/eval.scm:182:…> …))
177:49 18 (lp (#<procedure 7ffff75d7de0 at ice-9/eval.scm:282:…> …))
177:49 17 (lp (#<procedure 7ffff75d7dc0 at ice-9/eval.scm:282:…> …))
177:49 16 (lp (#<procedure 7ffff75d7da0 at ice-9/eval.scm:282:…> …))
177:49 15 (lp (#<procedure 7ffff75d7d60 at ice-9/eval.scm:182:…> …))
177:49 14 (lp (#<procedure 7ffff75d7d40 at ice-9/eval.scm:282:…> …))
177:49 13 (lp (#<procedure 7ffff75d7d20 at ice-9/eval.scm:182:…> …))
177:49 12 (lp (#<procedure 7ffff75d7ce0 at ice-9/eval.scm:282:…> …))
177:32 11 (lp (#<procedure 7ffff75d7cc0 at ice-9/eval.scm:182:7 …>))
159:9 10 (_ #(#(#(#(#(#<directory (apps packages te…>) …) …) …) …))
174:20 9 (_ #(#(#(#(#(#<directory (apps packages te…>) …) …) …) …))
177:49 8 (lp (#<procedure 7fffed7ab4c0 at ice-9/eval.scm:182:…> …))
177:32 7 (lp (#<procedure 7fffed7ab4a0 at ice-9/eval.scm:182:…> …))
174:20 6 (_ #(#(#(#(#(#<directory (apps packages te…>) …) …) …) …))
177:32 5 (lp (#<procedure 7fffeb50d3c0 at ice-9/eval.scm:182:…> …))
174:20 4 (_ #(#(#(#(#(#<directory (apps packages te…>) …) …) …) …))
177:49 3 (lp (#<procedure 7fffeb0b7f80 at ice-9/eval.scm:282:…> …))
177:32 2 (lp (#<procedure 7fffeb0b7f60 at ice-9/eval.scm:182:7 …>))
159:9 1 (_ #(#(#<directory (apps packages templates compone…>) …))
In srfi/srfi-1.scm:
241:2 0 (map _ _)

srfi/srfi-1.scm:241:2: In procedure map:
In procedure map: Wrong type argument: "https://www.qt.io/"
building pages in '/tmp/gnu.org/software/guix'...
Backtrace:
2 (primitive-load "/gnu/store/qr419pk9hdvg692rkhdlyvr9zh0?")
In ice-9/eval.scm:
619:8 1 (_ #f)
In guix/build/utils.scm:
762:6 0 (invoke "/gnu/store/bgh62naj3w2367h46zv2waq26rs3aspp-h?" ?)

guix/build/utils.scm:762:6: In procedure invoke:
ERROR:
1. &invoke-error:
program:
"/gnu/store/bgh62naj3w2367h46zv2waq26rs3aspp-haunt-0.2.6/bin/haunt"
arguments: ("build") exit-status: 1
term-signal: #f
stop-signal: #f
builder for
`/gnu/store/sh3ihg22yr1s0cdfjqpsv5hqrfmvg646-guix-web-site-de_DE.drv'
failed with exit code 1 la compilation de
/gnu/store/sh3ihg22yr1s0cdfjqpsv5hqrfmvg646-guix-web-site-de_DE.drv a
échoué
Z
Z
zimoun wrote on 5 Sep 2022 10:35
87r10qrzfk.fsf@gmail.com
Hi Julien

On dim., 04 sept. 2022 at 17:18, Julien Lepiller <julien@lepiller.eu> wrote:

Toggle quote (5 lines)
> I tried to update the po files for the website today, but I was unable
> to test. Trying to build the website from a clean checkout (without
> updating translations) gives this error. I think it's related to the
> code that generate the list of packages:

Which revision of Guix do you use? And which commit of guix-artwork?

And how do you build the website? It works for me with this procedure.

Toggle snippet (36 lines)
$ git clone https://git.savannah.gnu.org/git/guix/guix-artwork.git
Cloning into 'guix-artwork'...
remote: Counting objects: 7281, done.
remote: Compressing objects: 100% (2121/2121), done.
remote: Total 7281 (delta 5043), reused 7273 (delta 5041)
Receiving objects: 100% (7281/7281), 33.99 MiB | 17.80 MiB/s, done.
Resolving deltas: 100% (5043/5043), done.

$ builtin cd guix-artwork/website

$ guix describe
Generation 9 août 31 2022 14:51:40 (current)
guix 23152ff
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: 23152ff70f0ed4966d8207846f54c793d7cb4f86

$ git log --oneline -1
ebc4a77 (HEAD -> master, origin/master, origin/HEAD) promotional: New retractable banner designs.

$ LANG=en_US.UTF-8 GUIX_WEB_SITE_LOCAL=yes guix environment -C -m manifest.scm \
-E LANG -E GUIX_WEB_SITE_LOCAL --share=/tmp \
-- haunt build

> > building pages in '/tmp/gnu.org/software/guix'...
fatal: not a git repository (or any parent up to mount point /gnu/store)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
warning: page objects are deprecated; switch to serialized-artifact

[...]

build completed successfully



Cheers,
simon
J
J
Julien Lepiller wrote on 5 Sep 2022 12:27
C8F9B3EE-8C32-46A1-B83A-6B00CE342552@lepiller.eu
I used guix build -f .guix.scm. I'm on the latest guix-artwork but an older guix from maybe a month ago. GUIX_WEB_SITE_LOCAL doesn't build everything, only a subset of packages end up in the generated list. I think my issue is with qt, which probably isn't part of that subset.

Le 5 septembre 2022 10:35:43 GMT+02:00, zimoun <zimon.toutoune@gmail.com> a écrit :
Toggle quote (52 lines)
>Hi Julien
>
>On dim., 04 sept. 2022 at 17:18, Julien Lepiller <julien@lepiller.eu> wrote:
>
>> I tried to update the po files for the website today, but I was unable
>> to test. Trying to build the website from a clean checkout (without
>> updating translations) gives this error. I think it's related to the
>> code that generate the list of packages:
>
>Which revision of Guix do you use? And which commit of guix-artwork?
>
>And how do you build the website? It works for me with this procedure.
>
>--8<---------------cut here---------------start------------->8---
>$ git clone https://git.savannah.gnu.org/git/guix/guix-artwork.git
>Cloning into 'guix-artwork'...
>remote: Counting objects: 7281, done.
>remote: Compressing objects: 100% (2121/2121), done.
>remote: Total 7281 (delta 5043), reused 7273 (delta 5041)
>Receiving objects: 100% (7281/7281), 33.99 MiB | 17.80 MiB/s, done.
>Resolving deltas: 100% (5043/5043), done.
>
>$ builtin cd guix-artwork/website
>
>$ guix describe
>Generation 9 août 31 2022 14:51:40 (current)
> guix 23152ff
> repository URL: https://git.savannah.gnu.org/git/guix.git
> branch: master
> commit: 23152ff70f0ed4966d8207846f54c793d7cb4f86
>
>$ git log --oneline -1
>ebc4a77 (HEAD -> master, origin/master, origin/HEAD) promotional: New retractable banner designs.
>
>$ LANG=en_US.UTF-8 GUIX_WEB_SITE_LOCAL=yes guix environment -C -m manifest.scm \
> -E LANG -E GUIX_WEB_SITE_LOCAL --share=/tmp \
> -- haunt build
>
>> > building pages in '/tmp/gnu.org/software/guix'...
>fatal: not a git repository (or any parent up to mount point /gnu/store)
>Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
>warning: page objects are deprecated; switch to serialized-artifact
>
>[...]
>
>build completed successfully
>--8<---------------cut here---------------end--------------->8---
>
>
>
>Cheers,
>simon
Attachment: file
P
P
pelzflorian (Florian Pelz) wrote on 5 Sep 2022 12:59
(name . zimoun)(address . zimon.toutoune@gmail.com)
87a67ew0gp.fsf@pelzflorian.de
zimoun <zimon.toutoune@gmail.com> writes:
Toggle quote (4 lines)
> $ LANG=en_US.UTF-8 GUIX_WEB_SITE_LOCAL=yes guix environment -C -m manifest.scm \
> -E LANG -E GUIX_WEB_SITE_LOCAL --share=/tmp \
> -- haunt build

Yes but `guix build -f .guix.scm` fails for me too, perhaps because it
uses latest-guix from %default-channels. It’s not fixed by using old
haunt, so I guess a change in guix makes the difference, but I have not
found the commit and will not continue looking for it immediately.

Thank you for looking at it.

Regards,
Florian
Z
Z
zimoun wrote on 5 Sep 2022 13:57
87a67erq3x.fsf@gmail.com
On lun., 05 sept. 2022 at 12:27, Julien Lepiller <julien@lepiller.eu> wrote:
Toggle quote (5 lines)
> I used guix build -f .guix.scm. I'm on the latest guix-artwork but an
> older guix from maybe a month ago. GUIX_WEB_SITE_LOCAL doesn't build
> everything, only a subset of packages end up in the generated list. I
> think my issue is with qt, which probably isn't part of that subset.

It works with GUIX_WEB_SITE_LOCAL=no but indeed not using .guix.scm.

Cheers,
simon
Z
Z
zimoun wrote on 5 Sep 2022 14:04
(name . pelzflorian (Florian Pelz))(address . pelzflorian@pelzflorian.de)
874jxmrps5.fsf@gmail.com
Hi,

On lun., 05 sept. 2022 at 12:59, "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> wrote:
Toggle quote (10 lines)
> zimoun <zimon.toutoune@gmail.com> writes:
>> $ LANG=en_US.UTF-8 GUIX_WEB_SITE_LOCAL=yes guix environment -C -m manifest.scm \
>> -E LANG -E GUIX_WEB_SITE_LOCAL --share=/tmp \
>> -- haunt build
>
> Yes but `guix build -f .guix.scm` fails for me too, perhaps because it
> uses latest-guix from %default-channels. It’s not fixed by using old
> haunt, so I guess a change in guix makes the difference, but I have not
> found the commit and will not continue looking for it immediately.

The file manifest.scm contains:

Toggle snippet (12 lines)
(define the-good-guile
(car (assoc-ref (package-native-inputs guix) "guile")))

(define haunt-the-ghost
(package
(inherit haunt)
(name "haunt-for-guix-website")
(inputs
`(("guile" ,the-good-guile)
,@(alist-delete "guile" (package-inputs haunt))))))

and the file .guix.scm contains

Toggle snippet (23 lines)
(define latest-guix
;; The latest Guix. Using it rather than the 'guix' package ensures we
;; build the latest package list.
(latest-channels %default-channels))

(define (inferior-package spec)
(first (lookup-inferior-packages
(inferior-for-channels
(latest-channels-channels latest-guix))
spec)))

;; Make sure that Haunt uses the same Guile as the one from
;; "latest-guix". Otherwise there could be a mismatch between the Guile
;; revision used by Haunt and the one from the latest Guix modules used by
;; Haunt.
(define haunt-with-latest-guile
(package
(inherit haunt)
(inputs
`(("guile" ,(inferior-package "guile"))
,@(package-inputs haunt)))))

so it should be the same Haunt. I mean, there is no gap between the
version of Guile of latest-guix and the package guix. But, I am missing
something because the failure comes from:

Toggle snippet (5 lines)
(invoke #+(file-append haunt-with-latest-guile
"/bin/haunt")
"build")

It requires some investigations. :-)


Cheers,
simon
J
J
Julien Lepiller wrote on 5 Sep 2022 14:50
(address . 57581@debbugs.gnu.org)
D0BF5F1B-0B96-4F3B-9695-B11BA1D652B3@lepiller.eu
Quoting my own email I think this is the relevant bit. I don't think it's an issue in haunt, but something with qt:

srfi/srfi-1.scm:241:2: In procedure map:
In procedure map: Wrong type argument: "https://www.qt.io/"
building pages in '/tmp/gnu.org/software/guix'...

Le 5 septembre 2022 14:04:10 GMT+02:00, zimoun <zimon.toutoune@gmail.com> a écrit :
Toggle quote (69 lines)
>Hi,
>
>On lun., 05 sept. 2022 at 12:59, "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> wrote:
>> zimoun <zimon.toutoune@gmail.com> writes:
>>> $ LANG=en_US.UTF-8 GUIX_WEB_SITE_LOCAL=yes guix environment -C -m manifest.scm \
>>> -E LANG -E GUIX_WEB_SITE_LOCAL --share=/tmp \
>>> -- haunt build
>>
>> Yes but `guix build -f .guix.scm` fails for me too, perhaps because it
>> uses latest-guix from %default-channels. It’s not fixed by using old
>> haunt, so I guess a change in guix makes the difference, but I have not
>> found the commit and will not continue looking for it immediately.
>
>The file manifest.scm contains:
>
>--8<---------------cut here---------------start------------->8---
>(define the-good-guile
> (car (assoc-ref (package-native-inputs guix) "guile")))
>
>(define haunt-the-ghost
> (package
> (inherit haunt)
> (name "haunt-for-guix-website")
> (inputs
> `(("guile" ,the-good-guile)
> ,@(alist-delete "guile" (package-inputs haunt))))))
>--8<---------------cut here---------------end--------------->8---
>
>and the file .guix.scm contains
>
>--8<---------------cut here---------------start------------->8---
>(define latest-guix
> ;; The latest Guix. Using it rather than the 'guix' package ensures we
> ;; build the latest package list.
> (latest-channels %default-channels))
>
>(define (inferior-package spec)
> (first (lookup-inferior-packages
> (inferior-for-channels
> (latest-channels-channels latest-guix))
> spec)))
>
>;; Make sure that Haunt uses the same Guile as the one from
>;; "latest-guix". Otherwise there could be a mismatch between the Guile
>;; revision used by Haunt and the one from the latest Guix modules used by
>;; Haunt.
>(define haunt-with-latest-guile
> (package
> (inherit haunt)
> (inputs
> `(("guile" ,(inferior-package "guile"))
> ,@(package-inputs haunt)))))
>--8<---------------cut here---------------end--------------->8---
>
>so it should be the same Haunt. I mean, there is no gap between the
>version of Guile of latest-guix and the package guix. But, I am missing
>something because the failure comes from:
>
>--8<---------------cut here---------------start------------->8---
>(invoke #+(file-append haunt-with-latest-guile
> "/bin/haunt")
> "build")
>--8<---------------cut here---------------end--------------->8---
>
>It requires some investigations. :-)
>
>
>Cheers,
>simon
Attachment: file
Z
Z
zimoun wrote on 5 Sep 2022 16:35
(name . pelzflorian (Florian Pelz))(address . pelzflorian@pelzflorian.de)
87zgfdrirq.fsf@gmail.com
Hi,

On dim., 04 sept. 2022 at 17:18, Julien Lepiller <julien@lepiller.eu> wrote:

Toggle quote (24 lines)
> srfi/srfi-1.scm:241:2: In procedure map:
> In procedure map: Wrong type argument: "https://www.qt.io/"
> building pages in '/tmp/gnu.org/software/guix'...
> Backtrace:
> 2 (primitive-load "/gnu/store/qr419pk9hdvg692rkhdlyvr9zh0?")
> In ice-9/eval.scm:
> 619:8 1 (_ #f)
> In guix/build/utils.scm:
> 762:6 0 (invoke "/gnu/store/bgh62naj3w2367h46zv2waq26rs3aspp-h?" ?)
>
> guix/build/utils.scm:762:6: In procedure invoke:
> ERROR:
> 1. &invoke-error:
> program:
> "/gnu/store/bgh62naj3w2367h46zv2waq26rs3aspp-haunt-0.2.6/bin/haunt"
> arguments: ("build") exit-status: 1
> term-signal: #f
> stop-signal: #f
> builder for
> `/gnu/store/sh3ihg22yr1s0cdfjqpsv5hqrfmvg646-guix-web-site-de_DE.drv'
> failed with exit code 1 la compilation de
> /gnu/store/sh3ihg22yr1s0cdfjqpsv5hqrfmvg646-guix-web-site-de_DE.drv a
> échoué

The culprit seems the package ’qtserialport’ in ’packages-builder’ from
(apps packages builder). Maybe introduced by commit
1ef04fb2288dade3ad2883026ae286a68ef13a1e. Well, the website probably
requires a tweak in ’package-t’, more or less here:

Toggle snippet (7 lines)
(ul
(@ (class "package-info"))
,(G_ `(li ,(G_ `(b "Website: "))
(a (@ (href ,(package-home-page package)))
,(package-home-page package))))

but I do not know exactly what. Maybe ’shtml’ somewhere?


Cheers,
simon
P
P
pelzflorian (Florian Pelz) wrote on 7 Sep 2022 18:31
(name . zimoun)(address . zimon.toutoune@gmail.com)
87o7vr2lk7.fsf@pelzflorian.de
zimoun <zimon.toutoune@gmail.com> writes:
Toggle quote (4 lines)
> The culprit seems the package ’qtserialport’ in ’packages-builder’ from
> (apps packages builder). Maybe introduced by commit
> 1ef04fb2288dade3ad2883026ae286a68ef13a1e.

This was a first failing commit for me too, but the reason the website
does not build appears to be the license field of qtshadertools in
commit 1d65ff8fdeb20cc2db956093f0ecb1f3f72afc0e (Cc to Maxim). I could
make a patch but not today. Maxim, would you fix it?

I don’t know if there is a way to catch such mistakes early. Field
sanitizers?

Regards,
Florian
Z
Z
zimoun wrote on 7 Sep 2022 19:07
(name . pelzflorian (Florian Pelz))(address . pelzflorian@pelzflorian.de)
86y1uvxge9.fsf@gmail.com
Hi,

On Wed, 07 Sep 2022 at 18:31, "pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> wrote:
Toggle quote (10 lines)
> zimoun <zimon.toutoune@gmail.com> writes:
>> The culprit seems the package ’qtserialport’ in ’packages-builder’ from
>> (apps packages builder). Maybe introduced by commit
>> 1ef04fb2288dade3ad2883026ae286a68ef13a1e.
>
> This was a first failing commit for me too, but the reason the website
> does not build appears to be the license field of qtshadertools in
> commit 1d65ff8fdeb20cc2db956093f0ecb1f3f72afc0e (Cc to Maxim). I could
> make a patch but not today. Maxim, would you fix it?

From my opinion, this

Toggle snippet (5 lines)
+ (home-page (package-home-page qtbase))
[...]
+ (license (package-home-page qtbase))))

is a bad practise; instead ’(inherit qtbase)’ and rewrite all the others
fields is better.

Toggle quote (3 lines)
> I don’t know if there is a way to catch such mistakes early. Field
> sanitizers?

Well, the field reads,

+ (license (package-home-page qtbase))))

so why is the compiler accepting that? Is a warning raised?



Cheers,
simon
J
J
Julien Lepiller wrote on 7 Sep 2022 19:14
F3F3E6E2-AE1A-47DD-8BB3-7E9A6C137A08@lepiller.eu
Le 7 septembre 2022 19:07:10 GMT+02:00, zimoun <zimon.toutoune@gmail.com> a écrit :
Toggle quote (9 lines)
>Hi,
>
>Well, the field reads,
>
>+ (license (package-home-page qtbase))))
>
>so why is the compiler accepting that? Is a warning raised?
>

No warning because the compiler has no way to know you don't want to do that. license is a field, and fields don't have a specific type except for convention.

package-home-page will read a field from another object, return a perfectly valid Scgeme object (a string) and Scheme is happy to put it in the license field. Why would it care? (:

It fails much later when something tries to read the license field and gets a string it treats as a license object.
Z
Z
zimoun wrote on 8 Sep 2022 10:00
864jxixplm.fsf@gmail.com
Hi Julien,

Thanks for explaining.

On Wed, 07 Sep 2022 at 19:14, Julien Lepiller <julien@lepiller.eu> wrote:
Toggle quote (5 lines)
>
> No warning because the compiler has no way to know you don't want to
> do that. license is a field, and fields don't have a specific type
> except for convention.

Arf, it is where OCaml shines. ;-)


Cheers,
simon
L
L
Ludovic Courtès wrote on 13 Sep 2022 16:41
control message for bug #57581
(address . control@debbugs.gnu.org)
87wna72v72.fsf@gnu.org
severity 57581 important
quit
L
L
Ludovic Courtès wrote on 13 Sep 2022 16:41
Re: bug#57581: Failing to build the website
(name . pelzflorian (Florian Pelz))(address . pelzflorian@pelzflorian.de)
87y1un2v7d.fsf@gnu.org
Hi,

"pelzflorian (Florian Pelz)" <pelzflorian@pelzflorian.de> skribis:

Toggle quote (10 lines)
> zimoun <zimon.toutoune@gmail.com> writes:
>> The culprit seems the package ’qtserialport’ in ’packages-builder’ from
>> (apps packages builder). Maybe introduced by commit
>> 1ef04fb2288dade3ad2883026ae286a68ef13a1e.
>
> This was a first failing commit for me too, but the reason the website
> does not build appears to be the license field of qtshadertools in
> commit 1d65ff8fdeb20cc2db956093f0ecb1f3f72afc0e (Cc to Maxim). I could
> make a patch but not today. Maxim, would you fix it?

Fixed in e61c581805b2338ea8feaac86617c5d7bff41c41, thanks for the
investigation!

Toggle quote (3 lines)
> I don’t know if there is a way to catch such mistakes early. Field
> sanitizers?

Yes, we should do that. We can arrange to have most checks done at
compile time, similar to how the ‘synopsis’ and ‘description’ sanitizers
work (well, with extra macro magic).

Ludo’.
Closed
Z
Z
zimoun wrote on 14 Sep 2022 08:37
865yhqtqa8.fsf@gmail.com
Hi Ludo,

On Tue, 13 Sep 2022 at 16:41, Ludovic Courtès <ludo@gnu.org> wrote:

Toggle quote (7 lines)
>> I don’t know if there is a way to catch such mistakes early. Field
>> sanitizers?
>
> Yes, we should do that. We can arrange to have most checks done at
> compile time, similar to how the ‘synopsis’ and ‘description’ sanitizers
> work (well, with extra macro magic).

For the record, please see this thread [1] opening a discussion on the
topic.



Cheers,
simon
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 57581@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 57581
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch