* bug#38336: ‘wine64-staging’ is very expensive to build
@ 2019-11-22 23:12 Ludovic Courtès
2019-12-03 8:17 ` Rutger Helling
0 siblings, 1 reply; 3+ messages in thread
From: Ludovic Courtès @ 2019-11-22 23:12 UTC (permalink / raw)
To: bug-Guix; +Cc: Rutger Helling
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’.
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#38336: ‘wine64-staging’ is very expensive to build
2019-11-22 23:12 bug#38336: ‘wine64-staging’ is very expensive to build Ludovic Courtès
@ 2019-12-03 8:17 ` Rutger Helling
2019-12-03 9:07 ` Ludovic Courtès
0 siblings, 1 reply; 3+ messages in thread
From: Rutger Helling @ 2019-12-03 8:17 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 38336
[-- Attachment #1: Type: text/plain, Size: 2085 bytes --]
Hi Ludo,
Sorry for the late reply. I'm not really active anymore in Guix
development for various reasons.
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.
On 2019-11-23 00:12, Ludovic Courtès wrote:
> 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'.
[-- Attachment #2: Type: text/html, Size: 2820 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#38336: ‘wine64-staging’ is very expensive to build
2019-12-03 8:17 ` Rutger Helling
@ 2019-12-03 9:07 ` Ludovic Courtès
0 siblings, 0 replies; 3+ messages in thread
From: Ludovic Courtès @ 2019-12-03 9:07 UTC (permalink / raw)
To: Rutger Helling; +Cc: 38336-done
Hi Rutger,
Rutger Helling <rhelling@mykolab.com> 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’.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-12-03 9:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-22 23:12 bug#38336: ‘wine64-staging’ is very expensive to build Ludovic Courtès
2019-12-03 8:17 ` Rutger Helling
2019-12-03 9:07 ` Ludovic Courtès
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).