guix-mirrors/doc
Ludovic Courtès ae18b3d9e6
daemon: Allow running as non-root with unprivileged user namespaces.
Many thanks to Reepca Russelstein for their review and guidance on these
changes.

* nix/libstore/build.cc (guestUID, guestGID): New variables.
(DerivationGoal)[readiness]: New field.
(initializeUserNamespace): New function.
(DerivationGoal::runChild): When ‘readiness.readSide’ is positive, read
from it.
(DerivationGoal::startBuilder): Call ‘chown’
only when ‘buildUser.enabled()’ is true.  Pass CLONE_NEWUSER to ‘clone’
when ‘buildUser.enabled()’ is false or not running as root.  Retry
‘clone’ without CLONE_NEWUSER upon EPERM.
(DerivationGoal::registerOutputs): Make ‘actualPath’ writable before
‘rename’.
(DerivationGoal::deleteTmpDir): Catch ‘SysError’ around ‘_chown’ call.
* nix/libstore/local-store.cc (LocalStore::createUser): Do nothing if
‘dirs’ already exists.  Warn instead of failing when failing to chown
‘dir’.
* guix/substitutes.scm (%narinfo-cache-directory): Check for
‘_NIX_OPTIONS’ rather than getuid() == 0 to determine the cache
location.
* doc/guix.texi (Build Environment Setup): Reorganize a bit.  Add
section headings “Daemon Running as Root” and “The Isolated Build
Environment”.  Add “Daemon Running Without Privileges” subsection.
Remove paragraph about ‘--disable-chroot’.
(Invoking guix-daemon): Warn against ‘--disable-chroot’ and explain why.
* tests/derivations.scm ("builder is outside the store"): New test.

Reviewed-by: Reepca Russelstein <reepca@russelstein.xyz>
2025-03-26 17:57:43 +01:00
..
images doc: Use "dejavu sans" instead of "Helvetica" or "sans" in dot images. 2024-04-14 10:29:07 +02:00
build.scm nls: Update translations. 2025-02-28 17:05:36 +01:00
contributing.texi doc: Fix some misspellings. 2025-02-19 11:28:40 +02:00
environment-gdb.scm doc: Update GDB "guix shell" example to use autoconf-2.69 2023-07-18 00:41:15 +02:00
fdl-1.3.texi doc: Use HTTPS for external links. 2020-03-10 20:26:52 +01:00
guix-cookbook.texi doc: cookbook: Custom NAT-based libvirt networks. 2025-03-23 13:13:36 +09:00
guix.texi daemon: Allow running as non-root with unprivileged user namespaces. 2025-03-26 17:57:43 +01:00
he-config-bare-bones.scm home: Define ‘%base-home-services’. 2025-01-16 22:32:11 +01:00
htmlxref.cnf nls: Update translations. 2025-02-28 17:05:36 +01:00
local.mk nls: Update translations. 2025-02-28 17:05:36 +01:00
package-hello.json import: Do not return package name with json importer. 2024-02-23 19:02:55 +01:00
package-hello.scm