rodeonix: The better Nix Shell banner

rodeonix: The better Nix Shell

3 devlogs
1h 55m 52s

rodeonix tries to make it possible to easily run unpatched binaries on NixOS.
It uses the Kernel’s OverlayFS to mount Nix Packages at /usr. This allows programs to find their expected libraries just like on any other FHS-Compliant Distro.

Demo Repository

Loading README...

pauljako

NixOS’s custom version of glibc appears to behave weirdly. Unfortunately, this means that we still need a normally compiled version of glibc and the ldconfig command. I am also using a very hacky way to generate the ld.so.cache file but it is the best way I came up with.
I additionally added a Nix Package, so you can (more or less) try it out right now using the command nix run git+https://git.pauljako.de/rodeo/rnx!

Attachment
0
pauljako

After using the go syscall Package to mount the Nix Store Paths in a new Namespace, I noticed that some packages do not even exist yet. After some man-paging, I found out about nix-store --realise, which can download these Store Paths. However, it seems to be only working with binary-caches from the nixpkgs. I still have to figure out that. But Hey! I have my first Prototype in Go!

Attachment
0
pauljako

I already had a really bad version of this written in Python some Months ago. I know decided to rewrite it in Go and focus more on Nix Packages, where as previously the focus was on using my own compiled packages.
After creating the basic Go structure, I began on using nix eval --json to parse a Flake. It would give me a JSON representation of the flake with the packages already having their /nix/store paths.

Attachment
0