summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Bruder <simon@sbruder.de>2021-05-16 16:42:44 +0200
committerSimon Bruder <simon@sbruder.de>2021-05-16 16:55:51 +0200
commit9b3a2e66b141733fe7cb5372f64d30b66445cccd (patch)
tree701343b557a949f263010aeefd0129ffb32ce421
parentMerge pull request #123184 from lovesegfault/corectrl-1.1.3 (diff)
downloadnixpkgs-9b3a2e66b141733fe7cb5372f64d30b66445cccd.tar.gz
vapoursynth: improve plugin dependency resolution
Some python packages (e.g. functools32) are conditionally disabled for certain interpreter versions by having them return null instead of a derivation. `getRecursivePropagatedBuildInputs` fails if such a package is part of the dependency tree. This commit makes it only recurse into derivations and ignore everything else. This also deduplicates the final plugin list to improve startup time.
-rw-r--r--pkgs/development/libraries/vapoursynth/plugin-interface.nix5
1 files changed, 3 insertions, 2 deletions
diff --git a/pkgs/development/libraries/vapoursynth/plugin-interface.nix b/pkgs/development/libraries/vapoursynth/plugin-interface.nix
index 55b2b03c893e..95df3c97747f 100644
--- a/pkgs/development/libraries/vapoursynth/plugin-interface.nix
+++ b/pkgs/development/libraries/vapoursynth/plugin-interface.nix
@@ -8,10 +8,11 @@ plugins: let
getRecursivePropagatedBuildInputs = pkgs: lib.flatten
(map
- (pkg: pkg.propagatedBuildInputs ++ (getRecursivePropagatedBuildInputs pkg.propagatedBuildInputs))
+ (pkg: let cleanPropagatedBuildInputs = lib.filter lib.isDerivation pkg.propagatedBuildInputs;
+ in cleanPropagatedBuildInputs ++ (getRecursivePropagatedBuildInputs cleanPropagatedBuildInputs))
pkgs);
- deepPlugins = plugins ++ (getRecursivePropagatedBuildInputs plugins);
+ deepPlugins = lib.unique (plugins ++ (getRecursivePropagatedBuildInputs plugins));
pluginsEnv = buildEnv {
name = "vapoursynth-plugins-env";