diff options
author | Yegor Timoshenko <yegortimoshenko@gmail.com> | 2017-12-28 05:49:35 +0000 |
---|---|---|
committer | Yegor Timoshenko <yegortimoshenko@gmail.com> | 2017-12-30 22:28:38 +0000 |
commit | 4b1cf5afb8d217ae265950e6632d7329b5faae06 (patch) | |
tree | dbf7b04e979b48ae407bb7fe370a0cffb5b8a981 /pkgs/build-support/build-fhs-userenv/default.nix | |
parent | 25b35f4ffbe27072ddfdecc7f28cb49bfc6832b0 (diff) | |
download | nixpkgs-4b1cf5afb8d217ae265950e6632d7329b5faae06.tar nixpkgs-4b1cf5afb8d217ae265950e6632d7329b5faae06.tar.gz nixpkgs-4b1cf5afb8d217ae265950e6632d7329b5faae06.tar.bz2 nixpkgs-4b1cf5afb8d217ae265950e6632d7329b5faae06.tar.lz nixpkgs-4b1cf5afb8d217ae265950e6632d7329b5faae06.tar.xz nixpkgs-4b1cf5afb8d217ae265950e6632d7329b5faae06.tar.zst nixpkgs-4b1cf5afb8d217ae265950e6632d7329b5faae06.zip |
chrootenv: rewrite on top of GLib
Changes: * doesn't handle root user separately * doesn't chdir("/") which makes using it seamless * only bind mounts, doesn't symlink (i.e. files) Incidentally, fixes #33106. It's about two times shorter than the previous version, and much easier to read/follow through. It uses GLib quite heavily, along with RAII (available in GCC/Clang).
Diffstat (limited to 'pkgs/build-support/build-fhs-userenv/default.nix')
-rw-r--r-- | pkgs/build-support/build-fhs-userenv/default.nix | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/pkgs/build-support/build-fhs-userenv/default.nix b/pkgs/build-support/build-fhs-userenv/default.nix index 5f3ec4dc8ea..219530a67bd 100644 --- a/pkgs/build-support/build-fhs-userenv/default.nix +++ b/pkgs/build-support/build-fhs-userenv/default.nix @@ -1,4 +1,4 @@ -{ callPackage, runCommand, lib, writeScript, stdenv, coreutils, ruby }: +{ callPackage, runCommand, lib, writeScript, stdenv, coreutils }: let buildFHSEnv = callPackage ./env.nix { }; in @@ -7,14 +7,7 @@ args@{ name, runScript ? "bash", extraInstallCommands ? "", meta ? {}, passthru let env = buildFHSEnv (removeAttrs args [ "runScript" "extraInstallCommands" "meta" "passthru" ]); - chrootenv = stdenv.mkDerivation { - name = "chrootenv"; - - unpackPhase = "cp ${./chrootenv.c} chrootenv.c"; - installPhase = "cp chrootenv $out"; - - makeFlags = [ "chrootenv" ]; - }; + chrootenv = callPackage ./chrootenv {}; init = run: writeScript "${name}-init" '' #! ${stdenv.shell} |