tlp: use sed patching instead of makeWrapper

Fixes #15631

+19 -18
+19 -18
pkgs/tools/misc/tlp/default.nix
··· 1 - { stdenv, lib, fetchFromGitHub, makeWrapper, perl, systemd, iw, rfkill, hdparm, ethtool, inetutils 1 + { stdenv, lib, fetchFromGitHub, perl, systemd, iw, rfkill, hdparm, ethtool, inetutils 2 2 , kmod, pciutils, smartmontools, x86_energy_perf_policy, gawk, gnugrep, coreutils 3 3 , enableRDW ? false, networkmanager 4 4 }: 5 5 6 - let version = "0.8"; 7 - in stdenv.mkDerivation { 6 + let 7 + paths = lib.makeBinPath 8 + ([ iw rfkill hdparm ethtool inetutils systemd kmod pciutils smartmontools 9 + x86_energy_perf_policy gawk gnugrep coreutils 10 + ] 11 + ++ lib.optional enableRDW networkmanager 12 + ); 13 + 14 + in stdenv.mkDerivation rec { 8 15 name = "tlp-${version}"; 16 + version = "0.8"; 9 17 10 18 src = fetchFromGitHub { 11 19 owner = "linrunner"; ··· 22 30 "TLP_NO_PMUTILS=1" 23 31 ]; 24 32 25 - nativeBuildInputs = [ makeWrapper ]; 26 - 27 33 buildInputs = [ perl ]; 28 34 29 - paths = lib.makeBinPath 30 - ([ iw rfkill hdparm ethtool inetutils systemd kmod pciutils smartmontools 31 - x86_energy_perf_policy gawk gnugrep coreutils 32 - ] 33 - ++ lib.optional enableRDW networkmanager 34 - ); 35 - 36 35 installTargets = [ "install-tlp" ] ++ stdenv.lib.optional enableRDW "install-rdw"; 37 36 38 37 postInstall = '' 39 38 for i in $out/bin/* $out/lib/udev/tlp-*; do 40 - sed -i "s,/usr/lib/,$out/lib/,g" "$i" 41 - wrapProgram "$i" \ 42 - --prefix PATH : "$paths" 39 + sed -i \ 40 + -e "s,/usr/lib/,$out/lib/,g" \ 41 + -e '2iexport PATH=${paths}:$PATH' \ 42 + "$i" 43 43 done 44 44 45 45 for i in $out/lib/udev/rules.d/*; do ··· 51 51 done 52 52 '' + lib.optionalString enableRDW '' 53 53 for i in $out/etc/NetworkManager/dispatcher.d/*; do 54 - sed -i "s,/usr/lib/,$out/lib/,g" "$i" 55 - wrapProgram "$i" \ 56 - --prefix PATH : "$paths" 54 + sed -i \ 55 + -e "s,/usr/lib/,$out/lib/,g" \ 56 + -e '2iexport PATH=${paths}:$PATH' \ 57 + "$i" 57 58 done 58 59 ''; 59 60