From f83a83f964a9894a837788d0253888187cfa4778 Mon Sep 17 00:00:00 2001 From: Matthew Harm Bekkema Date: Tue, 3 Dec 2019 20:50:42 +1100 Subject: [PATCH] upower: load config from /etc In the process of making UPower.conf customizable (#73968), it came up that UPower doesn't load its config from /etc by default. The UPower derivation is modified to make it load its config from /etc at runtime, but still install the default config to its nix store path as before. The UPower module is modified to put the config in /etc. --- nixos/modules/services/hardware/upower.nix | 29 ++++++++++------------ pkgs/os-specific/linux/upower/default.nix | 2 ++ 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/nixos/modules/services/hardware/upower.nix b/nixos/modules/services/hardware/upower.nix index 5713bfb15fd3..449810b53150 100644 --- a/nixos/modules/services/hardware/upower.nix +++ b/nixos/modules/services/hardware/upower.nix @@ -220,22 +220,19 @@ in systemd.packages = [ cfg.package ]; - systemd.services.upower.environment.UPOWER_CONF_FILE_NAME = pkgs.writeTextFile { - name = "UPower.conf"; - text = generators.toINI {} { - UPower = { - EnableWattsUpPro = cfg.enableWattsUpPro; - NoPollBatteries = cfg.noPollBatteries; - IgnoreLid = cfg.ignoreLid; - UsePercentageForPolicy = cfg.usePercentageForPolicy; - PercentageLow = cfg.percentageLow; - PercentageCritical = cfg.percentageCritical; - PercentageAction = cfg.percentageAction; - TimeLow = cfg.timeLow; - TimeCritical = cfg.timeCritical; - TimeAction = cfg.timeAction; - CriticalPowerAction = cfg.criticalPowerAction; - }; + environment.etc."UPower/UPower.conf".text = generators.toINI {} { + UPower = { + EnableWattsUpPro = cfg.enableWattsUpPro; + NoPollBatteries = cfg.noPollBatteries; + IgnoreLid = cfg.ignoreLid; + UsePercentageForPolicy = cfg.usePercentageForPolicy; + PercentageLow = cfg.percentageLow; + PercentageCritical = cfg.percentageCritical; + PercentageAction = cfg.percentageAction; + TimeLow = cfg.timeLow; + TimeCritical = cfg.timeCritical; + TimeAction = cfg.timeAction; + CriticalPowerAction = cfg.criticalPowerAction; }; }; }; diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix index d787acae61b4..ab7f65925ee3 100644 --- a/pkgs/os-specific/linux/upower/default.nix +++ b/pkgs/os-specific/linux/upower/default.nix @@ -52,12 +52,14 @@ stdenv.mkDerivation { "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system" "--with-systemdutildir=${placeholder "out"}/lib/systemd" "--with-udevrulesdir=${placeholder "out"}/lib/udev/rules.d" + "--sysconfdir=/etc" ]; doCheck = false; # fails with "env: './linux/integration-test': No such file or directory" installFlags = [ "historydir=$(TMPDIR)/foo" + "sysconfdir=${placeholder "out"}/etc" ]; meta = with stdenv.lib; {