summaryrefslogtreecommitdiffstats
path: root/pkgs/default.nix
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2024-04-20 19:07:35 +0200
committertv <tv@krebsco.de>2024-04-21 00:38:34 +0200
commit604a41bb3b670dca72ea57068575c47032ce0dc1 (patch)
treee2d31ca996b4b87820e97cff6efc3a7799ad7061 /pkgs/default.nix
parent05aafd5140187af7157b2c02629f061f3e7404a8 (diff)
callObsolescentPackage: init from local definition
Diffstat (limited to 'pkgs/default.nix')
-rw-r--r--pkgs/default.nix27
1 files changed, 22 insertions, 5 deletions
diff --git a/pkgs/default.nix b/pkgs/default.nix
index fb90696..fffd289 100644
--- a/pkgs/default.nix
+++ b/pkgs/default.nix
@@ -13,8 +13,25 @@ in
# Import files and subdirectories like they are overlays.
lib.fix
(builtins.foldl' (lib.flip lib.extends) (_: super)
- (map
- (name: import (./. + "/${name}"))
- (pushBack "override"
- (builtins.attrNames
- (lib.filterAttrs mylib.isNixDirEntry (builtins.readDir ./.))))))
+ (
+ [
+ (self: super: {
+ callObsolescentPackage = path: args: let
+ override = self.callPackage path args;
+ upstream = lib.optionalAttrs (override ? "name")
+ (super.${(builtins.parseDrvName override.name).name} or {});
+ in if upstream ? "name" &&
+ override ? "name" &&
+ builtins.compareVersions upstream.name override.name != -1
+ then builtins.trace "Upstream `${upstream.name}' gets overridden by `${override.name}'." override
+ else override;
+ })
+ ]
+ ++
+ map
+ (name: import (./. + "/${name}"))
+ (pushBack "override"
+ (builtins.attrNames
+ (lib.filterAttrs mylib.isNixDirEntry (builtins.readDir ./.))))
+ )
+ )