From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47448) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fFGC9-0000oD-FN for guix-patches@gnu.org; Sun, 06 May 2018 05:43:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fFGC6-0007OG-9A for guix-patches@gnu.org; Sun, 06 May 2018 05:43:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:43094) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fFGC6-0007Ny-5R for guix-patches@gnu.org; Sun, 06 May 2018 05:43:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1fFGC5-0005yn-QK for guix-patches@gnu.org; Sun, 06 May 2018 05:43:01 -0400 Subject: [bug#31176] [bug#31178] [PATCH] gnu: Add inxi. Resent-Message-ID: From: Pierre Neidhardt 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> In-reply-to: <874ljstsei.fsf@gmail.com> Date: Sun, 06 May 2018 11:42:28 +0200 Message-ID: <87vac1ce7v.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; 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: Oleg Pykhalov Cc: 31178@debbugs.gnu.org, 31176@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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 in= xi) > --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 =E2=80=98inxi=E2=80=99 and =E2=80= =98inxi --full=E2=80=99, 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 > 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)) >=20=20 > (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 "-" versi= on) > + (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) > + (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.? 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 chatr= oom 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/pac= kages/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 e= rror. > + > +--- 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|communi= cations|electronics|electrical|electric|gmbh|group|incorporation|industrial= |international|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. Does your patch does something else / more? =2D-=20 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 --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCAAdFiEEUPM+LlsMPZAEJKvom9z0l6S7zH8FAlruzgQACgkQm9z0l6S7 zH/G7Qf/Uq68vmAZNOX02IasKl8herG4tE6q2ykB95cEKu+nwV6wq9T4ANGbjxPA brVP5JV/Jb3CCb/KuqLEuA+Vlwy7sMOVxAbNkR9Nq/VSf/deQvu66YELjtglMbm5 VREsV1aKtEowTnV1jfOvT9X8qkPmYjmKa4GdnbWso9/jOi00qICl38WnC4Mdvdyq tIKHT0+jiabE/Qn0FhibzZzbXr/vjN++r16Sh1PuGXBZuLh0MvKGrX22O1kSjnJB rFxtJY+qB3OMb5uEjIkCDkEyM6C4I1vtmRohsqvQmJ3bqBuaOWIr8gwhV9PS5KaS LGhFqJ0yWCzSTF4SbVasBCO4C9EEXQ== =pILp -----END PGP SIGNATURE----- --=-=-=--