From 896763c24002ba756e03bf009d4fd6bb5597027d Mon Sep 17 00:00:00 2001 From: K900 Date: Fri, 10 May 2024 16:44:25 +0300 Subject: [PATCH] kdePackages.mkKdeDerivation: add duplicate dependency detection --- pkgs/kde/lib/mk-kde-derivation.nix | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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; }))