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’.