unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#39192] [PATCH] gnu: hexedit: Make F1 help more reliable
@ 2020-01-19 12:44 Jakub Kądziołka
  2020-01-27 23:36 ` Marius Bakke
  0 siblings, 1 reply; 4+ messages in thread
From: Jakub Kądziołka @ 2020-01-19 12:44 UTC (permalink / raw)
  To: 39192

* gnu/packages/hexedit.scm (hexedit)[arguments](patch-man-path): New
  phase.
  [inputs]: Add MAN-DB.
---
 gnu/packages/hexedit.scm | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

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
-- 
2.25.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [bug#39192] [PATCH] gnu: hexedit: Make F1 help more reliable
  2020-01-19 12:44 [bug#39192] [PATCH] gnu: hexedit: Make F1 help more reliable Jakub Kądziołka
@ 2020-01-27 23:36 ` Marius Bakke
  2020-01-28  7:36   ` Jakub Kądziołka
  0 siblings, 1 reply; 4+ messages in thread
From: Marius Bakke @ 2020-01-27 23:36 UTC (permalink / raw)
  To: Jakub Kądziołka, 39192

[-- Attachment #1: Type: text/plain, Size: 488 bytes --]

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 :-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [bug#39192] [PATCH] gnu: hexedit: Make F1 help more reliable
  2020-01-27 23:36 ` Marius Bakke
@ 2020-01-28  7:36   ` Jakub Kądziołka
  2020-01-29 10:08     ` bug#39192: " Marius Bakke
  0 siblings, 1 reply; 4+ messages in thread
From: Jakub Kądziołka @ 2020-01-28  7:36 UTC (permalink / raw)
  To: Marius Bakke; +Cc: 39192

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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#39192: [PATCH] gnu: hexedit: Make F1 help more reliable
  2020-01-28  7:36   ` Jakub Kądziołka
@ 2020-01-29 10:08     ` Marius Bakke
  0 siblings, 0 replies; 4+ messages in thread
From: Marius Bakke @ 2020-01-29 10:08 UTC (permalink / raw)
  To: Jakub Kądziołka; +Cc: 39192-done


[-- Attachment #1.1: Type: text/plain, Size: 1802 bytes --]

Jakub Kądziołka <kuba@kadziolka.net> writes:

> 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.

Right.  The problem of manpages being unavailable unless man-db is
included in the profile is not unique to hexedit.  'git foo --help' has
the same problem in a --pure environment.  But at least then you get a
good error message.

> 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.

I see, not great.  Sounds like a good reason to add man-db as an input
in this case.

> In hindsight, this is something I should've explained in my first message.
> Sorry about that.

No worries, these things are difficult.  :-)

Pushed in 602059e79, with a few cosmetic modifications:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: Type: text/x-patch, Size: 1551 bytes --]

diff --git a/gnu/packages/hexedit.scm b/gnu/packages/hexedit.scm
index 368a902ce3..e1a029167a 100644
--- a/gnu/packages/hexedit.scm
+++ b/gnu/packages/hexedit.scm
@@ -49,20 +49,22 @@
      `(#: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
+         ;; Make F1 open the man page even if man-db is not in the profile.
          (add-after 'unpack 'patch-man-path
-           (lambda _
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (substitute* "interact.c"
                (("\"man\"")
-                (string-append "\"" (assoc-ref %build-inputs "man-db") "/bin/man\""))
+                (string-append "\"" (assoc-ref inputs "man-db") "/bin/man\""))
                (("\"hexedit\"")
-                (string-append "\"" (assoc-ref %outputs "out") "/share/man/man1/hexedit.1.gz\""))))))))
+                (string-append "\"" (assoc-ref outputs "out")
+                               "/share/man/man1/hexedit.1.gz\"")))
+             #t)))))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)))
     (inputs
-     `(("ncurses" ,ncurses)
-       ("man-db" ,man-db)))
+     `(("man-db" ,man-db)
+       ("ncurses" ,ncurses)))
     (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

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-01-29 10:09 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-01-19 12:44 [bug#39192] [PATCH] gnu: hexedit: Make F1 help more reliable Jakub Kądziołka
2020-01-27 23:36 ` Marius Bakke
2020-01-28  7:36   ` Jakub Kądziołka
2020-01-29 10:08     ` bug#39192: " Marius Bakke

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).