--- /dev/null
+{
+ 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;
+ stgit = pkgs.stgit;
+ 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"; };
+ stgit = flake-utils.lib.mkApp { drv = packages.stgit; name = "stgit"; };
+ 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; };
+ stgit = final: prev: { stgit = self.packages."${final.system}".stgit; };
+ 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.stgit 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");
+ };
+ };
+}
+