On 7/26/2012 11:26 AM, Rich Freeman wrote:
I've been messing around with namespaces and some of what systemd has
been doing with them, and I have an idea for a portage feature.
But before doing a brain dump of ideas, how useful would it be to have
a FEATURE for portage to do a limited-visibility build? That is, the
build would be run in an environment where the root filesystem appears
to contain everything in a DEPEND (including @system currently) and
nothing else? It might be useful both in development/testing, and
also in production use (not sure how performance would work in the
real world - I was able in a script to get it to build an enviornment
in a few seconds for a few packages).
In practice I think it's going to be very hard to make this work in a
platform-independent way; however in principle this is a ridiculously
sexy idea that has crossed my mind more than once.
The challenge is that it requires either
o Building very large sandboxes on a per-package basis
or
o Python-level access to unionfs/aufs-style COW features.
Imagine the tree of dependencies which would need to be thrown together
for, i.e.: kmail or firefox! This makes the former approach seem damn
nearly infeasible. The latter approach holds more promise, I think, but
represents a pretty big development effort.
Still.... very sexy idea, if a python-fs-layering API could be coded up.
One thing to consider: even if it does work, continuing to support the
"old" way without fancy COW features is going to be required if portage
is still going to support Gentoo/Alt in all of its flavors (either that,
or unionfs/aufs features would need to be coded up for all those
platforms that lack them).
-gmt