diff --git a/.gitea/workflows/installer.yaml b/.gitea/workflows/installer.yaml index 1ecbe77..7dfc350 100644 --- a/.gitea/workflows/installer.yaml +++ b/.gitea/workflows/installer.yaml @@ -33,18 +33,18 @@ jobs: - name: Build installer ISO run: | nix build .#nixfiles.config.nixos.systems.installer.configuration.config.my.buildAs.iso - ln -s "$(readlink result)"/iso/nixos-installer-devplayer0.iso \ - nixos-installer-devplayer0-${{ steps.setup.outputs.short_rev }}.iso + ln -s "$(readlink result)"/iso/jackos-installer.iso \ + jackos-installer-${{ steps.setup.outputs.short_rev }}.iso - name: Build installer netboot archive run: | nix build .#nixfiles.config.nixos.systems.installer.configuration.config.my.buildAs.netbootArchive ln -s "$(readlink result)" \ - nixos-installer-devplayer0-netboot-${{ steps.setup.outputs.short_rev }}.tar + jackos-installer-netboot-${{ steps.setup.outputs.short_rev }}.tar - name: Create release uses: https://gitea.com/actions/release-action@main with: title: Latest installer files: | - nixos-installer-devplayer0-${{ steps.setup.outputs.short_rev }}.iso - nixos-installer-devplayer0-netboot-${{ steps.setup.outputs.short_rev }}.tar + jackos-installer-${{ steps.setup.outputs.short_rev }}.iso + jackos-installer-netboot-${{ steps.setup.outputs.short_rev }}.tar diff --git a/flake.lock b/flake.lock index 624d404..b0e0e1e 100644 --- a/flake.lock +++ b/flake.lock @@ -35,11 +35,11 @@ ] }, "locked": { - "lastModified": 1698258239, - "narHash": "sha256-qnhoYYIJ0L/P7H/f56lQUEvpzNlXh4sxuHpRERV+B44=", + "lastModified": 1702969472, + "narHash": "sha256-IJP9sC+/gLUdWhm6TsnWpw6A1zQWUfn53ym63KeLXvU=", "owner": "zhaofengli", "repo": "attic", - "rev": "e9918bc6be268da6fa97af6ced15193d8a0421c0", + "rev": "bdafd64910bb2b861cf90fa15f1fc93318b6fbf6", "type": "github" }, "original": { @@ -95,26 +95,17 @@ }, "crane": { "inputs": { - "flake-compat": [ - "attic", - "flake-compat" - ], - "flake-utils": [ - "attic", - "flake-utils" - ], "nixpkgs": [ "attic", "nixpkgs" - ], - "rust-overlay": "rust-overlay" + ] }, "locked": { - "lastModified": 1677892403, - "narHash": "sha256-/Wi0L1spSWLFj+UQxN3j0mPYMoc7ZoAujpUF/juFVII=", + "lastModified": 1702918879, + "narHash": "sha256-tWJqzajIvYcaRWxn+cLUB9L9Pv4dQ3Bfit/YjU5ze3g=", "owner": "ipetkov", "repo": "crane", - "rev": "105e27adb70a9890986b6d543a67761cbc1964a2", + "rev": "7195c00c272fdd92fc74e7d5a0a2844b9fadb2fb", "type": "github" }, "original": { @@ -185,11 +176,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1698921442, - "narHash": "sha256-7KmvhQ7FuXlT/wG4zjTssap6maVqeAMBdtel+VjClSM=", + "lastModified": 1703087360, + "narHash": "sha256-0VUbWBW8VyiDRuimMuLsEO4elGuUw/nc2WDeuO1eN1M=", "owner": "serokell", "repo": "deploy-rs", - "rev": "660180bbbeae7d60dad5a92b30858306945fd427", + "rev": "b709d63debafce9f5645a5ba550c9e0983b3d1f7", "type": "github" }, "original": { @@ -241,14 +232,14 @@ "nixpkgs": [ "nixpkgs-unstable" ], - "systems": "systems_3" + "systems": "systems_4" }, "locked": { - "lastModified": 1698410321, - "narHash": "sha256-MphuSlgpmKwtJncGMohryHiK55J1n6WzVQ/OAfmfoMc=", + "lastModified": 1701787589, + "narHash": "sha256-ce+oQR4Zq9VOsLoh9bZT8Ip9PaMLcjjBUHVPzW5d7Cw=", "owner": "numtide", "repo": "devshell", - "rev": "1aed986e3c81a4f6698e85a7452cbfcc4b31a36e", + "rev": "44ddedcbcfc2d52a76b64fb6122f209881bd3e1e", "type": "github" }, "original": { @@ -276,11 +267,11 @@ "flake-compat_2": { "flake": false, "locked": { - "lastModified": 1668681692, - "narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", "owner": "edolstra", "repo": "flake-compat", - "rev": "009399224d5e398d03b22badca40a37ac85412a1", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", "type": "github" }, "original": { @@ -418,14 +409,14 @@ }, "flake-utils_7": { "inputs": { - "systems": "systems_4" + "systems": "systems_5" }, "locked": { - "lastModified": 1694529238, - "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "ff7b65b44d01cf9ba6a71320833626af21126384", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -451,7 +442,7 @@ }, "flake-utils_9": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { "lastModified": 1681202837, @@ -474,11 +465,11 @@ ] }, "locked": { - "lastModified": 1700814205, - "narHash": "sha256-lWqDPKHRbQfi+zNIivf031BUeyciVOtwCwTjyrhDB5g=", + "lastModified": 1703367386, + "narHash": "sha256-FMbm48UGrBfOWGt8+opuS+uLBLQlRfhiYXhHNcYMS5k=", "owner": "nix-community", "repo": "home-manager", - "rev": "aeb2232d7a32530d3448318790534d196bf9427a", + "rev": "d5824a76bc6bb93d1dce9ebbbcb09a9b6abcc224", "type": "github" }, "original": { @@ -494,11 +485,11 @@ ] }, "locked": { - "lastModified": 1701433070, - "narHash": "sha256-Gf9JStfENaUQ7YWFz3V7x/srIwr4nlnVteqaAxtwpgM=", + "lastModified": 1703754036, + "narHash": "sha256-JpJdcj9Tg4lMuYikXDpajA8wOp+rHyn9RD2rKBEM4cQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "4a8545f5e737a6338814a4676dc8e18c7f43fc57", + "rev": "c24c298562fe41b39909f632c5a7151bbf6b4628", "type": "github" }, "original": { @@ -508,11 +499,11 @@ }, "impermanence": { "locked": { - "lastModified": 1697303681, - "narHash": "sha256-caJ0rXeagaih+xTgRduYtYKL1rZ9ylh06CIrt1w5B4g=", + "lastModified": 1703656108, + "narHash": "sha256-hCSUqdFJKHHbER8Cenf5JRzjMlBjIdwdftGQsO0xoJs=", "owner": "nix-community", "repo": "impermanence", - "rev": "0f317c2e9e56550ce12323eb39302d251618f5b5", + "rev": "033643a45a4a920660ef91caa391fbffb14da466", "type": "github" }, "original": { @@ -531,13 +522,13 @@ "locked": { "lastModified": 1685908677, "narHash": "sha256-E4zUPEUFyVWjVm45zICaHRpfGepfkE9Z2OECV9HXfA4=", - "owner": "guibou", + "owner": "nix-community", "repo": "nixGL", "rev": "489d6b095ab9d289fe11af0219a9ff00fe87c7c5", "type": "github" }, "original": { - "owner": "guibou", + "owner": "nix-community", "repo": "nixGL", "type": "github" } @@ -560,11 +551,11 @@ }, "nixpkgs-mine": { "locked": { - "lastModified": 1701607327, - "narHash": "sha256-pHX6S1mrUSFVq6v0HiZuShfXLL01wiWvgivCabX2x+M=", + "lastModified": 1703756459, + "narHash": "sha256-ztEMyPQZh3Pb+LOoWl5lbIK2LenP59sOUBC86CDmLio=", "owner": "devplayer0", "repo": "nixpkgs", - "rev": "c8af66cb9046a65cbab33563f804b7bad46173af", + "rev": "e80160eb2ac3a7111d07cc43a15c16b9edca01ea", "type": "github" }, "original": { @@ -576,11 +567,11 @@ }, "nixpkgs-mine-stable": { "locked": { - "lastModified": 1701607437, - "narHash": "sha256-ozMDOyJtxr/CznI6lrwtt9JkU32Y2cLr2B4vlW85Tfw=", + "lastModified": 1703756491, + "narHash": "sha256-9VL34e0gzomwqRnryRn23V2ImYcaZIQdp7CsWg5TmlE=", "owner": "devplayer0", "repo": "nixpkgs", - "rev": "67ef05e2dd98d1fd856028eba1bb4edb847f6c6e", + "rev": "36611f5f7cfd401f51ad4ca76fd6ee85a714bb74", "type": "github" }, "original": { @@ -592,11 +583,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1701389149, - "narHash": "sha256-rU1suTIEd5DGCaAXKW6yHoCfR1mnYjOXQFOaH7M23js=", + "lastModified": 1703467016, + "narHash": "sha256-/5A/dNPhbQx/Oa2d+Get174eNI3LERQ7u6WTWOlR1eQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "5de0b32be6e85dc1a9404c75131316e4ffbc634c", + "rev": "d02d818f22c777aa4e854efc3242ec451e5d462a", "type": "github" }, "original": { @@ -607,11 +598,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1701253981, - "narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=", + "lastModified": 1703438236, + "narHash": "sha256-aqVBq1u09yFhL7bj1/xyUeJjzr92fXVvQSSEx6AdB1M=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58", + "rev": "5f64a12a728902226210bf01d25ec6cbb9d9265b", "type": "github" }, "original": { @@ -678,7 +669,7 @@ "nixpkgs": [ "nixpkgs-unstable" ], - "rust-overlay": "rust-overlay_2" + "rust-overlay": "rust-overlay" }, "locked": { "lastModified": 1682237245, @@ -715,33 +706,6 @@ } }, "rust-overlay": { - "inputs": { - "flake-utils": [ - "attic", - "crane", - "flake-utils" - ], - "nixpkgs": [ - "attic", - "crane", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1675391458, - "narHash": "sha256-ukDKZw922BnK5ohL9LhwtaDAdCsJL7L6ScNEyF1lO9w=", - "owner": "oxalica", - "repo": "rust-overlay", - "rev": "383a4acfd11d778d5c2efcf28376cbd845eeaedf", - "type": "github" - }, - "original": { - "owner": "oxalica", - "repo": "rust-overlay", - "type": "github" - } - }, - "rust-overlay_2": { "inputs": { "flake-utils": [ "ragenix", @@ -862,13 +826,31 @@ "type": "github" } }, - "utils": { + "systems_6": { "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "utils": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 06bdd0e..db69e61 100644 --- a/flake.nix +++ b/flake.nix @@ -26,7 +26,7 @@ impermanence.url = "github:nix-community/impermanence"; boardie.url = "github:devplayer0/boardie"; boardie.inputs.nixpkgs.follows = "nixpkgs-unstable"; - nixGL.url = "github:guibou/nixGL"; + nixGL.url = "github:nix-community/nixGL"; nixGL.inputs.nixpkgs.follows = "nixpkgs-unstable"; # Packages not in nixpkgs @@ -63,7 +63,7 @@ flake = flake-utils.lib; }; pkgsLibOverlay = final: prev: { lib = prev.lib.extend libOverlay; }; - myPkgsOverlay = final: prev: import ./pkgs { lib = prev.lib; pkgs = prev; }; + myPkgsOverlay = final: prev: import ./pkgs { lib = final.lib; pkgs = prev; }; # Override the flake-level lib since we're going to use it for non-config specific stuff pkgsFlakes = mapAttrs (_: pkgsFlake: pkgsFlake // { lib = pkgsFlake.lib.extend libOverlay; }) { @@ -129,7 +129,7 @@ modules = [ { _module.args = { - inherit lib pkgsFlakes hmFlakes inputs; + inherit lib pkgsFlakes hmFlakes self inputs; pkgs' = configPkgs'; }; diff --git a/lib/default.nix b/lib/default.nix index ad177a4..e83279f 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,6 +1,6 @@ { lib }: let - inherit (builtins) length match elemAt filter replaceStrings; + inherit (builtins) length match elemAt filter replaceStrings substring; inherit (lib) genAttrs mapAttrsToList filterAttrsRecursive nameValuePair types mkOption mkOverride mkForce mkIf mergeEqualOption optional @@ -239,4 +239,18 @@ rec { filterOpts = filterAttrsRecursive (_: v: v != null); }; + + versionOverlay = { self, pkgsFlake }: final: prev: + let + date = substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101"); + revCode = flake: flake.shortRev or "dirty"; + in + { + trivial = prev.trivial // { + release = "23.12:u-${prev.trivial.release}"; + codeName = "Amogus"; + revisionWithDefault = default: self.rev or default; + versionSuffix = ".${date}.${revCode self}:u-${revCode pkgsFlake}"; + }; + }; } diff --git a/nixos/default.nix b/nixos/default.nix index 763f345..82a3592 100644 --- a/nixos/default.nix +++ b/nixos/default.nix @@ -1,4 +1,4 @@ -{ lib, pkgsFlakes, hmFlakes, inputs, pkgs', config, ... }: +{ self, lib, pkgsFlakes, hmFlakes, inputs, pkgs', config, ... }: let inherit (builtins) attrValues mapAttrs; inherit (lib) @@ -25,10 +25,14 @@ let modules' = [ hmFlakes.${config'.home-manager}.nixosModule ] ++ (attrValues cfg.modules); in - pkgsFlake.lib.nixosSystem { + # Import eval-config ourselves since the flake now force-sets lib + import "${pkgsFlake}/nixos/lib/eval-config.nix" { # Gotta override lib here unforunately, eval-config.nix likes to import its own (unextended) lib. We explicitly # don't pass pkgs so that it'll be imported with modularly applied config and overlays. - lib = pkgs.lib; + lib = pkgs.lib.extend (lib.my.versionOverlay { inherit self pkgsFlake; }); + + # Set to null since we pass modularly + system = null; # Put the inputs in specialArgs to avoid infinite recursion when modules try to do imports specialArgs = { inherit inputs pkgsFlakes pkgsFlake allAssignments; inherit (cfg) systems; }; @@ -51,7 +55,7 @@ let pkgs' = allPkgs; }; - system.name = name; + system = { inherit name; }; networking = { domain = let d = config'.assignments.internal.domain or null; in mkIf (d != null) (mkDefault' d); hostName = mkDefault (config'.assignments.internal.name or name); @@ -86,6 +90,8 @@ let pkgsPath = toString pkgsFlakes.${config'.hmNixpkgs}; pkgs' = allPkgs; }; + + home.enableNixpkgsReleaseCheck = false; } (homeStateVersion config'.home-manager) ]; diff --git a/nixos/installer.nix b/nixos/installer.nix index c8ab8c3..6cbe142 100644 --- a/nixos/installer.nix +++ b/nixos/installer.nix @@ -32,7 +32,8 @@ }; isoImage = { - isoBaseName = "nixos-installer-devplayer0"; + isoBaseName = "jackos-installer"; + volumeID = "jackos-${config.system.nixos.release}-${pkgs.stdenv.hostPlatform.uname.processor}"; edition = "devplayer0"; appendToMenuLabel = " /dev/player0 Installer"; }; diff --git a/nixos/modules/build.nix b/nixos/modules/build.nix index aad2a11..efb5d33 100644 --- a/nixos/modules/build.nix +++ b/nixos/modules/build.nix @@ -92,6 +92,7 @@ in }; isoImage = { isoBaseName = dummyOption; + volumeID = dummyOption; edition = dummyOption; appendToMenuLabel = dummyOption; }; diff --git a/nixos/modules/common.nix b/nixos/modules/common.nix index 2eae54a..aaa3a7f 100644 --- a/nixos/modules/common.nix +++ b/nixos/modules/common.nix @@ -1,7 +1,7 @@ { lib, pkgs, pkgs', inputs, config, ... }: let inherit (lib) mkIf mkDefault mkMerge; - inherit (lib.my) mkBoolOpt' dummyOption; + inherit (lib.my) mkDefault'; in { options = with lib.types; { @@ -121,6 +121,11 @@ in services.lvm.enable = mkDefault true; }; }; + system = { + nixos = { + distroName = mkDefault' "JackOS"; + }; + }; environment.systemPackages = with pkgs; mkMerge [ [ @@ -151,6 +156,7 @@ in font-name=SauceCodePro Nerd Font Mono ''; }; + getty.greetingLine = mkDefault' ''<<< Welcome to ${config.system.nixos.distroName} ${config.system.nixos.label} (\m) - \l >>>''; openssh = { enable = mkDefault true;