diff --git a/trivionomicon/flake.nix b/trivionomicon/flake.nix index 2b53ebd..f2ee049 100644 --- a/trivionomicon/flake.nix +++ b/trivionomicon/flake.nix @@ -9,11 +9,11 @@ nixpkgs, flake-utils, }: let - mapOverlayOverride = prefix: overlay: final: prev: let + mapOverlayOverride = namespace: overlay: final: prev: let overlayPkgs = overlay final prev; in { - "${prefix}" = (prev.${prefix} or {}) // builtins.removeAttrs overlayPkgs ["override"]; + "${namespace}" = builtins.removeAttrs overlayPkgs ["override"]; } // (overlayPkgs.override or {}); @@ -30,7 +30,7 @@ packages = (import nixpkgs { inherit system; - overlays = [self.overlays.default]; + overlays = [(mapOverlayOverride doctrineNoPkgs.prefix (import ./pkgs))]; }).${ doctrineNoPkgs.prefix }; @@ -121,7 +121,7 @@ } # NB: Preserve the relative order { - overlay = mapOverlayOverride prefix (import ./pkgs); + overlay = self.overlays.default; condition = true; } { @@ -164,12 +164,24 @@ } // optionalAttrs (paths ? nixosSource) { nixosConfigurations = let - hostConfig = platform: - self.lib.mkSystem { - inherit flakes pkgs; - doctrine = doctrineNoPkgs; + nixosSystem = {modules}: + lib.makeOverridable nixpkgs.lib.nixosSystem { + inherit modules pkgs system; + specialArgs = { + inherit flakes; + + doctrine = mkDoctrine { + inherit pkgs; + namespace = "sys"; + }; + }; + }; + + hostConfig = platform: + nixosSystem { modules = [ + self.nixosModules.default nixosSourcePath platform ]; @@ -201,29 +213,6 @@ in lib.mapAttrs home (importAll {root = hmPlatformsPath;}); }; - - mkSystem = { - pkgs, - flakes, - doctrine, - modules, - }: - flakes.nixpkgs.lib.makeOverridable flakes.nixpkgs.lib.nixosSystem { - inherit pkgs; - inherit (pkgs) system; - - modules = [self.nixosModules.default] ++ modules; - - specialArgs = { - inherit flakes; - - doctrine = self.lib.mkDoctrine { - inherit pkgs; - inherit (doctrine) prefix; - namespace = "sys"; - }; - }; - }; }; }; } diff --git a/trivionomicon/modules/soju/default.nix b/trivionomicon/modules/soju/default.nix deleted file mode 100644 index 2b302f0..0000000 --- a/trivionomicon/modules/soju/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ - config, - lib, - pkgs, - doctrine, - ... -}: -doctrine.lib.mkModule { - inherit config; - name = "soju"; - sys = ./sys.nix; - options = ./options.nix; -} diff --git a/trivionomicon/modules/soju/options.nix b/trivionomicon/modules/soju/options.nix deleted file mode 100644 index 06c3381..0000000 --- a/trivionomicon/modules/soju/options.nix +++ /dev/null @@ -1,16 +0,0 @@ -{lib, ...}: -with lib.types; { - sys = { - fullyQualifiedDomain = lib.mkOption { - type = str; - example = "soju.trivionomicon.com"; - description = "fully qualified domain name to be used by soju"; - }; - - port = lib.mkOption { - type = port; - default = 6697; - description = "port to be used by soju"; - }; - }; -} diff --git a/trivionomicon/modules/soju/sys.nix b/trivionomicon/modules/soju/sys.nix deleted file mode 100644 index 83c3560..0000000 --- a/trivionomicon/modules/soju/sys.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ - config, - pkgs, - lib, - cfg, - doctrine, - ... -}: -with lib; { - security.acme.certs."${cfg.fullyQualifiedDomain}" = { - reloadServices = ["soju.service"]; - group = "soju"; - }; - - networking.firewall.allowedTCPPorts = [cfg.port]; - - services.soju = let - sojuCertDir = config.security.acme.certs."${cfg.fullyQualifiedDomain}".directory; - in { - enable = true; - hostName = "${cfg.fullyQualifiedDomain}"; - listen = ["ircs://[::]:${toString cfg.port}"]; - tlsCertificate = "${sojuCertDir}/fullchain.pem"; - tlsCertificateKey = "${sojuCertDir}/key.pem"; - }; - - systemd.services.soju = { - after = ["acme-${cfg.fullyQualifiedDomain}.service"]; - serviceConfig = { - DynamicUser = mkForce false; # fuck dynamic users - User = "soju"; - Group = "soju"; - ProtectSystem = "strict"; - ProtectHome = "read-only"; - PrivateTmp = true; - RemoveIPC = true; - }; - }; - - users = { - users.soju = { - isSystemUser = true; - group = "soju"; - }; - groups.soju = {}; - }; -} diff --git a/trivionomicon/pkgs/default.nix b/trivionomicon/pkgs/default.nix index 4a275a3..484ca77 100644 --- a/trivionomicon/pkgs/default.nix +++ b/trivionomicon/pkgs/default.nix @@ -5,6 +5,5 @@ in { override = {}; athena-bccr = callPackage ./athena-bccr {}; - snapborg = final.python3Packages.callPackage ./snapborg {}; spliit = callPackage ./spliit {}; } diff --git a/trivionomicon/pkgs/snapborg/0001-Remove-env-arg-from-subprocess-calls.patch b/trivionomicon/pkgs/snapborg/0001-Remove-env-arg-from-subprocess-calls.patch deleted file mode 100644 index 33f7a0c..0000000 --- a/trivionomicon/pkgs/snapborg/0001-Remove-env-arg-from-subprocess-calls.patch +++ /dev/null @@ -1,29 +0,0 @@ -From c363931656938f9cc3354b8e2797fe9abac1b0e3 Mon Sep 17 00:00:00 2001 -From: Alejandro Soto -Date: Sun, 31 Aug 2025 13:30:45 -0600 -Subject: [PATCH] Remove "env" arg from subprocess calls - ---- - snapborg/borg.py | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/snapborg/borg.py b/snapborg/borg.py -index 89a3d84..b74ddf7 100644 ---- a/snapborg/borg.py -+++ b/snapborg/borg.py -@@ -173,11 +173,10 @@ def launch_borg(args, password=None, print_output=False, dryrun=False, cwd=None) - # TODO: parse output from JSON log lines - try: - if print_output: -- subprocess.run(cmd, env=env, check=True, cwd=cwd) -+ subprocess.run(cmd, check=True, cwd=cwd) - else: - subprocess.check_output(cmd, - stderr=subprocess.STDOUT, -- env=env, - cwd=cwd) - except CalledProcessError as e: - if e.returncode == 1: --- -2.49.0 - diff --git a/trivionomicon/pkgs/snapborg/default.nix b/trivionomicon/pkgs/snapborg/default.nix deleted file mode 100644 index 271be5c..0000000 --- a/trivionomicon/pkgs/snapborg/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - borgbackup, - buildPythonApplication, - fetchFromGitHub, - lib, - packaging, - pyyaml, -}: -buildPythonApplication { - pname = "snapborg"; - version = "0.1.0-unstable-20250331"; - - src = fetchFromGitHub { - repo = "snapborg"; - owner = "enzingerm"; - - rev = "7e860395319f995161a6e0c7954ce47635e3cd59"; - hash = "sha256-RzYL4IHulk1Q/ALWFs6YCTeCO8ohwqXH2NMHRctRVSA="; - }; - - patches = [ - ./0001-Remove-env-arg-from-subprocess-calls.patch # Fixes broken $PATH when calling borg - ]; - - propagatedBuildInputs = [ - borgbackup - packaging - pyyaml - ]; - - preFixup = '' - makeWrapperArgs+=(--prefix PATH : ${lib.makeBinPath [borgbackup]}) - ''; -}