diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 43602f5..debe1d6 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -555,6 +555,20 @@ Design/decision records and a running log of shipped work (items marked `%26`, `%3F`, `%23`, `caf%C3%A9`. **Unverified on purpose:** whether each vendor's page fills the box or auto-submits — testing that means posting into Bernardo's own accounts. +- ✓ **No codename in the branding (2026-07-16):** Bernardo — the distro is + "Nomarchy 26.05", not "Nomarchy 26.05 (Yarara)". Yarara is *nixpkgs'* release + name; presenting it as ours told users something true about our upstream and + nothing about our product, in the one string (`PRETTY_NAME`) every fetch tool + and greeter reads. Upstream hardcodes the codename into `VERSION`, + `PRETTY_NAME` and `VERSION_CODENAME` (`misc/version.nix`) with no switch, and + `system.nixos.codeName = ""` is the wrong lever — it renders `26.05 ()`. So the + assembled strings are overridden through the merge hooks upstream does provide + (`extraOSReleaseArgs` / `extraLSBReleaseArgs`), which is also where our project + URLs already live. Empty `VERSION_CODENAME`/`DISTRIB_CODENAME` is deliberate: + `//` cannot remove a key, os-release(5) makes every field optional, and the + file already ships `ANSI_COLOR=""`. **`nixos-version` still prints "(Yarara)" + by design** — that command answers "which nixpkgs was this built from?", the + one question the codename genuinely answers. - ✓ **The #107 compat shim is pinned (#133, 2026-07-16):** `mkFlake` prefers `state.json` and still accepts the legacy `theme-state.json`, because a machine only migrates on its next menu write — but nothing evaluated a diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 4bc4d75..08e818e 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -55,11 +55,32 @@ in # restore them pointing at the project instead. system.nixos.distroName = lib.mkDefault "Nomarchy"; system.nixos.distroId = lib.mkDefault "nomarchy"; + # No codename. Upstream hardcodes it into three fields — + # VERSION = "${release} (${codeName})", PRETTY_NAME likewise, plus + # VERSION_CODENAME (misc/version.nix) — so "Nomarchy 26.05 (Yarara)" read + # as if Yarara were *our* release name. It is nixpkgs': ours is the number, + # and the number is what tells you what you are running. Setting + # `system.nixos.codeName = ""` is the wrong lever — it renders "26.05 ()" — + # so override the assembled strings through the merge hook upstream + # provides. The empty VERSION_CODENAME is deliberate and in keeping with + # the file's own style (ANSI_COLOR="", IMAGE_ID="" …): the key cannot be + # removed through `//`, and os-release(5) makes every field optional. + # `nixos-version` still prints "(Yarara)" and is left alone on purpose — + # that command reports the *nixpkgs* release this system was built from, + # which is exactly when the codename is the honest answer. system.nixos.extraOSReleaseArgs = lib.mkDefault { HOME_URL = "https://git.bemagri.xyz/bernardo/Nomarchy"; DOCUMENTATION_URL = "https://git.bemagri.xyz/bernardo/Nomarchy"; SUPPORT_URL = "https://git.bemagri.xyz/bernardo/Nomarchy"; BUG_REPORT_URL = "https://git.bemagri.xyz/bernardo/Nomarchy/issues"; + VERSION = config.system.nixos.release; + VERSION_CODENAME = ""; + PRETTY_NAME = "${config.system.nixos.distroName} ${config.system.nixos.release}"; + }; + system.nixos.extraLSBReleaseArgs = lib.mkDefault { + LSB_VERSION = config.system.nixos.release; + DISTRIB_CODENAME = ""; + DISTRIB_DESCRIPTION = "${config.system.nixos.distroName} ${config.system.nixos.release}"; }; # MOTD on TTY/SSH login (the desktop auto-logs into Hyprland, so this