Hi Filip
a different view maybe. I've come up with something similar, a wrapper script that becomes an interface for both bootstrap and bmake. I have never felt I need any of its functionality integrated into the bootstrap process. Currently my script does (or will do) the following:
- clone from our pkgsrc git repo
- bootstrap for any given prefix/compiler/abi combination
- create a new ZFS file system for the prefix (zfs rollback will breat the crap out of any unclean deinstall and takes a split second)
- replace bmake and handle particular package or package set builds, also handling the RUBY_VERSION_DEFAULT kind of conditions
- prune distfiles and package directories
- rsync packages to our package repository server
So far it assumes an existing package repo to at least get the compiler, but on our OS, there is always a package repo to use out of the box. The OS won't provide a compiler, so he'd start with something like Studio otherwise.
I tend to look at bootstrap/bmake as a poor man's API of a kind, and my script as a front-end. I actually prefer bootstrap to remain as uncomplicated as possible, and it's maybe a little too smart for me already, as it is (but that's maybe just because it doesn't know our OS flavor yet)...
You are probably right, a wrapper/front-end is the best solution. As I said, some people in the community just wanted to challenge the functionality, and don't see the need for more wrappers.
Can see we got very similar ideas for our wrappers, zfs support is also on my list :-)
I so do not envy you the need to care about IPS. I've just ripped it out of our OS and everybody sleeps better. ;)
Well, I really don't need IPS, that's one of the reasons why I started ipp. But I want to share as much as possibly to the Illumos/Openindiana community. Openindiana is also our big "sponsor", and want to give back.
Cheers,
Mads Worsøe Duun