--- Begin Message ---
Subject: |
‘wine64-staging’ is very expensive to build |
Date: |
Sat, 23 Nov 2019 00:12:07 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hello,
I noticed that ‘wine64-staging’ is our most expensive package to build.
Initially I was surprised because it only has a couple of nodes more in
its <package> object than ‘wine-staging’:
--8<---------------cut here---------------start------------->8---
ludo@ribbon ~/src/guix$ guix graph wine-staging |grep 'label = ' |wc -l
509
ludo@ribbon ~/src/guix$ guix graph wine64-staging |grep 'label = ' |wc -l
511
--8<---------------cut here---------------end--------------->8---
However, that single additional node leads to the duplication of the
whole derivation graph on x86_64-linux:
--8<---------------cut here---------------start------------->8---
ludo@ribbon ~/src/guix$ guix graph -t derivation wine-staging |grep 'label = '
|wc -l
2738
ludo@ribbon ~/src/guix$ guix graph -t derivation wine64-staging |grep 'label =
' |wc -l
4598
--8<---------------cut here---------------end--------------->8---
This is because ‘wine-staging’ has a hard-coded ‘#:system "i686-linux"’,
whereas ‘wine64-staging’ is (unsurprisingly :-)) built on x86_64-linux.
(The same problem happens with ‘wine’ vs. ‘wine64’.)
Likewise, ‘guix size wine64’ shows that every dependency appears twice
(one 32-bit, one 64-bit), and thus the total size is twice that of
‘wine’.
Rutger, is there something that can be done to avoid this? Apparently
only JSON files are copied from ‘wine-staging’ into ‘wine64-staging’,
but maybe they refer to 32-bit shared libraries or something?
Thanks,
Ludo’.
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#38336: ‘wine64-staging’ is very expensive to build |
Date: |
Tue, 03 Dec 2019 10:07:35 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) |
Hi Rutger,
Rutger Helling <address@hidden> skribis:
> Sorry for the late reply. I'm not really active anymore in Guix
> development for various reasons.
No problem!
> Wine needs a whole 32-bit dependency chain to be able to run both 32-bit
> and 64-bit code, since a Wine that can only run 64-bit code is
> considered useless. That is why the package is unfortunately so large. I
> don't think there's anything that can be done about that.
>
> A couple of binaries are also copied, not just JSON files. That is where
> the 32-bit dependencies come from.
OK, that’s what I feared. Case closed, then!
Thanks for your reply,
Ludo’.
--- End Message ---