nut: patch nutshutdown to set a default for NUT_CONFPATH

The way we build the package results in the binaries being hardcoded to
look for $out/etc/ups.conf instead of /etc/nut/ups.conf (where the
module places the file). This results in `upsdrvctl` failing to dispatch
shutdown commands (since it cannot find the configuration) and prevents
a primary monitor from cutting power to the appropriate UPS.

Note that we cannot use `--sysconfdir=/etc/nut` as a configure flag
since that results in the install phase trying to install directly into
/etc/nut which predictably fails in the sandbox.
This commit is contained in:
Ivan Petkov 2023-12-10 10:57:50 -08:00
parent 610a958b03
commit 4a219c8aeb
No known key found for this signature in database
GPG Key ID: BB6F9EFC065832B6
2 changed files with 17 additions and 0 deletions

View File

@ -30,6 +30,13 @@ stdenv.mkDerivation rec {
};
patches = [
# This patch injects a default value for NUT_CONFPATH into the nutshutdown script
# since the way we build the package results in the binaries being hardcoded to check
# $out/etc/ups.conf instead of /etc/nut/ups.conf (where the module places the file).
# We also cannot use `--sysconfdir=/etc/nut` since that results in the install phase
# trying to install directly into /etc/nut which predictably fails
./nutshutdown-conf-default.patch
(substituteAll {
src = ./hardcode-paths.patch;
avahi = "${avahi}/lib";

View File

@ -0,0 +1,10 @@
diff --git a/scripts/systemd/nutshutdown.in b/scripts/systemd/nutshutdown.in
index ace2485b3..9dee869bb 100755
--- a/scripts/systemd/nutshutdown.in
+++ b/scripts/systemd/nutshutdown.in
@@ -1,4 +1,5 @@
#!/bin/sh
+export NUT_CONFPATH="${NUT_CONFPATH-/etc/nut}"
# This script requires both nut-server (drivers)
# and nut-client (upsmon) to be present locally