docs: fork README; stop building the main-flavor zfs artifact - #3
Conversation
Replaces upstream's heading and build badges with a fork banner, and adds a "Why This Fork Exists" section covering what this fork feeds (zfs-aurora-complex, which consumes it as source rather than as a registry) and which local patches are load-bearing. The upstream per-flavor build badges are dropped rather than repointed: they linked to ublue-os workflow runs, which say nothing about this fork, and this fork's own equivalents are disabled. The ghcr.io/ublue-os/... pull and cosign examples are left pointing at upstream on purpose. This fork publishes no images, so rewriting them to ghcr.io/danathar/... would send readers at images that do not exist, and the checked-in cosign.pub is upstream's key. A callout above "How it's organized" states that outright. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Nothing consumes it. zfs-aurora-complex builds its own ZFS cache from this repo's source and works fine without a published image, so a daily build of an image no one pulls is pure cost. - images.yaml: drop *server-build-group-only-x86 from 43.main and 44.main, removing the `zfs` target. `main` is back to common, nvidia-lts and nvidia-open. - Regenerate build-akmods-main.yml, which is now byte-identical to its pre-change state (schedule minute preserved; the generator randomizes it on every run). The zfs.main block in images.yaml stays. It is behaviourally a no-op -- same values as zfs.default -- but zfs-aurora-complex injects its own main.zfs target at build time and the Justfile reads .zfs.main.linux_experimental when building it, so that block is where a maintainer would reach to silence a red ZFS build. The comment explains why setting it true is the wrong fix. Also switches every Build * akmods workflow to disabled_manually. That is a GitHub repository setting rather than a file, so it is recorded in FORK-PATCHES.md instead of appearing in this diff. FORK-PATCHES.md is updated to match: T2 retired with the reasoning kept (the idea recurs), T1 rewritten to describe the zfs.main block that remains, P1 marked inert, P3 promoted now that the fork README is committed, and the operational section corrected. That section also records why scheduled builds cannot currently succeed at all: with no secrets set, the schedule-only "Retrieve Signing Key" step writes an empty KERNEL_PRIVKEY into certs/private_key.priv, making it 1 byte. build-prep.sh gates its test-key fallback on [[ ! -s ]], which a 1-byte file passes, so fetch-kernel dies on the malformed PEM. This is why PR runs went green while all three nightlies failed in ~2 minutes. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 57351e4917
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| (by merging in `*server-build-group-only-x86`) and published `ghcr.io/danathar/akmods-zfs:main-43` and | ||
| `:main-44`. It has been **reverted** — `images.yaml` and `build-akmods-main.yml` are byte-identical to | ||
| their pre-change state, and no such image was ever actually published (see operational state below). |
There was a problem hiding this comment.
Correct the retired target's contradictory history
The patch registry now says that these images were published and that images.yaml is byte-identical to its pre-change state, but the same paragraph and operational section say no image was ever published, while comparing the pre-target tree (b58bff8) with this commit shows the surviving zfs.main block and namespace changes. Since this file is intended to guide future upstream merges, describe the target as having been configured to publish and limit the restoration claim to the removed build-matrix entries.
Useful? React with 👍 / 👎.
Copilot finding on #3, valid. T2 said images.yaml and build-akmods-main.yml were byte-identical to their pre-target state and in the same breath said the target's images had been "published" and "never actually published". Only the build-matrix entries were reverted; the zfs.main block and org: danathar namespace change (introduced in the same commit as the target) survive on their own merits per T1/P1. No image was ever pushed under the target at all. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Two things: adopt the fork-identity README, and turn off the artifact build added in #1 (nothing consumes it).
Stop building the artifact
zfs-aurora-complexbuilds its own ZFS cache from this repo's source and works fine without a published image, so a daily build of an image no one pulls is pure cost.images.yaml: drop*server-build-group-only-x86from43.main/44.main, removing thezfstarget.mainis back to common, nvidia-lts, nvidia-open.build-akmods-main.ymlregenerated — now byte-identical to its pre-feat: publish main-flavor zfs akmods from this fork #1 state, and identical toublue-os/main. The schedule minute was preserved by hand, since the generator randomizes it on every run.Build * akmodsworkflows switched todisabled_manually. That's a GitHub repo setting, not a file, so it does not appear in this diff — it's recorded inFORK-PATCHES.mdinstead.zfs.maininimages.yamlstays. It's behaviourally a no-op (same values aszfs.default), butzfs-aurora-complexinjects its ownmain.zfstarget at build time and theJustfilereads.zfs.main.linux_experimentalwhen building it. That block is exactly where someone would reach to silence a red ZFS build, and #2's comment explains why flipping it totrueis the wrong fix.README
Fork banner and "Why This Fork Exists", replacing upstream's heading and per-flavor build badges (which linked to ublue-os runs and said nothing about this fork).
The
ghcr.io/ublue-os/...pull andcosign verifyexamples are deliberately left pointing at upstream. This fork publishes nothing, so rewriting them toghcr.io/danathar/...would send readers at images that don't exist, and the checked-incosign.pubis upstream's key. A callout above "How it's organized" says so outright.Registry
FORK-PATCHES.mdupdated: T2 retired with its reasoning kept (the idea recurs), T1 rewritten to cover the survivingzfs.mainblock, P1 marked inert, P3 promoted now that the fork README is actually committed, operational section corrected.It also now records a trap worth an hour of anyone's time: scheduled builds cannot succeed here at all. With no secrets set, the schedule-only
Retrieve Signing Keystep writes an emptyKERNEL_PRIVKEYintocerts/private_key.priv, making it 1 byte.build-prep.shgates its test-key fallback on[[ ! -s ]], which a 1-byte file passes, sofetch-kerneldies on the malformed PEM:That's why #1's PR run went green while all three nightlies (30318357041, 30412211886, 30503677867) failed in ~2 minutes — a green PR check does not predict a green nightly here.
Verification
After this, the only files differing from
ublue-os/mainare the nine with aFORK-PATCHES.mdentry;images.yaml's entire delta isorg: danatharplus the documentedzfs.mainblock.🤖 Generated with Claude Code