]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - flakes/backports/flake.nix
Rework buildbot: Move towards independent builds
[perso/Immae/Config/Nix.git] / flakes / backports / flake.nix
CommitLineData
56cfbfb0
IB
1{
2 description = "Backported packages";
3
20bab453 4 inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
56cfbfb0
IB
5 inputs.flake-utils.url = "github:numtide/flake-utils";
6
7 outputs = { self, flake-utils, nixpkgs }: flake-utils.lib.eachDefaultSystem (system:
8 let
9 pkgs = import nixpkgs { inherit system; overlays = []; };
10 in rec {
11 packages = {
12 apprise = pkgs.apprise;
13 bitlbee-mastodon = pkgs.bitlbee-mastodon;
14 cointop = pkgs.cointop;
a3ac9c84 15 coturn = pkgs.coturn;
56cfbfb0 16 cryptpad = pkgs.cryptpad;
d3a43b08 17 delta = pkgs.delta;
56cfbfb0
IB
18 dovecot_fts-xapian = pkgs.dovecot_fts_xapian;
19 duply = pkgs.duply;
20 fiche = pkgs.fiche;
bdaca01e 21 galene = pkgs.galene;
d3a43b08 22 hetzner = pkgs.python3Packages.hetzner;
56cfbfb0 23 influxdb2 = pkgs.influxdb2;
def6ad99
IB
24 ldapvi = pkgs.ldapvi;
25 lego = pkgs.lego;
56cfbfb0
IB
26 mpd = pkgs.mpd;
27 mpd-small = pkgs.mpd-small;
d3a43b08 28 neomutt = pkgs.neomutt;
def6ad99
IB
29 opensmtpd = pkgs.opensmtpd;
30 pass = pkgs.pass;
56cfbfb0
IB
31 pg_activity = pkgs.pg_activity;
32 signald = pkgs.signald;
282c67a1 33 ssh-to-age = pkgs.ssh-to-age;
56cfbfb0 34 stgit = pkgs.stgit;
282c67a1 35 sops = pkgs.sops;
def6ad99 36 sudo = pkgs.sudo;
56cfbfb0
IB
37 telegram-cli = pkgs.telegram-cli;
38 woob = pkgs.python3Packages.woob;
39 zrepl = pkgs.zrepl;
40 };
41 legacyPackages = packages;
42 apps = {
43 apprise = flake-utils.lib.mkApp { drv = packages.apprise; name = "apprise"; };
44 cointop = flake-utils.lib.mkApp { drv = packages.cointop; name = "cointop"; };
a3ac9c84 45 coturn = flake-utils.lib.mkApp { drv = packages.coturn; name = "coturn"; };
56cfbfb0 46 cryptpad = flake-utils.lib.mkApp { drv = packages.cryptpad; name = "cryptpad"; };
d3a43b08 47 delta = flake-utils.lib.mkApp { drv = packages.delta; name = "delta"; };
56cfbfb0
IB
48 duply = flake-utils.lib.mkApp { drv = packages.duply; name = "duply"; };
49 fiche = flake-utils.lib.mkApp { drv = packages.fiche; name = "fiche"; };
bdaca01e 50 galene = flake-utils.lib.mkApp { drv = packages.galene; name = "galene"; };
d3a43b08 51 hetzner = flake-utils.lib.mkApp { drv = packages.hetzner; name = "hetznerctl"; };
56cfbfb0
IB
52 influxd = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influxd"; };
53 influx = flake-utils.lib.mkApp { drv = packages.influxdb2; name = "influx"; };
def6ad99
IB
54 ldapvi = flake-utils.lib.mkApp { drv = packages.ldapvi; name = "ldapvi"; };
55 lego = flake-utils.lib.mkApp { drv = packages.lego; name = "lego"; };
56cfbfb0
IB
56 mpd = flake-utils.lib.mkApp { drv = packages.mpd; name = "mpd"; };
57 mpd-small = flake-utils.lib.mkApp { drv = packages.mpd-small; name = "mpd"; };
d3a43b08 58 neomutt = flake-utils.lib.mkApp { drv = packages.neomutt; name = "neomutt"; };
def6ad99
IB
59 opensmtpd = flake-utils.lib.mkApp { drv = packages.opensmtpd; name = "opensmtpd"; };
60 pass = flake-utils.lib.mkApp { drv = packages.pass; name = "pass"; };
56cfbfb0
IB
61 pg_activity = flake-utils.lib.mkApp { drv = packages.pg_activity; name = "pg_activity"; };
62 signald = flake-utils.lib.mkApp { drv = packages.signald; name = "signald"; };
282c67a1 63 ssh-to-age = flake-utils.lib.mkApp { drv = packages.ssh-to-age; name = "ssh-to-age"; };
56cfbfb0 64 stgit = flake-utils.lib.mkApp { drv = packages.stgit; name = "stgit"; };
282c67a1 65 sops = flake-utils.lib.mkApp { drv = packages.sops; name = "sops"; };
def6ad99 66 sudo = flake-utils.lib.mkApp { drv = packages.sudo; name = "sudo"; };
56cfbfb0
IB
67 telegram-cli = flake-utils.lib.mkApp { drv = packages.telegram-cli; name = "telegram-cli"; };
68 woob = flake-utils.lib.mkApp { drv = packages.woob; name = "woob"; };
69 zrepl = flake-utils.lib.mkApp { drv = packages.zrepl; name = "zrepl"; };
70 };
71 }
72 ) // rec {
73 lib = {
74 overrideDeps = pkgs: package: let
75 packageDeps = builtins.attrNames package.override.__functionArgs;
76 in package.override (pkgs.lib.genAttrs packageDeps (n: pkgs."${n}"));
77 };
78 overlays = {
79 apprise = final: prev: { apprise = self.packages."${final.system}".apprise; };
80 bitlbee-mastodon = final: prev: {
81 bitlbee-mastodon = lib.overrideDeps final self.packages."${final.system}".bitlbee-mastodon;
82 };
83 cointop = final: prev: { cointop = self.packages."${final.system}".cointop; };
a3ac9c84 84 coturn = final: prev: { coturn = self.packages."${final.system}".coturn; };
56cfbfb0 85 cryptpad = final: prev: { cryptpad = self.packages."${final.system}".cryptpad; };
d3a43b08 86 delta = final: prev: { delta = self.packages."${final.system}".delta; };
56cfbfb0
IB
87 dovecot_fts-xapian = final: prev: {
88 dovecot_fts-xapian = lib.overrideDeps final self.packages."${final.system}".dovecot_fts-xapian;
89 };
90 duply = final: prev: { duply = self.packages."${final.system}".duply; };
91 fiche = final: prev: { fiche = self.packages."${final.system}".fiche; };
bdaca01e 92 galene = final: prev: { galene = self.packages."${final.system}".galene; };
d3a43b08 93 hetzner = final: prev: { hetzner = self.packages."${final.system}".hetzner; };
56cfbfb0 94 influxdb2 = final: prev: { influxdb2 = self.packages."${final.system}".influxdb2; };
def6ad99
IB
95 ldapvi = final: prev: { ldapvi = self.packages."${final.system}".ldapvi; };
96 lego = final: prev: { lego = self.packages."${final.system}".lego; };
56cfbfb0 97 mpd = final: prev: { mpd = self.packages."${final.system}".mpd; };
d3a43b08 98 neomutt = final: prev: { neomutt = self.packages."${final.system}".neomutt; };
def6ad99
IB
99 opensmtpd = final: prev: { opensmtpd = self.packages."${final.system}".opensmtpd; };
100 pass = final: prev: { pass = self.packages."${final.system}".pass; };
56cfbfb0
IB
101 pg_activity = final: prev: { pg_activity = self.packages."${final.system}".pg_activity; };
102 signald = final: prev: { signald = self.packages."${final.system}".signald; };
282c67a1 103 ssh-to-age = final: prev: { ssh-to-age = self.packages."${final.system}".ssh-to-age; };
56cfbfb0 104 stgit = final: prev: { stgit = self.packages."${final.system}".stgit; };
282c67a1 105 sops = final: prev: { sops = self.packages."${final.system}".sops; };
def6ad99 106 sudo = final: prev: { sudo = self.packages."${final.system}".sudo; };
56cfbfb0
IB
107 telegram-cli = final: prev: { telegram-cli = self.packages."${final.system}".telegram-cli; };
108 woob = final: prev: { woob = self.packages."${final.system}".woob; };
109 zrepl = final: prev: { zrepl = self.packages."${final.system}".zrepl; };
110 };
111 overlay = final: prev: ({}
112 // overlays.apprise final prev
113 // overlays.bitlbee-mastodon final prev
114 // overlays.cointop final prev
a3ac9c84 115 // overlays.coturn final prev
56cfbfb0 116 // overlays.cryptpad final prev
d3a43b08 117 // overlays.delta final prev
56cfbfb0
IB
118 // overlays.dovecot_fts-xapian final prev
119 // overlays.duply final prev
120 // overlays.fiche final prev
bdaca01e 121 // overlays.galene final prev
d3a43b08 122 // overlays.hetzner final prev
56cfbfb0 123 // overlays.influxdb2 final prev
def6ad99
IB
124 // overlays.ldapvi final prev
125 // overlays.lego final prev
56cfbfb0 126 // overlays.mpd final prev
d3a43b08 127 // overlays.neomutt final prev
def6ad99
IB
128 // overlays.opensmtpd final prev
129 // overlays.pass final prev
56cfbfb0
IB
130 // overlays.pg_activity final prev
131 // overlays.signald final prev
282c67a1 132 // overlays.ssh-to-age final prev
56cfbfb0 133 // overlays.stgit final prev
282c67a1 134 // overlays.sops final prev
def6ad99 135 // overlays.sudo final prev
56cfbfb0
IB
136 // overlays.telegram-cli final prev
137 // overlays.woob final prev
138 // overlays.zrepl final prev
139 );
140
141 nixosModules = {
a3ac9c84 142 coturn = import (nixpkgs + "/nixos/modules/services/networking/coturn.nix");
bdaca01e 143 galene = import (nixpkgs + "/nixos/modules/services/web-apps/galene.nix");
56cfbfb0
IB
144 influxdb2 = import (nixpkgs + "/nixos/modules/services/databases/influxdb2.nix");
145 mpd = import (nixpkgs + "/nixos/modules/services/audio/mpd.nix");
146 zrepl = import (nixpkgs + "/nixos/modules/services/backup/zrepl.nix");
147 };
148 };
149}
150