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
?