(address . bug-guix@gnu.org)
For a “system-level” package, GVFS has an unreasonable footprint:
Toggle snippet (25 lines)
$ guix describe
Generation 230 Oct 03 2022 00:13:06 (current)
guix bb3b810
repository URL: https://git.savannah.gnu.org/git/guix.git
branch: master
commit: bb3b810167d9ff784770a848a6f86b0cfa9cdfd8
$ guix size gvfs
store item total self
/gnu/store/wdm2s2si8fqsrcd5xpc29ivmpkf20s8d-mesa-21.3.8 411.6 169.6 6.8%
/gnu/store/6pdzpmxg5afzss6dlivq8z84sfa31x22-llvm-11.0.0 221.5 149.5 6.0%
/gnu/store/069aq2v993kpc41yabp5b6vm4wb9jkhg-gcc-10.3.0 217.7 145.8 5.9%
/gnu/store/9cbi3x1f0xqagpmdmjhc79acshyjkl6k-webkitgtk-2.36.7 1379.1 127.0 5.1%
/gnu/store/a67q76vpbahf66y434pqs9c1gsj6x7ml-samba-4.16.4 491.8 93.7 3.8%
/gnu/store/492rrcrkgaq0csw1x09x6aj5kjz8xxrr-samba-4.15.3 489.4 90.1 3.6%
/gnu/store/drjnxy0jrxd084grrkyagrdkjsyv1afz-qtbase-5.15.2 1154.1 73.4 2.9%
/gnu/store/65i3nhcwmz0p8rqbg48gaavyky4g4hwk-python-3.9.9 155.3 63.7 2.6%
/gnu/store/p3hz5g4z1yzjq6bsbp7kqr9g0fmrmad8-mozjs-78.15.0 258.1 62.3 2.5%
/gnu/store/hy6abswwv4d89zp464fw52z65fkzr7h5-perl-5.34.0 147.7 58.6 2.4%
/gnu/store/x3rwakc3z81hmgayxj5qh4a8flsj9hzw-mediasdk-22.4.4 468.8 56.4 2.3%
[...]
total: 2492.4 MiB
The main issue is the dependency on webkitgtk:
Toggle snippet (18 lines)
$ guix graph --path gvfs webkitgtk@2.36
gvfs@1.50.2
gnome-online-accounts@3.45.2
webkitgtk@2.36.7
$ guix gc --references $(guix build gnome-online-accounts)|grep webkit
/gnu/store/6zpcpnywcimmia84jkixnwfcl4chhz6k-webkitgtk-2.36.7
$ grep -r 6zpcpnywcimmia84jkixnwfcl4chhz6k $(guix build gnome-online-accounts)
grep: /gnu/store/dkqcdhcg8536h4ahwpkc3hv0xrrc8haj-gnome-online-accounts-3.45.2/lib/libgoa-backend-1.0.so.1.0.0: binary file matches
grep: /gnu/store/dkqcdhcg8536h4ahwpkc3hv0xrrc8haj-gnome-online-accounts-3.45.2/lib/goa-1.0/web-extensions/libgoawebextension.so: binary file matches
grep: /gnu/store/dkqcdhcg8536h4ahwpkc3hv0xrrc8haj-gnome-online-accounts-3.45.2/etc/ld.so.cache: binary file matches
$ ldd /gnu/store/dkqcdhcg8536h4ahwpkc3hv0xrrc8haj-gnome-online-accounts-3.45.2/lib/libgoa-backend-1.0.so.1.0.0 |grep webkit
libjavascriptcoregtk-4.1.so.0 => /gnu/store/6zpcpnywcimmia84jkixnwfcl4chhz6k-webkitgtk-2.36.7/lib/libjavascriptcoregtk-4.1.so.0 (0x00007f228ec00000)
libwebkit2gtk-4.1.so.0 => /gnu/store/6zpcpnywcimmia84jkixnwfcl4chhz6k-webkitgtk-2.36.7/lib/libwebkit2gtk-4.1.so.0 (0x00007f228a800000)
$ ldd /gnu/store/dkqcdhcg8536h4ahwpkc3hv0xrrc8haj-gnome-online-accounts-3.45.2/lib/goa-1.0/web-extensions/libgoawebextension.so |grep webkit
libwebkit2gtk-4.1.so.0 => /gnu/store/6zpcpnywcimmia84jkixnwfcl4chhz6k-webkitgtk-2.36.7/lib/libwebkit2gtk-4.1.so.0 (0x00007f3a0a200000)
libjavascriptcoregtk-4.1.so.0 => /gnu/store/6zpcpnywcimmia84jkixnwfcl4chhz6k-webkitgtk-2.36.7/lib/libjavascriptcoregtk-4.1.so.0 (0x00007f3a07c00000)
One way to address it might be to build libgoa-backend and
libgoawebextension separately from the main libgoa.so, or to have them
in a separate output.
However, I’m not sure how libgoa-backend is supposed to be used. It has
a .pc file, which suggests applications that need it explicitly link
against it (as opposed to having it dlopen’d), but I couldn’t find an
example.
Thoughts?
Ludo’.