gnu: yelp: Provide dependencies to display "man:" URIs.

Previously a command like the following one would fail to display the
expected man page:

  guix shell yelp coreutils -C \
     --expose=/tmp/.X11-unix --expose=/run/user \
     --expose=/var/run/dbus --expose=/etc/machine-id -E ^DISPLAY -- \
     /bin/sh -c \
     'export MANPATH=$GUIX_ENVIRONMENT/share/man; echo $MANPATH; yelp man:ls'

* gnu/packages/gnome.scm (yelp)[arguments]: New field.
[inputs]: Add ‘man-db’ and ‘groff-minimal’.

Reported-by: Luis Felipe <sirgazil@zoho.com>
This commit is contained in:
Ludovic Courtès 2023-09-02 23:18:48 +02:00
parent ab971e9c19
commit 3f76970fda
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -142,6 +142,7 @@ (define-module (gnu packages gnome)
#:use-module (gnu packages geo)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages groff)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
#:use-module (gnu packages guile)
@ -7336,6 +7337,28 @@ (define-public yelp
(base32
"0h9vf4fx056imjf8ibmn03wg1c3hniipy1nsm2jqi62lp1m19c95"))))
(build-system glib-or-gtk-build-system)
(arguments
(list #:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'set-man-file-name
(lambda* (#:key inputs #:allow-other-keys)
;; Invoke 'man' directly instead of searching $PATH.
(substitute* '("libyelp/yelp-man-parser.c"
"libyelp/yelp-uri.c")
(("\"man\"")
(string-append "\""
(search-input-file inputs "bin/man")
"\""))
(("G_SPAWN_SEARCH_PATH")
"0"))))
(add-after 'install 'help-man-find-its-dependencies
(lambda* (#:key inputs outputs #:allow-other-keys)
;; XXX: Currently 'man' looks for 'groff' in $PATH in one
;; case. This should be fixed in 'man-db' proper.
(wrap-program (string-append (assoc-ref outputs "out")
"/bin/yelp")
`("PATH" ":" prefix
(,(dirname (search-input-file inputs "bin/groff"))))))))))
(native-inputs
(list `(,glib "bin") ; for glib-genmarshal, etc.
intltool
@ -7347,6 +7370,8 @@ (define-public yelp
(list gsettings-desktop-schemas
libhandy
libxslt
man-db ;for URIs like "man:ls"
groff-minimal ;ditto
sqlite
webkitgtk
yelp-xsl))