depot/third_party/nixpkgs/pkgs/tools/system/hw-probe/default.nix
Default email b450903751 Project import generated by Copybara.
GitOrigin-RevId: 74a1793c659d09d7cf738005308b1f86c90cb59b
2022-09-09 16:08:57 +02:00

140 lines
2.8 KiB
Nix

{ config
, stdenv
, lib
, fetchFromGitHub
, makeWrapper
, makePerlPath
# Perl libraries
, LWP
, LWPProtocolHttps
, HTTPMessage
, HTTPDate
, URI
, TryTiny
# Required
, coreutils
, curl # Preferred to using the Perl HTTP libs - according to hw-probe.
, dmidecode
, edid-decode
, gnugrep
, gnutar
, hwinfo
, iproute2
, kmod
, pciutils
, perl
, smartmontools
, usbutils
, xz
# Conditionally recommended
, systemdSupport ? stdenv.isLinux
, systemd
# Recommended
, withRecommended ? true # Install recommended tools
, mcelog
, hdparm
, acpica-tools
, drm_info
, mesa-demos
, memtester
, sysstat
, cpuid
, util-linuxMinimal
, xinput
, libva-utils
, inxi
, vulkan-utils
, i2c-tools
, opensc
# Suggested
, withSuggested ? false # Install (most) suggested tools
, hplip
, sane-backends
# , pnputils # pnputils (lspnp) isn't currently in nixpkgs and appears to be poorly maintained
}:
stdenv.mkDerivation rec {
pname = "hw-probe";
version = "1.6.4";
src = fetchFromGitHub {
owner = "linuxhw";
repo = pname;
rev = version;
sha256 = "sha256:028wnhrbn10lfxwmcpzdbz67ygldimv7z1k1bm64ggclykvg5aim";
};
makeFlags = [ "prefix=$(out)" ];
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ perl ];
makeWrapperArgs =
let
requiredPrograms = [
hwinfo
dmidecode
smartmontools
pciutils
usbutils
edid-decode
iproute2 # (ip)
coreutils # (sort)
gnugrep
curl
gnutar
xz
kmod # (lsmod)
];
recommendedPrograms = [
mcelog
hdparm
acpica-tools
drm_info
mesa-demos
memtester
sysstat # (iostat)
cpuid
util-linuxMinimal # (rfkill)
xinput
libva-utils # (vainfo)
inxi
vulkan-utils
i2c-tools
opensc
];
conditionallyRecommendedPrograms = lib.optional systemdSupport systemd; # (systemd-analyze)
suggestedPrograms = [
hplip # (hp-probe)
sane-backends # (sane-find-scanner)
# pnputils # (lspnp)
];
programs =
requiredPrograms
++ conditionallyRecommendedPrograms
++ lib.optionals withRecommended recommendedPrograms
++ lib.optionals withSuggested suggestedPrograms;
in [
"--set" "PERL5LIB" "${makePerlPath [ LWP LWPProtocolHttps HTTPMessage URI HTTPDate TryTiny ]}"
"--prefix" "PATH" ":" "${lib.makeBinPath programs}"
];
postInstall = ''
wrapProgram $out/bin/hw-probe \
$makeWrapperArgs
'';
meta = with lib; {
description = "Probe for hardware, check operability and find drivers";
homepage = "https://github.com/linuxhw/hw-probe";
platforms = with platforms; (linux ++ freebsd ++ netbsd ++ openbsd);
license = with licenses; [ lgpl21 bsdOriginal ];
maintainers = with maintainers; [ rehno-lindeque ];
};
}