Skip to content

Releases: nix-community/nix-user-chroot

2.1.1

06 Apr 13:02

Choose a tag to compare

What's Changed

  • tests: resolve profile user via getpwuid by @Mic92 in #133

Full Changelog: 2.1.0...2.1.1

2.1.0

27 Mar 09:47

Choose a tag to compare

Highlights

Nested user namespaces work again. Tools like bwrap, flatpak, and nixpkgs buildFHSEnv wrappers (e.g. davinci-resolve, steam) can now run inside nix-user-chroot. This was broken since v1.1.0 when we switched from pivot_root to chroot — the kernel refuses to create new user namespaces from a chrooted process. Reverting to pivot_root fixes #57.

Other changes

  • README refreshed: dropped the stale "unmaintained" notice and updated the user-namespace setup instructions.
  • Dev environment: added .envrc for direnv users, fixed the flake devShell, and added a flake.lock.
  • Release automation: fixed a race in the release script and added changelog filtering.

Full Changelog: 2.0.0...2.1.0

2.0.0

27 Mar 07:47

Choose a tag to compare

First release in five years. The headline feature is a config file for customizing what the chroot looks like inside.

What's new

Configure the chroot with path-config.toml

Drop a TOML file at <nixpath>/etc/nix-user-chroot/path-config.toml to tweak the mount layout without recompiling. Three knobs, all optional:

[excludes]
# Keep host paths out. Fixes things like nscd breaking nix's DNS resolver.
paths = ["/var/run/nscd/socket"]

[profile]
# Expose files from your nix profile at standard locations.
# Useful when tools insist on #!/usr/bin/env or similar.
"bin/env" = "/usr/bin/env"

[absolute]
# Bind any host file into the chroot. Handy for a custom /etc/passwd
# on machines where your $HOME has a tiny disk quota.
"/home/me/chroot-passwd" = "/etc/passwd"

See the README for the full reference.

Better diagnostics

Set RUST_LOG=info (or debug) to see exactly what's being mounted where. Previously you got silence or a panic.

Upgrading from 1.x

No changes required — the config file is optional and existing invocations work unchanged.

Thanks

@rrbutani for the config feature, @Eveeifyeve for the flake devshell and rebase, @will-ca for README fixes.

Full Changelog: 1.2.2...2.0.0

minor...

02 May 16:18
d2de5e4

Choose a tag to compare

  • bump dependencies
  • make mounts private.

1.2.1

12 Mar 07:54
1.2.1
1716df4

Choose a tag to compare

Update dependencies

1.2.0

12 Mar 07:45
1.2.0
73af5a6

Choose a tag to compare

Support for mounting opengl-drivers (thanks to @r-burns)

1.1.1

09 Jan 20:42
1.1.1
4dd5f09

Choose a tag to compare

  • smaller release binaries

1.1.0

09 Jan 20:01
bbd45f9

Choose a tag to compare

  • add arm and aarch64
  • use chroot instead pivot_root

1.0.3

22 Mar 09:12
1.0.3
820a773

Choose a tag to compare

bump dependencies

Bind mount files/mirror symlinks

04 May 23:44
75dd87f

Choose a tag to compare

Before we only bind mount directories into the chroot.
This in particular broke on Redhat-derivatives where /lib is a symlink to /usr/lib.