GNU bug report logs - #65745
[PATCH] gnu: yelp: Provide dependencies to display "man:" URIs.

Previous Next

Package: guix-patches;

Reported by: Ludovic Courtès <ludo <at> gnu.org>

Date: Mon, 4 Sep 2023 21:00:01 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 65745 in the body.
You can then email your comments to 65745 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, rg <at> raghavgururajan.name, guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Mon, 04 Sep 2023 21:00:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ludovic Courtès <ludo <at> gnu.org>:
New bug report received and forwarded. Copy sent to liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, rg <at> raghavgururajan.name, guix-patches <at> gnu.org. (Mon, 04 Sep 2023 21:00:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: guix-patches <at> gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Luis Felipe <sirgazil <at> zoho.com>
Subject: [PATCH] gnu: yelp: Provide dependencies to display "man:" URIs.
Date: Mon,  4 Sep 2023 22:58:55 +0200
Previously a command like the following one would fail to display the
expected man page:

  guix shell yelp coreutils man-db -C \
     --expose=/tmp/.X11-unix --expose=/run/user \
     --expose=/var/run/dbus --expose=/etc/machine-id \
     -E ^DISPLAY -- yelp man:ls

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

Reported-by: Luis Felipe <sirgazil <at> zoho.com>
---
 gnu/packages/gnome.scm | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

Hi!

Initially I wanted to fix support for URLs like “info:coreutils”,
which Luis also reported on the Fediverse as being broken.  However,
after much debugging I got lost in a maze of callbacks and threads
and opaque objects and eventually gave up.  Someone™ should take
another look.

For the record, this is how I went on my debugging journey:

  guix shell yelp coreutils man-db info-reader \
    --with-debug-info=yelp gdb --pure -E ^DISPLAY -- \
    gdb --args /bin/sh yelp info:coreutils

Ludo’.

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3b80692e90..894d77d7ba 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -7336,6 +7336,31 @@ (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 outputs #:allow-other-keys)
+                   ;; Create a wrapper for 'man' that knows where to find
+                   ;; 'groff' and 'gunzip'.
+                   (define libexecdir
+                     (string-append #$output "/libexec/yelp"))
+                   (define wrapper
+                     (string-append libexecdir "/man"))
+
+                   (mkdir-p libexecdir)
+                   (symlink (search-input-file inputs "bin/man") wrapper)
+                   (wrap-program wrapper
+                     `("PATH" ":" =
+                       ,(map (lambda (program)
+                               (dirname (search-input-file inputs program)))
+                             '("bin/groff" "bin/gunzip"))))
+
+                   ;; Have Yelp use that 'man' wrapper instead of searching
+                   ;; for 'man' in $PATH.
+                   (substitute* "libyelp/yelp-man-parser.c"
+                     (("\"man\"")
+                      (string-append "\"" wrapper "\""))))))))
     (native-inputs
      (list `(,glib "bin") ; for glib-genmarshal, etc.
            intltool
@@ -7347,6 +7372,8 @@ (define-public yelp
      (list gsettings-desktop-schemas
            libhandy
            libxslt
+           man-db                                 ;for URIs like "man:ls"
+           (lookup-package-input man-db "groff-minimal") ;ditto
            sqlite
            webkitgtk
            yelp-xsl))

base-commit: 1af35bbb25b122cafddfd2f69b644d46c4beff85
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Tue, 05 Sep 2023 03:44:02 GMT) Full text and rfc822 format available.

Message #8 received at 65745 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Luis Felipe <sirgazil <at> zoho.com>,
 65745 <at> debbugs.gnu.org, Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: [bug#65745] [PATCH] gnu: yelp: Provide dependencies to display
 "man:" URIs.
Date: Mon, 04 Sep 2023 23:43:02 -0400
Hello,

Ludovic Courtès <ludo <at> gnu.org> writes:

[...]

> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 3b80692e90..894d77d7ba 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -7336,6 +7336,31 @@ (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 outputs #:allow-other-keys)
> +                   ;; Create a wrapper for 'man' that knows where to find
> +                   ;; 'groff' and 'gunzip'.
> +                   (define libexecdir
> +                     (string-append #$output "/libexec/yelp"))
> +                   (define wrapper
> +                     (string-append libexecdir "/man"))
> +
> +                   (mkdir-p libexecdir)
> +                   (symlink (search-input-file inputs "bin/man") wrapper)
> +                   (wrap-program wrapper
> +                     `("PATH" ":" =
> +                       ,(map (lambda (program)
> +                               (dirname (search-input-file inputs program)))
> +                             '("bin/groff" "bin/gunzip"))))
> +
> +                   ;; Have Yelp use that 'man' wrapper instead of searching
> +                   ;; for 'man' in $PATH.
> +                   (substitute* "libyelp/yelp-man-parser.c"
> +                     (("\"man\"")
> +                      (string-append "\"" wrapper "\""))))))))

Couldn't we more simply wrap the yelp command with the 'man', 'groff' and
'gunzip' command locations added to PATH?

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Sat, 09 Sep 2023 16:46:02 GMT) Full text and rfc822 format available.

Message #11 received at 65745 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Luis Felipe <sirgazil <at> zoho.com>,
 65745 <at> debbugs.gnu.org, Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: bug#65745: [PATCH] gnu: yelp: Provide dependencies to display
 "man:" URIs.
Date: Sat, 09 Sep 2023 18:45:36 +0200
Hi,

Maxim Cournoyer <maxim.cournoyer <at> gmail.com> skribis:

>> +                   ;; Create a wrapper for 'man' that knows where to find
>> +                   ;; 'groff' and 'gunzip'.
>> +                   (define libexecdir
>> +                     (string-append #$output "/libexec/yelp"))
>> +                   (define wrapper
>> +                     (string-append libexecdir "/man"))
>> +
>> +                   (mkdir-p libexecdir)
>> +                   (symlink (search-input-file inputs "bin/man") wrapper)
>> +                   (wrap-program wrapper
>> +                     `("PATH" ":" =
>> +                       ,(map (lambda (program)
>> +                               (dirname (search-input-file inputs program)))
>> +                             '("bin/groff" "bin/gunzip"))))
>> +
>> +                   ;; Have Yelp use that 'man' wrapper instead of searching
>> +                   ;; for 'man' in $PATH.
>> +                   (substitute* "libyelp/yelp-man-parser.c"
>> +                     (("\"man\"")
>> +                      (string-append "\"" wrapper "\""))))))))
>
> Couldn't we more simply wrap the yelp command with the 'man', 'groff' and
> 'gunzip' command locations added to PATH?

Yeah it’s convoluted; the idea was that the wrapper for ‘man’ is
something that should be fixed in ‘man-db’ proper but that we cannot fix
in ‘master’ because ‘man-db’ has too many dependents.

Maybe I should start with it though…

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Sat, 09 Sep 2023 16:57:02 GMT) Full text and rfc822 format available.

Message #14 received at 65745 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>, Maxim Cournoyer
 <maxim.cournoyer <at> gmail.com>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Luis Felipe <sirgazil <at> zoho.com>,
 65745 <at> debbugs.gnu.org
Subject: Re: bug#65745: [PATCH] gnu: yelp: Provide dependencies to display
 "man:" URIs.
Date: Sat, 09 Sep 2023 18:56:06 +0200
Am Samstag, dem 09.09.2023 um 18:45 +0200 schrieb Ludovic Courtès:
> Hi,
> 
> Maxim Cournoyer <maxim.cournoyer <at> gmail.com> skribis:
> 
> > > +                   ;; Create a wrapper for 'man' that knows
> > > where to find
> > > +                   ;; 'groff' and 'gunzip'.
> > > +                   (define libexecdir
> > > +                     (string-append #$output "/libexec/yelp"))
> > > +                   (define wrapper
> > > +                     (string-append libexecdir "/man"))
> > > +
> > > +                   (mkdir-p libexecdir)
> > > +                   (symlink (search-input-file inputs "bin/man")
> > > wrapper)
> > > +                   (wrap-program wrapper
> > > +                     `("PATH" ":" =
> > > +                       ,(map (lambda (program)
> > > +                               (dirname (search-input-file
> > > inputs program)))
> > > +                             '("bin/groff" "bin/gunzip"))))
> > > +
> > > +                   ;; Have Yelp use that 'man' wrapper instead
> > > of searching
> > > +                   ;; for 'man' in $PATH.
> > > +                   (substitute* "libyelp/yelp-man-parser.c"
> > > +                     (("\"man\"")
> > > +                      (string-append "\"" wrapper "\""))))))))
> > 
> > Couldn't we more simply wrap the yelp command with the 'man',
> > 'groff' and
> > 'gunzip' command locations added to PATH?
> 
> Yeah it’s convoluted; the idea was that the wrapper for ‘man’ is
> something that should be fixed in ‘man-db’ proper but that we cannot
> fix
> in ‘master’ because ‘man-db’ has too many dependents.
> 
> Maybe I should start with it though…
Can we graft our man-db to get the same effect?

Information forwarded to guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Sat, 09 Sep 2023 22:07:02 GMT) Full text and rfc822 format available.

Message #17 received at 65745 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>,
 Ludovic Courtès <ludo <at> gnu.org>,
 Luis Felipe <sirgazil <at> zoho.com>, 65745 <at> debbugs.gnu.org
Subject: Re: bug#65745: [PATCH] gnu: yelp: Provide dependencies to display
 "man:" URIs.
Date: Sat, 09 Sep 2023 18:06:33 -0400
Hi,

Liliana Marie Prikler <liliana.prikler <at> gmail.com> writes:

> Am Samstag, dem 09.09.2023 um 18:45 +0200 schrieb Ludovic Courtès:
>> Hi,
>> 
>> Maxim Cournoyer <maxim.cournoyer <at> gmail.com> skribis:
>> 
>> > > +                   ;; Create a wrapper for 'man' that knows
>> > > where to find
>> > > +                   ;; 'groff' and 'gunzip'.
>> > > +                   (define libexecdir
>> > > +                     (string-append #$output "/libexec/yelp"))
>> > > +                   (define wrapper
>> > > +                     (string-append libexecdir "/man"))
>> > > +
>> > > +                   (mkdir-p libexecdir)
>> > > +                   (symlink (search-input-file inputs "bin/man")
>> > > wrapper)
>> > > +                   (wrap-program wrapper
>> > > +                     `("PATH" ":" =
>> > > +                       ,(map (lambda (program)
>> > > +                               (dirname (search-input-file
>> > > inputs program)))
>> > > +                             '("bin/groff" "bin/gunzip"))))
>> > > +
>> > > +                   ;; Have Yelp use that 'man' wrapper instead
>> > > of searching
>> > > +                   ;; for 'man' in $PATH.
>> > > +                   (substitute* "libyelp/yelp-man-parser.c"
>> > > +                     (("\"man\"")
>> > > +                      (string-append "\"" wrapper "\""))))))))
>> > 
>> > Couldn't we more simply wrap the yelp command with the 'man',
>> > 'groff' and
>> > 'gunzip' command locations added to PATH?
>> 
>> Yeah it’s convoluted; the idea was that the wrapper for ‘man’ is
>> something that should be fixed in ‘man-db’ proper but that we cannot
>> fix
>> in ‘master’ because ‘man-db’ has too many dependents.
>> 
>> Maybe I should start with it though…
> Can we graft our man-db to get the same effect?

We also have a core-updates branch; it could go there and we could merge
it with the docbook stuff that's going to go there.

I'd prefer this than convoluted solutions I don't understand :-).

-- 
Thanks,
Maxim

Information forwarded to liliana.prikler <at> gmail.com, maxim.cournoyer <at> gmail.com, rg <at> raghavgururajan.name, guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Mon, 11 Sep 2023 09:10:01 GMT) Full text and rfc822 format available.

Message #20 received at 65745 <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: 65745 <at> debbugs.gnu.org
Cc: Ludovic Courtès <ludo <at> gnu.org>,
 Luis Felipe <sirgazil <at> zoho.com>
Subject: [PATCH v2] gnu: yelp: Provide dependencies to display "man:" URIs.
Date: Mon, 11 Sep 2023 11:08:38 +0200
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 <at> zoho.com>
---
 gnu/packages/gnome.scm | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

Hi!

Here's an improved and more reasonable version.

There's still an issue we should fix in 'man-db' but I ran out of time before
I could find the remaining place where 'man' searches for 'groff' in $PATH.

Ludo'.

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3b80692e90..36fe1a80a1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -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))

base-commit: a4c35c607cfd7d6b0bad90cfcc46188d489e1754
-- 
2.41.0





Information forwarded to guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Mon, 11 Sep 2023 14:14:01 GMT) Full text and rfc822 format available.

Message #23 received at 65745 <at> debbugs.gnu.org (full text, mbox):

From: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Luis Felipe <sirgazil <at> zoho.com>,
 65745 <at> debbugs.gnu.org, Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Subject: Re: [bug#65745] [PATCH v2] gnu: yelp: Provide dependencies to
 display "man:" URIs.
Date: Mon, 11 Sep 2023 10:13:26 -0400
Hi Ludo,

Ludovic Courtès <ludo <at> gnu.org> writes:

[...]

> Here's an improved and more reasonable version.
>
> There's still an issue we should fix in 'man-db' but I ran out of time before
> I could find the remaining place where 'man' searches for 'groff' in $PATH.


> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> index 3b80692e90..36fe1a80a1 100644
> --- a/gnu/packages/gnome.scm
> +++ b/gnu/packages/gnome.scm
> @@ -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))

This v2 LGTM!  Thanks for the fix.

-- 
Thanks,
Maxim




Information forwarded to guix-patches <at> gnu.org:
bug#65745; Package guix-patches. (Mon, 11 Sep 2023 17:17:02 GMT) Full text and rfc822 format available.

Message #26 received at 65745 <at> debbugs.gnu.org (full text, mbox):

From: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
To: Maxim Cournoyer <maxim.cournoyer <at> gmail.com>, Ludovic
 Courtès <ludo <at> gnu.org>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Luis Felipe <sirgazil <at> zoho.com>,
 65745 <at> debbugs.gnu.org
Subject: Re: [bug#65745] [PATCH v2] gnu: yelp: Provide dependencies to
 display "man:" URIs.
Date: Mon, 11 Sep 2023 19:16:37 +0200
Am Montag, dem 11.09.2023 um 10:13 -0400 schrieb Maxim Cournoyer:
> Hi Ludo,
> 
> Ludovic Courtès <ludo <at> gnu.org> writes:
> 
> [...]
> 
> > Here's an improved and more reasonable version.
> > 
> > There's still an issue we should fix in 'man-db' but I ran out of
> > time before
> > I could find the remaining place where 'man' searches for 'groff'
> > in $PATH.
> 
> 
> > diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
> > index 3b80692e90..36fe1a80a1 100644
> > --- a/gnu/packages/gnome.scm
> > +++ b/gnu/packages/gnome.scm
> > @@ -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))
> 
> This v2 LGTM!  Thanks for the fix.
Also LGTM


Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Mon, 11 Sep 2023 21:57:02 GMT) Full text and rfc822 format available.

Notification sent to Ludovic Courtès <ludo <at> gnu.org>:
bug acknowledged by developer. (Mon, 11 Sep 2023 21:57:02 GMT) Full text and rfc822 format available.

Message #31 received at 65745-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: Liliana Marie Prikler <liliana.prikler <at> gmail.com>
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>, Luis Felipe <sirgazil <at> zoho.com>,
 65745-done <at> debbugs.gnu.org, Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Subject: Re: bug#65745: [PATCH] gnu: yelp: Provide dependencies to display
 "man:" URIs.
Date: Mon, 11 Sep 2023 23:56:00 +0200
Pushed, thanks!




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 10 Oct 2023 11:24:10 GMT) Full text and rfc822 format available.

This bug report was last modified 1 year and 236 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.