0172558e82
This patch fixes #16614 and #16741. The first issue was caused by the fact that both `/share` and `/share/fish/vendor_completions.d` end in the `pathsToLink`. The `pkgs/build-support/buildenv/builder.pl` creates `/share`, then links `/share/fish` under `/share` and then tries to create the directory `/share/fish/vendor_completions.d` and fails because it already exists. The simplest way to reproduce the issue is to build the next Nix expression: ```nix let pkgs = import <nixpkgs> { }; in pkgs.buildEnv { name = "buildenv-issue"; paths = [ pkgs.fish pkgs.vim ]; pathsToLink = [ "/share" "/share/fish/vendor_completions.d" ]; } ``` The second issue is more critical and was caused by the fact findFiles doesn't recurse deep enough. It stops at first unique directory for the package (e.g., "/share" or even "/") and later the scripts decides it shouldn't link it as it doesn't match pathsToLink (e.g., "/share/fish"), so the result is empty. The test: ```nix let pkgs = import <nixpkgs> { }; in pkgs.buildEnv { name = "buildenv-issue"; paths = [ pkgs.fish pkgs.vim ]; pathsToLink = [ "/share/fish/functions" ]; } ``` or ```nix let pkgs = import <nixpkgs> { }; in pkgs.buildEnv { name = "buildenv-issue"; paths = [ pkgs.vim ]; pathsToLink = [ "/share" ]; } ``` |
||
---|---|---|
.. | ||
agda | ||
build-dotnet-package | ||
build-fhs-userenv | ||
buildenv | ||
builder-defs | ||
cc-wrapper | ||
docker | ||
dotnetbuildhelpers | ||
dotnetenv | ||
emacs | ||
fetchadc | ||
fetchbower | ||
fetchbzr | ||
fetchcvs | ||
fetchdarcs | ||
fetchegg | ||
fetchfile | ||
fetchgit | ||
fetchgitlocal | ||
fetchgitrevision | ||
fetchhg | ||
fetchmtn | ||
fetchnuget | ||
fetchpatch | ||
fetchsvn | ||
fetchsvnrevision | ||
fetchsvnssh | ||
fetchurl | ||
fetchzip | ||
gcc-cross-wrapper | ||
gcc-wrapper-old | ||
grsecurity | ||
icon-conv-tools | ||
kdewrapper | ||
kernel | ||
libredirect | ||
make-desktopitem | ||
make-startupitem | ||
make-symlinks | ||
mono-dll-fixer | ||
nuke-references | ||
ocaml | ||
release | ||
rust | ||
setup-hooks | ||
src-only | ||
substitute | ||
substitute-files | ||
templaterpm | ||
upstream-updater | ||
vm | ||
vsenv | ||
build-maven.nix | ||
build-pecl.nix | ||
replace-dependency.nix | ||
source-from-head-fun.nix | ||
trivial-builders.nix |