Subject: [PATCH v2] gnu: Add hw-probe.

From: Raghav Gururajan <[email-masked]>
Date: Thu, 9 Dec 2021 06:51:30 -0500

* gnu/packages/hardware.scm (hw-probe): New variable.

Co-authored-by: Petr Hodina <[email-masked]>
---
 gnu/packages/hardware.scm | 494 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 494 insertions(+)

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 46ac96d679..90c23af90b 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -27,20 +27,29 @@
 (define-module (gnu packages hardware)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages avahi)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cpp)
   #:use-module (gnu packages crypto)
+  #:use-module (gnu packages cups)
   #:use-module (gnu packages curl)
+  #:use-module (gnu packages debian)
+  #:use-module (gnu packages disk)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
+  #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages openldap)
   #:use-module (gnu packages pciutils)
@@ -52,8 +61,12 @@ (define-module (gnu packages hardware)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages qt)
+  #:use-module (gnu packages scanner)
+  #:use-module (gnu packages security-token)
   #:use-module (gnu packages tls)
+  #:use-module (gnu packages video)
   #:use-module (gnu packages virtualization)
+  #:use-module (gnu packages vulkan)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xdisorg)
   #:use-module (gnu packages xml)
@@ -61,6 +74,7 @@ (define-module (gnu packages hardware)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
+  #:use-module (guix build-system perl)
   #:use-module (guix build-system python)
   #:use-module (guix download)
   #:use-module (guix git-download)
@@ -72,6 +86,486 @@ (define-module (gnu packages hardware)
 ;; This is a module for packages related to physical hardware that don't (yet)
 ;; have a more specific home like gps.scm, security-token.scm, &c.
 
+;; NOTE: The program will lack some functionalities,
+;; until all reffered programs in 'hw-probe.pl' are packaged and patched.
+(define-public hw-probe
+  (package
+    (name "hw-probe")
+    (version "1.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/linuxhw/hw-probe")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1zyaardfw6r9nwxbkbb68hyl8719xn8sxpbgm7czkvsbjrim11n8"))))
+    (build-system perl-build-system)
+    (arguments
+     `(#:tests? #f                      ;no test target
+       #:imported-modules
+       (,@%perl-build-system-modules)
+       #:modules
+       ((guix build perl-build-system)
+        (guix build utils)
+        (srfi srfi-26))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               ;; Correct install prefix.
+               (substitute* "Makefile"
+                 (("/usr") out)))
+             ;; Use absolute paths to referenced programs.
+             (substitute* "hw-probe.pl"
+               (("Cmd\\(\"acpi")
+                (format #f "Cmd(\"~a/bin/acpi"
+                        (assoc-ref inputs "acpi")))
+               (("Cmd\\(\"acpidump")
+                (format #f "Cmd(\"~a/bin/acpidump"
+                        (assoc-ref inputs "acpica")))
+               (("Cmd\\(\"acpixtract")
+                (format #f "Cmd(\"~a/bin/acpixtract"
+                        (assoc-ref inputs "acpica")))
+               (("Cmd\\(\"alsactl")
+                (format #f "Cmd(\"~a/bin/alsactl"
+                        (assoc-ref inputs "alsa-utils")))
+               #;(("Cmd\\(\"amdconfig")
+               (format #f "Cmd(\"~a/bin/amdconfig"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"amixer")
+                (format #f "Cmd(\"~a/bin/amixer"
+                        (assoc-ref inputs "alsa-utils")))
+               #;(("Cmd\\(\"apk")
+               (format #f "Cmd(\"~a/bin/apk"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"aplay")
+                (format #f "Cmd(\"~a/bin/aplay"
+                        (assoc-ref inputs "alsa-utils")))
+               #;(("Cmd\\(\"arcconf")
+               (format #f "Cmd(\"~a/bin/arcconf"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"arecord")
+                (format #f "Cmd(\"~a/bin/arecord"
+                        (assoc-ref inputs "alsa-utils")))
+               (("Cmd\\(\"avahi-browse")
+                (format #f "Cmd(\"~a/bin/avahi-browse"
+                        (assoc-ref inputs "avahi")))
+               (("Cmd\\(\"biosdecode")
+                (format #f "Cmd(\"~a/sbin/biosdecode"
+                        (assoc-ref inputs "dmidecode")))
+               (("=cat")
+                (format #f "=~a/bin/cat"
+                        (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"chmod")
+                (format #f "Cmd(\"~a/bin/chmod"
+                        (assoc-ref inputs "coreutils")))
+               (("\"chmod\"")
+                (format #f "\"~a/bin/chmod\""
+                        (assoc-ref inputs "coreutils")))
+               (("\"chown\"")
+                (format #f "\"~a/bin/chown\""
+                        (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"cpuid")
+                (format #f "Cmd(\"~a/bin/cpuid"
+                        (assoc-ref inputs "cpuid")))
+               (("Cmd\\(\"cpupower")
+                (format #f "Cmd(\"~a/bin/cpupower"
+                        (assoc-ref inputs "cpupower")))
+               (("Cmd\\(\"curl")
+                (format #f "Cmd(\"~a/bin/curl"
+                        (assoc-ref inputs "curl")))
+               (("Cmd = \"curl")
+                (format #f "Cmd = \"~a/bin/curl"
+                        (assoc-ref inputs "curl")))
+               (("Cmd = \\(\"curl")
+                (format #f "Cmd = (\"~a/bin/curl"
+                        (assoc-ref inputs "curl")))
+               (("\"date\"")
+                (format #f "\"~a/bin/date\""
+                        (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"dd")
+                (format #f "Cmd(\"~a/bin/dd"
+                        (assoc-ref inputs "coreutils")))
+               (("\"dd ")
+                (format #f "\"~a/bin/dd "
+                        (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"df")
+                (format #f "Cmd(\"~a/bin/df"
+                        (assoc-ref inputs "coreutils")))
+               #;(("Cmd\\(\"dkms")
+               (format #f "Cmd(\"~a/bin/dkms"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"dmesg")
+                (format #f "Cmd(\"~a/bin/dmesg"
+                        (assoc-ref inputs "util-linux")))
+               (("Cmd\\(\"dmidecode")
+                (format #f "Cmd(\"~a/sbin/dmidecode"
+                        (assoc-ref inputs "dmidecode")))
+               (("Cmd\\(\"dpkg")
+                (format #f "Cmd(\"~a/bin/dpkg"
+                        (assoc-ref inputs "dpkg")))
+               #;(("echo")
+               (format #f "~a/bin/echo"
+               (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"edid-decode")
+                (format #f "Cmd(\"~a/bin/edid-decode"
+                        (assoc-ref inputs "edid-decode")))
+               (("Cmd\\(\"efibootmgr")
+                (format #f "Cmd(\"~a/sbin/efibootmgr"
+                        (assoc-ref inputs "efibootmgr")))
+               (("Cmd\\(\"efivar")
+                (format #f "Cmd(\"~a/bin/efivar"
+                        (assoc-ref inputs "efivar")))
+               #;(("Cmd\\(\"eopkg")
+               (format #f "Cmd(\"~a/bin/eopkg"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"ethtool")
+                (format #f "Cmd(\"~a/sbin/ethtool"
+                        (assoc-ref inputs "ethtool")))
+               (("Cmd\\(\".*ethtool")
+                (format #f "Cmd(\"~a/sbin/ethtool"
+                        (assoc-ref inputs "ethtool")))
+               (("Cmd\\(\"fdisk")
+                (format #f "Cmd(\"~a/sbin/fdisk"
+                        (assoc-ref inputs "util-linux")))
+               #;(("Cmd\\(\"fglrxinfo")
+               (format #f "Cmd(\"~a/bin/fglrxinfo"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"find")
+                (format #f "Cmd(\"~a/bin/find"
+                        (assoc-ref inputs "findutils")))
+               (("Cmd\\(\"findmnt")
+                (format #f "Cmd(\"~a/bin/findmnt"
+                        (assoc-ref inputs "util-linux")))
+               (("Cmd = \"findmnt")
+                (format #f "Cmd = \"~a/bin/findmnt"
+                        (assoc-ref inputs "util-linux")))
+               (("Cmd\\(\"glxgears")
+                (format #f "Cmd(\"~a/bin/glxgears"
+                        (assoc-ref inputs "mesa-utils")))
+               (("Cmd\\(\"glxinfo")
+                (format #f "Cmd(\"~a/bin/glxinfo"
+                        (assoc-ref inputs "mesa-utils")))
+               #;(("grep")
+               (format #f "~a/bin/grep"
+               (assoc-ref inputs "grep")))
+               (("`head")
+                (format #f "`~a/bin/head"
+                        (assoc-ref inputs "coreutils")))
+               #;(("Cmd\\(\"hciconfig")
+               (format #f "Cmd(\"~a/bin/hciconfig"
+               (assoc-ref inputs "foobar")))
+               #;(("Cmd\\(\"hcitool")
+               (format #f "Cmd(\"~a/bin/hcitool"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"hddtemp")
+                (format #f "Cmd(\"~a/sbin/hddtemp"
+                        (assoc-ref inputs "hddtemp")))
+               (("Cmd\\(\"hdparm")
+                (format #f "Cmd(\"~a/sbin/hdparm"
+                        (assoc-ref inputs "hdparm")))
+               (("Cmd = \"hdparm")
+                (format #f "Cmd = \"~a/bin/hdparm"
+                        (assoc-ref inputs "hdparm")))
+               #;(("Cmd\\(\"hp-probe")
+               (format #f "Cmd(\"~a/bin/hp-probe"
+               (assoc-ref inputs "foobar")))
+               #;(("Cmd\\(\"hwinfo")
+               (format #f "Cmd(\"~a/bin/hwinfo"
+               (assoc-ref inputs "hwinfo")))
+               #;(("Cmd = \"hwinfo")
+               (format #f "Cmd = \"~a/bin/hwinfo"
+               (assoc-ref inputs "hwinfo")))
+               (("Cmd\\(\"i2cdetect")
+                (format #f "Cmd(\"~a/sbin/i2cdetect"
+                        (assoc-ref inputs "i2c-tools")))
+               (("Cmd\\(\"iasl")
+                (format #f "Cmd(\"~a/bin/iasl"
+                        (assoc-ref inputs "acpica")))
+               (("Cmd\\(\"ifconfig")
+                (format #f "Cmd(\"~a/bin/ifconfig"
+                        (assoc-ref inputs "net-tools")))
+               (("Cmd\\(\"inxi")
+                (format #f "Cmd(\"~a/bin/inxi"
+                        (assoc-ref inputs "inxi")))
+               (("Cmd\\(\"iostat")
+                (format #f "Cmd(\"~a/bin/iostat"
+                        (assoc-ref inputs "sysstat")))
+               (("Cmd\\(\"ip")
+                (format #f "Cmd(\"~a/sbin/ip"
+                        (assoc-ref inputs "iproute2")))
+               (("Cmd\\(\".*ip")
+                (format #f "Cmd(\"~a/sbin/ip"
+                        (assoc-ref inputs "iproute2")))
+               (("Cmd\\(\"iw")
+                (format #f "Cmd(\"~a/sbin/iw"
+                        (assoc-ref inputs "iw")))
+               (("Cmd\\(\".*iw")
+                (format #f "Cmd(\"~a/sbin/iw"
+                        (assoc-ref inputs "iw")))
+               #;(("Cmd\\(\"iwconfig")
+               (format #f "Cmd(\"~a/bin/iwconfig"
+               (assoc-ref inputs "foobar")))
+               #;(("join")
+               (format #f "~a/bin/join"
+               (assoc-ref inputs "coreutils")))
+               #;(("Cmd\\(\"journalctl")
+               (format #f "Cmd(\"~a/bin/journalctl"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"ls")
+                (format #f "Cmd(\"~a/bin/ls"
+                        (assoc-ref inputs "coreutils")))
+               #;(("Cmd\\(\"lsb_release")
+               (format #f "Cmd(\"~a/bin/lsb_release"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"lsblk")
+                (format #f "Cmd(\"~a/bin/lsblk"
+                        (assoc-ref inputs "util-linux")))
+               (("Cmd = \"lsblk")
+                (format #f "Cmd = \"~a/bin/lsblk"
+                        (assoc-ref inputs "util-linux")))
+               (("Cmd\\(\"lscpu")
+                (format #f "Cmd(\"~a/bin/lscpu"
+                        (assoc-ref inputs "util-linux")))
+               #;(("Cmd\\(\"lsinitrd")
+               (format #f "Cmd(\"~a/bin/lsinitrd"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"lsmod")
+                (format #f "Cmd(\"~a/bin/lsmod"
+                        (assoc-ref inputs "module-init-tools")))
+               (("Cmd\\(\"lspci")
+                (format #f "Cmd(\"~a/sbin/lspci"
+                        (assoc-ref inputs "pciutils")))
+               #;(("Cmd\\(\"lspnp")
+               (format #f "Cmd(\"~a/bin/lspnp"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"lsusb")
+                (format #f "Cmd(\"~a/bin/lsusb"
+                        (assoc-ref inputs "usbutils")))
+               (("Cmd\\(\"mcelog")
+                (format #f "Cmd(\"~a/sbin/mcelog"
+                        (assoc-ref inputs "mcelog")))
+               (("Cmd\\(\"md5sum")
+                (format #f "Cmd(\"~a/bin/md5sum"
+                        (assoc-ref inputs "coreutils")))
+               #;(("Cmd\\(\"megactl")
+               (format #f "Cmd(\"~a/bin/megactl"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"memtester")
+                (format #f "Cmd(\"~a/bin/memtester"
+                        (assoc-ref inputs "memtester")))
+               (("Cmd\\(\"mmcli")
+                (format #f "Cmd(\"~a/bin/mmcli"
+                        (assoc-ref inputs "modem-manager")))
+               (("Cmd\\(\"modinfo")
+                (format #f "Cmd(\"~a/sbin/modinfo"
+                        (assoc-ref inputs "module-init-tools")))
+               #;(("Cmd\\(\"monitor-get-edid")
+               (format #f "Cmd(\"~a/bin/monitor-get-edid"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"mount")
+                (format #f "Cmd(\"~a/bin/mount"
+                        (assoc-ref inputs "util-linux")))
+               #;(("Cmd\\(\"nm-tool")
+               (format #f "Cmd(\"~a/bin/nm-tool"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"nmcli")
+                (format #f "Cmd(\"~a/bin/nmcli"
+                        (assoc-ref inputs "network-manager")))
+               (("Cmd\\(\"numactl")
+                (format #f "Cmd(\"~a/bin/numactl"
+                        (assoc-ref inputs "numactl")))
+               (("Cmd\\(\"nvme")
+                (format #f "Cmd(\"~a/sbin/nvme"
+                        (assoc-ref inputs "nvme-cli")))
+               (("Cmd\\(\"opensc-tool")
+                (format #f "Cmd(\"~a/bin/opensc-tool"
+                        (assoc-ref inputs "opensc")))
+               #;(("Cmd\\(\"optirun")
+               (format #f "Cmd(\"~a/bin/optirun"
+               (assoc-ref inputs "foobar")))
+               #;(("Cmd\\(\"pacman")
+               (format #f "Cmd(\"~a/bin/pacman"
+               (assoc-ref inputs "foobar")))
+               #;(("Cmd\\(\"pstree")
+               (format #f "Cmd(\"~a/bin/pstree"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"rfkill")
+                (format #f "Cmd(\"~a/sbin/rfkill"
+                        (assoc-ref inputs "util-linux")))
+               (("Cmd\\(\"route")
+                (format #f "Cmd(\"~a/bin/route"
+                        (assoc-ref inputs "net-tools")))
+               (("Cmd\\(\"rpm")
+                (format #f "Cmd(\"~a/bin/rpm"
+                        (assoc-ref inputs "rpm")))
+               (("Cmd\\(\"sane-find-scanner")
+                (format #f "Cmd(\"~a/bin/sane-find-scanner"
+                        (assoc-ref inputs "sane-backends")))
+               (("Cmd\\(\"scanimage")
+                (format #f "Cmd(\"~a/bin/scanimage"
+                        (assoc-ref inputs "sane-backends")))
+               (("Cmd\\(\"sensors")
+                (format #f "Cmd(\"~a/bin/sensors"
+                        (assoc-ref inputs "lm-sensors")))
+               #;(("sha512sum")
+               (format #f "~a/bin/sha512sum"
+               (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"slabtop")
+                (format #f "Cmd(\"~a/bin/slabtop"
+                        (assoc-ref inputs "procps")))
+               #;(("sleep")
+               (format #f "~a/bin/sleep"
+               (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"smartctl")
+                (format #f "Cmd(\"~a/sbin/smartctl"
+                        (assoc-ref inputs "smartmontools")))
+               (("Cmd = \"smartctl")
+                (format #f "Cmd = \"~a/bin/smartctl"
+                        (assoc-ref inputs "smartmontools")))
+               #;(("sort")
+               (format #f "~a/bin/sort"
+               (assoc-ref inputs "coreutils")))
+               #;(("split")
+               (format #f "~a/bin/split"
+               (assoc-ref inputs "coreutils")))
+               #;(("= stat")
+               (format #f "= ~a/bin/stat"
+               (assoc-ref inputs "coreutils")))
+               #;(("Cmd\\(\"superiotool")
+               (format #f "Cmd(\"~a/bin/superiotool"
+               (assoc-ref inputs "foobar")))
+               #;(("Cmd\\(\"swupd")
+               (format #f "Cmd(\"~a/bin/swupd"
+               (assoc-ref inputs "foobar")))
+               #;(("Cmd\\(\"systemctl")
+               (format #f "Cmd(\"~a/bin/systemctl"
+               (assoc-ref inputs "foobar")))
+               #;(("Cmd\\(\"systemd-analyze")
+               (format #f "Cmd(\"~a/bin/systemd-analyze"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"top")
+                (format #f "Cmd(\"~a/bin/top"
+                        (assoc-ref inputs "procps")))
+               (("Cmd\\(\"udevadm")
+                (format #f "Cmd(\"~a/bin/udevadm"
+                        (assoc-ref inputs "eudev")))
+               (("Cmd\\(\"uname")
+                (format #f "Cmd(\"~a/bin/uname"
+                        (assoc-ref inputs "coreutils")))
+               #;(("unlink")
+               (format #f "~a/bin/unlink"
+               (assoc-ref inputs "coreutils")))
+               #;(("Cmd\\(\"update-alternatives")
+               (format #f "Cmd(\"~a/bin/update-alternatives"
+               (assoc-ref inputs "foobar")))
+               (("Cmd\\(\"upower")
+                (format #f "Cmd(\"~a/bin/upower"
+                        (assoc-ref inputs "upower")))
+               (("Cmd\\(\"uptime")
+                (format #f "Cmd(\"~a/bin/uptime"
+                        (assoc-ref inputs "coreutils")))
+               (("Cmd\\(\"usb-devices")
+                (format #f "Cmd(\"~a/bin/usb-devices"
+                        (assoc-ref inputs "usbutils")))
+               (("Cmd\\(\"vainfo")
+                (format #f "Cmd(\"~a/bin/vainfo"
+                        (assoc-ref inputs "libva-utils")))
+               (("Cmd\\(\"vdpauinfo")
+                (format #f "Cmd(\"~a/bin/vdpauinfo"
+                        (assoc-ref inputs "vdpauinfo")))
+               (("Cmd\\(\"vulkaninfo")
+                (format #f "Cmd(\"~a/bin/vulkaninfo"
+                        (assoc-ref inputs "vulkan-tools")))
+               (("Cmd\\(\"xdpyinfo")
+                (format #f "Cmd(\"~a/bin/xdpyinfo"
+                        (assoc-ref inputs "xdpyinfo")))
+               (("Cmd\\(\"xinput")
+                (format #f "Cmd(\"~a/bin/xinput"
+                        (assoc-ref inputs "xinput")))
+               (("Cmd\\(\"xrandr")
+                (format #f "Cmd(\"~a/bin/xrandr"
+                        (assoc-ref inputs "xrandr")))
+               (("Cmd\\(\"xvinfo")
+                (format #f "Cmd(\"~a/bin/xvinfo"
+                        (assoc-ref inputs "xvinfo"))))))
+         (delete 'configure)
+         (add-after 'install 'wrap-programs
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin-dir (string-append out "/bin/"))
+                    (perl-lib (getenv "PERL5LIB")))
+               (for-each
+                (cut wrap-program <>
+                     `("PERL5LIB" ":" prefix (,perl-lib)))
+                (find-files bin-dir))))))))
+    (inputs
+     `(("acpi" ,acpi)
+       ("acpica" ,acpica)
+       ("alsa-utils" ,alsa-utils)
+       ("avahi" ,avahi)
+       ("bash-minimal" ,bash-minimal)
+       ("coreutils" ,coreutils)
+       ("cpuid" ,cpuid)
+       ("cpupower" ,cpupower)
+       ("curl" ,curl)
+       ("dmidecode" ,dmidecode)
+       ("dpkg" ,dpkg)
+       ("edid-decode" ,edid-decode)
+       ("efibootmgr" ,efibootmgr)
+       ("efivar" ,efivar)
+       ("eudev" ,eudev)
+       ("findutils" ,findutils)
+       ("grep" ,grep)
+       ("hddtemp" ,hddtemp)
+       ("hdparm" ,hdparm)
+       ("hplip" ,hplip-minimal)
+       ("i2c-tools" ,i2c-tools)
+       ("inxi" ,inxi)
+       ("iproute" ,iproute)
+       ("libva-utils" ,libva-utils)
+       ("lm-sensors" ,lm-sensors)
+       ("mcelog" ,mcelog)
+       ("memtester" ,memtester)
+       ("mesa-utils" ,mesa-utils)
+       ("modem-manager" ,modem-manager)
+       ("module-init-tools" ,module-init-tools)
+       ("net-tools" ,net-tools)
+       ("network-manager" ,network-manager)
+       ("numactl" ,numactl)
+       ("nvme-cli" ,nvme-cli)
+       ("opensc" ,opensc)
+       ("pciutils" ,pciutils)
+       ("perl-data-dumper" ,perl-data-dumper)
+       ("perl-digest-sha" ,perl-digest-sha)
+       ("perl-libwww" ,perl-libwww)
+       ;; ("pnputils" ,pnputils)
+       ("procps" ,procps)
+       ("rpm" ,rpm)
+       ("sane-backends" ,sane-backends)
+       ("smartmontools" ,smartmontools)
+       ("sysstat" ,sysstat)
+       ("upower" ,upower)
+       ("usbutils" ,usbutils)
+       ("util-linux" ,util-linux)
+       ("vdpauinfo" ,vdpauinfo)
+       ("vulkan-tools" ,vulkan-tools)
+       ("xdpyinfo" ,xdpyinfo)
+       ("xinput" ,xinput)
+       ("xrandr" ,xrandr)
+       ("xvinfo" ,xvinfo)))
+    (propagated-inputs
+     `(("hwinfo" ,hwinfo)))
+    (home-page "https://linux-hardware.org")
+    (synopsis "Hardware Probe")
+    (description "Hardware Probe is a tool to probe for hardware, check its
+operability and find drivers.")
+    (license license:lgpl2.1+)))
+
 (define-public hwinfo
   (package
     (name "hwinfo")
-- 
2.34.0