nixpkgs/pkgs/tools/misc/tlp/default.nix

70 lines
2.2 KiB
Nix
Raw Normal View History

2016-11-23 16:07:29 +01:00
{ stdenv, lib, fetchFromGitHub, perl, makeWrapper, file, systemd, iw, rfkill
, hdparm, ethtool, inetutils , kmod, pciutils, smartmontools
, x86_energy_perf_policy, gawk, gnugrep, coreutils, utillinux
, enableRDW ? false, networkmanager
}:
2015-01-02 16:11:29 +01:00
let
paths = lib.makeBinPath
([ iw rfkill hdparm ethtool inetutils systemd kmod pciutils smartmontools
2016-11-23 16:07:29 +01:00
x86_energy_perf_policy gawk gnugrep coreutils utillinux
]
++ lib.optional enableRDW networkmanager
);
in stdenv.mkDerivation rec {
2015-01-02 16:11:29 +01:00
name = "tlp-${version}";
2016-11-23 16:07:29 +01:00
version = "0.9";
2015-01-02 16:11:29 +01:00
src = fetchFromGitHub {
owner = "linrunner";
repo = "TLP";
rev = "${version}";
2016-11-23 16:07:29 +01:00
sha256 = "1gwi0h9klhdvqfqvmn297l1vyhj4g9dqvf50lcbswry02mvnd2vn";
2015-01-02 16:11:29 +01:00
};
makeFlags = [ "DESTDIR=$(out)"
2016-11-23 16:07:29 +01:00
"TLP_SBIN=$(out)/bin"
"TLP_BIN=$(out)/bin"
"TLP_TLIB=$(out)/share/tlp-pm"
"TLP_PLIB=$(out)/lib/pm-utils"
"TLP_ULIB=$(out)/lib/udev"
"TLP_NMDSP=$(out)/etc/NetworkManager/dispatcher.d"
"TLP_SHCPL=$(out)/share/bash-completion/completions"
"TLP_MAN=$(out)/share/man"
2015-01-02 16:11:29 +01:00
"TLP_NO_INIT=1"
"TLP_NO_PMUTILS=1"
];
2016-11-23 16:07:29 +01:00
nativeBuildInputs = [ makeWrapper file ];
2015-01-02 16:11:29 +01:00
buildInputs = [ perl ];
2016-11-23 16:07:29 +01:00
installTargets = [ "install-tlp" "install-man" ] ++ stdenv.lib.optional enableRDW "install-rdw";
2015-01-02 16:11:29 +01:00
postInstall = ''
2016-11-23 16:07:29 +01:00
cp -r $out/$out/* $out
rm -rf $out/$(echo "$NIX_STORE" | cut -d "/" -f2)
for i in $out/bin/* $out/lib/udev/tlp-* ${lib.optionalString enableRDW "$out/etc/NetworkManager/dispatcher.d/*"}; do
if file "$i" | grep -q Perl; then
# Perl script; use wrapProgram
wrapProgram "$i" \
--prefix PATH : "${paths}"
else
# Bash script
sed -i '2iexport PATH=${paths}:$PATH' "$i"
fi
2015-01-02 16:11:29 +01:00
done
'';
meta = with stdenv.lib; {
description = "Advanced Power Management for Linux";
homepage = "http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html";
platforms = platforms.linux;
maintainers = with maintainers; [ abbradar ];
license = licenses.gpl2Plus;
};
}