1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 21:01:16 +02:00

copyPathToStore(): Preserve symlinks

E.g. in a derivation attribute `foo = ./bar`, if ./bar is a symlink,
we should copy the symlink to the store, not its target. This restores
the behaviour of Nix <= 2.19.
This commit is contained in:
Eelco Dolstra 2025-02-11 20:36:28 +01:00
parent 92bf150b1c
commit 26b87e78b5
4 changed files with 19 additions and 2 deletions

View file

@ -0,0 +1,16 @@
#!/usr/bin/env bash
source common.sh
# Check that when we have a derivation attribute that refers to a
# symlink, we copy the symlink, not its target.
# shellcheck disable=SC2016
nix build --impure --no-link --expr '
with import ./config.nix;
mkDerivation {
name = "simple";
builder = builtins.toFile "builder.sh" "[[ -L \"$symlink\" ]]; mkdir $out";
symlink = ./lang/symlink-resolution/foo/overlays;
}
'