Hi Emery,
I'd like some advice on the Nix port. Much of the user inteface side of Nix is Perl scripts, is Perl known not to work with Noux at the moment, or has it just not been ported?
the port is just missing. I cannot say how difficult it will be to port Perl as a Noux package. I have never tried it. Maybe, it would be worth to just give it a try and see if we are lucky? :-)
If Perl not available, I could just remove the Perl stuff the noux-pkg build process. The Perl stuff is just frontends, and we really don't need them to create packages, maybe if we were managing a persistant Noux setup, but that would be best done with stacked archives managed outside Noux.
Exactly!
I would think the other possibility is to come up with a native Nix that creates its own Noux environment for build processes.
I think this goes in the right direction. Ideally, for each Nix operation a dedicated Noux instance should be started that is tailored to the steps that Nix is performing.
Basically the requirements of Nix are traversing a readonly filesystem to evaulate expressions, a temporary enviroment and filesystem for building outputs, and a filesystem for storing outputs. There is also a database for storing dependency information but I think that can be overlooked for now.
It sounds like those requirements are covered by Noux.
A hopefully easier question is assuming I get something working in Noux right now, what is the best way to write out files generated during a Genode run?
Noux will need to access a persistent file system. So you need a block driver (like USB storage, AHCI, or ATAPI) and a file system (rump_fs). When working with Qemu, you may boot from an ISO image (as done by default) and add an additional disk image as Qemu argument. Of course, you will first need to format the image with an ext2 file system.
Cheers Norman