commit f3b1603e4b0522107a02c6f8d9e1e8175f988398
parent 4891716c441779c731d37850f7e5ff70e6380b00
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Wed, 22 Jul 2026 22:13:17 +0200
parent 4891716c441779c731d37850f7e5ff70e6380b00
Author: Katja Ramona Sophie Kwast (zaphyra) <git@zaphyra.eu>
Date: Wed, 22 Jul 2026 22:13:17 +0200
nixos/common/profiles/base: add `system.nixos.versionSuffix` and `system.nixos.revision`
1 file changed, 83 insertions(+), 70 deletions(-)
M
|
153
+++++++++++++++++++++++++++++++++++++++++++------------------------------------
diff --git a/nixosModules/common/profiles/base.nix b/nixosModules/common/profiles/base.nix @@ -1,4 +1,5 @@ { + self, pkgs, lib, config, @@ -10,94 +11,106 @@ options.common.profiles.base.enable = lib.mkEnableOption "base profile"; - config = lib.mkIf config.common.profiles.base.enable { - boot.kernel.sysctl."kernel.sysrq" = lib.mkDefault 1; + config = lib.mkIf config.common.profiles.base.enable ( + let + nixpkgsSrc = if machineConfig.nixpkgsStable then self.npins.nixpkgs else self.npins.nixpkgsUnstable; - # make things more declerative - services.userborn.enable = lib.mkDefault true; - #users.mutableUsers = lib.mkForce false; + in + { - networking = { - hostId = builtins.substring 0 8 (builtins.hashString "sha256" machineConfig.machineName); - hostName = machineConfig.machineName; - domain = lib.mkDefault machineConfig.domain; + boot.kernel.sysctl."kernel.sysrq" = lib.mkDefault 1; - useNetworkd = lib.mkDefault true; - useDHCP = lib.mkDefault false; + # make things more declerative + services.userborn.enable = lib.mkDefault true; + users.mutableUsers = lib.mkForce false; + system.nixos-init.enable = true; + system.etc.overlay.enable = true; - nftables.enable = lib.mkDefault true; - firewall.enable = lib.mkDefault true; - }; + networking = { + hostId = builtins.substring 0 8 (builtins.hashString "sha256" machineConfig.machineName); + hostName = machineConfig.machineName; + domain = lib.mkDefault machineConfig.domain; - hardware.enableRedistributableFirmware = true; + useNetworkd = lib.mkDefault true; + useDHCP = lib.mkDefault false; - common = { - profiles = { - amdCpu.enable = lib.mkDefault (machineConfig.hardware.cpuVendor == "amd"); - intelCpu.enable = lib.mkDefault (machineConfig.hardware.cpuVendor == "intel"); + nftables.enable = lib.mkDefault true; + firewall.enable = lib.mkDefault true; }; - configure = { - boot.enable = lib.mkDefault true; + hardware.enableRedistributableFirmware = true; - locale.enable = lib.mkDefault true; - sops.enable = lib.mkDefault true; + common = { + profiles = { + amdCpu.enable = lib.mkDefault (machineConfig.hardware.cpuVendor == "amd"); + intelCpu.enable = lib.mkDefault (machineConfig.hardware.cpuVendor == "intel"); + }; - nix.enable = true; - }; + configure = { + boot.enable = lib.mkDefault true; - services = { - openssh.enable = true; - }; + locale.enable = lib.mkDefault true; + sops.enable = lib.mkDefault true; + + nix.enable = true; + }; + + services = { + openssh.enable = true; + }; - security = { - nix.enable = lib.mkDefault true; - kernel.enable = lib.mkDefault true; - networking.enable = lib.mkDefault true; + security = { + nix.enable = lib.mkDefault true; + kernel.enable = lib.mkDefault true; + networking.enable = lib.mkDefault true; + }; + + programs = { + shellUtilities.enable = lib.mkDefault true; + systemUtilities.enable = lib.mkDefault true; + networkUtilities.enable = lib.mkDefault true; + + fish.enable = lib.mkDefault true; + }; }; programs = { - shellUtilities.enable = lib.mkDefault true; - systemUtilities.enable = lib.mkDefault true; - networkUtilities.enable = lib.mkDefault true; + command-not-found.enable = false; # Not usable without channels; use nix-index instead. + }; - fish.enable = lib.mkDefault true; + services = { + dbus.implementation = "broker"; }; - }; - - programs = { - command-not-found.enable = false; # Not usable without channels; use nix-index instead. - }; - - services = { - dbus.implementation = "broker"; - }; - - security.sudo.extraConfig = "Defaults lecture=\"never\""; # "We trust you have received the usual lecture from the local System Administrator." - - system = { - stateVersion = lib.mkDefault "25.11"; - - # thanks piegames (https://git.darmstadt.ccc.de/piegames/home-config/-/blob/master/modules/generic.nix#L84) - activationScripts = { - diff = { - supportsDryActivation = true; - text = '' - ${pkgs.nvd}/bin/nvd --color=always --nix-bin-dir=${pkgs.nix}/bin diff "$(readlink /run/current-system)" "$systemConfig" - # Ignore "failures" because these tools have weird exit codes - ${pkgs.colordiff}/bin/colordiff --nobanner --fakeexitcode --color=always -ur -I '\/nix\/store' \ - -- "$(readlink /run/current-system)/activate" "$systemConfig/activate" | ${pkgs.gnugrep}/bin/grep -v "^Binary files" || true - ${pkgs.colordiff}/bin/colordiff --nobanner --fakeexitcode --color=always -ur -I '\/nix\/store' \ - -x "os-release" -x "issue" \ - -- "$(readlink /run/current-system)/etc" "$systemConfig/etc" | ${pkgs.gnugrep}/bin/grep -v "^Binary files" || true - ${pkgs.colordiff}/bin/colordiff --nobanner --fakeexitcode --color=always -ur -I '\/nix\/store' \ - -x "environment.d" \ - -x "hwdb.d" \ - -- "$(readlink /run/current-system)/systemd" "$systemConfig/systemd" | ${pkgs.gnugrep}/bin/grep -v "^Binary files" || true - ''; + + security.sudo.extraConfig = "Defaults lecture=\"never\""; # "We trust you have received the usual lecture from the local System Administrator." + + system = { + stateVersion = lib.mkDefault "25.11"; + + nixos.revision = nixpkgsSrc.revision; + nixos.versionSuffix = "-${lib.substring 0 8 (nixpkgsSrc.revision)}"; + + # thanks piegames (https://git.darmstadt.ccc.de/piegames/home-config/-/blob/master/modules/generic.nix#L84) + activationScripts = { + diff = { + supportsDryActivation = true; + text = '' + ${pkgs.nvd}/bin/nvd --color=always --nix-bin-dir=${pkgs.nix}/bin diff "$(readlink /run/current-system)" "$systemConfig" + # Ignore "failures" because these tools have weird exit codes + ${pkgs.colordiff}/bin/colordiff --nobanner --fakeexitcode --color=always -ur -I '\/nix\/store' \ + -- "$(readlink /run/current-system)/activate" "$systemConfig/activate" | ${pkgs.gnugrep}/bin/grep -v "^Binary files" || true + ${pkgs.colordiff}/bin/colordiff --nobanner --fakeexitcode --color=always -ur -I '\/nix\/store' \ + -x "os-release" -x "issue" \ + -- "$(readlink /run/current-system)/etc" "$systemConfig/etc" | ${pkgs.gnugrep}/bin/grep -v "^Binary files" || true + ${pkgs.colordiff}/bin/colordiff --nobanner --fakeexitcode --color=always -ur -I '\/nix\/store' \ + -x "environment.d" \ + -x "hwdb.d" \ + -- "$(readlink /run/current-system)/systemd" "$systemConfig/systemd" | ${pkgs.gnugrep}/bin/grep -v "^Binary files" || true + ''; + }; }; }; - }; - }; + } + ); }