Package: guix;
Reported by: Julien Lepiller <julien <at> lepiller.eu>
Date: Fri, 17 Jun 2022 05:50:03 UTC
Severity: normal
Message #8 received at 56030 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: Julien Lepiller <julien <at> lepiller.eu> Cc: 56030 <at> debbugs.gnu.org Subject: Re: bug#56030: The guix pull profile is too big Date: Sun, 26 Jun 2022 23:20:44 +0200
Hi, Julien Lepiller <julien <at> lepiller.eu> skribis: > I figured out this morning that my guix pull profile ("current") was more than 1GB. Looking at the closure, I found a few oddities. Specifically: --8<---------------cut here---------------start------------->8--- $ guix describe Generation 219 Jun 20 2022 09:40:20 (current) guix 73761d8 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 73761d8049f483e6685c2c736872d0366e03238a $ guix size $(readlink -f ~/.config/guix/current) store item total self /gnu/store/rfkyfhdj3zq6lzlw7n0y5m36pdcfd2s7-guix-73761d804-modules 554.6 220.8 27.5% /gnu/store/249mczqf0jv55a7df9v3a3314mrwjg61-guix-packages-base 123.9 123.9 15.5% /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8 130.0 53.0 6.6% /gnu/store/cnfsv9ywaacyafkqdqsv2ry8f01yr7a9-guile-3.0.7 129.1 52.0 6.5% /gnu/store/jv3gkqapz7fxgpjzp7g6rlpfl3fb2pq9-guix-system 51.2 51.2 6.4% /gnu/store/5h2w4qi9hk1qzzgi1w83220ydslinr4s-glibc-2.33 38.3 36.6 4.6% /gnu/store/cwxfvi0890wwmhigk84iiq1dh64x0ac9-guix-packages-base-source 34.2 34.2 4.3% /gnu/store/094bbaq6glba86h1d4cj16xhdi6fk2jl-gcc-10.3.0-lib 71.7 33.4 4.2% /gnu/store/3db8s5gn3srsdrzrdz4d0xpxpfhlb3h5-guix-extra 25.7 25.7 3.2% /gnu/store/bnsf9il448hl5xjavbhq3rcx355svz2v-glib-2.70.2 98.1 15.3 1.9% /gnu/store/mw3py6smb1pk8yx298hd9ivz9lzbksqi-glibc-utf8-locales-2.33 13.9 13.9 1.7% /gnu/store/7nlzk7n90ib3llblxlpz725ym3k05gdj-util-linux-2.37.2-lib 80.7 9.0 1.1% /gnu/store/pyaxxsi4207awhpppqf1br6gl03k47pz-guix-package-cache 6.4 6.4 0.8% /gnu/store/cyx97f0bx4nki07l52jzw3lng0mzcdcv-guix-cli-core 6.4 6.4 0.8% /gnu/store/2rdmiv3k11qxz13fjq5bipljwjz0r6ws-guix-manual 6.0 6.0 0.8% /gnu/store/9rrnm5hdjw7cy96a2a9rfgh6y08wsbmf-ncurses-6.2.20210619 77.6 5.9 0.7% /gnu/store/zl9wf0zwq2ka9rpmayp53hnp2mn460xf-gnutls-3.7.2 143.4 5.6 0.7% /gnu/store/xgp23kc3v9w7l10grjwd0n1a74v3fhx3-openssl-1.1.1n 77.2 5.5 0.7% /gnu/store/il571kvl9fs08xag4hyg6x8hm57akscm-guile-git-0.5.2 100.5 5.2 0.6% /gnu/store/dyd5gaxzrngl6m9clniq5y1r7yl463h1-guix-system-tests 4.3 4.3 0.5% /gnu/store/fg76cjzdk413dfkx50fkcwd3wpbyfpi1-pcre2-10.37 84.6 4.0 0.5% /gnu/store/ffynx7n76vb5rby4b14yjcacqwq1w70h-mit-krb5-1.19.2 82.2 3.9 0.5% /gnu/store/v06gnr579r0jmr36aha3wkbd1y27ccg7-disarchive-0.4.0 139.1 3.8 0.5% /gnu/store/x1jd7pqfn9ilb6x97azcfq1fhjr63p0z-p11-kit-0.23.22 76.4 3.4 0.4% /gnu/store/xmzx5mzv4863yw9kmr2ykndgp37p8if0-sqlite-3.36.0 82.3 3.2 0.4% /gnu/store/x1x1sw727g7ls93av3i27mkd90s4wgd7-guix-home 3.2 3.2 0.4% /gnu/store/jkd4zlfq4rph31xazz132cf0skg6km00-guix-cli 3.1 3.1 0.4% /gnu/store/v8raqm2shh9azkl71107p53j55hir306-libxcb-1.14 75.3 3.0 0.4% /gnu/store/ssfq7hv5bhas830cs29fk271brcn3vqi-guile-lib-0.2.7 2.9 2.9 0.4% /gnu/store/g2ajyl8xk9aarxrgjbng2hkj3qm2v0z2-tar-1.34 75.6 2.9 0.4% /gnu/store/fa43ijbrb96x08621qigxxiphp503lsi-libx11-1.7.3.1 78.2 2.8 0.4% /gnu/store/fwbiihd2sbhai63y1pvvdh0f2bakfzrf-gmp-6.2.1 74.4 2.7 0.3% /gnu/store/yqr33jyy81fdqmr8rd4gvbpisbad2w2l-guix-extra-source 2.5 2.5 0.3% /gnu/store/4rqq5sl8n85ywfwqdv0f1xjaw9vhgl8k-guix-system-source 2.4 2.4 0.3% /gnu/store/hkhbq2q1gfs970gsp2nhsmcqb4vmv2xr-libunistring-0.9.10 74.0 2.3 0.3% /gnu/store/f058zn04xla5jndkhxl0s20pbl61bckq-guile-bytestructures-1.0.10 2.1 2.1 0.3% /gnu/store/n0sd9hghs18pjsj72023r1spa9wxccc2-libevent-2.1.12 73.8 2.1 0.3% /gnu/store/m7vwbbsy3pkpi4rpdnvr8m4jc8y36ckn-libgit2-1.3.0 95.4 2.0 0.2% /gnu/store/xggzgd4xwsy5p02wdfngk67j7zpp91gb-guile-ssh-0.15.1 144.9 1.9 0.2% /gnu/store/03g49nffc73vrmx5180p4fhr3z4mfk0z-avahi-0.8 111.8 1.7 0.2% /gnu/store/r08q5kq8hy5621y3yk0c7zrxb9s514z4-guix-locale-guix 1.7 1.7 0.2% /gnu/store/720rj90bch716isd8z7lcwrnvz28ap4y-bash-static-5.1.8 1.7 1.7 0.2% /gnu/store/di5bqb45hi5lvp2q08hlxqjdcl9phjb1-pcre-8.45 73.4 1.7 0.2% /gnu/store/wcwls45278gzpjvwlvrrs1y7h30g44xh-readline-8.1.1 79.0 1.4 0.2% /gnu/store/3kl94m3ksm45a880b6lnn3kagk857lj9-libgcrypt-1.8.8 75.1 1.4 0.2% /gnu/store/60jl4xry9c93j9l0rr7nkvbw7dihjz4k-guile-gcrypt-0.3.0 76.5 1.4 0.2% /gnu/store/3x3dl71d4xm6y4hjwq110hmfyfx0xc6j-zstd-1.5.0-lib 72.9 1.2 0.2% /gnu/store/2b3blhwbag1ial0dhxw7wh4zjxl0cqpk-pkg-config-0.29.2 72.8 1.1 0.1% /gnu/store/yl859fgb86zgl0zsvbhxdpms945aazip-dbus-1.12.20 79.6 1.1 0.1% /gnu/store/aggsb6j1svxp70xlll4rqnx5f2pzz794-xz-5.2.5 73.7 1.1 0.1% /gnu/store/c8isj4jq6knv0icfgr43di6q3nvdzkx7-xz-5.2.5 73.7 1.1 0.1% […] /gnu/store/vjf3hvajws01wmm5rwbkgw7z0jvl6v3h-guix-command 788.6 0.0 0.0% /gnu/store/hsynjf6csram52x9ampnb90ysdbipdk2-emacs-subdirs 0.0 0.0 0.0% /gnu/store/yyqqi3kp61r9sjqhhay85in0h5s8dzs8-guix-daemon 789.4 0.0 0.0% total: 802.0 MiB --8<---------------cut here---------------end--------------->8--- 50% goes into Guix modules. There’s prolly room for improvement because the ‘guix-COMMIT-modules’, which is #1, is actually the union of all the other guix-*-modules. > There's gcc in there, which is the second most important contributor after guix-*-modules (150 MB). It's referenced by gcc-toolchain, itself only referenced by the guile-wrapper we build in (guix self). Can we get rid of it? I think you fixed that one in 319b8331b2357e12ec9edb9665513c32bef56622. \o/ > There are three versions of guile (50 MB each). Can we settle for only one? I think that’s (@ (gnu packages commencement) guile-final), guile-3.0, and guile-3.0-latest. However I see only two of them here. --8<---------------cut here---------------start------------->8--- $ guix graph --path -t references $(readlink -f ~/.config/guix/current) /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8 /gnu/store/njzk97pz238fcjjpjk2vzdv5rgs6s54v-profile /gnu/store/vp1m80lj2g6391xi95f056yra7xfb47i-guix-73761d804 /gnu/store/vjf3hvajws01wmm5rwbkgw7z0jvl6v3h-guix-command /gnu/store/1jgcbdzx2ss6xv59w55g3kr3x4935dfb-guile-3.0.8 $ guix graph --path -t references $(readlink -f ~/.config/guix/current) /gnu/store/cnfsv9ywaacyafkqdqsv2ry8f01yr7a9-guile-3.0.7 /gnu/store/njzk97pz238fcjjpjk2vzdv5rgs6s54v-profile /gnu/store/vp1m80lj2g6391xi95f056yra7xfb47i-guix-73761d804 /gnu/store/yyqqi3kp61r9sjqhhay85in0h5s8dzs8-guix-daemon /gnu/store/cnfsv9ywaacyafkqdqsv2ry8f01yr7a9-guile-3.0.7 $ head -3 /gnu/store/yyqqi3kp61r9sjqhhay85in0h5s8dzs8-guix-daemon #!/gnu/store/cnfsv9ywaacyafkqdqsv2ry8f01yr7a9-guile-3.0.7/bin/guile --no-auto-compile !# (begin (setenv "GUIX" "/gnu/store/vjf3hvajws01wmm5rwbkgw7z0jvl6v3h-guix-command") (unless (getenv "GUIX_STATE_DIRECTORY") (setenv "GUIX_STATE_DIRECTORY" "/var/guix")) (unless (getenv "GUIX_CONFIGURATION_DIRECTORY") (setenv "GUIX_CONFIGURATION_DIRECTORY" "/etc/guix")) (unless (getenv "NIX_STORE_DIR") (setenv "NIX_STORE_DIR" "/gnu/store")) (apply execl "/gnu/store/jmqzsqpgnxrvzpdyx4dglvz9f40b81xm-guix-daemon-1.3.0-27.598f728/bin/guix-daemon" "guix-daemon" (cdr (command-line)))) --8<---------------cut here---------------end--------------->8--- Fixed this one in commit d418031a8cbdea4e2bc5c52ea1b29ad369579bae. But then, ‘guile-3.0’ being the default, it’s used in a number of places, like: --8<---------------cut here---------------start------------->8--- $ guix graph -t references --path /gnu/store/6f58rzr1xi8h43l6l8gsm4paravqnnjz-guix-20220626.13 /gnu/store/cnfsv9ywaacyafkqdqsv2ry8f01yr7a9-guile-3.0.7 /gnu/store/6f58rzr1xi8h43l6l8gsm4paravqnnjz-guix-20220626.13 /gnu/store/00kkky8qxa73qv8g8y60y5gjz0l4hpmk-guix-command /gnu/store/m3pdqa0crnvblllvkdjbda42k0rwxn9c-guix-module-union /gnu/store/v06gnr579r0jmr36aha3wkbd1y27ccg7-disarchive-0.4.0 /gnu/store/cnfsv9ywaacyafkqdqsv2ry8f01yr7a9-guile-3.0.7 --8<---------------cut here---------------end--------------->8--- I can’t think of a good solution to this. > Then maybe less important because they're small: > > There are two libffi, gzip, zlib, libgc, bash-minimal, xz, pkg-config and libunistring. > > We have bash-minimal and bash-static. The latter is a bit bigger than the former. Maybe we can keep only bash-minimal? That’s probably due to the fact that there are multiple Guile variants; annoying. It’s worth keeping in mind that thanks to deduplication, this costs much less than it seems in terms of disk space, but it does cost in terms of bandwidth usage. Thanks, Ludo’.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.