From 886c92332c8c9ecf62de9ab12789a6c4ee5207fc Mon Sep 17 00:00:00 2001 From: Alex Biehl Date: Sat, 23 May 2020 22:31:34 +0200 Subject: [PATCH] dockerTools: Properly add /nix/ and /nix/store/ first to layer.tar In https://github.com/NixOS/nixpkgs/pull/58431 the authors ensured that the resulting layer.tar would always list /nix/ /nix/store/ first to fully comply to the tar spec. Various refactorings later it is only ensured to create /nix/ but NOT /nix/store anymore. Instead tar transformed them to /nix/nix and /nix/nix/store. --- pkgs/build-support/docker/store-path-to-layer.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/build-support/docker/store-path-to-layer.sh b/pkgs/build-support/docker/store-path-to-layer.sh index d834716e4b2..7437da51cc4 100755 --- a/pkgs/build-support/docker/store-path-to-layer.sh +++ b/pkgs/build-support/docker/store-path-to-layer.sh @@ -30,12 +30,13 @@ mkdir -p nix/store # store path to the absolute store path. tarhash=$( basename -a "$@" | - tar -cp nix \ - -C /nix/store --verbatim-files-from --files-from - \ + tar --create --preserve-permissions --absolute-names nix \ + --directory /nix/store --verbatim-files-from --files-from - \ --hard-dereference --sort=name \ --mtime="@$SOURCE_DATE_EPOCH" \ --owner=0 --group=0 \ - --transform 's,^nix(/|$),/nix/,' \ + --transform 's,^nix$,/\0,' \ + --transform 's,^nix/store$,/\0,' \ --transform 's,^[^/],/nix/store/\0,rS' | tee "$layerPath/layer.tar" | tarsum