diff options
| author | Simon Bruder <simon@sbruder.de> | 2021-05-16 16:42:44 +0200 |
|---|---|---|
| committer | Simon Bruder <simon@sbruder.de> | 2021-05-16 16:55:51 +0200 |
| commit | 9b3a2e66b141733fe7cb5372f64d30b66445cccd (patch) | |
| tree | 701343b557a949f263010aeefd0129ffb32ce421 | |
| parent | Merge pull request #123184 from lovesegfault/corectrl-1.1.3 (diff) | |
| download | nixpkgs-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.nix | 5 |
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"; |
