webkitgtk-2.32.0 build fails

  • Done
  • quality assurance status badge
Details
3 participants
  • Bone Baboon
  • Leo Famulari
  • Tobias Geerinckx-Rice
Owner
unassigned
Submitted by
Bone Baboon
Severity
normal
B
B
Bone Baboon wrote on 23 Apr 2021 06:46
(address . bug-guix@gnu.org)
87bla538xh.fsf@disroot.org
On an x86_64 computer when I run `sudo guix system --no-substitutes
reconfigure config.scm` webkitgtk-2.32.0 fails to build. When I run
`guix build --no-substitutes --cores=1 --max-jobs=1 webkitgtk` I get
this error message:

```
make: *** [Makefile:155: all] Error 2
command "make" "-j" "1" failed with status 2
builder for `/gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv' failed with exit code 1
build of /gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv failed
View build log at '/var/log/guix/drvs/b1/vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv.bz2'.
guix build: error: build of `/gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv' failed
```

`guix describe` outputs:

```
Generation 7 Apr 21 2021 15:56:57 (current)
guix ae5128e
branch: master
commit: ae5128e21eb7afa66bd7cfd7fd1bc5764d00663e
```

End of the build log is below. The entire build log was too large to
send by email.

```
[ 98%] Built target gtkdoc
make -f Source/WebKit/CMakeFiles/WebKit2WebExtension-4-gir.dir/build.make Source/WebKit/CMakeFiles/WebKit2WebExtension-4-gir.dir/depend
make[2]: Entering directory '/tmp/guix-build-webkitgtk-2.32.0.drv-0/build'
cd /tmp/guix-build-webkitgtk-2.32.0.drv-0/build && /gnu/store/3dsl2jalrcyldkrsqab1hc6sv8pyag9z-cmake-minimal-3.16.5/bin/cmake -E cmake_depends "Unix Makefiles" /tmp/guix-build-webkitgtk-2.32.0.drv-0/webkitgtk-2.32.0 /tmp/guix-build-webkitgtk-2.32.0.drv-0/webkitgtk-2.32.0/Source/WebKit /tmp/guix-build-webkitgtk-2.32.0.drv-0/build /tmp/guix-build-webkitgtk-2.32.0.drv-0/build/Source/WebKit /tmp/guix-build-webkitgtk-2.32.0.drv-0/build/Source/WebKit/CMakeFiles/WebKit2WebExtension-4-gir.dir/DependInfo.cmake --color=
Scanning dependencies of target WebKit2WebExtension-4-gir
make[2]: Leaving directory '/tmp/guix-build-webkitgtk-2.32.0.drv-0/build'
make -f Source/WebKit/CMakeFiles/WebKit2WebExtension-4-gir.dir/build.make Source/WebKit/CMakeFiles/WebKit2WebExtension-4-gir.dir/build
make[2]: Entering directory '/tmp/guix-build-webkitgtk-2.32.0.drv-0/build'
make[2]: *** No rule to make target 'JavaScriptCore-4.0.gir', needed by 'WebKit2-4.0.gir'. Stop.
make[2]: Leaving directory '/tmp/guix-build-webkitgtk-2.32.0.drv-0/build'
make[1]: *** [CMakeFiles/Makefile2:1628: Source/WebKit/CMakeFiles/WebKit2WebExtension-4-gir.dir/all] Error 2
make[1]: Leaving directory '/tmp/guix-build-webkitgtk-2.32.0.drv-0/build'
make: *** [Makefile:155: all] Error 2
command "make" "-j" "1" failed with status 2
```
L
L
Leo Famulari wrote on 23 Apr 2021 20:41
(name . Bone Baboon via Bug reports for GNU Guix)(address . bug-guix@gnu.org)(address . 47964@debbugs.gnu.org)
YIMUyoCOQKimvnIV@jasmine.lan
On Fri, Apr 23, 2021 at 12:46:02AM -0400, Bone Baboon via Bug reports for GNU Guix wrote:
Toggle quote (2 lines)
> builder for `/gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv' failed with exit code 1

Our build farm (ci.guix.gnu.org) doesn't know about this derivation. I
logged in and tried to build it:

------
$ guix build /gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv
cannot build missing derivation ‘/gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv’
guix build: error: build of `/gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv' failed
------

Toggle quote (6 lines)
> Generation 7 Apr 21 2021 15:56:57 (current)
> guix ae5128e
> repository URL: https://git.savannah.gnu.org/git/guix.git
> branch: master
> commit: ae5128e21eb7afa66bd7cfd7fd1bc5764d00663e

I tried to produce that derivation with the time machine:

------
$ guix time-machine --commit=ae5128e21eb7afa66bd7cfd7fd1bc5764d00663e -- build webkitgtk --derivations
/gnu/store/z39pp5idq8ikhbf0a80li4ilb121kxfz-webkitgtk-2.32.0.drv
$ guix time-machine --commit=ae5128e21eb7afa66bd7cfd7fd1bc5764d00663e -- build webkitgtk --derivations --no-grafts
/gnu/store/0r5f5k5qckqzq21kfb1cd2m2niw6wsvy-webkitgtk-2.32.0.drv
------

We do have substitutes for those derivations.

This means that something is changing your "view" of Guix. You aren't
building the same things that the rest of us are building.

Are you using any channels? Or maybe custom packages via
GUIX_PACKAGE_PATH? Or anything else we should know about?

Can you send the file
'/gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv'
as an attachment?

In the meantime I am testing the build with a single core.
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAmCDFMkACgkQJkb6MLrK
fwgaPw//dbONYfXZud7aQ0zqFdURuLli8Fq8UCiECUrMXhaiUm1r0DUfqOC8XYjA
bPnr5nxPJRF7nf15d1dyh9GOB8pYXo4T6zW/w6DrjHG6H7u4f4MJAqZuilOkC85v
nRxKegox0JNexPAYJI67Fh+ku9bal5rgwqMp5HNJqf8dJ9BLoA2Sr1jRO8YAtHAq
+A2TR+LVcyQCnbF5yXHtO19CghKVsOc2uG54ZNWC5n0sE3TI4oND13Wzgaq7Ec91
vNtq1SArs162QRLUswPT2iNgQdaLKNz7HTKjORK43j+pWfAxciKgzZwty1tVgxTM
mDDuhl4DpSHJlgFTfPpqZf1WKmicE6g/FE6wVZPjmRg8f99M2cwlLXSiWaJPcZ+S
RZuQxgAumGiaLq9jMRNP1xcQMrX+lxUVhJAhSWvT4+bizo7B7MuPzCR7sapUtVon
ftreG+jl9skER1WE1+GtUlCxYXULSHPI19C9HMBms7SOatnN8UYs7ANlMdYLes1n
90gQp1RcvKVGkSL40gXBQ3bijgw4/y6wMY8P8HTpxcov7RkHHU7QKZhAKpLmTkGT
18xKihygoEb9mK47OAP7LB+yihNmcz3ODg1W69C1Eaecho17h6kzE11hJ9k8t1d3
zqLMO7Qh2ZFKpPi55EwZeivJX7pFCCzE/onNziatnbbBfY4y6dg=
=qgIH
-----END PGP SIGNATURE-----


B
B
Bone Baboon wrote on 23 Apr 2021 22:11
(name . Leo Famulari)(address . leo@famulari.name)
8735vg3go9.fsf@disroot.org
Since I submitted this bug I have done a `guix pull --no-substitutes`
and tried do reconfigure the system and the build of webkitgtk fails.

Leo Famulari writes:
Toggle quote (2 lines)
> Are you using any channels?

There is no `~/.config/guix/channels.scm` file.

There are no extra channel showing in the output of `guix pull
--list-generations`. The output for the current generation is:

```
Generation 8 Apr 22 2021 18:20:30 (current)
guix c22204c
branch: master
commit: c22204cf7bf12056c43e5da2fd99c95866143ddc
5 new packages: cl-pathname-utils, daemonize,
ecl-pathname-utils, kraken2, sbcl-pathname-utils
25 packages upgraded: cpupower@5.11.16,
exfatprogs@1.1.1, freefall@5.11.16,
guix-build-coordinator@0-25.c49b1c8, icedove-wayland@78.10.0,
icedove@78.10.0, libretro-lowresnx@1.2, libupnp@1.14.6,
libxlsxwriter@1.0.3, linux-libre-bpf@5.11.16,
linux-libre-headers@5.11.16, linux-libre@5.11.16,
openconnect-sso@0.7.3, openvpn@2.5.2, perf@5.11.16, retroarch@1.9.1,
tmon@5.11.16, turbostat@5.11.16, waybar@0.9.7,
wine-staging-patchset-data@6.6, wine-staging@6.6,
wine64-staging@6.6, wireshark@3.4.5, wxmaxima@21.04.0,
x86-energy-perf-policy@5.11.16
```

Toggle quote (2 lines)
> Or maybe custom packages via GUIX_PACKAGE_PATH?

`echo $GUIX_PACKAGE_PATH` outputs an empty line.

Toggle quote (2 lines)
> Or anything else we should know about?

What else should I look into?

Toggle quote (4 lines)
> Can you send the file
> '/gnu/store/b1vs7n6dvmsrk9510q8hqjnq6m9mvrm3-webkitgtk-2.32.0.drv'
> as an attachment?

The derivation is attached.
L
L
Leo Famulari wrote on 23 Apr 2021 22:25
(name . Bone Baboon)(address . bone.baboon@disroot.org)
YIMtIw1L9nihBasO@jasmine.lan
On Fri, Apr 23, 2021 at 04:11:02PM -0400, Bone Baboon wrote:
Toggle quote (2 lines)
> The derivation is attached.

Thanks.

I'm comparing your derivation to the canonical derivation for webkitgtk
from Guix Git commit ae5128e21eb7 on x86_64-linux, /gnu/store/0r5f5k5qckqzq21kfb1cd2m2niw6wsvy-webkitgtk-2.32.0.drv

I don't have very good tools for this, but vbindiff is better than
nothing:

$ vbindiff /gnu/store/0r5f5k5qckqzq21kfb1cd2m2niw6wsvy-webkitgtk-2.32.0.drv bone-baboon-webkitgtk.drv

And I see that many dependency's derivations are also different, and
things are also listed in a different order.

To be continued...
B
B
Bone Baboon wrote on 23 Apr 2021 23:37
(name . Bone Baboon)(address . bone.baboon@disroot.org)
87wnss1y3o.fsf@disroot.org
Bone Baboon via Bug reports for GNU Guix writes:
Toggle quote (3 lines)
> End of the build log is below. The entire build log was too large to
> send by email.

Here is the entire build log compressed and attached.
L
L
Leo Famulari wrote on 24 Apr 2021 00:04
(name . Bone Baboon)(address . bone.baboon@disroot.org)
YINEg2eXWDQCGjmW@jasmine.lan
On Fri, Apr 23, 2021 at 04:25:07PM -0400, Leo Famulari wrote:
Toggle quote (2 lines)
> To be continued...

Well, I think that all that was a red herring.

I googled your error message:

"No rule to make target 'JavaScriptCore-4.0.gir', needed by 'WebKit2-4.0.gir'. Stop."

And there are very many results, from many distros, and the answer in
all cases seems to be "Don't build this package with -j1".

I have to agree with that :) It's weird that a build fails with -j1, but
this build takes a long time even with many cores.

The upstream bug report:

B
B
Bone Baboon wrote on 26 Apr 2021 15:58
(name . Leo Famulari)(address . leo@famulari.name)
87y2d5b10z.fsf@disroot.org
Leo Famulari writes:
Toggle quote (14 lines)
> I googled your error message:
>
> "No rule to make target 'JavaScriptCore-4.0.gir', needed by 'WebKit2-4.0.gir'. Stop."
>
> And there are very many results, from many distros, and the answer in
> all cases seems to be "Don't build this package with -j1".
>
> I have to agree with that :) It's weird that a build fails with -j1, but
> this build takes a long time even with many cores.
>
> The upstream bug report:
>
> https://bugs.webkit.org/show_bug.cgi?id=195251

Thank you for sharing that.

`guix build --no-substitutes --cores=1 --max-jobs=1 webkitgtk`
`sudo guix system --no-substitutes --cores=1 --max-jobs=1 reconfigure configuration.scm`
These two commands fail to build webkitgtk with the error message
reported previously. The problem being what you have identified (using
one core).

`sudo guix system --no-substitutes reconfigure configuration.scm`
Fails to build webkitgtk because of what looks like an out of memory
issue. With "oom_reaper" showing up in /var/log/messages.

`sudo guix system --no-substitutes --cores=2 --max-jobs=1 reconfigure configuration.scm`
This command was successfully able to build webkitgtk.
B
B
Bone Baboon wrote on 26 Apr 2021 16:52
Closing bug#47964
(address . 47964-done@debbugs.gnu.org)
87v989ayj8.fsf@disroot.org
Closing bug#47964 because webkitgtk can successfully be built using the
command `sudo guix system --no-substitutes --cores=2 --max-jobs=1
reconfigure configuration.scm`. The build of webkitgtk is sensitive to
the number of cores used.
Closed
L
L
Leo Famulari wrote on 26 Apr 2021 18:08
Re: bug#47964: webkitgtk-2.32.0 build fails
(name . Bone Baboon)(address . bone.baboon@disroot.org)(address . 47964@debbugs.gnu.org)
YIblbM2t3WJzhIhK@jasmine.lan
On Mon, Apr 26, 2021 at 09:58:36AM -0400, Bone Baboon wrote:
Toggle quote (13 lines)
> `guix build --no-substitutes --cores=1 --max-jobs=1 webkitgtk`
> `sudo guix system --no-substitutes --cores=1 --max-jobs=1 reconfigure configuration.scm`
> These two commands fail to build webkitgtk with the error message
> reported previously. The problem being what you have identified (using
> one core).
>
> `sudo guix system --no-substitutes reconfigure configuration.scm`
> Fails to build webkitgtk because of what looks like an out of memory
> issue. With "oom_reaper" showing up in /var/log/messages.
>
> `sudo guix system --no-substitutes --cores=2 --max-jobs=1 reconfigure configuration.scm`
> This command was successfully able to build webkitgtk.

Thanks for taking the time to perform all these builds; I'm sure they
took a long time.

I'm guessing that "--cores=2 --max-jobs=1" used fewer threads than the
guix-daemon would normally choose by default on your computer? Like,
maybe you have 4 cores / hyperthreads or something like that?

It's unusual that a program requires multithreaded compilation, but I
wonder if we can add a property to the package definition to require at
least 2 threads when building.
T
T
Tobias Geerinckx-Rice wrote on 26 Apr 2021 18:44
(name . Leo Famulari)(address . leo@famulari.name)
87zgxlro6d.fsf@nckx
Leo,

Leo Famulari ???
Toggle quote (6 lines)
> It's unusual that a program requires multithreaded compilation,
> but I
> wonder if we can add a property to the package definition to
> require at
> least 2 threads when building.

That's a great idea, although I'm not keen on .*using properties
for it.

How about this?

Kind regards,

T G-R
From a9ef0c78c6aa60ab49f6fcf4fc6b43afdb6f0183 Mon Sep 17 00:00:00 2001
From: Tobias Geerinckx-Rice <me@tobias.gr>
Date: Mon, 26 Apr 2021 18:39:58 +0200
Subject: [PATCH] gnu: webkitgtk: Always use at least 2 make jobs.


* gnu/packages/webkit.scm (webkitgtk)[arguments]: Use at least -j2.
---
gnu/packages/webkit.scm | 3 +++
1 file changed, 3 insertions(+)

Toggle diff (16 lines)
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 083c8ccb08..74ffe92b84 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -260,6 +260,9 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
;; now, we explicitly disable it to prevent an error
;; at configuration time.
"-DUSE_GSTREAMER_GL=OFF")
+ #:make-flags
+ ;; Never build with unsupported -j1: https://issues.guix.gnu.org/47964#5
+ (list "-j" (number->string (max 2 (parallel-job-count))))
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'configure-bubblewrap-store-directory
--
2.31.1
-----BEGIN PGP SIGNATURE-----

iIMEARYKACsWIQT12iAyS4c9C3o4dnINsP+IT1VteQUCYIbt2g0cbWVAdG9iaWFz
LmdyAAoJEA2w/4hPVW15yY0A/3gaN4KGso3olGRtlZUrVOFdvqCSeAutIeoU/trR
pJSvAP4jMuQfIdO3cSX9E8EbxTILDEidmGshRuBYBI1k3yCjAQ==
=DadV
-----END PGP SIGNATURE-----

L
L
Leo Famulari wrote on 26 Apr 2021 19:19
(name . Tobias Geerinckx-Rice)(address . me@tobias.gr)
YIb2Kct+h/4E6a+T@jasmine.lan
On Mon, Apr 26, 2021 at 06:44:10PM +0200, Tobias Geerinckx-Rice wrote:
Toggle quote (26 lines)
> How about this?

> From a9ef0c78c6aa60ab49f6fcf4fc6b43afdb6f0183 Mon Sep 17 00:00:00 2001
> From: Tobias Geerinckx-Rice <me@tobias.gr>
> Date: Mon, 26 Apr 2021 18:39:58 +0200
> Subject: [PATCH] gnu: webkitgtk: Always use at least 2 make jobs.
>
> Fixes <http://issues.guix.gnu.org/47964>.
>
> * gnu/packages/webkit.scm (webkitgtk)[arguments]: Use at least -j2.
> ---
> gnu/packages/webkit.scm | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
> index 083c8ccb08..74ffe92b84 100644
> --- a/gnu/packages/webkit.scm
> +++ b/gnu/packages/webkit.scm
> @@ -260,6 +260,9 @@ acceleration in mind, leveraging common 3D graphics APIs for best performance.")
> ;; now, we explicitly disable it to prevent an error
> ;; at configuration time.
> "-DUSE_GSTREAMER_GL=OFF")
> + #:make-flags
> + ;; Never build with unsupported -j1: https://issues.guix.gnu.org/47964#5
> + (list "-j" (number->string (max 2 (parallel-job-count))))

LGTM
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEsFFZSPHn08G5gDigJkb6MLrKfwgFAmCG9ikACgkQJkb6MLrK
fwgOGxAAsVth8ZehXMo1/2FQykUeYgZaKdOViU4BPaOXZRvr0wGV9AIxqdBzXMZu
CB1pT1uiIbZ15S32OPnsImwLuPj+6poHkI0c4pyTC+oyKbeJCYPTYkHpewPVu1xD
EmORfPIHKSM+tvXuLpKiM/VS2HwhvFkJY/yIZsW09IyISQMPsBXNq7MoOD16g2g2
nei6/Kxs0lU6J4J11itzU3uiMd+zkOV87F/7Unz0ZYf+SBegwDwiZHVmm0m4YV8S
ndNTKexpMHSTKIAgUvvKwQleo9LWCBBidEsco3hf++D4B6t1VuiOcw80NA12ejWC
cIc2aZ/frFhcuZZ+J6qHNoVm2HrAN+c2QtkkOXbIO0dK7OchkdJMjoNd1D33tmqr
RuUy0J3SuRjnr4d4GXD8MpLrZrUZxq55QeFHCDZm1bj/i3sWNns3qOamt96zo6T2
ooTO8X3C7238m+bq0HWbqOgeOqk7S/AsQLzS0bN5f0Wv64r9l9xX6GfMa7RVr3Kl
U8uupXhPmW3T7pCx18WEk3vmNPGuC/ZJ2yfuw2joH+U1O2e9Afe1r1SRYo1VICpc
GavxtVywhCVqjQp9j4aBlK1s+BE1+MDJyhunYRbCQkXu5CiU8Z+cNQXNItUiNhzA
7CNKEjcO+VD6cpOMfUyH9jF2Z0UkgonK8rsNxC/EadxIkAc90vU=
=bXId
-----END PGP SIGNATURE-----


B
B
Bone Baboon wrote on 26 Apr 2021 20:25
(name . Leo Famulari)(address . leo@famulari.name)(address . 47964@debbugs.gnu.org)
87sg3cc38n.fsf@disroot.org
Leo Famulari writes:
Toggle quote (3 lines)
> Thanks for taking the time to perform all these builds; I'm sure they
> took a long time.

Thank you for helping me figure out how to build this package.

Toggle quote (4 lines)
> I'm guessing that "--cores=2 --max-jobs=1" used fewer threads than the
> guix-daemon would normally choose by default on your computer? Like,
> maybe you have 4 cores / hyperthreads or something like that?

Yes that is correct. On the computer that was having trouble building
webkitgtk there are 4 cores and 8 threads and 8GiB of installed memory.
T
T
Tobias Geerinckx-Rice wrote on 27 Apr 2021 14:48
(name . Leo Famulari)(address . leo@famulari.name)
87a6pjsxk1.fsf@nckx
Leo Famulari ???
Toggle quote (2 lines)
> LGTM

Thanks Leo! Pushed as e5c65fb7372e10a2d6531d25f3b7d7c31679a21e.

Kind regards,

T G-R
-----BEGIN PGP SIGNATURE-----

iIMEARYKACsWIQT12iAyS4c9C3o4dnINsP+IT1VteQUCYIgIHg0cbWVAdG9iaWFz
LmdyAAoJEA2w/4hPVW15jF0A/1242CqrloqCSrHJHHEU/WPstC/7DNlm78rOXVDo
lY0dAP9aQN9ALAWKg8Dnu5ZU+LQaNmgIZAdAAWo2d8e5959HBQ==
=9G2K
-----END PGP SIGNATURE-----

?