diff options
author | tv <tv@krebsco.de> | 2017-05-24 02:03:46 +0200 |
---|---|---|
committer | tv <tv@krebsco.de> | 2017-05-24 02:03:46 +0200 |
commit | e6b7fe74c1ec4ff42967e7bd79d7fe669451d047 (patch) | |
tree | d39f2a39e172aec0f1abe7a346ea093ad690f9c8 /krebs/5pkgs/simple/default.nix | |
parent | eae210f8ff05b7f59ab62ba161c86971dbd7f50e (diff) |
krebs/5pkgs: detect simple obsolete overrides
Diffstat (limited to 'krebs/5pkgs/simple/default.nix')
-rw-r--r-- | krebs/5pkgs/simple/default.nix | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/krebs/5pkgs/simple/default.nix b/krebs/5pkgs/simple/default.nix index 2f6799759..1b9d8c235 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 ./.)))) |