From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57418) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fFJln-00065I-6I for guix-patches@gnu.org; Sun, 06 May 2018 09:32:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fFJli-00056e-Cv for guix-patches@gnu.org; Sun, 06 May 2018 09:32:07 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:43191) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fFJli-00056D-72 for guix-patches@gnu.org; Sun, 06 May 2018 09:32:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fFJlh-0004sd-RR for guix-patches@gnu.org; Sun, 06 May 2018 09:32:01 -0400 Subject: [bug#31176] [bug#31178] [PATCH] gnu: Add inxi. Resent-Message-ID: From: Oleg Pykhalov References: <20180416123830.28716-1-ambrevar@gmail.com> <87r2n6gbpg.fsf@gnu.org> <87sh7mr17w.fsf@gmail.com> <87in8ifqdc.fsf@gmail.com> <87r2n6qydr.fsf@gmail.com> <87po2j81jn.fsf@gnu.org> <8736zd7w0s.fsf@gmail.com> <877eop0zzn.fsf@gnu.org> <87sh7c7u4w.fsf@gmail.com> <874ljstsei.fsf@gmail.com> <87vac1ce7v.fsf@gmail.com> Date: Sun, 06 May 2018 16:31:08 +0300 In-Reply-To: <87vac1ce7v.fsf@gmail.com> (Pierre Neidhardt's message of "Sun, 06 May 2018 11:42:28 +0200") Message-ID: <87o9hs52sj.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: Pierre Neidhardt Cc: 31178@debbugs.gnu.org, 31176@debbugs.gnu.org --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello Pierre, Pierre Neidhardt writes: > Oleg Pykhalov 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 =E2=80=9Creferences=E2=80=9D should survive =E2=80=98guix gc=E2=80= =99: >> --8<---------------cut here---------------start------------->8--- >> guix gc --references $(env GUIX_PACKAGE_PATH=3D guix build --no-grafts i= nxi) >> --8<---------------cut here---------------end--------------->8--- > > OK, so if I understand correctly, only native-inputs get > garbage-collected, right? Not quite, missing inputs (*not only* =E2=80=98(native-inputs =E2=80=A6)=E2= =80=99) in the output of mentioned =E2=80=98guix gc=E2=80=99 command get garbage-collected. Also a good test for missing run-time dependencies is a =E2=80=98guix environment --no-grafts --container --ad-hoc PACKAGE=E2=80=99 command. [=E2=80=A6] > See comments on patch below: > >> From 49afb43e03b1de34741c0812cc45fe48c06c404b Mon Sep 17 00:00:00 2001 >> From: Pierre Neidhardt >> 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 [=E2=80=A6] >> + (wrap-program (string-append bin "/inxi") >> + `("PATH" ":" =3D >> + ("$PATH" >> + ,@(map (lambda (input) >> + (string-append (match input >> + ((name . store) store)) >> + "/bin")) >> + %build-inputs))) >> + `("PERL5LIB" ":" =3D >> + ,(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 =E2=80=98inxi=E2=80=99= case. Because of =E2=80=98inxi=E2=80=99 is Perl program, it requires to find run-= time libraries with a help of PERL5LIB. As you could see =E2=80=98inxi --recomm= ends=E2=80=99 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 =E2=80=98propagated-inputs= =E2=80=99. [=E2=80=A6] >> + (description "Inxi is a system information script that can display >> +various things about your hardware and software to users in an IRC chat= room or >> +support forum. It runs with the /exec command in most IRC clients. ") > > Spurious trailing space. Oh, thanks. Hm, =E2=80=98guix lint=E2=80=99 was quite. Probably a possible place for i= mprovements. [=E2=80=A6] >> 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 =C2=A9 2018 Oleg Pykhalov >> + >> +This patch fixes =E2=80=9CQuantifier follows nothing in regex=E2=80=9D = 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) =3D @_; >> + return $item if !$item;# handle cases where it was 0 or '' >> +- $item =3D~ >> s/chipset|components|computing|computer|corporation|communications|elect= ronics|electrical|electric|gmbh|group|incorporation|industrial|internationa= l|nee|revision|semiconductor|software|technologies|technology|ltd\.||\= bltd\b|inc\.||\binc\b|intl\.|co\.||corp\.||\(tm\)|\(r\)|=C2= =AE|\(rev >> ..\)|\'|\"|\sinc\s*$|\?//gi; >> +- $item =3D~ s/,|\*/ /g; >> +- $item =3D~ s/\s\s+/ /g; >> +- $item =3D~ s/^\s+|\s+$//g; >> +- return $item; >> + } >> +=20 >> + 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 "=C2=AE" in the above regexp would not get garbled during the > substitution. I believe I tried this =E2=80=98with-fluids=E2=80=99 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. --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-Add-inxi.patch Content-Transfer-Encoding: quoted-printable Content-Description: gnu: Add inxi. From=20e504bbc45e2fcd49bfe792bddd8d18faacb9e905 Mon Sep 17 00:00:00 2001 From: Pierre Neidhardt 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 =2D-- 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 =2D-- 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) =2D #:use-module (gnu packages mpi)) + #:use-module (gnu packages mpi) + #:use-module (gnu packages web)) =20 (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" ":" =3D + ("$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" ":" =3D + ,(delete + "" + (map (match-lambda + (((? (cut string-prefix? "perl-" <>) name) . d= ir) + (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 chatroo= m 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))))) =2D-=20 2.17.0 --=-=-= Content-Type: text/plain Oleg. --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEc+OyAXw1EaDPCmAPckbhHGm3lWkFAlrvA5wACgkQckbhHGm3 lWlOEw/+MSfKynvpzbpjpBhLDNRD/XciGj9Fai7Pl7NmKnwgLvaGhdcCfCZHi3LB SSUhqz5Ls55Jt6+Lz9udj9mafAcFVYIboYcYaPg4VBeIiDZ3I3iFqBPac2KzjPjz +aKOdt53qnutmUszSsoHBr5Zq3GpCJkxLST4uyf9jZtaKWFZFB6n40EPOnqCHPzo RJLyg+zeIR4YS2Fol0Mb0cxSYSp3+q22D/yPngO5/mhGvc4k0YILSvofE51BKPd3 DSYkkHvQXcjhvTyxfO2A3oehl1lkGvJg0tRwZezkOGptf5FPulW1rODz9t0OyySc N0OkcedZApEDtVff+ZBFYe7iw9AACkwBX21tk2/9mD5uvtmxUVkPEI5zf2NcOerX E+dI0v2zNnfZNhiDkUiR9NVXPmQvM6pMBI3iEDlR8kYnulvvTW7CSBk0zYriv/lm b4h0b1LdnzIhlE8Eo9n6MG09z7xgwWAovjsgHvC2WCY4vZbb5AealDkOpN+eAJ1p 9oXrqrgpW3QShtAQ5Y1c3oKCfgkFuEeu344X6R4POCNQofvfMg4BVaajtb80TejM trjmsccs3a1leDW4TyVCDerGPTryB2o6IMd0Fma+4hN9JoJfkpKFBX7mZsVir3GM rxIHkmERkvHCYu1NxXb/nH0po7PZlTgQyp2Pw6aHl/t6iNTgaI4= =iNo5 -----END PGP SIGNATURE----- --==-=-=--