From fd2047c642ba44d5c300149f63f68c34da773c04 Mon Sep 17 00:00:00 2001 From: Julian Stecklina Date: Sat, 25 Jul 2020 16:46:08 +0200 Subject: [PATCH] nixos/lib/make-ext4-fs: fix after mkfs.ext4 refactoring In 9ac1ab10c963a86457c2c9b1edf31542ff3737cd this library function was refactored to use mkfs.ext4 instead of cptofs. There are two problems: If populateImageCommands would create no files (which is fine), a cp invocation would fail due to missing source arguments. Another problem is that mkfs.ext4 relies on fakeroot to have sane uid/gids in the generated filesystem image. This currently doesn't work for cross compiling. --- nixos/lib/make-ext4-fs.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix index 74a6c134e64..33dbc8f5ec4 100644 --- a/nixos/lib/make-ext4-fs.nix +++ b/nixos/lib/make-ext4-fs.nix @@ -46,7 +46,10 @@ pkgs.stdenv.mkDerivation { ( GLOBIGNORE=".:.." shopt -u dotglob - cp -a --reflink=auto ./files/* -t ./rootImage/ + + for f in ./files/*; do + cp -a --reflink=auto -t ./rootImage/ "$f" + done ) # Also include a manifest of the closures in a format suitable for nix-store --load-db