Hi Guix! I was inspired by Michael Stapelberg’s talk recently shared on IRC¹ (well worth watching!). One of the takeaways for me is that many actions should be done lazily, in particular populating caches.
‘guix install’ & co. spend a significant time populating such caches, in particular the XDG caches² and the manual page database (mandb). I’m thinking we could get rid of the mandb hook. However, the functionality matters IMO (we need good tools so users can browse local documentation; mandb is not that good but better than no search mechanism.) Here are several options that come to mind: 1. Provide a ‘man’ wrapper or modify the ‘man-db’ package such that the database gets built on the first use of ‘man -k’, unless it’s already up-to-date. 2. Add a phase in gnu-build-system.scm that creates a per-package database. Change the mandb profile hook such that all it needs to do is “concatenate” all these GDBM databases (which should be much faster than browsing all the man pages as it currently does). There are crazier option that came to mind but let’s ignore them for now. Thoughts? :-) Ludo’. ¹ “distri: researching fast Linux package management” https://media.ccc.de/v/arch-conf-online-2020-6387-distri-researching-fast-linux-package-management ² https://issues.guix.gnu.org/44053#4