136 lines
3.6 KiB
Nix
136 lines
3.6 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
self,
|
|
inputs,
|
|
...
|
|
}: let
|
|
# TODO legacy refactor
|
|
# not high priority, this still works well for this overlay.
|
|
nixfiles = self;
|
|
overlay = final: prev: let
|
|
pkgsStable = import nixfiles.inputs.nixpkgs.outPath {
|
|
inherit (prev) system;
|
|
config.allowUnfree = true;
|
|
};
|
|
updateTime = nixfiles.inputs.nixpkgs-unstable.lastModified;
|
|
|
|
inherit (final) 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;
|
|
|
|
rustdesk-flutter = let
|
|
stable = pkgsStable.rustdesk-flutter;
|
|
unstable = prev.rustdesk-flutter;
|
|
now = 1741899501;
|
|
in
|
|
hold now 7 stable unstable;
|
|
}
|
|
// (
|
|
lib.genAttrs [
|
|
"mopidyPackages"
|
|
"mopidy"
|
|
"mopidy-bandcamp"
|
|
"mopidy-iris"
|
|
"mopidy-jellyfin"
|
|
"mopidy-local"
|
|
"mopidy-moped"
|
|
"mopidy-mopify"
|
|
"mopidy-mpd"
|
|
"mopidy-mpris"
|
|
"mopidy-muse"
|
|
"mopidy-musicbox-webclient"
|
|
"mopidy-notify"
|
|
"mopidy-podcast"
|
|
"mopidy-scrobbler"
|
|
"mopidy-somafm"
|
|
"mopidy-soundcloud"
|
|
"mopidy-spotify"
|
|
"mopidy-subidy"
|
|
"mopidy-tidal"
|
|
"mopidy-tunein"
|
|
"mopidy-youtube"
|
|
"mopidy-ytmusic"
|
|
] (name: let
|
|
pkgs-mopidy = (import inputs.nixpkgs-mopidy) {inherit (prev) system;};
|
|
unstable = prev."${name}";
|
|
stable = pkgs-mopidy."${name}";
|
|
now = 1740786429;
|
|
in
|
|
# pin for at least 90 days because who knows when this will be fixed
|
|
# https://github.com/mopidy/mopidy/issues/2183
|
|
hold now 90 stable unstable)
|
|
);
|
|
in {
|
|
config.flake.overlays.mitigations = overlay;
|
|
}
|