The Actions runner is overseas, so git.chilldove.com resolves to Cloudflare anycast. Cloudflare free/pro rejects request bodies over 100MB with HTTP 413 at the edge, and the linux-image .deb exceeds 100MB, so every publish failed. The Gitea origin itself accepts the upload (verified to >=110MB); only the CDN edge rejects it.
Pin the publish curl to the registry origin via curl --resolve, sourced from the new PKG_ORIGIN_IP repo variable (no IP baked into git; SNI/Host stay git.chilldove.com so TLS and package routing are unchanged). Document the prerequisite in README and the migration spec.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Publish .deb packages to Gitea's built-in Debian registry (apt source)
instead of Releases; CI uploads to pool/stable/main and stops creating
Releases. One apt source line serves amd64 and arm64.
- Add linux-image-bbrv3 meta-package so `apt upgrade` tracks the latest
stable kernel while older kernels stay installed for fallback. Its
dependency is the actual built image package name (immune to localversion
drift).
- Add bbrv3-config package shipping the BBR+CAKE+ECN sysctl drop-in as a
conffile (applied via postinst), replacing the installer's sysctl write.
- Rewrite install.sh to add the apt source + signing key and install the
meta package; keep the OS-version gate, status check and uninstall menu,
plus an apt-mark hold escape hatch.
- select-stable-kernel.sh: pick the highest stable point release whose
series is below mainline and has a matching BBRv3 patch, so a freshly-cut
series (latest stable == mainline, e.g. 7.1) is not built. Currently 7.0.12.
- Exclude linux-libc-dev (clashes with the distro's headers) and drop the
"by Joey" MODULE_DESCRIPTION step and release branding.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>