I need this feature and I'd like to see this patch completed. And, I'm willing to adopt it if Christopher Baines is unable to find time for it. May I? > “wait, it doesn’t feel right to pass that argument around > everywhere!”. :-) > > We already have that with #:container?, and I think that’s a bit of a > problem. Yes, it doesn't feel right to pass the #:container? and #:container-shared-network? argument around everywhere. We should do something more elegant. > The ‘linux-bare-metal’ service addresses it somewhat in a > more elegant way, I think. > > What about this: > > 1. Remove from ‘operating-system-etc-service’ all the > shared-network-related files; > > 2. Add a ‘shared-network-service’ that simply adds those file to > /etc; > > 3. Add a ‘containerized-operating-system’ that removes it. > > There’s the problem, though, that /etc/hosts can only be added from > ‘essential-services’. I tried the above, but since /etc/hosts can only be added from essential-services, we still have to pass around the #:container-shared-network? argument a lot. What if, instead of a flag to `guix system', we introduced two fields -- container? and container-shared-network? -- in the record type? This way, all the information would be bundled into the `os' argument of essential-services and other functions. We wouldn't need additional keyword arguments like #:container? and #:container-shared-network?. In the interest of backward compatibility and convenience, we could also retain the existing flags to the `guix system' script. When the script sees the flag, it could modify the operating-system record accordingly before passing it on for further processing. Thoughts?