summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/simple/default.nix
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2017-05-24 02:03:46 +0200
committertv <tv@krebsco.de>2017-05-24 02:03:46 +0200
commite6b7fe74c1ec4ff42967e7bd79d7fe669451d047 (patch)
treed39f2a39e172aec0f1abe7a346ea093ad690f9c8 /krebs/5pkgs/simple/default.nix
parenteae210f8ff05b7f59ab62ba161c86971dbd7f50e (diff)
krebs/5pkgs: detect simple obsolete overrides
Diffstat (limited to 'krebs/5pkgs/simple/default.nix')
-rw-r--r--krebs/5pkgs/simple/default.nix28
1 files changed, 21 insertions, 7 deletions
diff --git a/krebs/5pkgs/simple/default.nix b/krebs/5pkgs/simple/default.nix
index 2f679975..1b9d8c23 100644
--- a/krebs/5pkgs/simple/default.nix
+++ b/krebs/5pkgs/simple/default.nix
@@ -1,10 +1,24 @@
with import <stockholm/lib>;
self: super:
-listToAttrs
- (map
- (name: nameValuePair (removeSuffix ".nix" name)
- (super.callPackage (./. + "/${name}") {}))
- (filter
- (name: name != "default.nix" && !hasPrefix "." name)
- (attrNames (readDir ./.))))
+
+let
+ # This callPackage will try to detect obsolete overrides.
+ callPackage = path: args: let
+ override = self.callPackage path args;
+ upstream = optionalAttrs (override ? "name")
+ (super.${(parseDrvName override.name).name} or {});
+ in if upstream ? "name" &&
+ override ? "name" &&
+ compareVersions upstream.name override.name != -1
+ then trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override
+ else override;
+in
+
+ listToAttrs
+ (map
+ (name: nameValuePair (removeSuffix ".nix" name)
+ (callPackage (./. + "/${name}") {}))
+ (filter
+ (name: name != "default.nix" && !hasPrefix "." name)
+ (attrNames (readDir ./.))))