{ description = "Backported packages"; inputs.nixpkgs.url = "github:NixOS/nixpkgs"; inputs.flake-utils.url = "github:numtide/flake-utils"; outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; overlays = []; }; in rec { packages = { apprise = pkgs.apprise; bitlbee-mastodon = pkgs.bitlbee-mastodon; cointop = pkgs.cointop; cryptpad = pkgs.cryptpad; dovecot_fts-xapian = pkgs.dovecot_fts_xapian; duply = pkgs.duply; fiche = pkgs.fiche; influxdb2 = pkgs.influxdb2; mpd = pkgs.mpd; mpd-small = pkgs.mpd-small; pg_activity = pkgs.pg_activity; signald = pkgs.signald; ssh-to-age = pkgs.ssh-to-age; stgit = pkgs.stgit; sops = pkgs.sops; telegram-cli = pkgs.telegram-cli; woob = pkgs.python3Packages.woob; zrepl = pkgs.zrepl; }; legacyPackages = packages; apps = { apprise = flake-utils.lib.mkApp { drv = packages.apprise; name = "apprise"; }; cointop = flake-utils.lib.mkApp { drv = packages.cointop; name = "cointop"; }; cryptpad = flake-utils.lib.mkApp { drv = packages.cryptpad; name = "cryptpad"; }; duply = flake-utils.lib.mkApp { drv = packages.duply; name = "duply"; }; fiche = flake-utils.lib.mkApp { drv = packages.fiche; name = "fiche"; }; influxd = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influxd"; }; influx = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influx"; }; mpd = flake-utils.lib.mkApp { drv = packages.mpd; name = "mpd"; }; mpd-small = flake-utils.lib.mkApp { drv = packages.mpd-small; name = "mpd"; }; pg_activity = flake-utils.lib.mkApp { drv = packages.pg_activity; name = "pg_activity"; }; signald = flake-utils.lib.mkApp { drv = packages.signald; name = "signald"; }; ssh-to-age = flake-utils.lib.mkApp { drv = packages.ssh-to-age; name = "ssh-to-age"; }; stgit = flake-utils.lib.mkApp { drv = packages.stgit; name = "stgit"; }; sops = flake-utils.lib.mkApp { drv = packages.sops; name = "sops"; }; telegram-cli = flake-utils.lib.mkApp { drv = packages.telegram-cli; name = "telegram-cli"; }; woob = flake-utils.lib.mkApp { drv = packages.woob; name = "woob"; }; zrepl = flake-utils.lib.mkApp { drv = packages.zrepl; name = "zrepl"; }; }; } ) // rec { lib = { overrideDeps = pkgs: package: let packageDeps = builtins.attrNames package.override.__functionArgs; in package.override (pkgs.lib.genAttrs packageDeps (n: pkgs."${n}")); }; overlays = { apprise = final: prev: { apprise = self.packages."${final.system}".apprise; }; bitlbee-mastodon = final: prev: { bitlbee-mastodon = lib.overrideDeps final self.packages."${final.system}".bitlbee-mastodon; }; cointop = final: prev: { cointop = self.packages."${final.system}".cointop; }; cryptpad = final: prev: { cryptpad = self.packages."${final.system}".cryptpad; }; dovecot_fts-xapian = final: prev: { dovecot_fts-xapian = lib.overrideDeps final self.packages."${final.system}".dovecot_fts-xapian; }; duply = final: prev: { duply = self.packages."${final.system}".duply; }; fiche = final: prev: { fiche = self.packages."${final.system}".fiche; }; influxdb2 = final: prev: { influxdb2 = self.packages."${final.system}".influxdb2; }; mpd = final: prev: { mpd = self.packages."${final.system}".mpd; }; pg_activity = final: prev: { pg_activity = self.packages."${final.system}".pg_activity; }; signald = final: prev: { signald = self.packages."${final.system}".signald; }; ssh-to-age = final: prev: { ssh-to-age = self.packages."${final.system}".ssh-to-age; }; stgit = final: prev: { stgit = self.packages."${final.system}".stgit; }; sops = final: prev: { sops = self.packages."${final.system}".sops; }; telegram-cli = final: prev: { telegram-cli = self.packages."${final.system}".telegram-cli; }; woob = final: prev: { woob = self.packages."${final.system}".woob; }; zrepl = final: prev: { zrepl = self.packages."${final.system}".zrepl; }; }; overlay = final: prev: ({} // overlays.apprise final prev // overlays.bitlbee-mastodon final prev // overlays.cointop final prev // overlays.cryptpad final prev // overlays.dovecot_fts-xapian final prev // overlays.duply final prev // overlays.fiche final prev // overlays.influxdb2 final prev // overlays.mpd final prev // overlays.pg_activity final prev // overlays.signald final prev // overlays.ssh-to-age final prev // overlays.stgit final prev // overlays.sops final prev // overlays.telegram-cli final prev // overlays.woob final prev // overlays.zrepl final prev ); nixosModules = { influxdb2 = import (nixpkgs + "/nixos/modules/services/databases/influxdb2.nix"); mpd = import (nixpkgs + "/nixos/modules/services/audio/mpd.nix"); zrepl = import (nixpkgs + "/nixos/modules/services/backup/zrepl.nix"); }; }; }