diff --git a/nixos/modules/virtualisation/libvirtd.nix b/nixos/modules/virtualisation/libvirtd.nix index 7bca79260362..d7313a0bcc57 100644 --- a/nixos/modules/virtualisation/libvirtd.nix +++ b/nixos/modules/virtualisation/libvirtd.nix @@ -530,7 +530,10 @@ in "nix-helpers" "nix-ovmf" ]; - StateDirectory = subDirs [ "dnsmasq" ]; + StateDirectory = subDirs [ + "dnsmasq" + "secrets" + ]; }; }; diff --git a/pkgs/by-name/li/libvirt/package.nix b/pkgs/by-name/li/libvirt/package.nix index 123407423908..e096428d5d19 100644 --- a/pkgs/by-name/li/libvirt/package.nix +++ b/pkgs/by-name/li/libvirt/package.nix @@ -33,11 +33,13 @@ python3, readline, rpcsvc-proto, + runtimeShell, stdenv, replaceVars, xhtml1, json_c, writeScript, + writeShellApplication, nixosTests, # Linux @@ -180,7 +182,23 @@ stdenv.mkDerivation rec { sed -i '/libxlxml2domconfigtest/d' tests/meson.build substituteInPlace src/libxl/libxl_capabilities.h \ --replace-fail /usr/lib/xen ${xen}/libexec/xen - ''; + '' + + lib.optionalString isLinux ( + let + script = writeShellApplication { + name = "virt-secret-init-encryption-sh"; + runtimeInputs = [ + coreutils + systemd + ]; + text = ''exec ${runtimeShell} "$@"''; + }; + in + '' + substituteInPlace src/secret/virt-secret-init-encryption.service.in \ + --replace-fail /usr/bin/sh ${lib.getExe script} + '' + ); strictDeps = true;