I agree that we shouldn’t just do
root, just because.
Everything we have from a plugin perspective can build without root except for two very particular components:
- the current
- the official kernel snaps (kernel snaps built with the kernel plugin do not require root)
And this is due to the fact that these set of snaps wrap around livebuild to actually build the snaps. I don’t think this is a hard requirement to build a proper
base as, heck, even Android can be fully built without root.
This issue is raised by quite the opposite side effect, many build systems don’t like to be run as
npm) but launchpad always has and we wanted to reflect that in our containers.
We are actively working on doing user level builds by default and the roadblock is building these snaps that use livebuild underneath.
I bring this up specifically, because these are wrapped under the
make plugin and just call
sudo internally so to go down this path we need a way to disable
sudo for that step in the lifecycle unless explicitly declared (I can think of ways to do this but it could be worked around for the solution I have in mind).