diff options
author | K900 <me@0upti.me> | 2024-05-10 16:44:25 +0300 |
---|---|---|
committer | K900 <me@0upti.me> | 2024-05-10 16:50:00 +0300 |
commit | 896763c24002ba756e03bf009d4fd6bb5597027d (patch) | |
tree | de53dab43b4c9368679988d87bd6f84a0eb2c5ef /pkgs/kde | |
parent | 9064e5d4825d12ed9cb3d1d2540341cccf933ed0 (diff) | |
download | nixlib-896763c24002ba756e03bf009d4fd6bb5597027d.tar nixlib-896763c24002ba756e03bf009d4fd6bb5597027d.tar.gz nixlib-896763c24002ba756e03bf009d4fd6bb5597027d.tar.bz2 nixlib-896763c24002ba756e03bf009d4fd6bb5597027d.tar.lz nixlib-896763c24002ba756e03bf009d4fd6bb5597027d.tar.xz nixlib-896763c24002ba756e03bf009d4fd6bb5597027d.tar.zst nixlib-896763c24002ba756e03bf009d4fd6bb5597027d.zip |
kdePackages.mkKdeDerivation: add duplicate dependency detection
Diffstat (limited to 'pkgs/kde')
-rw-r--r-- | pkgs/kde/lib/mk-kde-derivation.nix | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/pkgs/kde/lib/mk-kde-derivation.nix b/pkgs/kde/lib/mk-kde-derivation.nix index 975d2e4af93a..2a983782a417 100644 --- a/pkgs/kde/lib/mk-kde-derivation.nix +++ b/pkgs/kde/lib/mk-kde-derivation.nix @@ -88,6 +88,20 @@ in # but cross is currently very broken anyway, so we can figure this out later. deps = map (dep: self.${dep}) filteredDepNames; + traceDuplicateDeps = attrName: attrValue: + let + pretty = lib.generators.toPretty {}; + duplicates = builtins.filter (dep: (builtins.elem (lib.getName dep) filteredDepNames)) attrValue; + in + if duplicates != [] + then lib.warn "Duplicate dependencies in ${attrName} of package ${pname}: ${pretty duplicates}" + else lib.id; + + traceAllDuplicateDeps = lib.flip lib.pipe [ + (traceDuplicateDeps "extraBuildInputs" extraBuildInputs) + (traceDuplicateDeps "extraPropagatedBuildInputs" extraPropagatedBuildInputs) + ]; + defaultArgs = { inherit version src; @@ -128,4 +142,4 @@ in pos = builtins.unsafeGetAttrPos "pname" args; in - stdenv.mkDerivation (defaultArgs // cleanArgs // { inherit meta pos; }) + traceAllDuplicateDeps (stdenv.mkDerivation (defaultArgs // cleanArgs // { inherit meta pos; })) |