summary refs log tree commit diff
path: root/pkgs/build-support/build-fhs-userenv/default.nix
diff options
context:
space:
mode:
authorYegor Timoshenko <yegortimoshenko@gmail.com>2017-12-28 05:49:35 +0000
committerYegor Timoshenko <yegortimoshenko@gmail.com>2017-12-30 22:28:38 +0000
commit4b1cf5afb8d217ae265950e6632d7329b5faae06 (patch)
treedbf7b04e979b48ae407bb7fe370a0cffb5b8a981 /pkgs/build-support/build-fhs-userenv/default.nix
parent25b35f4ffbe27072ddfdecc7f28cb49bfc6832b0 (diff)
downloadnixpkgs-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.nix11
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}