6d4aeb4377
GitOrigin-RevId: 0f213d0fee84280d8c3a97f7469b988d6fe5fcdf
64 lines
1.8 KiB
Nix
64 lines
1.8 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, bash
|
|
, bison
|
|
, flex
|
|
, which
|
|
, perl
|
|
, sensord ? false
|
|
, rrdtool ? null
|
|
}:
|
|
|
|
assert sensord -> rrdtool != null;
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "lm-sensors";
|
|
version = "3.6.0";
|
|
dashedVersion = lib.replaceStrings [ "." ] [ "-" ] version;
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "lm-sensors";
|
|
repo = "lm-sensors";
|
|
rev = "V${dashedVersion}";
|
|
hash = "sha256-9lfHCcODlS7sZMjQhK0yQcCBEoGyZOChx/oM0CU37sY=";
|
|
};
|
|
|
|
# Upstream build system have knob to enable and disable building of static
|
|
# library, shared library is built unconditionally.
|
|
postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
|
|
sed -i 'lib/Module.mk' -e '/LIBTARGETS :=/,+1d; /-m 755/ d'
|
|
substituteInPlace prog/sensors/Module.mk --replace 'lib/$(LIBSHBASENAME)' ""
|
|
'';
|
|
|
|
nativeBuildInputs = [ bison flex which ];
|
|
# bash is required for correctly replacing the shebangs in all tools for cross-compilation.
|
|
buildInputs = [ bash perl ]
|
|
++ lib.optional sensord rrdtool;
|
|
|
|
makeFlags = [
|
|
"PREFIX=${placeholder "out"}"
|
|
"CC=${stdenv.cc.targetPrefix}cc"
|
|
"AR=${stdenv.cc.targetPrefix}ar"
|
|
] ++ lib.optional sensord "PROG_EXTRA=sensord";
|
|
|
|
installFlags = [
|
|
"ETCDIR=${placeholder "out"}/etc"
|
|
];
|
|
|
|
# Making regexp to patch-out installing of .so symlinks from Makefile is
|
|
# complicated, it is easier to remove them post-install.
|
|
postInstall = lib.optionalString stdenv.hostPlatform.isStatic ''
|
|
rm $out/lib/*.so*
|
|
'';
|
|
|
|
meta = with lib; {
|
|
homepage = "https://hwmon.wiki.kernel.org/lm_sensors";
|
|
changelog = "https://raw.githubusercontent.com/lm-sensors/lm-sensors/V${dashedVersion}/CHANGES";
|
|
description = "Tools for reading hardware sensors";
|
|
license = with licenses; [ lgpl21Plus gpl2Plus ];
|
|
maintainers = with maintainers; [ pmy ];
|
|
platforms = platforms.linux;
|
|
mainProgram = "sensors";
|
|
};
|
|
}
|