summary refs log tree commit diff
path: root/guix/man-db.scm
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-01 23:51:12 -0500
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-03-02 00:00:55 -0500
commitdeaa322963bc06b820e82d5945e6c496ac6bedf1 (patch)
tree47ea9a580f90981482ee6fa60ef1e2366dbe94e8 /guix/man-db.scm
parentcda78ec8ac30670c5394f55f92d4a67c286b2575 (diff)
downloadguix-deaa322963bc06b820e82d5945e6c496ac6bedf1.tar.gz
guix: Index the man-db database via man pages names.
Fixes <https://issues.guix.gnu.org/38838>.

* guix/man-db.scm (write-mandb-database): Use the abbreviated base name of the
man page as the key, not its full file name.
Diffstat (limited to 'guix/man-db.scm')
-rw-r--r--guix/man-db.scm7
1 files changed, 6 insertions, 1 deletions
diff --git a/guix/man-db.scm b/guix/man-db.scm
index a6528e4431..7d9707a592 100644
--- a/guix/man-db.scm
+++ b/guix/man-db.scm
@@ -110,7 +110,12 @@
     ;; Write ENTRIES in sorted order so we get deterministic output.
     (for-each (lambda (entry)
                 (gdbm-set! db
-                           (string-append (mandb-entry-file-name entry)
+                           ;; For the 'whatis' tool to find anything, the key
+                           ;; should match the name of the software,
+                           ;; e.g. 'cat'.  Derive it from the file name, as
+                           ;; the name could technically be #f.
+                           (string-append (abbreviate-file-name
+                                           (mandb-entry-file-name entry))
                                           "\x00")
                            (entry->string entry)))
               (sort entries mandb-entry<?))