GNU bug report logs - #31540
[PATCH] gnu: xapers: Fix recommended packages

Previous Next

Package: guix-patches;

Reported by: Adam Massmann <massmannak <at> gmail.com>

Date: Sun, 20 May 2018 22:58:02 UTC

Severity: normal

Tags: patch

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

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 31540 in the body.
You can then email your comments to 31540 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 guix-patches <at> gnu.org:
bug#31540; Package guix-patches. (Sun, 20 May 2018 22:58:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Adam Massmann <massmannak <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 20 May 2018 22:58:02 GMT) Full text and rfc822 format available.

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

From: Adam Massmann <massmannak <at> gmail.com>
To: guix-patches <at> gnu.org
Subject: [PATCH] gnu: xapers: Fix recommended packages
Date: Sun, 20 May 2018 18:56:53 -0400
[Message part 1 (text/plain, inline)]
Hi Guix,

Below is a patch to fix/update inputs for xapers. When I originally
added xapers I avoided including inputs upstream considers
"recommended."  After using Guix and xapers some more and thinking about
it, I now lean towards including these inputs because in this case not
including them will break xapers functionality in undocumented ways, and
the recommended packages are relatively modest. However, I am also
curious for future use if there is any documentation on standards for
handling "recommended" packages (e.g. packages other disdros would
assign a "recommended tag" to) in Guix? I couldn't find anything in the
manual, but it is very possible I missed something.

I also disabled the "xapers-adder" command from spawning an x-terminal
program (upstream uses Debian's "x-terminal-emulator"). By disabling
this function we avoid pushing an x-terminal program onto users, which I
find undesirable (if users need to spawn a terminal they can just wrap
xapers-adder e.g. "xterm -e xapers-adder %F"). However, I'm open to
other solutions if anyone else has another preference/idea (see comment
in patch).

Feedback very welcome, and thank you very much for your time/help.

Best,
Adam

[0001-gnu-xapers-Fix-recommended-packages.patch (text/x-patch, inline)]
From 434455c9be92ecb34e220726dfc75b916e0eaa6c Mon Sep 17 00:00:00 2001
From: Adam Massmann <massmannak <at> gmail.com>
Date: Sun, 20 May 2018 18:50:03 -0400
Subject: [PATCH] gnu: xapers: Fix recommended packages

* gnu/packages/search.scm (xapers): [inputs]: remove python, poppler
[propagated-inputs]: add poppler, xclip, xdg-utils.
[arguments]: modify-phases to disable x-terminal options.
---
 gnu/packages/search.scm | 39 +++++++++++++++++++++++++++++++++------
 1 file changed, 33 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/search.scm b/gnu/packages/search.scm
index 02deb5c4a..5c8539d56 100644
--- a/gnu/packages/search.scm
+++ b/gnu/packages/search.scm
@@ -32,12 +32,14 @@
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages databases)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml))
 
 (define-public xapian
@@ -326,27 +328,52 @@ search the generated indexes.")
          "0ykz6hn3qj46w3c99d6q0pi5ncq2894simcl7vapv047zm3cylmd"))))
     (build-system python-build-system)
     (propagated-inputs
-     `(("python-urwid" ,python-urwid)))
-    (inputs
      `(("poppler" ,poppler)
-       ("python" ,python)
-       ("python-latexcodec" ,python-latexcodec)
+       ("python-urwid" ,python-urwid)
+       ("xclip" ,xclip)
+       ("xdg-utils" ,xdg-utils)))
+    (inputs
+     `(("python-latexcodec" ,python-latexcodec)
        ("python-pybtex" ,python-pybtex)
        ("python-pycurl" ,python-pycurl)
        ("python-pyyaml" ,python-pyyaml)
        ("python-six" ,python-six)
        ("python-xapian-bindings" ,python-xapian-bindings)))
     (arguments
-     `(#:phases
+     `(#:modules ((ice-9 rdelim)
+                  (guix build python-build-system)
+                  (guix build utils))
+       #:phases
        (modify-phases %standard-phases
          (add-after 'install 'install-doc
            (lambda* (#:key inputs outputs #:allow-other-keys)
+             (define (purge-term-support input output)
+               (let loop ((line (read-line input)))
+                 (if (string-prefix? "if [[ \"$term\"" line)
+                     (begin (display "eval \"$cmd\"\n" output)
+                            #t)
+                     (begin (display (string-append line "\n") output)
+                            (loop (read-line input))))))
              (let* ((out (assoc-ref outputs "out"))
                     (bin (string-append out "/bin"))
+                    (adder-out (string-append bin "/xapers-adder"))
                     (man1 (string-append out "/share/man/man1")))
                (install-file "man/man1/xapers.1"  man1)
                (install-file "man/man1/xapers-adder.1" man1)
-               (install-file "bin/xapers-adder" bin)))))))
+               ;; below is equivalent to setting --no-term option
+               ;; permanently on; this is desirable to avoid imposing
+               ;; an x-terminal installation on the user but breaks
+               ;; some potential xapers-adder uses like auto browser
+               ;; pdf handler, but user could instead still use
+               ;; e.g. "xterm -e xapers-adder %F" for same use.
+               ;; alternatively we could propagate xterm as an input
+               ;; and replace 'x-terminal-emulator' with 'xterm'
+               (call-with-input-file "bin/xapers-adder"
+                 (lambda (input)
+                   (call-with-output-file adder-out
+                     (lambda (output)
+                       (purge-term-support input output)))))
+               (chmod adder-out #o555)))))))
     (home-page "https://finestructure.net/xapers/")
     (synopsis "Personal document indexing system")
     (description
-- 
2.17.0


Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Sat, 26 May 2018 19:56:02 GMT) Full text and rfc822 format available.

Notification sent to Adam Massmann <massmannak <at> gmail.com>:
bug acknowledged by developer. (Sat, 26 May 2018 19:56:02 GMT) Full text and rfc822 format available.

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

From: ludo <at> gnu.org (Ludovic Courtès)
To: Adam Massmann <massmannak <at> gmail.com>
Cc: 31540-done <at> debbugs.gnu.org
Subject: Re: [bug#31540] [PATCH] gnu: xapers: Fix recommended packages
Date: Sat, 26 May 2018 21:55:33 +0200
Hi Adam,

Adam Massmann <massmannak <at> gmail.com> skribis:

> Below is a patch to fix/update inputs for xapers. When I originally
> added xapers I avoided including inputs upstream considers
> "recommended."  After using Guix and xapers some more and thinking about
> it, I now lean towards including these inputs because in this case not
> including them will break xapers functionality in undocumented ways, and
> the recommended packages are relatively modest. However, I am also
> curious for future use if there is any documentation on standards for
> handling "recommended" packages (e.g. packages other disdros would
> assign a "recommended tag" to) in Guix? I couldn't find anything in the
> manual, but it is very possible I missed something.

There’s currently no mechanism to recommend a package.  However in this
case the recommend packages need to be present at build time, not just
at configure time IIUC, so a recommendation system wouldn’t help, would
it?

For optional build-time dependencies, a criterion we commonly use is the
benefit vs. space ratio.  So basically you run ‘guix size’ with and
without the optional dependency, and based on that you determine whether
it’s a good idea to add it.

Here I get 323 MiB with your patch and 324 MiB (!) without it for the
whole xapers closure.  I think that’s because the new one no longer
refers to xterm or something?

> I also disabled the "xapers-adder" command from spawning an x-terminal
> program (upstream uses Debian's "x-terminal-emulator"). By disabling
> this function we avoid pushing an x-terminal program onto users, which I
> find undesirable (if users need to spawn a terminal they can just wrap
> xapers-adder e.g. "xterm -e xapers-adder %F"). However, I'm open to
> other solutions if anyone else has another preference/idea (see comment
> in patch).

Makes sense to me.

>>From 434455c9be92ecb34e220726dfc75b916e0eaa6c Mon Sep 17 00:00:00 2001
> From: Adam Massmann <massmannak <at> gmail.com>
> Date: Sun, 20 May 2018 18:50:03 -0400
> Subject: [PATCH] gnu: xapers: Fix recommended packages
>
> * gnu/packages/search.scm (xapers): [inputs]: remove python, poppler
> [propagated-inputs]: add poppler, xclip, xdg-utils.
> [arguments]: modify-phases to disable x-terminal options.

Applied, thanks!

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 24 Jun 2018 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 358 days ago.

Previous Next


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