nixos/binfmt: add interpreter path to sandbox

This commit is contained in:
arcnmx 2021-08-04 12:35:33 -07:00 committed by arcnmx
parent 2abf40d9b5
commit 873074ac60

View File

@ -281,7 +281,7 @@ in {
config = {
boot.binfmt.registrations = builtins.listToAttrs (map (system: {
name = system;
value = let
value = { config, ... }: let
interpreter = getEmulator system;
qemuArch = getQemuArch system;
@ -292,13 +292,13 @@ in {
in
if preserveArgvZero then "${wrapper}/bin/${wrapperName}"
else interpreter;
in {
in ({
inherit preserveArgvZero;
interpreter = interpreterReg;
wrapInterpreterInShell = !preserveArgvZero;
interpreterSandboxPath = dirOf (dirOf interpreterReg);
} // (magics.${system} or (throw "Cannot create binfmt registration for system ${system}"));
interpreterSandboxPath = dirOf (dirOf config.interpreter);
} // (magics.${system} or (throw "Cannot create binfmt registration for system ${system}")));
}) cfg.emulatedSystems);
nix.settings = lib.mkIf (cfg.emulatedSystems != []) {
extra-platforms = cfg.emulatedSystems ++ lib.optional pkgs.stdenv.hostPlatform.isx86_64 "i686-linux";