(address . bug-guix@gnu.org)
bashtop does not run without glibc installed in profile
J
[PATCH] gnu: bashtop: Add dependencies and wrap program with PATH
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
20211114140137.13868-1-dev@jpoiret.xyz
You're right, none of the needed dependencies of bashtop were
actually present in the package definition. Here is a patch that
does work on my machine using `guix shell --pure bashtop -- bashtop`.
Best,
Josselin Poiret
-- >8 --
* gnu/packages/admin.scm (bashtop): Add dependencies, wrap the script
so that it can access the commands it needs.
---
gnu/packages/admin.scm | 27 +++++++++++++++++++++++----
1 file changed, 23 insertions(+), 4 deletions(-)
Toggle diff (48 lines)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 2a7b0f310d..8f9125212c 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -71,6 +71,7 @@ (define-module (gnu packages admin)
#:use-module (guix build-system python)
#:use-module (guix build-system ruby)
#:use-module (guix build-system trivial)
+ #:use-module (guix build-system copy)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:)
@@ -670,11 +671,29 @@ (define-public bashtop
(sha256
(base32
"07nlr6vmyb7yihaxj1fp424lmhwkdjl6mls92v90f6gsvikpa13v"))))
- (build-system gnu-build-system)
+ (build-system copy-build-system)
(arguments
- '(#:make-flags (list (string-append "PREFIX=" %output))
- #:tests? #f ; bats test fails with loading load.bash
- #:phases (modify-phases %standard-phases (delete 'configure))))
+ '(#:install-plan '(("./bashtop" "./bin/bashtop"))
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((paths (map (lambda (program)
+ (dirname (which program)))
+ '("awk" "dd" "grep" "ip"
+ "locale" "ps" "sed")))
+ (bashtop (string-append (assoc-ref outputs
+ "out")
+ "/bin/bashtop")))
+ (wrap-program bashtop
+ `("PATH" ":" = ,paths))))))))
+ (inputs
+ `(("coreutils" ,coreutils)
+ ("gawk" ,gawk)
+ ("glibc" ,glibc) ; for 'locale'
+ ("grep" ,grep)
+ ("iproute" ,iproute)
+ ("procps" ,procps)
+ ("sed" ,sed)))
(home-page "https://github.com/aristocratos/bashtop")
(synopsis "Linux/OSX/FreeBSD resource monitor")
(description "Resource monitor that shows usage and stats for processor,
--
2.33.1
J
[PATCH v2] gnu: bashtop: Add dependencies and wrap program with PATH
(name . Josselin Poiret)(address . dev@jpoiret.xyz)
20211114151949.19754-1-dev@jpoiret.xyz
Sorry for the noise, but the patch I just sent wasn't up to
satisfaction: using `which` in the build phases breaks
cross-compilation, and the build-system change was a bit of an
unwarranted change.
Here's a modified patch!
Best,
Josselin Poiret
-- >8 --
* gnu/packages/admin.scm (bashtop): Add dependencies, wrap the script
so that it can access the commands it needs.
---
gnu/packages/admin.scm | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
Toggle diff (37 lines)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 2a7b0f310d..fe3987a9b8 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -674,7 +674,29 @@ (define-public bashtop
(arguments
'(#:make-flags (list (string-append "PREFIX=" %output))
#:tests? #f ; bats test fails with loading load.bash
- #:phases (modify-phases %standard-phases (delete 'configure))))
+ #:phases (modify-phases %standard-phases
+ (delete 'configure)
+ (add-after 'install 'wrap
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((path (map (lambda (input)
+ (string-append (assoc-ref inputs
+ input)
+ "/bin"))
+ '("coreutils" "gawk" "glibc" "grep"
+ "iproute" "procps" "sed")))
+ (bashtop (string-append (assoc-ref outputs
+ "out")
+ "/bin/bashtop")))
+ (wrap-program bashtop
+ `("PATH" ":" = ,path))))))))
+ (inputs
+ `(("coreutils" ,coreutils)
+ ("gawk" ,gawk)
+ ("glibc" ,glibc) ; needed for the 'locale' binary
+ ("grep" ,grep)
+ ("iproute" ,iproute)
+ ("procps" ,procps)
+ ("sed" ,sed)))
(home-page "https://github.com/aristocratos/bashtop")
(synopsis "Linux/OSX/FreeBSD resource monitor")
(description "Resource monitor that shows usage and stats for processor,
--
2.33.1
M
66d97324a177c60a7b52b54e88a35945870d4ef8.camel@telenet.be
Josselin Poiret via Bug reports for GNU Guix schreef op zo 14-11-2021
om 15:19 [+0000]:
Toggle quote (2 lines)
> + (wrap-program bashtop
The input "bash-minimal" is missing. Adding that input is required
for cross-compilation (otherwise a native bash instead of a bash
for the target is used). It should be reported by guix lint.
Greetings,
Maxime.
--
not hacking on guix for a while, only occassionally looking at IRC logs
and bug reports. E-mails are unsigned until backup is located.
?