[PATCH]

  • Done
  • quality assurance status badge
Details
2 participants
  • Damien Cassou
  • Ludovic Courtès
Owner
unassigned
Submitted by
Damien Cassou
Severity
normal
D
D
Damien Cassou wrote on 21 Mar 2020 18:02
[PATCH]
(address . guix-patches@gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)
87imixr67y.fsf@cassou.me
Hi,

I've improved the packaging for clipmenu in
gnu/packages/xdisorg.scm. Please give feedback.

I found that my usage of wrap-script is very verbose. Is there a simpler
way?

Thank you

Damien Cassou (3):
* gnu/packages/xdisorg.scm (clipmenu): Re-indent
* gnu/packages/xdisorg.scm (clipnotify): Add a comment
gnu: clipmenu: Improve the package definition

gnu/packages/xdisorg.scm | 125 ++++++++++++++++++++++-----------------
1 file changed, 72 insertions(+), 53 deletions(-)

--
Damien Cassou

"Success is the ability to go from one failure to another without
losing enthusiasm." --Winston Churchill
From 5074bba8c91d24b542b78c07295842fba5c82d9c Mon Sep 17 00:00:00 2001
From: Damien Cassou <damien@cassou.me>
Date: Sat, 21 Mar 2020 17:45:11 +0100
Subject: [PATCH 2/3] * gnu/packages/xdisorg.scm (clipnotify): Add a comment

---
gnu/packages/xdisorg.scm | 1 +
1 file changed, 1 insertion(+)

Toggle diff (14 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 817eef6c29..21165f384f 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -2147,6 +2147,7 @@ (define-public clipnotify
(install-file "README.md" doc)
#t))))
#:make-flags (list "CC=gcc")
+ ;; the package provides no test suite:
#:tests? #f))
(inputs
`(("libx11" ,libx11)
--
2.25.1
From 391ad6deec073b7e01984fd81a44a5cac52afc5b Mon Sep 17 00:00:00 2001
From: Damien Cassou <damien@cassou.me>
Date: Sat, 21 Mar 2020 17:33:39 +0100
Subject: [PATCH 3/3] gnu: clipmenu: Improve the package definition

* gnu/packages/xdisorg.scm (clipmenu): Add the package's unit-tests to the
check phase. Wrap the program so the PATH contains all dependencies. The
previous approach to patch the script was incomplete and more complex.
---
gnu/packages/xdisorg.scm | 52 +++++++++++++++++++++++++++-------------
1 file changed, 35 insertions(+), 17 deletions(-)

Toggle diff (81 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 21165f384f..f7c4668bf8 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -74,6 +74,7 @@ (define-module (gnu packages xdisorg)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages flex)
#:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
#:use-module (gnu packages gl)
#:use-module (gnu packages glib)
@@ -2188,21 +2189,6 @@ (define-public clipmenu
(arguments
`(#:phases
(modify-phases %standard-phases
- (add-after 'unpack 'fix-hardcoded-paths
- (lambda _
- (substitute* "clipmenud"
- (("has_clipnotify=0")
- "has_clipnotify=1")
- (("command -v clipnotify >/dev/null 2>&1 && has_clipnotify=1")
- "")
- (("clipnotify \\|\\| .*")
- (string-append (which "clipnotify") "\n"))
- (("xsel --logfile")
- (string-append (which "xsel") " --logfile")))
- (substitute* "clipmenu"
- (("xsel --logfile")
- (string-append (which "xsel") " --logfile")))
- #t))
(delete 'configure)
(delete 'build)
(replace 'install
@@ -2215,10 +2201,42 @@ (define-public clipmenu
(install-file "clipmenu" bin)
(install-file "clipmenud" bin)
(install-file "README.md" doc)
- #t))))
- #:tests? #f))
+ #t)))
+ (add-after 'install 'wrap-script
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (clipnotify (assoc-ref inputs "clipnotify"))
+ (coreutils-minimal (assoc-ref inputs "coreutils-minimal"))
+ (gawk (assoc-ref inputs "gawk"))
+ (util-linux (assoc-ref inputs "util-linux"))
+ (xdotool (assoc-ref inputs "xdotool"))
+ (xsel (assoc-ref inputs "xsel")))
+ (for-each
+ (lambda (prog)
+ (wrap-script (string-append out "/bin/" prog)
+ `("PATH" ":" prefix
+ ,(map (lambda (dir)
+ (string-append dir "/bin"))
+ (list clipnotify coreutils-minimal
+ gawk util-linux xdotool xsel)))))
+ '("clipmenu" "clipmenud" "clipdel")))
+ #t))
+ (replace 'check
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; substitute a shebang appearing inside a string (the test
+ ;; file writes this string to a temporary file):
+ (substitute* "tests/test-clipmenu"
+ (("#!/usr/bin/env bash")
+ (which "bash")))
+ (invoke "tests/test-clipmenu")
+ #t)))))
(inputs
`(("clipnotify" ,clipnotify)
+ ("coreutils-minimal" ,coreutils-minimal)
+ ("gawk" ,gawk)
+ ("guile" ,guile-3.0) ; for wrap-script
+ ("util-linux" ,util-linux)
+ ("xdotool" ,xdotool)
("xsel" ,xsel)))
(home-page "https://github.com/cdown/clipmenu")
(synopsis "Simple clipboard manager using dmenu or rofi and xsel")
--
2.25.1
L
L
Ludovic Courtès wrote on 21 Mar 2020 23:39
Re: [bug#40168] [PATCH]
(name . Damien Cassou)(address . damien@cassou.me)(address . 40168-done@debbugs.gnu.org)
87fte1wcxb.fsf@gnu.org
Hi Damien,

Damien Cassou <damien@cassou.me> skribis:

Toggle quote (5 lines)
> Damien Cassou (3):
> * gnu/packages/xdisorg.scm (clipmenu): Re-indent
> * gnu/packages/xdisorg.scm (clipnotify): Add a comment
> gnu: clipmenu: Improve the package definition

Applied!

I added a subject line to the commit logs. For the last patch I
adjusted the shebang substitute:
Toggle diff (24 lines)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index f7c4668bf8..facd63ab53 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -2204,8 +2204,8 @@ tools to complement clipnotify.")
#t)))
(add-after 'install 'wrap-script
(lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (clipnotify (assoc-ref inputs "clipnotify"))
+ (let* ((out (assoc-ref outputs "out"))
+ (clipnotify (assoc-ref inputs "clipnotify"))
(coreutils-minimal (assoc-ref inputs "coreutils-minimal"))
(gawk (assoc-ref inputs "gawk"))
(util-linux (assoc-ref inputs "util-linux"))
@@ -2227,7 +2227,7 @@ tools to complement clipnotify.")
;; file writes this string to a temporary file):
(substitute* "tests/test-clipmenu"
(("#!/usr/bin/env bash")
- (which "bash")))
+ (string-append "#!" (which "bash"))))
(invoke "tests/test-clipmenu")
#t)))))
(inputs
Thanks!

Ludo’.
Closed
?