diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2016-11-26 10:25:20 +0100 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2016-11-26 12:32:15 +0100 |
commit | 97853c07d73be7f2717bebe3d2ff038b72aeb1e9 (patch) | |
tree | d8d67f1d703c75bf9769e657647839dc01fa9780 /pkgs/build-support | |
parent | 7a88f314cb1ebea9cb05ba8bdb3866c8d4d6a6b8 (diff) |
stdenv moveToOutput: move even broken symlinks
I believe this reduces surprises and is actually simpler semantically.
This is important e.g. for relative symlinks when moving both source
and target - now the order of moving won't matter.
Fixes #20723 (a particular instance of the surprise).
Diffstat (limited to 'pkgs/build-support')
-rw-r--r-- | pkgs/build-support/setup-hooks/multiple-outputs.sh | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pkgs/build-support/setup-hooks/multiple-outputs.sh b/pkgs/build-support/setup-hooks/multiple-outputs.sh index ae491e8a7ef1..eafc770a8e17 100644 --- a/pkgs/build-support/setup-hooks/multiple-outputs.sh +++ b/pkgs/build-support/setup-hooks/multiple-outputs.sh @@ -98,7 +98,8 @@ moveToOutput() { if [ "${!output}" = "$dstOut" ]; then continue; fi local srcPath for srcPath in "${!output}"/$patt; do - if [ ! -e "$srcPath" ]; then continue; fi + # apply to existing files/dirs, *including* broken symlinks + if [ ! -e "$srcPath" ] && [ ! -L "$srcPath" ]; then continue; fi if [ "$dstOut" = REMOVE ]; then echo "Removing $srcPath" |