unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
* 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).