* [bug#31178] [PATCH] gnu: Add inxi.
@ 2018-04-16 12:38 Pierre Neidhardt
2018-04-22 21:42 ` [bug#31176] " Ludovic Courtès
2018-04-30 13:17 ` Tobias Geerinckx-Rice
0 siblings, 2 replies; 18+ messages in thread
From: Pierre Neidhardt @ 2018-04-16 12:38 UTC (permalink / raw)
To: 31178
* gnu/packages/admin.scm (inxi): New variable.
---
gnu/packages/admin.scm | 92 +++++++++++++++++++++++++++-
gnu/packages/patches/inxi-path.patch | 13 ++++
2 files changed, 104 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/inxi-path.patch
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 6a7bed389..811e3d4cf 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -67,6 +67,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt)
@@ -90,7 +91,10 @@
#:use-module (gnu packages gnome)
#:use-module (gnu packages kerberos)
#:use-module (gnu packages gtk)
- #:use-module (gnu packages xml))
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages file)
+ #:use-module (gnu packages web))
(define-public aide
(package
@@ -2505,3 +2509,89 @@ printed instead of after the entire file has been read, which is often too
late.")
(home-page "https://jwilk.net/software/hungrycat")
(license license:expat)))
+
+(define-public inxi-minimal
+ (let ((version "3.0.04-1")
+ (real-name "inxi"))
+ (package
+ (name "inxi-minimal")
+ (version version)
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/smxi/inxi"
+ "/archive/" version "/inxi.tar.gz"))
+ (file-name (string-append real-name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "14zxdsjgh9dbijmpp0hhvg2yiqqfwnqgcc6x8dpl1v15z1h1r7pc"))))
+ (build-system trivial-build-system)
+ (inputs
+ `(("perl" ,perl)))
+ (native-inputs `(("tar" ,tar)
+ ("gzip" ,gzip)))
+ (arguments
+ `(#:modules
+ ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (setenv "PATH" (string-append
+ (assoc-ref %build-inputs "tar") "/bin" ":"
+ (assoc-ref %build-inputs "gzip") "/bin"))
+ (system* "tar" "xvf" (assoc-ref %build-inputs "source"))
+ (with-directory-excursion ,(string-append real-name "-" version)
+ (with-fluids ((%default-port-encoding #f))
+ (substitute* "inxi"
+ (("/usr/bin/env perl")
+ (string-append (assoc-ref %build-inputs "perl") "/bin/perl"))))
+ (install-file "inxi" (string-append %output "/bin"))
+ (system* "gzip" "inxi.1")
+ (install-file "inxi.1.gz"
+ (string-append %output "/share/doc/man/man1")))
+ #t)))
+ (home-page "https://smxi.org/docs/inxi.htm")
+ (synopsis "Script to get system information")
+ (description
+ "This package provides a script to get system information.")
+ (license license:gpl3+))))
+
+(define-public inxi
+ ;; Use `inxi --recommends` for a check list of all the external programs
+ ;; it can use.
+ ;; TODO: Include additional inputs once their corresponding packages is no
+ ;; longer missing: hddtemp, dig (from dnsutils), perl-xml-dumper. ipmitool
+ ;; and ipmi-sensors.
+ (package
+ (inherit inxi-minimal)
+ (name "inxi")
+ (propagated-inputs
+ `(("coreutils" ,coreutils) ; uptime
+ ("curl" ,curl) ; only if dig is missing.
+ ("dmidecode" ,dmidecode)
+ ;; ("fdisk" ,fdisk) ; only as fallback, but not sure for what
+ ("file" ,file)
+ ("gzip" ,gzip)
+ ("iproute2" ,iproute) ; ip
+ ("kmod" ,kmod) ; modinfo
+ ("lm-sensors" ,lm-sensors)
+ ("mesa-utils" ,mesa-utils)
+ ("pciutils" ,pciutils)
+ ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
+ ("perl-http-tiny" ,perl-http-tiny)
+ ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+ ("perl-json-xs" ,perl-json-xs)
+ ("perl-time-hires" ,perl-time-hires)
+ ("procps" ,procps)
+ ("tar" ,tar)
+ ("tree" ,tree)
+ ("util-linux" ,util-linux) ; lsblk, lsusb, etc.
+ ;; ("wget" ,wget) ; only if dig and curl are missing.
+ ("wmctrl" ,wmctrl)
+ ("xdpyinfo" ,xdpyinfo)
+ ("xprop" ,xprop)
+ ("xrandr" ,xrandr)))
+ (synopsis "Script to get system information")
+ (description
+ "This package provides a script to get system information.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/patches/inxi-path.patch b/gnu/packages/patches/inxi-path.patch
new file mode 100644
index 000000000..3f0d846bd
--- /dev/null
+++ b/gnu/packages/patches/inxi-path.patch
@@ -0,0 +1,13 @@
+Use dynamic PATH.
+
+--- a/inxi
++++ b/inxi
+@@ -75,5 +75,5 @@ my ($b_sysctl_disk,$b_update,$b_weather) = (1,1,1);
+ ## System
+ my ($bsd_type,$language,$os) = ('','','');
+ my ($cpu_sleep,$dl_timeout,$limit,$ps_count,$usb_level) = (0.35,4,10,5,0);
+-my @paths = qw(/sbin /bin /usr/sbin /usr/bin /usr/local/sbin /usr/local/bin /usr/X11R6/bin);
++my @paths = split /:/, $ENV{'PATH'};
+ my $sensors_cpu_nu = 0;
+
+ ## Tools
--
2.17.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-04-16 12:38 [bug#31178] [PATCH] gnu: Add inxi Pierre Neidhardt
@ 2018-04-22 21:42 ` Ludovic Courtès
2018-04-23 4:33 ` Pierre Neidhardt
2018-04-30 13:17 ` Tobias Geerinckx-Rice
1 sibling, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-22 21:42 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: 31178, 31176
Hello Pierre & Oleg,
Pierre Neidhardt <ambrevar@gmail.com> skribis:
> * gnu/packages/admin.scm (inxi): New variable.
Could you compare what the two of you submitted at pretty much the same
time? :-)
<https://bugs.gnu.org/31176>
<https://bugs.gnu.org/31178>
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31178] [PATCH] gnu: Add inxi.
2018-04-22 21:42 ` [bug#31176] " Ludovic Courtès
@ 2018-04-23 4:33 ` Pierre Neidhardt
2018-04-23 5:23 ` Oleg Pykhalov
0 siblings, 1 reply; 18+ messages in thread
From: Pierre Neidhardt @ 2018-04-23 4:33 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 599 bytes --]
I didn't know Oleg was going to submit a patch, maybe there was some
confusion in the process :p
I've quickly reviewed our two patches. Overall I'd opt for mine :p
- It's the latest version.
- It has more inputs.
I think we should use propagated-inputs and not native-inputs. What do
you think?
I'd opt for Oleg's description however!
One thing I forgot is to add a comment about why I've used
(with-fluids ((%default-port-encoding #f))
It's because the `inxi` file contains some weird character. It was
mentioned before on the mailing list.
--
Pierre Neidhardt
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31178] [PATCH] gnu: Add inxi.
2018-04-23 4:33 ` Pierre Neidhardt
@ 2018-04-23 5:23 ` Oleg Pykhalov
2018-04-23 5:34 ` [bug#31176] " Pierre Neidhardt
0 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-04-23 5:23 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 1511 bytes --]
Hello Pierre and Ludovic,
Pierre Neidhardt <ambrevar@gmail.com> writes:
> I didn't know Oleg was going to submit a patch, maybe there was some
> confusion in the process :p
I've mentioned it in our mailing list discussion, see
https://lists.gnu.org/archive/html/help-guix/2018-04/msg00130.html
Nevertheless thank you for a 31178! :-)
> I've quickly reviewed our two patches. Overall I'd opt for mine :p
>
> - It's the latest version.
> - It has more inputs.
I thought that we stuck with an ‘inxi’ Perl script version (31178) and
there was no patch until I pushed one. It's better to get 31178 version
than 31176 ofcourse because of ‘inxi’ version.
But I don't like all those ‘propagated-inputs’ except ‘perl-*’ and I
guess we could do better. Maybe we could use PATH for non ‘perl-*’
inputs the same way as in 31176. WDYT?
> I think we should use propagated-inputs and not native-inputs. What do
> you think?
I'm not sure about 31178 currently. Usually we prefer to avoid
‘propagated-inputs’ if possible in Guix, because all ‘propagated-inputs’
will be in a Guix profile and could lead to collisions.
If you are talking about 31176, then no, because I've used a wrapper to
find all ‘inxi-minimal’ or ‘inxi’ requisites. It was easy to do,
because ‘inxi’ in 31176 is a Shell script, not a Perl script. Thanks to
Chris Marusich for an idea.
[…]
[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31176
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-04-23 5:23 ` Oleg Pykhalov
@ 2018-04-23 5:34 ` Pierre Neidhardt
2018-04-28 21:27 ` Ludovic Courtès
0 siblings, 1 reply; 18+ messages in thread
From: Pierre Neidhardt @ 2018-04-23 5:34 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 1020 bytes --]
Oleg Pykhalov <go.wigust@gmail.com> writes:
>> I didn't know Oleg was going to submit a patch, maybe there was some
>> confusion in the process :p
>
> I've mentioned it in our mailing list discussion, see
> https://lists.gnu.org/archive/html/help-guix/2018-04/msg00130.html
Sorry, I had completely missed the last line :)
> If you are talking about 31176, then no, because I've used a wrapper to
> find all ‘inxi-minimal’ or ‘inxi’ requisites. It was easy to do,
> because ‘inxi’ in 31176 is a Shell script, not a Perl script. Thanks to
> Chris Marusich for an idea.
I think we can do the same thing for the Perl version. You want to give
it a try?
If I understand correctly, relying on native-inputs would mean that if the user
runs `guix gc`, then all of inxi "optional" dependencies would go.
Is this correct?
--
Pierre Neidhardt
Computers are unreliable, but humans are even more unreliable.
Any system which depends on human reliability is unreliable.
-- Gilb
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-04-23 5:34 ` [bug#31176] " Pierre Neidhardt
@ 2018-04-28 21:27 ` Ludovic Courtès
2018-04-29 17:38 ` Oleg Pykhalov
0 siblings, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-28 21:27 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: 31178, 31176
Oleg, could you take care of this patch? (See Pierre’s comments below.)
Pierre Neidhardt <ambrevar@gmail.com> skribis:
> Oleg Pykhalov <go.wigust@gmail.com> writes:
>
>>> I didn't know Oleg was going to submit a patch, maybe there was some
>>> confusion in the process :p
>>
>> I've mentioned it in our mailing list discussion, see
>> https://lists.gnu.org/archive/html/help-guix/2018-04/msg00130.html
>
> Sorry, I had completely missed the last line :)
>
>> If you are talking about 31176, then no, because I've used a wrapper to
>> find all ‘inxi-minimal’ or ‘inxi’ requisites. It was easy to do,
>> because ‘inxi’ in 31176 is a Shell script, not a Perl script. Thanks to
>> Chris Marusich for an idea.
>
> I think we can do the same thing for the Perl version. You want to give
> it a try?
>
> If I understand correctly, relying on native-inputs would mean that if the user
> runs `guix gc`, then all of inxi "optional" dependencies would go.
> Is this correct?
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-04-28 21:27 ` Ludovic Courtès
@ 2018-04-29 17:38 ` Oleg Pykhalov
2018-04-30 10:07 ` Ludovic Courtès
0 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-04-29 17:38 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 31178, 31176, Pierre Neidhardt
[-- Attachment #1: Type: text/plain, Size: 552 bytes --]
Hello,
ludo@gnu.org (Ludovic Courtès) writes:
> Oleg, could you take care of this patch?
[…]
Sure I will try because I want ‘inxi’ to be in Guix package collection,
too. But I don't want to give a promise because I'm not much familiar
with a Perl, so it will require some time for me. I don't like current
implementation of the latest version of ‘inxi’ package recipe in 31178.
If I'm only one thinking like that and it's good enough for a push to
‘origin/master’, feel free to say me about this or push it.
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31178] [PATCH] gnu: Add inxi.
2018-04-29 17:38 ` Oleg Pykhalov
@ 2018-04-30 10:07 ` Ludovic Courtès
2018-04-30 12:31 ` [bug#31176] " Pierre Neidhardt
0 siblings, 1 reply; 18+ messages in thread
From: Ludovic Courtès @ 2018-04-30 10:07 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 31178, 31176, Pierre Neidhardt
Hi Oleg,
Oleg Pykhalov <go.wigust@gmail.com> skribis:
> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Oleg, could you take care of this patch?
>
> […]
>
> Sure I will try because I want ‘inxi’ to be in Guix package collection,
> too. But I don't want to give a promise because I'm not much familiar
> with a Perl, so it will require some time for me. I don't like current
> implementation of the latest version of ‘inxi’ package recipe in 31178.
> If I'm only one thinking like that and it's good enough for a push to
> ‘origin/master’, feel free to say me about this or push it.
I really trust you to make the right decision. The only reason I’m
pinging you is so these patches don’t get lost; they look simple enough
that it shouldn’t take months to apply them. :-)
Ludo’.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-04-30 10:07 ` Ludovic Courtès
@ 2018-04-30 12:31 ` Pierre Neidhardt
2018-04-30 19:18 ` Oleg Pykhalov
0 siblings, 1 reply; 18+ messages in thread
From: Pierre Neidhardt @ 2018-04-30 12:31 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 830 bytes --]
Oleg, if I understood correctly, your concern was about inputs.
To re-quote myself:
> If I understand correctly, relying on native-inputs would mean that if the user
> runs `guix gc`, then all of inxi "optional" dependencies would go.
> Is this correct?
What's your take on inputs then? If there is anything else, please go
ahead, I can try to address those issues.
I don't have deep knowledge of Perl either so there might be some more
issues I haven't noticed yet. But I think those can easily be patched
in the future when we have more user feedback.
I think it's better to have a package that behaves well in the general
case than not having a package at all.
--
Pierre Neidhardt
The solution of problems is the most characteristic and peculiar sort
of voluntary thinking.
-- William James
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31178] [PATCH] gnu: Add inxi.
2018-04-16 12:38 [bug#31178] [PATCH] gnu: Add inxi Pierre Neidhardt
2018-04-22 21:42 ` [bug#31176] " Ludovic Courtès
@ 2018-04-30 13:17 ` Tobias Geerinckx-Rice
1 sibling, 0 replies; 18+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-04-30 13:17 UTC (permalink / raw)
To: Pierre Neidhardt, 31178
Pierre,
Thanks for your work so far! Discussions about inputs (bah,
propagation's evil) and who'll write what aside:
On 2018-04-16 14:38, Pierre Neidhardt wrote:
> + ;; TODO: Include additional inputs once their corresponding packages
> is no
> + ;; longer missing: hddtemp, dig (from dnsutils), perl-xml-dumper.
> ipmitool
> + ;; and ipmi-sensors.
The only canonical ‘dig’ that I know & love comes from the BIND project,
as installed by ‘bind:utils’.
Does inxi explicitly require this ‘dnsutils’ version? Is it a fork?
Patched? Separate implementation?
I think I have a ‘hddtemp’ package banging about somewhere.
> + ("curl" ,curl) ; only if dig is missing.
> [...]
> + ;; ("wget" ,wget) ; only if dig and curl are
> missing.
Curl's closure is bigger than that of wget (~210 MiB vs. ~127 MiB), but
it's probably smaller than wget+bind.
Would curl alone cover all uses of wget+bind in the script? (‘I can't be
bothered to dig through it’ is an acceptable answer.)
Kind regards,
T G-R
Sent from a Web browser. Excuse or enjoy my brevity.
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31178] [PATCH] gnu: Add inxi.
2018-04-30 12:31 ` [bug#31176] " Pierre Neidhardt
@ 2018-04-30 19:18 ` Oleg Pykhalov
2018-05-01 7:27 ` [bug#31178] [bug#31176] " Oleg Pykhalov
2018-05-06 9:42 ` Pierre Neidhardt
0 siblings, 2 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-04-30 19:18 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: 31178, 31176
[-- Attachment #1.1: Type: text/plain, Size: 1205 bytes --]
Hello Pierre,
Pierre Neidhardt <ambrevar@gmail.com> writes:
> Oleg, if I understood correctly, your concern was about inputs.
> To re-quote myself:
>
>> If I understand correctly, relying on native-inputs would mean that if the user
>> runs `guix gc`, then all of inxi "optional" dependencies would go.
>> Is this correct?
All “references” should survive ‘guix gc’:
--8<---------------cut here---------------start------------->8---
guix gc --references $(env GUIX_PACKAGE_PATH= guix build --no-grafts inxi)
--8<---------------cut here---------------end--------------->8---
> What's your take on inputs then? If there is anything else, please go
> ahead, I can try to address those issues.
OK, here is a new recipe, which works even in a container (unlike old
‘inxi’ which is a Shell script and not Perl).
--8<---------------cut here---------------start------------->8---
~/src/guix/pre-inst-env env GUIX_PACKAGE_PATH= guix environment --no-grafts --container --ad-hoc inxi
--8<---------------cut here---------------end--------------->8---
I've succeeded to test it by invoking ‘inxi’ and ‘inxi --full’, but
please test it more for your use cases.
[-- Attachment #1.2: gnu: Add inxi. --]
[-- Type: text/x-patch, Size: 7300 bytes --]
From 49afb43e03b1de34741c0812cc45fe48c06c404b Mon Sep 17 00:00:00 2001
From: Pierre Neidhardt <ambrevar@gmail.com>
Date: Mon, 16 Apr 2018 18:08:30 +0530
Subject: [PATCH] gnu: Add inxi.
* gnu/packages/admin.scm (inxi): New variable.
---
gnu/packages/admin.scm | 115 +++++++++++++++++-
.../patches/inxi-minimal-fix-syntax.patch | 18 +++
2 files changed, 132 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/inxi-minimal-fix-syntax.patch
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 5e2cf2d7a..7081f7f08 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -50,8 +50,11 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages dns)
+ #:use-module (gnu packages file)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages linux)
@@ -70,6 +73,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt)
@@ -97,7 +101,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages boost)
#:use-module (gnu packages elf)
- #:use-module (gnu packages mpi))
+ #:use-module (gnu packages mpi)
+ #:use-module (gnu packages web))
(define-public aide
(package
@@ -2649,3 +2654,111 @@ Python loading in HPC environments.")
;; This package supports x86_64 and PowerPC64
(supported-systems '("x86_64-linux"))
(license license:lgpl2.1)))
+
+(define-public inxi-minimal
+ (let ((version "3.0.04-1")
+ (real-name "inxi"))
+ (package
+ (name "inxi-minimal")
+ (version version)
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/smxi/inxi"
+ "/archive/" version "/inxi.tar.gz"))
+ (file-name (string-append real-name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "14zxdsjgh9dbijmpp0hhvg2yiqqfwnqgcc6x8dpl1v15z1h1r7pc"))
+ (patches (search-patches "inxi-minimal-fix-syntax.patch"))))
+ (build-system trivial-build-system)
+ (inputs
+ `(("bash" ,bash)
+ ("perl" ,perl)))
+ (native-inputs
+ `(("gzip" ,gzip)
+ ("tar" ,tar)
+ ("xz" ,xz)))
+ (arguments
+ `(#:modules
+ ((guix build utils)
+ (ice-9 match)
+ (srfi srfi-26))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match)
+ (srfi srfi-26))
+ (setenv "PATH" (string-append
+ (assoc-ref %build-inputs "bash") "/bin" ":"
+ (assoc-ref %build-inputs "gzip") "/bin" ":"
+ (assoc-ref %build-inputs "perl") "/bin" ":"
+ (assoc-ref %build-inputs "tar") "/bin" ":"
+ (assoc-ref %build-inputs "xz") "/bin"))
+ (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
+ (with-directory-excursion ,(string-append real-name "-" version)
+ (substitute* "inxi" (("/usr/bin/env perl") (which "perl")))
+ (let ((bin (string-append %output "/bin")))
+ (install-file "inxi" bin)
+ (wrap-program (string-append bin "/inxi")
+ `("PATH" ":" =
+ ("$PATH"
+ ,@(map (lambda (input)
+ (string-append (match input
+ ((name . store) store))
+ "/bin"))
+ %build-inputs)))
+ `("PERL5LIB" ":" =
+ ,(delete
+ ""
+ (map (match-lambda
+ (((? (cut string-prefix? "perl-" <>) name) . dir)
+ (string-append dir "/lib/perl5/site_perl"))
+ (_ ""))
+ %build-inputs)))))
+ (invoke "gzip" "inxi.1")
+ (install-file "inxi.1.gz"
+ (string-append %output "/share/doc/man/man1")))
+ #t)))
+ (home-page "https://smxi.org/docs/inxi.htm")
+ (synopsis "Full featured system information script")
+ (description "Inxi is a system information script that can display
+various things about your hardware and software to users in an IRC chatroom or
+support forum. It runs with the /exec command in most IRC clients. ")
+ (license license:gpl3+))))
+
+(define-public inxi
+ (package
+ (inherit inxi-minimal)
+ (name "inxi")
+ (inputs
+ `(("dmidecode" ,dmidecode)
+ ("file" ,file)
+ ("bind:utils" ,isc-bind "utils") ; dig
+ ("gzip" ,gzip)
+ ("iproute2" ,iproute) ; ip
+ ("kmod" ,kmod) ; modinfo
+ ("lm-sensors" ,lm-sensors)
+ ("mesa-utils" ,mesa-utils)
+ ("pciutils" ,pciutils)
+ ("procps" ,procps)
+ ("tar" ,tar)
+ ("tree" ,tree)
+ ("util-linux" ,util-linux) ; lsblk, lsusb, etc.
+ ("wmctrl" ,wmctrl)
+ ("xdpyinfo" ,xdpyinfo)
+ ("xprop" ,xprop)
+ ("xrandr" ,xrandr)
+ ("coreutils" ,coreutils) ; uptime
+ ;; TODO: Add more inputs:
+ ;; ipmi-sensors
+ ;; hddtemp
+ ;; perl-xml-dumper
+ ;; ipmitool
+ ,@(package-inputs inxi-minimal)))
+ (propagated-inputs
+ `(("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
+ ("perl-http-tiny" ,perl-http-tiny)
+ ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+ ("perl-json-xs" ,perl-json-xs)
+ ("perl-time-hires" ,perl-time-hires)))))
diff --git a/gnu/packages/patches/inxi-minimal-fix-syntax.patch b/gnu/packages/patches/inxi-minimal-fix-syntax.patch
new file mode 100644
index 000000000..ca5cde328
--- /dev/null
+++ b/gnu/packages/patches/inxi-minimal-fix-syntax.patch
@@ -0,0 +1,18 @@
+Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+
+This patch fixes “Quantifier follows nothing in regex” error.
+
+--- a/inxi 2018-04-30 20:51:47.665352075 +0300
++++ b/inxi 2018-04-30 20:52:21.721804635 +0300
+@@ -4602,11 +4602,6 @@
+ sub cleaner {
+ my ($item) = @_;
+ return $item if !$item;# handle cases where it was 0 or ''
+- $item =~ s/chipset|components|computing|computer|corporation|communications|electronics|electrical|electric|gmbh|group|incorporation|industrial|international|nee|revision|semiconductor|software|technologies|technology|ltd\.|<ltd>|\bltd\b|inc\.|<inc>|\binc\b|intl\.|co\.|<co>|corp\.|<corp>|\(tm\)|\(r\)|®|\(rev ..\)|\'|\"|\sinc\s*$|\?//gi;
+- $item =~ s/,|\*/ /g;
+- $item =~ s/\s\s+/ /g;
+- $item =~ s/^\s+|\s+$//g;
+- return $item;
+ }
+
+ sub dmi_cleaner {
--
2.17.0
[-- Attachment #1.3: Type: text/plain, Size: 284 bytes --]
[…]
> I think it's better to have a package that behaves well in the general
> case than not having a package at all.
I agree. We have an old ‘inxi’ (Shell script version), which should not
produce collisions because of unnecessary ‘propagated-inputs’.
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [bug#31178] [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-04-30 19:18 ` Oleg Pykhalov
@ 2018-05-01 7:27 ` Oleg Pykhalov
2018-05-06 9:42 ` Pierre Neidhardt
1 sibling, 0 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-05-01 7:27 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 633 bytes --]
Some notes to fix myself about the latest patch.
Oleg Pykhalov <go.wigust@gmail.com> writes:
[…]
> From 49afb43e03b1de34741c0812cc45fe48c06c404b Mon Sep 17 00:00:00 2001
> From: Pierre Neidhardt <ambrevar@gmail.com>
> Date: Mon, 16 Apr 2018 18:08:30 +0530
> Subject: [PATCH] gnu: Add inxi.
>
> * gnu/packages/admin.scm (inxi): New variable.
I forgot about mentioning a patch in ‘gnu/local.mk’.
[…]
> +(define-public inxi-minimal
> + (let ((version "3.0.04-1")
> + (real-name "inxi"))
‘let version’ is not necessary. We could use ‘,version’ in ‘arguments’..
[…]
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-04-30 19:18 ` Oleg Pykhalov
2018-05-01 7:27 ` [bug#31178] [bug#31176] " Oleg Pykhalov
@ 2018-05-06 9:42 ` Pierre Neidhardt
2018-05-06 13:31 ` Oleg Pykhalov
1 sibling, 1 reply; 18+ messages in thread
From: Pierre Neidhardt @ 2018-05-06 9:42 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 9300 bytes --]
Oleg Pykhalov <go.wigust@gmail.com> writes:
>>> If I understand correctly, relying on native-inputs would mean that if the user
>>> runs `guix gc`, then all of inxi "optional" dependencies would go.
>>> Is this correct?
>
> All “references” should survive ‘guix gc’:
> --8<---------------cut here---------------start------------->8---
> guix gc --references $(env GUIX_PACKAGE_PATH= guix build --no-grafts inxi)
> --8<---------------cut here---------------end--------------->8---
OK, so if I understand correctly, only native-inputs get
garbage-collected, right?
Unless I've missed something in the manual, those details should be
better documented in my opinion.
> I've succeeded to test it by invoking ‘inxi’ and ‘inxi --full’, but
> please test it more for your use cases.
I've tested with `inxi --recommends` and everything looks OK.
See comments on patch below:
> From 49afb43e03b1de34741c0812cc45fe48c06c404b Mon Sep 17 00:00:00 2001
> From: Pierre Neidhardt <ambrevar@gmail.com>
> Date: Mon, 16 Apr 2018 18:08:30 +0530
> Subject: [PATCH] gnu: Add inxi.
>
> * gnu/packages/admin.scm (inxi): New variable.
> ---
> gnu/packages/admin.scm | 115 +++++++++++++++++-
> .../patches/inxi-minimal-fix-syntax.patch | 18 +++
> 2 files changed, 132 insertions(+), 1 deletion(-)
> create mode 100644 gnu/packages/patches/inxi-minimal-fix-syntax.patch
>
> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
> index 5e2cf2d7a..7081f7f08 100644
> --- a/gnu/packages/admin.scm
> +++ b/gnu/packages/admin.scm
> @@ -50,8 +50,11 @@
> #:use-module (guix build-system trivial)
> #:use-module (gnu packages)
> #:use-module (gnu packages base)
> + #:use-module (gnu packages bash)
> #:use-module (gnu packages check)
> #:use-module (gnu packages cyrus-sasl)
> + #:use-module (gnu packages dns)
> + #:use-module (gnu packages file)
> #:use-module (gnu packages ncurses)
> #:use-module (gnu packages readline)
> #:use-module (gnu packages linux)
> @@ -70,6 +73,7 @@
> #:use-module (gnu packages gnupg)
> #:use-module (gnu packages bison)
> #:use-module (gnu packages flex)
> + #:use-module (gnu packages gl)
> #:use-module (gnu packages glib)
> #:use-module (gnu packages openldap)
> #:use-module (gnu packages mcrypt)
> @@ -97,7 +101,8 @@
> #:use-module (gnu packages xml)
> #:use-module (gnu packages boost)
> #:use-module (gnu packages elf)
> - #:use-module (gnu packages mpi))
> + #:use-module (gnu packages mpi)
> + #:use-module (gnu packages web))
>
> (define-public aide
> (package
> @@ -2649,3 +2654,111 @@ Python loading in HPC environments.")
> ;; This package supports x86_64 and PowerPC64
> (supported-systems '("x86_64-linux"))
> (license license:lgpl2.1)))
> +
> +(define-public inxi-minimal
> + (let ((version "3.0.04-1")
> + (real-name "inxi"))
> + (package
> + (name "inxi-minimal")
> + (version version)
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/smxi/inxi"
> + "/archive/" version "/inxi.tar.gz"))
> + (file-name (string-append real-name "-" version ".tar.gz"))
> + (sha256
> + (base32
> + "14zxdsjgh9dbijmpp0hhvg2yiqqfwnqgcc6x8dpl1v15z1h1r7pc"))
> + (patches (search-patches "inxi-minimal-fix-syntax.patch"))))
> + (build-system trivial-build-system)
> + (inputs
> + `(("bash" ,bash)
> + ("perl" ,perl)))
> + (native-inputs
> + `(("gzip" ,gzip)
> + ("tar" ,tar)
> + ("xz" ,xz)))
> + (arguments
> + `(#:modules
> + ((guix build utils)
> + (ice-9 match)
> + (srfi srfi-26))
> + #:builder
> + (begin
> + (use-modules (guix build utils)
> + (ice-9 match)
> + (srfi srfi-26))
> + (setenv "PATH" (string-append
> + (assoc-ref %build-inputs "bash") "/bin" ":"
> + (assoc-ref %build-inputs "gzip") "/bin" ":"
> + (assoc-ref %build-inputs "perl") "/bin" ":"
> + (assoc-ref %build-inputs "tar") "/bin" ":"
> + (assoc-ref %build-inputs "xz") "/bin"))
> + (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
> + (with-directory-excursion ,(string-append real-name "-" version)
> + (substitute* "inxi" (("/usr/bin/env perl") (which "perl")))
> + (let ((bin (string-append %output "/bin")))
> + (install-file "inxi" bin)
> + (wrap-program (string-append bin "/inxi")
> + `("PATH" ":" =
> + ("$PATH"
> + ,@(map (lambda (input)
> + (string-append (match input
> + ((name . store) store))
> + "/bin"))
> + %build-inputs)))
> + `("PERL5LIB" ":" =
> + ,(delete
> + ""
> + (map (match-lambda
> + (((? (cut string-prefix? "perl-" <>) name) . dir)
> + (string-append dir "/lib/perl5/site_perl"))
> + (_ ""))
> + %build-inputs)))))
I'm not too familiar with Perl, so can you explain why you need to tweak
PERL5LIB?
Is it the same as PATH but for perl-cpanel-json-xs, etc.?
If so, why are the perl plugins propagated-inputs and not just inputs?
> + (invoke "gzip" "inxi.1")
> + (install-file "inxi.1.gz"
> + (string-append %output "/share/doc/man/man1")))
> + #t)))
> + (home-page "https://smxi.org/docs/inxi.htm")
> + (synopsis "Full featured system information script")
> + (description "Inxi is a system information script that can display
> +various things about your hardware and software to users in an IRC chatroom or
> +support forum. It runs with the /exec command in most IRC clients. ")
Spurious trailing space.
> + (license license:gpl3+))))
> +
> +(define-public inxi
> + (package
> + (inherit inxi-minimal)
> + (name "inxi")
> + (inputs
> + `(("dmidecode" ,dmidecode)
> + ("file" ,file)
> + ("bind:utils" ,isc-bind "utils") ; dig
> + ("gzip" ,gzip)
> + ("iproute2" ,iproute) ; ip
> + ("kmod" ,kmod) ; modinfo
> + ("lm-sensors" ,lm-sensors)
> + ("mesa-utils" ,mesa-utils)
> + ("pciutils" ,pciutils)
> + ("procps" ,procps)
> + ("tar" ,tar)
> + ("tree" ,tree)
> + ("util-linux" ,util-linux) ; lsblk, lsusb, etc.
> + ("wmctrl" ,wmctrl)
> + ("xdpyinfo" ,xdpyinfo)
> + ("xprop" ,xprop)
> + ("xrandr" ,xrandr)
> + ("coreutils" ,coreutils) ; uptime
> + ;; TODO: Add more inputs:
> + ;; ipmi-sensors
> + ;; hddtemp
> + ;; perl-xml-dumper
> + ;; ipmitool
> + ,@(package-inputs inxi-minimal)))
> + (propagated-inputs
> + `(("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
> + ("perl-http-tiny" ,perl-http-tiny)
> + ("perl-io-socket-ssl" ,perl-io-socket-ssl)
> + ("perl-json-xs" ,perl-json-xs)
> + ("perl-time-hires" ,perl-time-hires)))))
> diff --git a/gnu/packages/patches/inxi-minimal-fix-syntax.patch b/gnu/packages/patches/inxi-minimal-fix-syntax.patch
> new file mode 100644
> index 000000000..ca5cde328
> --- /dev/null
> +++ b/gnu/packages/patches/inxi-minimal-fix-syntax.patch
> @@ -0,0 +1,18 @@
> +Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
> +
> +This patch fixes “Quantifier follows nothing in regex” error.
> +
> +--- a/inxi 2018-04-30 20:51:47.665352075 +0300
> ++++ b/inxi 2018-04-30 20:52:21.721804635 +0300
> +@@ -4602,11 +4602,6 @@
> + sub cleaner {
> + my ($item) = @_;
> + return $item if !$item;# handle cases where it was 0 or ''
> +- $item =~ s/chipset|components|computing|computer|corporation|communications|electronics|electrical|electric|gmbh|group|incorporation|industrial|international|nee|revision|semiconductor|software|technologies|technology|ltd\.|<ltd>|\bltd\b|inc\.|<inc>|\binc\b|intl\.|co\.|<co>|corp\.|<corp>|\(tm\)|\(r\)|®|\(rev ..\)|\'|\"|\sinc\s*$|\?//gi;
> +- $item =~ s/,|\*/ /g;
> +- $item =~ s/\s\s+/ /g;
> +- $item =~ s/^\s+|\s+$//g;
> +- return $item;
> + }
> +
> + sub dmi_cleaner {
I'm not sure I get the purpose of this patch. Unless we are talking
about a different error, I had initially fixed it with
(with-fluids ((%default-port-encoding #f))
so that the "®" in the above regexp would not get garbled during the
substitution.
Does your patch does something else / more?
--
Pierre Neidhardt
That's the true harbinger of spring, not crocuses or swallows
returning to Capistrano, but the sound of a bat on a ball.
-- Bill Veeck
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-05-06 9:42 ` Pierre Neidhardt
@ 2018-05-06 13:31 ` Oleg Pykhalov
2018-05-07 10:14 ` Peter Neidhardt
0 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-05-06 13:31 UTC (permalink / raw)
To: Pierre Neidhardt; +Cc: 31178, 31176
[-- Attachment #1.1: Type: text/plain, Size: 5258 bytes --]
Hello Pierre,
Pierre Neidhardt <pe.neidhardt@googlemail.com> writes:
> Oleg Pykhalov <go.wigust@gmail.com> writes:
>
>>>> If I understand correctly, relying on native-inputs would mean that if the user
>>>> runs `guix gc`, then all of inxi "optional" dependencies would go.
>>>> Is this correct?
>>
>> All “references” should survive ‘guix gc’:
>> --8<---------------cut here---------------start------------->8---
>> guix gc --references $(env GUIX_PACKAGE_PATH= guix build --no-grafts inxi)
>> --8<---------------cut here---------------end--------------->8---
>
> OK, so if I understand correctly, only native-inputs get
> garbage-collected, right?
Not quite, missing inputs (*not only* ‘(native-inputs …)’) in the output
of mentioned ‘guix gc’ command get garbage-collected.
Also a good test for missing run-time dependencies is a ‘guix
environment --no-grafts --container --ad-hoc PACKAGE’ command.
[…]
> See comments on patch below:
>
>> From 49afb43e03b1de34741c0812cc45fe48c06c404b Mon Sep 17 00:00:00 2001
>> From: Pierre Neidhardt <ambrevar@gmail.com>
>> Date: Mon, 16 Apr 2018 18:08:30 +0530
>> Subject: [PATCH] gnu: Add inxi.
>>
>> * gnu/packages/admin.scm (inxi): New variable.
>> ---
>> gnu/packages/admin.scm | 115 +++++++++++++++++-
>> .../patches/inxi-minimal-fix-syntax.patch | 18 +++
>> 2 files changed, 132 insertions(+), 1 deletion(-)
>> create mode 100644 gnu/packages/patches/inxi-minimal-fix-syntax.patch
>>
>> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
>> index 5e2cf2d7a..7081f7f08 100644
>> --- a/gnu/packages/admin.scm
>> +++ b/gnu/packages/admin.scm
[…]
>> + (wrap-program (string-append bin "/inxi")
>> + `("PATH" ":" =
>> + ("$PATH"
>> + ,@(map (lambda (input)
>> + (string-append (match input
>> + ((name . store) store))
>> + "/bin"))
>> + %build-inputs)))
>> + `("PERL5LIB" ":" =
>> + ,(delete
>> + ""
>> + (map (match-lambda
>> + (((? (cut string-prefix? "perl-" <>) name) . dir)
>> + (string-append dir "/lib/perl5/site_perl"))
>> + (_ ""))
>> + %build-inputs)))))
>
> I'm not too familiar with Perl, so can you explain why you need to tweak
> PERL5LIB?
> Is it the same as PATH but for perl-cpanel-json-xs, etc.?
I cannot say PERL5LIB is the same as PATH, because PATH is for
executables, but I could lie PERL5LIB is the same in ‘inxi’ case.
Because of ‘inxi’ is Perl program, it requires to find run-time
libraries with a help of PERL5LIB. As you could see ‘inxi --recommends’
will complain about missing Perl libraries without PERL5LIB.
> If so, why are the perl plugins propagated-inputs and not just inputs?
Good catch. Yes, we could have Perl packages in ‘propagated-inputs’.
[…]
>> + (description "Inxi is a system information script that can display
>> +various things about your hardware and software to users in an IRC chatroom or
>> +support forum. It runs with the /exec command in most IRC clients. ")
>
> Spurious trailing space.
Oh, thanks.
Hm, ‘guix lint’ was quite. Probably a possible place for improvements.
[…]
>> diff --git a/gnu/packages/patches/inxi-minimal-fix-syntax.patch
>> b/gnu/packages/patches/inxi-minimal-fix-syntax.patch
>> new file mode 100644
>> index 000000000..ca5cde328
>> --- /dev/null
>> +++ b/gnu/packages/patches/inxi-minimal-fix-syntax.patch
>> @@ -0,0 +1,18 @@
>> +Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
>> +
>> +This patch fixes “Quantifier follows nothing in regex” error.
>> +
>> +--- a/inxi 2018-04-30 20:51:47.665352075 +0300
>> ++++ b/inxi 2018-04-30 20:52:21.721804635 +0300
>> +@@ -4602,11 +4602,6 @@
>> + sub cleaner {
>> + my ($item) = @_;
>> + return $item if !$item;# handle cases where it was 0 or ''
>> +- $item =~
>> s/chipset|components|computing|computer|corporation|communications|electronics|electrical|electric|gmbh|group|incorporation|industrial|international|nee|revision|semiconductor|software|technologies|technology|ltd\.|<ltd>|\bltd\b|inc\.|<inc>|\binc\b|intl\.|co\.|<co>|corp\.|<corp>|\(tm\)|\(r\)|®|\(rev
>> ..\)|\'|\"|\sinc\s*$|\?//gi;
>> +- $item =~ s/,|\*/ /g;
>> +- $item =~ s/\s\s+/ /g;
>> +- $item =~ s/^\s+|\s+$//g;
>> +- return $item;
>> + }
>> +
>> + sub dmi_cleaner {
>
> I'm not sure I get the purpose of this patch. Unless we are talking
> about a different error, I had initially fixed it with
>
> (with-fluids ((%default-port-encoding #f))
>
> so that the "®" in the above regexp would not get garbled during the
> substitution.
I believe I tried this ‘with-fluids’ tip, but not succeeded.
Well another attempt seems to work. Thank you for noticed this.
> Does your patch does something else / more?
No, it doesn't.
Here is a new patch.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: gnu: Add inxi. --]
[-- Type: text/x-patch, Size: 6585 bytes --]
From e504bbc45e2fcd49bfe792bddd8d18faacb9e905 Mon Sep 17 00:00:00 2001
From: Pierre Neidhardt <ambrevar@gmail.com>
Date: Mon, 16 Apr 2018 18:08:30 +0530
Subject: [PATCH] gnu: Add inxi.
* gnu/packages/admin.scm (inxi): New variable.
Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
---
gnu/packages/admin.scm | 121 ++++++++++++++++++++++++++++++++++++++++-
1 file changed, 120 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4a2fe145f..3d9ada84d 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -50,8 +50,11 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages check)
#:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages dns)
+ #:use-module (gnu packages file)
#:use-module (gnu packages ncurses)
#:use-module (gnu packages readline)
#:use-module (gnu packages linux)
@@ -70,6 +73,7 @@
#:use-module (gnu packages gnupg)
#:use-module (gnu packages bison)
#:use-module (gnu packages flex)
+ #:use-module (gnu packages gl)
#:use-module (gnu packages glib)
#:use-module (gnu packages openldap)
#:use-module (gnu packages mcrypt)
@@ -97,7 +101,8 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages boost)
#:use-module (gnu packages elf)
- #:use-module (gnu packages mpi))
+ #:use-module (gnu packages mpi)
+ #:use-module (gnu packages web))
(define-public aide
(package
@@ -2652,3 +2657,117 @@ Python loading in HPC environments.")
;; This package supports x86_64 and PowerPC64
(supported-systems '("x86_64-linux"))
(license license:lgpl2.1)))
+
+(define-public inxi-minimal
+ (let ((real-name "inxi"))
+ (package
+ (name "inxi-minimal")
+ (version "3.0.04-1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/smxi/inxi"
+ "/archive/" version "/inxi.tar.gz"))
+ (file-name (string-append real-name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "14zxdsjgh9dbijmpp0hhvg2yiqqfwnqgcc6x8dpl1v15z1h1r7pc"))))
+ (build-system trivial-build-system)
+ (inputs
+ `(("bash" ,bash)
+ ("perl" ,perl)))
+ (native-inputs
+ `(("gzip" ,gzip)
+ ("tar" ,tar)))
+ (arguments
+ `(#:modules
+ ((guix build utils)
+ (ice-9 match)
+ (srfi srfi-26))
+ #:builder
+ (begin
+ (use-modules (guix build utils)
+ (ice-9 match)
+ (srfi srfi-26))
+ (setenv "PATH" (string-append
+ (assoc-ref %build-inputs "bash") "/bin" ":"
+ (assoc-ref %build-inputs "gzip") "/bin" ":"
+ (assoc-ref %build-inputs "perl") "/bin" ":"
+ (assoc-ref %build-inputs "tar") "/bin" ":"))
+ (invoke "tar" "xvf" (assoc-ref %build-inputs "source"))
+ (with-directory-excursion ,(string-append real-name "-" version)
+ (with-fluids ((%default-port-encoding #f))
+ (substitute* "inxi" (("/usr/bin/env perl") (which "perl"))))
+ (let ((bin (string-append %output "/bin")))
+ (install-file "inxi" bin)
+ (wrap-program (string-append bin "/inxi")
+ `("PATH" ":" =
+ ("$PATH"
+ ,@(map (lambda (input)
+ (match input
+ ((name . store)
+ (let ((store-append
+ (cut string-append store <>)))
+ (cond
+ ((member name '("util-linux"))
+ (string-append (store-append "/bin") ":"
+ (store-append "/sbin")))
+ ((member name '("dmidecode" "iproute2"))
+ (store-append "/sbin"))
+ (else (store-append "/bin")))))))
+ %build-inputs)))
+ `("PERL5LIB" ":" =
+ ,(delete
+ ""
+ (map (match-lambda
+ (((? (cut string-prefix? "perl-" <>) name) . dir)
+ (string-append dir "/lib/perl5/site_perl"))
+ (_ ""))
+ %build-inputs)))))
+ (invoke "gzip" "inxi.1")
+ (install-file "inxi.1.gz"
+ (string-append %output "/share/doc/man/man1")))
+ #t)))
+ (home-page "https://smxi.org/docs/inxi.htm")
+ (synopsis "Full featured system information script")
+ (description "Inxi is a system information script that can display
+various things about your hardware and software to users in an IRC chatroom or
+support forum. It runs with the /exec command in most IRC clients.")
+ (license license:gpl3+))))
+
+(define-public inxi
+ (package
+ (inherit inxi-minimal)
+ (name "inxi")
+ (inputs
+ `(("dmidecode" ,dmidecode)
+ ("file" ,file)
+ ("bind:utils" ,isc-bind "utils") ; dig
+ ("gzip" ,gzip)
+ ("iproute2" ,iproute) ; ip
+ ("kmod" ,kmod) ; modinfo
+ ("lm-sensors" ,lm-sensors)
+ ("mesa-utils" ,mesa-utils)
+ ("pciutils" ,pciutils)
+ ("procps" ,procps)
+ ("tar" ,tar)
+ ("tree" ,tree)
+ ("util-linux" ,util-linux) ; lsblk
+ ("usbutils" ,usbutils) ; lsusb
+ ("wmctrl" ,wmctrl)
+ ("xdpyinfo" ,xdpyinfo)
+ ("xprop" ,xprop)
+ ("xrandr" ,xrandr)
+ ("coreutils" ,coreutils) ; uptime
+ ("inetutils" ,inetutils) ; ifconfig
+ ("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
+ ("perl-http-tiny" ,perl-http-tiny)
+ ("perl-io-socket-ssl" ,perl-io-socket-ssl)
+ ("perl-json-xs" ,perl-json-xs)
+ ("perl-time-hires" ,perl-time-hires)
+ ;; TODO: Add more inputs:
+ ;; ipmi-sensors
+ ;; hddtemp
+ ;; perl-xml-dumper
+ ;; ipmitool
+ ,@(package-inputs inxi-minimal)))))
--
2.17.0
[-- Attachment #1.3: Type: text/plain, Size: 7 bytes --]
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-05-06 13:31 ` Oleg Pykhalov
@ 2018-05-07 10:14 ` Peter Neidhardt
2018-05-07 15:29 ` Oleg Pykhalov
0 siblings, 1 reply; 18+ messages in thread
From: Peter Neidhardt @ 2018-05-07 10:14 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 776 bytes --]
Oleg Pykhalov <go.wigust@gmail.com> writes:
>> OK, so if I understand correctly, only native-inputs get
>> garbage-collected, right?
>
> Not quite, missing inputs (*not only* ‘(native-inputs …)’) in the output
> of mentioned ‘guix gc’ command get garbage-collected.
So what are the rules for garbage collection then? I'm confused...
I don't see how _some_ inputs could get garbage collected and others not.
>> If so, why are the perl plugins propagated-inputs and not just inputs?
>
> Good catch. Yes, we could have Perl packages in ‘propagated-inputs’.
You meant `inputs', right?
--
Peter Neidhardt
"Poor man... he was like an employee to me."
-- The police commissioner on "Sledge Hammer" laments the death of his
bodyguard
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31178] [PATCH] gnu: Add inxi.
2018-05-07 10:14 ` Peter Neidhardt
@ 2018-05-07 15:29 ` Oleg Pykhalov
2018-05-07 19:52 ` [bug#31176] " Peter Neidhardt
0 siblings, 1 reply; 18+ messages in thread
From: Oleg Pykhalov @ 2018-05-07 15:29 UTC (permalink / raw)
To: Peter Neidhardt; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 1425 bytes --]
Hello Peter,
I've removed Ludovic from a Cc because I think it doesn't seem a good
thing to disturb him with following questions.
Peter Neidhardt <pe.neidhardt@googlemail.com> writes:
> Oleg Pykhalov <go.wigust@gmail.com> writes:
>
>>> OK, so if I understand correctly, only native-inputs get
>>> garbage-collected, right?
>>
>> Not quite, missing inputs (*not only* ‘(native-inputs …)’) in the output
>> of mentioned ‘guix gc’ command get garbage-collected.
>
> So what are the rules for garbage collection then? I'm confused...
> I don't see how _some_ inputs could get garbage collected and others not.
When ‘guix gc --references PATH’ shows a ‘/gnu/store/…-INPUT’,
then ‘/gnu/store/…-INPUT’ *will not* be garbage collected.
For example:
--8<---------------cut here---------------start------------->8---
$ guix gc --references $(env GUIX_PACKAGE_PATH= guix build --no-grafts inxi)
[…]
/gnu/store/…-file-5.32
[…]
/gnu/store/…-xrandr-1.5.0
/gnu/store/…-xprop-1.2.3
--8<---------------cut here---------------end--------------->8---
‘file’, ‘xrandr’ and ‘xprop’ packages *will not* be garbage collected.
>>> If so, why are the perl plugins propagated-inputs and not just inputs?
>>
>> Good catch. Yes, we could have Perl packages in ‘propagated-inputs’.
>
> You meant `inputs', right?
Yes, apologies for a mistyping.
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-05-07 15:29 ` Oleg Pykhalov
@ 2018-05-07 19:52 ` Peter Neidhardt
2018-05-08 18:11 ` [bug#31178] " Oleg Pykhalov
0 siblings, 1 reply; 18+ messages in thread
From: Peter Neidhardt @ 2018-05-07 19:52 UTC (permalink / raw)
To: Oleg Pykhalov; +Cc: 31178, 31176
[-- Attachment #1: Type: text/plain, Size: 1063 bytes --]
Oleg Pykhalov <go.wigust@gmail.com> writes:
>> So what are the rules for garbage collection then? I'm confused...
>> I don't see how _some_ inputs could get garbage collected and others not.
>
> When ‘guix gc --references PATH’ shows a ‘/gnu/store/…-INPUT’,
> then ‘/gnu/store/…-INPUT’ *will not* be garbage collected.
>
> For example:
> --8<---------------cut here---------------start------------->8---
> $ guix gc --references $(env GUIX_PACKAGE_PATH= guix build --no-grafts inxi)
> […]
> /gnu/store/…-file-5.32
> […]
> /gnu/store/…-xrandr-1.5.0
> /gnu/store/…-xprop-1.2.3
> --8<---------------cut here---------------end--------------->8---
> ‘file’, ‘xrandr’ and ‘xprop’ packages *will not* be garbage collected.
In understand that, my question was _why_ would some inputs get garbage
collected, and why not. My question is on from a logical perspective in
terms of functional package management.
Other than that, the patch looks good to me, feel free to merge! :)
--
Peter Neidhardt
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
* [bug#31178] [bug#31176] [bug#31178] [PATCH] gnu: Add inxi.
2018-05-07 19:52 ` [bug#31176] " Peter Neidhardt
@ 2018-05-08 18:11 ` Oleg Pykhalov
0 siblings, 0 replies; 18+ messages in thread
From: Oleg Pykhalov @ 2018-05-08 18:11 UTC (permalink / raw)
To: Peter Neidhardt; +Cc: 31178, 31176, 31178-done
[-- Attachment #1: Type: text/plain, Size: 309 bytes --]
Hello Peter,
Peter Neidhardt <pe.neidhardt@googlemail.com> writes:
[…]
> Other than that, the patch looks good to me, feel free to merge! :)
OK. Let me know if ‘inxi’ behaves not as you expected.
Pushed as bbc94ed03a219c10740921f64eea2f630458f538
I'll close the bug report.
Oleg.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2018-05-08 18:12 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-04-16 12:38 [bug#31178] [PATCH] gnu: Add inxi Pierre Neidhardt
2018-04-22 21:42 ` [bug#31176] " Ludovic Courtès
2018-04-23 4:33 ` Pierre Neidhardt
2018-04-23 5:23 ` Oleg Pykhalov
2018-04-23 5:34 ` [bug#31176] " Pierre Neidhardt
2018-04-28 21:27 ` Ludovic Courtès
2018-04-29 17:38 ` Oleg Pykhalov
2018-04-30 10:07 ` Ludovic Courtès
2018-04-30 12:31 ` [bug#31176] " Pierre Neidhardt
2018-04-30 19:18 ` Oleg Pykhalov
2018-05-01 7:27 ` [bug#31178] [bug#31176] " Oleg Pykhalov
2018-05-06 9:42 ` Pierre Neidhardt
2018-05-06 13:31 ` Oleg Pykhalov
2018-05-07 10:14 ` Peter Neidhardt
2018-05-07 15:29 ` Oleg Pykhalov
2018-05-07 19:52 ` [bug#31176] " Peter Neidhardt
2018-05-08 18:11 ` [bug#31178] " Oleg Pykhalov
2018-04-30 13:17 ` Tobias Geerinckx-Rice
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).