summary refs log tree commit diff
path: root/pkgs/tools/misc/tlp
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-01-02 18:11:29 +0300
committerNikolay Amiantov <ab@fmap.me>2015-01-24 02:56:16 +0300
commit0c9c74de19847f5524ccf589a76e6a943e7e3bef (patch)
tree1158d99f5cc1e1451dfddc9c7f059c4c24b0b0ce /pkgs/tools/misc/tlp
parentca9d370f5604d76da19d10a4b669c851fc39d889 (diff)
downloadnixpkgs-0c9c74de19847f5524ccf589a76e6a943e7e3bef.tar
nixpkgs-0c9c74de19847f5524ccf589a76e6a943e7e3bef.tar.gz
nixpkgs-0c9c74de19847f5524ccf589a76e6a943e7e3bef.tar.bz2
nixpkgs-0c9c74de19847f5524ccf589a76e6a943e7e3bef.tar.lz
nixpkgs-0c9c74de19847f5524ccf589a76e6a943e7e3bef.tar.xz
nixpkgs-0c9c74de19847f5524ccf589a76e6a943e7e3bef.tar.zst
nixpkgs-0c9c74de19847f5524ccf589a76e6a943e7e3bef.zip
tlp: add package
Diffstat (limited to 'pkgs/tools/misc/tlp')
-rw-r--r--pkgs/tools/misc/tlp/default.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/pkgs/tools/misc/tlp/default.nix b/pkgs/tools/misc/tlp/default.nix
new file mode 100644
index 00000000000..d251c7cdd94
--- /dev/null
+++ b/pkgs/tools/misc/tlp/default.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, makeWrapper, perl, systemd, iw, rfkill, hdparm, ethtool, inetutils, kmod
+, enableRDW ? true, networkmanager }:
+
+let version = "0.6";
+in stdenv.mkDerivation {
+  inherit enableRDW;
+
+  name = "tlp-${version}";
+
+  src = fetchFromGitHub {
+        owner = "linrunner";
+        repo = "TLP";
+        rev = "${version}";
+        sha256 = "1kfm6x5w9vica2i13vfckza4fad4wv8ivr40fws3qa6d5jbyx0fy";
+      };
+
+  makeFlags = [ "DESTDIR=$(out)"
+                "TLP_LIBDIR=/lib"
+                "TLP_SBIN=/bin"
+                "TLP_BIN=/bin"
+                "TLP_NO_INIT=1"
+                "TLP_NO_PMUTILS=1"
+              ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ perl ];
+
+  paths = with stdenv.lib;
+          concatMapStringsSep ":" (x: "${x}/bin")
+          ([ iw rfkill hdparm ethtool inetutils systemd kmod ]
+           ++ optional enableRDW networkmanager
+          );
+
+  installTargets = [ "install-tlp" ] ++ stdenv.lib.optional enableRDW "install-rdw";
+
+  postInstall = ''
+    for i in $out/bin/* $out/lib/udev/tlp-*; do
+      sed -i "s,/usr/lib/,$out/lib/,g" "$i"
+      wrapProgram "$i" \
+        --prefix PATH : "$paths"
+    done
+    if [ "$enableRDW" = "1" ]; then
+      for i in $out/etc/NetworkManager/dispatcher.d/*; do
+        sed -i "s,/usr/lib/,$out/lib/,g" "$i"
+        wrapProgram "$i" \
+          --prefix PATH : "$paths"
+      done
+    fi
+
+    for i in $out/lib/udev/rules.d/*; do
+      sed -i "s,RUN+=\",\\0$out,g; s,/usr/sbin,/bin,g" "$i"
+    done
+  '';
+
+  passthru = { inherit enableRDW; };
+
+  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;
+  };
+}