diff options
author | Ludovic Courtès <ludo@gnu.org> | 2025-10-14 15:13:25 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2025-10-16 15:14:37 +0200 |
commit | a92d98a7fa7d6a7f3c11643d2f725b618d05643f (patch) | |
tree | d9595e46454ce7c6dcc391df373f85c1a032bc76 /gnu/packages/patches/python-pytorch-without-kineto.patch | |
parent | d1910384d3581dcbc564353a098089d1a52c08d6 (diff) |
daemon: Attempt to map the “kvm” group inside the build user namespace.
Fixes <https://issues.guix.gnu.org/77862>.
Previously, the ‘guix-daemon’ account (for unprivileged execution) would
typically have “kvm” as a supplementary group, but that group would not
be mapped in the build user namespace. Consequently, attempts to
‘chown’ a file to that supplementary group would fail with EINVAL.
The test suites of Coreutils, Python, and Go (among others) exercise
this chown-to-supplementary-group behavior, so they would all fail when
started by the unprivileged ‘guix-daemon’ even though they succeed when
started by ‘guix-daemon’ running as root.
Thanks to keinflue <keinflue@posteo.net> and Reepca Russelstein
<reepca@russelstein.xyz> for helping out.
* nix/libstore/build.cc (initializeUserNamespace): Add ‘extraGIDs’ and
‘haveCapSetGID’ parameters. Invoke ‘newgidmap’ when ‘extraGIDs’ is
non-empty and ‘haveCapSetGID’ is false. Honor ‘extraGIDs’ when
‘haveCapSetGID’ is true.
(maxGroups, guestKVMGID): New variables.
(kvmGIDMapping): New function.
(DerivationGoal::startBuilder): Set ‘ctx.lockMountsMapAll’ in the
CLONE_NEWUSER case. Pass ‘extraGIDs’ to ‘initializeUserNamespace’.
* tests/store.scm ("kvm GID is mapped"): New test.
Change-Id: I10ba710fc1b9ca1e3cd3122be1ec8ede5df18b40
Diffstat (limited to 'gnu/packages/patches/python-pytorch-without-kineto.patch')
0 files changed, 0 insertions, 0 deletions