[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#77487: 1.4 million extraneous symlinks under .guix-home/profile/shar
From: |
Timo Wilken |
Subject: |
bug#77487: 1.4 million extraneous symlinks under .guix-home/profile/share/icons |
Date: |
Thu, 03 Apr 2025 14:05:40 +0200 |
Hi,
In my ~/.guix-home/profile/share/icons/, I have a total of 1.4 million
symlinks:
$ find ~/.guix-home/profile/share/icons/ -type l -printf x | wc -c
1425657
The directory itself is not a symlink. Instead, it contains the following
structure (with the papirus-icon-theme package installed):
~/.guix-home/profile/share/icons/
+ Papirus/
+ icon-theme.cache ->
/gnu/store/...-gtk-icon-themes/share/icons/Papirus/icon-theme.cache
+ index.theme ->
/gnu/store/...-gtk-icon-themes/share/icons/Papirus/index.theme
+ 16x16/
+ apps/
+ 010editor.svg ->
/gnu/store/...-gtk-icon-themes/share/icons/Papirus/16x16/apps/010editor.svg
+ 09BE_EpicGamesLauncher.0.svg ->
/gnu/store/...-gtk-icon-themes/share/icons/Papirus/16x16/apps/09BE_EpicGamesLauncher.0.svg
+ 0ad.svg ->
/gnu/store/...-gtk-icon-themes/share/icons/Papirus/16x16/apps/0ad.svg
[and so on, and so forth...]
I.e., every single image file in every single icon theme is linked
individually -- none of the 16x16 (etc) directories are symlinks!
These files are also all symlinks to
/gnu/store/...-gtk-icon-themes/share/icons/<icon>, where <icon> is their own
filename under ~/.guix-homme/profile/share/icons/. There are no symlinks that
point anywhere else -- even the icon-theme.cache and index.theme symlinks
point into the same "gtk-icon-themes" union.
I've checked this using the following shell snippet:
$ cd ~/.guix-home/profile/share/icons
$ find */ -type l -printf '%p\t%l\n' | awk -F'\t' '{
gsub(/[^a-zA-Z0-9/_-]/, "[&]", $1) # escape symlink path as regex
sub("/" $1 "$", "", $2) # remove symlink path from the end of its target
path
print $2 # print trimmed target path
}' | uniq -c
1433393 /gnu/store/zg7wwydwjaykpp0dwzq97hzilzd3q85f-gtk-icon-themes/share/icons
My question is therefore: why isn't ~/.guix-home/profile/share/icons itself a
symlink to /gnu/store/...-gtk-icon-themes/share/icons? That would get my home
profile down from 1,440,513 to a measly 14,857 symlinks in total -- and
presumably speed up the home profile creation by a lot (instead of taking over
a minute on a fast NVME SSD)!
I've tried digging into (guix build union) and (guix profiles), but I've not
found anything obviously wrong...
Cheers,
Timo
- bug#77487: 1.4 million extraneous symlinks under .guix-home/profile/share/icons,
Timo Wilken <=