> (Also, the manual annotation would go away once 'gs-fonts' is renamed. > I'll run "echo /gnu/store/*/share/fonts > atchie-fonts" though to see > if there are other packages not following the convention.) Scheme code: (use-modules (ice-9 ftw) (srfi srfi-1)) (define (has-share/fonts? o) (file-exists? (string-append "/gnu/store/" o "/share/fonts"))) (define t (scandir "/gnu/store" has-share/fonts?)) (define t2 (map (lambda (x) (substring x 33)) t)) (define t3 (delete-duplicates t2)) (define (fonty? x) (string-prefix? "font-" x)) (partition (lambda (x) (string-prefix? "font-" x)) t3) Output on my system: $1 = ("font-alias-1.0.3" [...]) $2 = ("fonts-dir" "profile" "mate-1.24.1" "denemo-2.5.0" "mate-1.24.0" "gs-fonts-8.11") "fonts-dir", "profile" and "gs-fonts" are expected. "mate" uses "union-build" and has "font-cantarell" in 'inputs'. Apparently "denemo" has some font files as well. Something will need to be figured out for these cases, if the approach of my patch is followed. I think it's better to optimise 'union-build' and the store deduplication code though (maybe subdirectories can be process concurrently, to maximise I/O utilisation?). That should improve performance outside the 'fonts-dir-file' hook as well. Greetings, Maxime.