mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 13:10:33 +02:00
image: Use unshare to map root user for btrfs
The current version of `mkfs.btrfs` has a regression when combined with `fakeroot` where it does not detect the faked root uid/gid of files when building the filesystem. This produces partition images with `/` owned by the guixbuild user when it should be owned by root. Using `unshare` rather than `fakeroot` resolves this by doing the uid mapping at the kernel level rather than overloading the `stat` function. An equivalent issue was [reported and patched in NixOS](https://github.com/NixOS/nixpkgs/pull/434122) * gnu/build/image.scm (system-disk-image): Import `util-linux` instead of `fakeroot`. * gnu/system/image.scm (make-btrfs-image): Use `unshare --map-root-user` Change-Id: Id4eeaf510f3ec5f4a23b4d700a73e2cf46da40b1 Signed-off-by: Ludovic Courtès <ludo@gnu.org> Merges: #5536
This commit is contained in:
committed by
Ludovic Courtès
parent
35929d5afd
commit
62c28bc6d8
@@ -83,7 +83,8 @@ turn doesn't take any constant overhead into account, force a 1-MiB minimum."
|
||||
(label (partition-label partition))
|
||||
(uuid (partition-uuid partition)))
|
||||
(apply invoke
|
||||
`("fakeroot" "mkfs.btrfs" "-r" ,root
|
||||
`("unshare" "--map-root-user" "mkfs.btrfs"
|
||||
"-r" ,root
|
||||
"-L" ,label
|
||||
,@(if uuid
|
||||
`("-U" ,(uuid->string uuid))
|
||||
|
||||
Reference in New Issue
Block a user