nixpkgs/pkgs/top-level
Nikolay Amiantov 74107a7867 buildFHSEnv: refactor and simplify, drop buildFHSChrootEnv
This takes another approach at binding FHS directory structure. We
now bind-mount all the root filesystem to directory "/host" in the target tree.
From that we symlink all the directories into the tree if they do not already
exist in FHS structure.

This probably makes `CHROOTENV_EXTRA_BINDS` unnecessary -- its main usecase was
to add bound directories from the host to the sandbox, and we not just symlink
all of them. I plan to get some feedback on its usage and maybe deprecate it.

This also drops old `buildFHSChrootEnv` infrastructure. The main problem with it
is it's very difficult to unmount a recursive-bound directory when mount is not
sandboxed. This problem is a bug even without these changes -- if
you have for example `/home/alice` mounted to somewhere, you wouldn't see
it in `buildFHSChrootEnv` now. With the new directory structure, it's
impossible to use regular bind at all. After some tackling with this I realized
that the fix would be brittle and dangerous (if you don't unmount everything
clearly and proceed to removing the temporary directory, bye-bye fs!). It also
probably doesn't worth it because I haven't heard that someone actually uses it
for a long time, and `buildFHSUserEnv` should cover most cases while being much
more maintainable and safe for the end-user.
2016-06-07 04:06:35 +03:00
..
aliases.nix man: use man-old on non-Linux platforms 2016-05-31 08:20:31 -04:00
all-packages.nix buildFHSEnv: refactor and simplify, drop buildFHSChrootEnv 2016-06-07 04:06:35 +03:00
default.nix Fix comments typos. 2016-03-24 19:40:12 +00:00
dotnet-packages.nix dotnetPackages.MonoNat: 1.2.21 -> 1.2.24 2016-05-08 17:21:55 -03:00
emacs-packages.nix emacs: hide wrapper dependencies 2016-05-12 22:43:30 +02:00
go-packages.nix Updating goPackages go-fuse/mtpfs + libmtp to latest 2016-06-04 15:38:49 +03:00
guile-2-test.nix Replace references to all-packages.nix, by references to the top-level of nixpkgs repository. 2016-03-13 18:25:52 +00:00
haskell-packages.nix Add LTS Haskell 6.1. 2016-06-02 09:30:38 +02:00
lua-packages.nix neovim: 0.1.3 -> 0.1.4 2016-06-04 17:58:01 +02:00
make-tarball.nix tarball: No need to depend on nix development headers 2016-05-02 01:06:45 +03:00
metrics.nix nixpkgs-metrics: Suppress build products 2016-03-24 18:06:46 +01:00
node-packages-generated.nix Fix lots of fetchgit hashes (fallout from #15469) 2016-06-03 17:17:08 +03:00
node-packages.json Add nodePackages.tern 2016-04-08 15:24:04 +02:00
node-packages.nix bower2nix: 2.1.0 -> 3.0.1 2016-03-28 08:23:06 +01:00
perl-packages.nix Add hydra package and its NixOS module. 2016-06-01 21:55:31 +01:00
php-packages.nix Fix lots of fetchgit hashes (fallout from #15469) 2016-06-03 17:17:08 +03:00
platforms.nix platforms.nix: Use bcm2835_defconfig for RPi kernelHeadersBaseConfig 2015-11-16 02:37:13 +02:00
pure-packages.nix Fairly complete set of packages for Pure 2015-05-26 17:51:07 +10:00
python-packages.nix Merge pull request #16009 from k0ral/restview 2016-06-05 19:04:27 +02:00
release-cross.nix Disable system_tarball_pc and fix eval 2015-07-22 12:27:15 +02:00
release-lib.nix Replace references to all-packages.nix, by references to the top-level of nixpkgs repository. 2016-03-13 18:25:52 +00:00
release-python.nix Replace references to all-packages.nix, by references to the top-level of nixpkgs repository. 2016-03-13 18:25:52 +00:00
release-small.nix module_init_tools: Remove 2016-04-22 10:44:55 +03:00
release.nix try using nox from nixpkgs (#15857) 2016-05-31 12:59:24 +01:00
rust-packages.nix cargo: 0.9.0 -> 0.10.0, rustRegistry: 2016-05-12 -> 2016-05-28. 2016-05-28 15:05:11 +02:00
stdenv.nix Move stdenvDefault into its own file. 2016-03-20 16:11:51 +00:00