57 lines
2.0 KiB
Nix
57 lines
2.0 KiB
Nix
nixfiles: final: prev:
|
|
let
|
|
pkgsStable = import nixfiles.inputs.nixpkgs.outPath { inherit (prev) system; };
|
|
updateTime = nixfiles.inputs.nixpkgs-unstable.lastModified;
|
|
|
|
inherit (final) lib callPackage fetchFromGitHub;
|
|
inherit (lib) recurseIntoAttrs optionalAttrs
|
|
versionOlder versionAtLeast;
|
|
|
|
pkgsFromFlake = flake: (import flake.outPath) { inherit (prev) system; };
|
|
pkgsFromInput = name: pkgsFromFlake nixfiles.inputs.${name};
|
|
pickFixed = ours: theirs: if versionAtLeast ours.version theirs.version then ours else theirs;
|
|
pickNewer = ours: theirs: if versionOlder theirs.version ours.version then ours else theirs;
|
|
|
|
hold = now: days: ours: theirs: let
|
|
seconds = days * 24 * 60 * 60;
|
|
endTimestamp = now + seconds;
|
|
in if now < endTimestamp then ours else theirs;
|
|
|
|
optionalPkg = cond: val: if cond then val else null;
|
|
|
|
gimp-with-plugins-good = let
|
|
badPlugins = [ "gap" ];
|
|
itemInList = list: item: lib.any (x: x==item) list;
|
|
pluginFilter = name: value: (value.type or null == "derivation") && (!(itemInList badPlugins name)) && (!value.meta.broken);
|
|
filteredPlugins = lib.filterAttrs pluginFilter prev.gimpPlugins;
|
|
plugins = lib.mapAttrsToList (_: v: v) filteredPlugins;
|
|
in prev.gimp-with-plugins.override { inherit plugins; };
|
|
|
|
# this also causes an infinite recursion and i have no idea why
|
|
# in nixfiles.inputs.nixpkgs.lib.filterAttrs (k: v: v != null) {
|
|
in {
|
|
nix-du = let
|
|
old = prev.nix-du;
|
|
new = (pkgsFromInput "nixpkgs-nix-du").nix-du;
|
|
in pickNewer old new;
|
|
|
|
gimp-with-plugins = gimp-with-plugins-good;
|
|
|
|
nwg-displays = let
|
|
stable = pkgsStable.nwg-displays;
|
|
unstable = prev.nwg-displays;
|
|
now = 1739114541;
|
|
in hold now 7 stable unstable;
|
|
|
|
libreoffice = let
|
|
stable = pkgsStable.libreoffice;
|
|
unstable = prev.libreoffice;
|
|
now = 1739558971;
|
|
in hold now 7 stable unstable;
|
|
|
|
redlib = let
|
|
redlib-new = final.callPackage nixfiles.packages.${prev.system}.redlib.override {};
|
|
inherit (prev) redlib;
|
|
in pickNewer redlib-new redlib;
|
|
}
|