Message ID | 20200119124434.aatfpdm6ihiig354@zdrowyportier.kadziolka.net |
---|---|
State | Accepted |
Headers | show |
Series | [bug#39192] gnu: hexedit: Make F1 help more reliable | expand |
Context | Check | Description |
---|---|---|
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | success | View Laminar job |
Jakub Kądziołka <kuba@kadziolka.net> writes: > * gnu/packages/hexedit.scm (hexedit)[arguments](patch-man-path): New > phase. > [inputs]: Add MAN-DB. While this change is harmless, I think we can generally expect "man" to be available. Does the program crash if man-db is not installed? Or does it print an actionable error message? In the latter case I'm inclined to leave things as-is, in the former case let's patch it. But no strong opinion, mostly curious :-)
On Tue, Jan 28, 2020 at 12:36:04AM +0100, Marius Bakke wrote: > Jakub Kądziołka <kuba@kadziolka.net> writes: > > > * gnu/packages/hexedit.scm (hexedit)[arguments](patch-man-path): New > > phase. > > [inputs]: Add MAN-DB. > > While this change is harmless, I think we can generally expect "man" to > be available. Does the program crash if man-db is not installed? Or > does it print an actionable error message? > > In the latter case I'm inclined to leave things as-is, in the former > case let's patch it. But no strong opinion, mostly curious :-) Currently, the problem appears when hexedit is used in a `guix environment', and man-db is not specified as an input for the environment. In this case (assuming --pure hasn't been used), man prints an error message saying "no manpage for hexedit" when the user presses F1, but it cannot be seen until one exits hexedit. For a new user, this is not a trivial feat. Moreover, the error is confusing - it suggests that the manpage just hasn't been packaged. When man isn't found at all, no error message is printed, the F1 key just makes the screen blink. This could happen in a --pure environment. In hindsight, this is something I should've explained in my first message. Sorry about that.
diff --git a/gnu/packages/hexedit.scm b/gnu/packages/hexedit.scm index 39dcb2e0f7..e788c7f766 100644 --- a/gnu/packages/hexedit.scm +++ b/gnu/packages/hexedit.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages compression) + #:use-module (gnu packages man) #:use-module (gnu packages ncurses) #:use-module (guix download) #:use-module (guix git-download) @@ -43,12 +44,24 @@ (base32 "1xsxa5mip892jkvz9jshj73y6c7j3mgp8y393ciihqlyf2nmfs67")))) (build-system gnu-build-system) - (arguments '(#:tests? #f)) ; no check target + (arguments + `(#:tests? #f ; no check target + #:phases + (modify-phases %standard-phases + ;; Make F1 open the man page even if man-db is not in the profile + (add-after 'unpack 'patch-man-path + (lambda _ + (substitute* "interact.c" + (("\"man\"") + (string-append "\"" (assoc-ref %build-inputs "man-db") "/bin/man\"")) + (("\"hexedit\"") + (string-append "\"" (assoc-ref %outputs "out") "/share/man/man1/hexedit.1.gz\"")))))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake))) (inputs - `(("ncurses" ,ncurses))) + `(("ncurses" ,ncurses) + ("man-db" ,man-db))) (synopsis "View and edit files or devices in hexadecimal or ASCII") (description "hexedit shows a file both in ASCII and in hexadecimal. The file can be a device as the file is read a piece at a time. You can modify