Experiment with using rootlesskit instead of fakeroot + native solbuild container/network code#106
Draft
Experiment with using rootlesskit instead of fakeroot + native solbuild container/network code#106
Conversation
This is intended to support solbuild being run with rootlesskit in a user namespace (instead of solbuild itself handling namespaces). Signed-off-by: Rune Morling <ermo@serpentos.com>
1e3e8c8 to
96f2a14
Compare
Signed-off-by: Rune Morling <ermo@serpentos.com>
This commit assumes the a priori existence of the solbuild user/group on the host system and assumes that this user has been set up with subuids and subgids. Building still fails, but now it fails on su authentication in the inner rootlesskit-owned chroot: ``` [BuildDep] Checking build-deps for lzip-1.24-7 [BuildDep] All build deps satisfied ✓ Now starting build package=lzip ✓ Build command="/bin/su build --command='ypkg-build -D /home/build/work /home/build/work/package.yml'" ✓ RootlesskitExec command="/bin/su solbuild -c rootlesskit chroot /var/cache/solbuild/unstable-x86_64/lzip/union /bin/su build --command='ypkg-build -D /home/build/work /home/build/work/package.yml'" su: Authentication service cannot retrieve authentication info [rootlesskit:child ] error: command [chroot /var/cache/solbuild/unstable-x86_64/lzip/union /bin/su build --command=ypkg-build -D /home/build/work /home/build/work/package.yml] exited: exit status 1 [rootlesskit:parent] error: child exited: exit status 1 ✗ Failed to build packages err="Failed to start build of package, reason: exit status 1\n" ``` ... rather than on failing on attempting to even _invoke_ rootlesskit. Signed-off-by: Rune Morling <ermo@serpentos.com>
Keeping in mind that rootlesskit runs as the host 'solbuild' user, this seems as good as anything; do note that this means that there will be host permission issues that probably need fixing. This commit is for @joebonrichie to work off of Signed-off-by: Rune Morling <ermo@serpentos.com>
e128f7e to
28a5940
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Just for the heck of it, this PoC PR disables the native solbuild namespace and networking setup, and calls ypkg via a rootlesskit chroot invocation directly instead of calling fakeroot as the 'build' user in a solbuild managed container.
This commit assumes the a priori existence of the solbuild user/group on the host system and assumes that this user has been set up with subuids and subgids.
NB: The current draft does not support networking (but rootlesskit has facilities for turning it on).
To enable networking support, the build command will need to be something like
rootlesskit --net=slirp4netns --copy-up=/etc --disable-host-loopback ypkg-build (...).This implies that the build executable command could perhaps be set from builder/manager.go (which is where networking is enabled currently).
Current status (as of e128f7e):