aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/admin.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <ambrevar@gmail.com>2018-04-16 18:08:30 +0530
committerOleg Pykhalov <go.wigust@gmail.com>2018-05-08 20:49:20 +0300
commitbbc94ed03a219c10740921f64eea2f630458f538 (patch)
tree6c63e5fcdf6213c46c0b4311195037b73bbb3781 /gnu/packages/admin.scm
parenta288ab1f39354dffc60af2ee2117a51345f4aa50 (diff)
downloadgnu-guix-bbc94ed03a219c10740921f64eea2f630458f538.tar
gnu-guix-bbc94ed03a219c10740921f64eea2f630458f538.tar.gz
gnu: Add inxi.
* gnu/packages/admin.scm (inxi): New variable. Signed-off-by: Oleg Pykhalov <go.wigust@gmail.com>
Diffstat (limited to 'gnu/packages/admin.scm')
-rw-r--r--gnu/packages/admin.scm121
1 files changed, 120 insertions, 1 deletions
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 4a2fe145f5..3d9ada84d2 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)))))