From e8bbab27ee6c34b6fec052516a8e7ccafda30901 Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Thu, 7 Mar 2024 11:27:15 -0800 Subject: [PATCH] nixos module to catfood it --- flake.lock | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 20 ++++++++ module.nix | 5 ++ overlay.nix | 28 +++++++++++ 4 files changed, 183 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 module.nix create mode 100644 overlay.nix diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..2c28a29 --- /dev/null +++ b/flake.lock @@ -0,0 +1,130 @@ +{ + "nodes": { + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1709126324, + "narHash": "sha256-q6EQdSeUZOG26WelxqkmR7kArjgWCdw5sfJVHPH/7j8=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "d465f4819400de7c8d874d50b982301f28a84605", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "lix": { + "inputs": { + "flake-compat": "flake-compat", + "nixpkgs": "nixpkgs", + "nixpkgs-regression": "nixpkgs-regression" + }, + "locked": { + "lastModified": 1709811453, + "narHash": "sha256-UOyTAdUAJv80w3s6rrgYB5tQjp43u5Zp2dlM94uud04=", + "ref": "refs/heads/main", + "rev": "8a268359b06471b463a8f3fc46c83a1fced8ab75", + "revCount": 15077, + "type": "git", + "url": "ssh://gerrit.lix.systems:2022/lix" + }, + "original": { + "type": "git", + "url": "ssh://gerrit.lix.systems:2022/lix" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1704018918, + "narHash": "sha256-erjg/HrpC9liEfm7oLqb8GXCqsxaFwIIPqCsknW5aFY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2c9c58e98243930f8cb70387934daa4bc8b00373", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-23.05-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-regression": { + "locked": { + "lastModified": 1643052045, + "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1709703039, + "narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "9df3e30ce24fd28c7b3e2de0d986769db5d6225d", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "lix": "lix", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..40c26f8 --- /dev/null +++ b/flake.nix @@ -0,0 +1,20 @@ +{ + # fixme: use the forgejo address + inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + inputs.lix.url = "git+ssh://gerrit.lix.systems:2022/lix"; + inputs.flake-utils.url = "github:numtide/flake-utils"; + + outputs = { self, nixpkgs, lix, flake-utils }: { + nixosModules.default = import ./module.nix { inherit lix; }; + overlays.default = import ./overlay.nix { inherit lix; }; + } // flake-utils.lib.eachDefaultSystem (system: + let + pkgs = import nixpkgs { + inherit system; + overlays = [ self.overlays.default ]; + }; + in + { + packages.default = pkgs.nixVersions.nix_2_18; + }); +} diff --git a/module.nix b/module.nix new file mode 100644 index 0000000..0bb1c7b --- /dev/null +++ b/module.nix @@ -0,0 +1,5 @@ +{ lix }: +{ pkgs, config, ... }: +{ + nixpkgs.overlays = [ (import ./overlay.nix { inherit lix; }) ]; +} diff --git a/overlay.nix b/overlay.nix new file mode 100644 index 0000000..5598b5a --- /dev/null +++ b/overlay.nix @@ -0,0 +1,28 @@ +{ lix }: +final: prev: +let + boehmgc-patched = ((final.boehmgc.override { + enableLargeConfig = true; + }).overrideAttrs (o: { + patches = (o.patches or [ ]) ++ [ + # for clown reasons this version is newer than the one in lix, we should + # fix this and update our nixpkgs pin + (prev.path + "/pkgs/tools/package-management/nix/patches/boehmgc-coroutine-sp-fallback.patch") + + # https://github.com/ivmai/bdwgc/pull/586 + (lix + "/boehmgc-traceable_allocator-public.diff") + ]; + }) + ); +in +{ + nixVersions = prev.nixVersions // { + # FIXME: do something less scuffed + nix_2_18 = (prev.nixVersions.nix_2_18.override { boehmgc = boehmgc-patched; }).overrideAttrs (old: { + src = lix; + version = "2.18.3-lix"; + + patches = [ ]; + }); + }; +}