···88 # but cross is currently very broken anyway, so we can figure this out later.
89 deps = map (dep: self.${dep}) filteredDepNames;
900000000000000091 defaultArgs = {
92 inherit version src;
93···128129 pos = builtins.unsafeGetAttrPos "pname" args;
130 in
131- stdenv.mkDerivation (defaultArgs // cleanArgs // { inherit meta pos; })
···88 # but cross is currently very broken anyway, so we can figure this out later.
89 deps = map (dep: self.${dep}) filteredDepNames;
9091+ traceDuplicateDeps = attrName: attrValue:
92+ let
93+ pretty = lib.generators.toPretty {};
94+ duplicates = builtins.filter (dep: (builtins.elem (lib.getName dep) filteredDepNames)) attrValue;
95+ in
96+ if duplicates != []
97+ then lib.warn "Duplicate dependencies in ${attrName} of package ${pname}: ${pretty duplicates}"
98+ else lib.id;
99+100+ traceAllDuplicateDeps = lib.flip lib.pipe [
101+ (traceDuplicateDeps "extraBuildInputs" extraBuildInputs)
102+ (traceDuplicateDeps "extraPropagatedBuildInputs" extraPropagatedBuildInputs)
103+ ];
104+105 defaultArgs = {
106 inherit version src;
107···142143 pos = builtins.unsafeGetAttrPos "pname" args;
144 in
145+ traceAllDuplicateDeps (stdenv.mkDerivation (defaultArgs // cleanArgs // { inherit meta pos; }))