Subject: bug#47569: ‘qt-build-system’ retains too many references via wrappers

From: Ludovic Courtès <[email-masked]>
Date: Thu, 08 Apr 2021 23:38:45 +0200

Maxim Cournoyer <[email-masked]> skribis:

> Thanks for the patch!  I built jami-qt with it; the closure size was
> reduced from 2.7 GiB to 2.2 GiB (there's probably more to do, but it's a
> good start!).  It seems to work just as well as before the change, from
> a cursory look.

Regarding the closure size, the top packages and the usual suspects:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix size ktouch | head
store item                                                       total    self
/gnu/store/rv567nsh90bqz5gfh6sh1g84jccxcifa-llvm-11.0.0            220.0   148.6  11.4%
/gnu/store/7disnxqw8i3n4zhw5s0xj9kkdckkmr1p-mesa-20.2.4            389.1   141.6  10.9%
/gnu/store/j7110r2rhs9pdypx2x0h8nx4r082fbdk-qtbase-5.15.2          976.2    80.0   6.2%
/gnu/store/rz42ba0my9vrgbkjpkzr2drmnjk5ah50-python-3.8.2           171.4    79.8   6.1%
/gnu/store/8zvc5mvk0xm3ygrxsgpyy5ilxb5rzjry-perl-5.30.2            146.2    57.1   4.4%
/gnu/store/a5m2xzsv3ff1gsh4pkdxbv99nchmlkhq-mozjs-60.2.3-2         248.3    54.7   4.2%
/gnu/store/18hp7flyb3yid3yp49i6qcdq0sbi5l1n-guile-3.0.2            132.8    53.2   4.1%
/gnu/store/ckwyq3y43i33s5fl9hb6c51418rh1qwj-icu4c-66.1             110.2    38.1   2.9%
/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31              38.4    36.7   2.8%
--8<---------------cut here---------------end--------------->8---

There’s a preliminary patch to improve the LLVM situation at
<https://issues.guix.gnu.org/42576>.  I’m sure we can also do a better
job on the size of those other things.

A bit of a shame that mozjs shows up here; that’s because of Polkit:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix graph --path ktouch mozjs@60 -t references
/gnu/store/179ifxjb2kvapzydsnkh2vylhnx79kkk-ktouch-20.12.1
/gnu/store/2z5nfmzxhqaalcrswp8nn3yk5ys8q261-kauth-5.70.0
/gnu/store/vg0lwx182c63icfj60bi4gfk4s9bh1rf-polkit-qt-1-0.112.0
/gnu/store/9zijxjyrpg54csx3sam8hmsvrjgqw4zm-polkit-0.116
/gnu/store/a5m2xzsv3ff1gsh4pkdxbv99nchmlkhq-mozjs-60.2.3-2
--8<---------------cut here---------------end--------------->8---

(It’ll be worse when Polkit depends on Rust…)

Ludo’.