Patch nix instead of using an override unit
This commit is contained in:
parent
1fc6891dc6
commit
77b41a90e2
@ -11,9 +11,17 @@
|
||||
# One solution is to make the nix-daemon.socket depend only on the socket
|
||||
# patch (which is already covered by ConditionPathIsReadWrite =
|
||||
# /nix/var/nix/daemon-socket), instead on the /nix/store.
|
||||
systemd.sockets.nix-daemon.unitConfig = {
|
||||
RequiresMountsFor = "/nix/var/nix/daemon-socket";
|
||||
};
|
||||
#
|
||||
# Using systemd.sockets.nix-daemon.unitConfig.RequiresMountsFor =
|
||||
# "/nix/var/nix/daemon-socket" doesn't work, as the the mount options get
|
||||
# added by systemd when the override config is merged with the one that Nix
|
||||
# provides:
|
||||
#
|
||||
# owl2% sudo systemctl show nix-daemon.socket | grep RequiresMountsFor
|
||||
# RequiresMountsFor=/nix/store /nix/var/nix/daemon-socket/socket /nix/var/nix/daemon-socket
|
||||
#
|
||||
# To fix this, the Nix package is patched to only depend on /nix/var instead.
|
||||
# See ../../pkgs/overlay.nix for details.
|
||||
|
||||
# Mount the hut nix store via NFS in read-only mode.
|
||||
fileSystems."/mnt/hut-nix-store" = {
|
||||
|
11
pkgs/nix-socket.patch
Normal file
11
pkgs/nix-socket.patch
Normal file
@ -0,0 +1,11 @@
|
||||
--- a/misc/systemd/nix-daemon.socket.in 1970-01-01 01:00:01.000000000 +0100
|
||||
+++ b/misc/systemd/nix-daemon.socket.in 2023-09-18 17:53:32.351760208 +0200
|
||||
@@ -1,7 +1,7 @@
|
||||
[Unit]
|
||||
Description=Nix Daemon Socket
|
||||
Before=multi-user.target
|
||||
-RequiresMountsFor=@storedir@
|
||||
+RequiresMountsFor=@localstatedir@
|
||||
ConditionPathIsReadWrite=@localstatedir@/nix/daemon-socket
|
||||
|
||||
[Socket]
|
@ -32,4 +32,8 @@ final: prev:
|
||||
lua = prev.lua5_4;
|
||||
fmt = prev.fmt_8;
|
||||
}) ceph ceph-client;
|
||||
|
||||
nix = prev.nix.overrideAttrs (old: {
|
||||
patches = old.patches ++ [ ./nix-socket.patch ];
|
||||
});
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user