From c36c048c0ea3dfa3a88f42ede4ce30b95c9dc2af Mon Sep 17 00:00:00 2001 From: Austin Seipp Date: Thu, 21 Feb 2019 08:10:45 -0600 Subject: [PATCH] dockerTools: mark store-path-to-layer.sh as executable bcf54ce5bbc8c325cfd2b6bcc5cec7661ef49183 introduced a treewide change to use ${stdenv.shell} where-ever possible. However, this broke a script used by dockerTools, store-path-to-layer.sh, as it did not preserve the +x mode bit. This meant the file got put into the store as mode 0444, resulting in a build-time error later on that looked like: xargs: /nix/store/jixivxhh3c8sncp9xlkc4ls3y5f2mmxh-store-path-to-layer.sh: Permission denied However, in a twist of fate, bcf54ce5bbc8c325cfd2b6bcc5cec7661ef49183 not only introduced this regression but, in this particular instance, didn't even fix the original bug: the store-path-to-layer.sh script *still* uses /bin/sh as its shebang line, rather than an absolute path to stdenv. (Fixing this can be done in a separate commit.) Signed-off-by: Austin Seipp --- pkgs/build-support/docker/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/build-support/docker/default.nix b/pkgs/build-support/docker/default.nix index ef17a3f4e58..4b20c562460 100644 --- a/pkgs/build-support/docker/default.nix +++ b/pkgs/build-support/docker/default.nix @@ -283,6 +283,7 @@ rec { let storePathToLayer = substituteAll { inherit (stdenv) shell; + isExecutable = true; src = ./store-path-to-layer.sh; }; in