On 09 Nov 2015 22:45, Brian Dolbec wrote: > On Tue, 6 Oct 2015 16:32:53 -0400 Mike Frysinger wrote: > > This helps isolate the catalyst builds from the rest of the system > > and allows us to build as non-root user in more cases. This might > > not work everywhere, but it's a start (snapshot generation works). > > --- > > catalyst/main.py | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/catalyst/main.py b/catalyst/main.py > > index 65e1431..f984653 100644 > > --- a/catalyst/main.py > > +++ b/catalyst/main.py > > @@ -10,6 +10,8 @@ import argparse > > import os > > import sys > > > > +from snakeoil.process import namespaces > > + > > __selfpath__ = os.path.abspath(os.path.dirname(__file__)) > > > > from DeComp.definitions import (COMPRESS_DEFINITIONS, > > DECOMPRESS_DEFINITIONS, @@ -336,6 +338,13 @@ def main(): > > if "target" not in addlargs: > > raise CatalystError("Required value \"target\" not > > specified.") > > + # Start off by creating unique namespaces to run in. > > + namespaces.simple_unshare( > > + mount=True, uts=True, ipc=True, pid=True, net=False, > > user=True, > > + hostname='catalyst') > > + > > + # We should be root now, either a real root, or in a userns > > as root. > > + # If we aren't, then we've failed, and need to abort. > > if os.getuid() != 0: > > # catalyst cannot be run as a normal user due to > > chroots, mounts, etc print "!!! catalyst: This script requires root > > privileges to operate" > > I was hoping to get a release out before merging much more, but, I > doubt this will affect stability. it does ;). i haven't fully debugged it yet, but i think the use of pid namespaces messes up signal handling. i'll follow up when i'm happy with its state. -mike