mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-23 21:57:52 +03:00
Merge pull request #132694 from arcnmx/binfmt-interp-sandbox
nixos/binfmt: add interpreter path to sandbox
This commit is contained in:
commit
5f5b7824cb
@ -1,6 +1,6 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
let
|
||||
inherit (lib) mkOption types optionalString stringAfter;
|
||||
inherit (lib) mkOption mkDefault types optionalString stringAfter;
|
||||
|
||||
cfg = config.boot.binfmt;
|
||||
|
||||
@ -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 {
|
||||
inherit preserveArgvZero;
|
||||
in ({
|
||||
preserveArgvZero = mkDefault preserveArgvZero;
|
||||
|
||||
interpreter = interpreterReg;
|
||||
wrapInterpreterInShell = !preserveArgvZero;
|
||||
interpreterSandboxPath = dirOf (dirOf interpreterReg);
|
||||
} // (magics.${system} or (throw "Cannot create binfmt registration for system ${system}"));
|
||||
interpreter = mkDefault interpreterReg;
|
||||
wrapInterpreterInShell = mkDefault (!config.preserveArgvZero);
|
||||
interpreterSandboxPath = mkDefault (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";
|
||||
|
Loading…
Reference in New Issue
Block a user