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 “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 >> 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 >> + >> +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\.||\bltd\b|inc\.||\binc\b|intl\.|co\.||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.