# Copyright (c) 2019-2020, see AUTHORS. Licensed under MIT License, see LICENSE. { config, lib, stdenv, closureInfo, prootTermux, proot, qemuAarch64Static }: let buildRootDirectory = "root-directory"; prootCommand = lib.concatStringsSep " " [ "${proot}/bin/proot" ( if config.build.arch == "aarch64" then "-q ${qemuAarch64Static}/bin/qemu-aarch64-static" else "-b /dev" ) "-r ${buildRootDirectory}" "-w /" ]; prootTermuxClosure = closureInfo { rootPaths = [ config.build.sessionInit prootTermux ]; }; in stdenv.mkDerivation { name = "nix-directory"; src = builtins.fetchurl { url = "https://nixos.org/releases/nix/nix-2.3.1/nix-2.3.1-${config.build.arch}-linux.tar.xz"; sha256 = let archShas = { aarch64 = "94a6a525bd0b2df82e14b96b5b0eaae86669b5d4671aacfc4db2db85325a81c1"; i686 = "a5d3f26d4a449616bf654286f2fe29c1c1df4f029b7e29fa3ccf8494d598bfee"; }; in "${archShas.${config.build.arch}}"; }; PROOT_NO_SECCOMP = 1; # see https://github.com/proot-me/PRoot/issues/106 buildPhase = '' mkdir --parents ${buildRootDirectory}/nix cp --recursive store ${buildRootDirectory}/nix/store CACERT=$(find ${buildRootDirectory}/nix/store -path '*-nss-cacert-*/ca-bundle.crt' | sed 's,^${buildRootDirectory},,') PKG_BASH=$(find ${buildRootDirectory}/nix/store -path '*/bin/bash' | sed 's,^${buildRootDirectory},,') PKG_BASH=''${PKG_BASH%/bin/bash} PKG_COREUTILS=$(find ${buildRootDirectory}/nix/store -path '*/bin/env' | sed 's,^${buildRootDirectory},,') PKG_COREUTILS=''${PKG_COREUTILS%/bin/env} PKG_NIX=$(find ${buildRootDirectory}/nix/store -path '*/bin/nix' | sed 's,^${buildRootDirectory},,') PKG_NIX=''${PKG_NIX%/bin/nix} for i in $(< ${prootTermuxClosure}/store-paths); do cp --archive "$i" "${buildRootDirectory}$i" done USER=${config.user.userName} ${prootCommand} "$PKG_NIX/bin/nix-store" --init USER=${config.user.userName} ${prootCommand} "$PKG_NIX/bin/nix-store" --load-db < .reginfo USER=${config.user.userName} ${prootCommand} "$PKG_NIX/bin/nix-store" --load-db < ${prootTermuxClosure}/registration cat > package-info.nix <