My take on this is that in the future it will be possible to construct Noux environments such that autotools can be run in Noux to produce a native Noux build (and maybe cross-compiling), but the practical thing to do will be to try to and fool existing autotools tests, and only inside Noux.
I do think that Nix can trick autotools into building on Noux, but first Noux needs to be faster and I want to find out how far merging file systems can go before hitting the point of diminishing returns.
On Wed, Feb 24, 2016 at 09:49:01PM +0100, Tomasz Gajewski wrote:
What I think I understand about current Genode build system it consists of two layers:
a package manager like layer that maintains dependencies between programs/libraries
build rules for building concrete programs/libraries
Both are implemented using make. I believe (although I haven't verified it) that work of Emery to port nix to Genode is an attempt to replace the former layer with nix.
Yes, I want to create an alternate layer for dependencies and locating the required makefiles. When the package output specification is ready then both build systems should produce cross-compatible packages.
I think that using guix and guile could be a better approach due to using general purpose language (although not liked too much :-) ) and Genode specific requirements, which could be harder to achieve in a language dedicated specifically to build packages. But I have to check it myself first. If I'm able to have a proof of concept and know more about Emery's work I'll try to make some conclusions share them with you here.
You might be right, sometimes I think that Nix is a bit heavyweight for simply generating text files like it often does, but I don't know much about Guile.
As far as porting Guix, it might look like a good idea to try and make it work on top of Noux, but my experience with Nix was that to fix every required unix-ism will take more time and in the end you will loose some important potential features. It may be possible to reuse my Nix libraries for Guix, but I made some changes that break compabality with upstream Nix for the sake of security and content addressing, which you might not agree with.
The build controller component I have actually contains no 'Nix' code or libraries, so if Guix can produce the some low-level build recipe files, that would deduplicate a lot of work.
Cheers, Emery