Commit Graph
57 Commits
Author SHA1 Message Date
Claude 1341e40552 Read PKG_TOKEN at job-level env (not workflow-level)
The secrets context is not available to workflow-level env, so
`PKG_TOKEN: ${{ secrets.PKG_TOKEN }}` there resolved to empty and the publish
step's guard failed. Declare it in the preflight and build job env blocks
instead, where the secrets context is available.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:24:48 +08:00
Claude b80ce9c786 Run cron at 04:00 GMT+8; verify the full artifact set, not just the image
- Cron moved to 20:00 UTC (= 04:00 Asia/Shanghai); Actions cron is UTC.
- Add scripts/registry-has-all.sh: a (version, arch) counts as published only
  when the kernel image, the meta-package at that EXACT version, bbrv3-config,
  and (amd64) the headers are all present. A partial previous upload now
  rebuilds instead of being treated as done.
- Use it in all three registry checks: preflight, per-arch pre-build, and the
  pre-publish recheck.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 18:35:57 +08:00
Claude b8ccd431ea Distribute kernel via Gitea Debian apt repo; track stable not mainline
- 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>
2026-06-17 18:26:05 +08:00
Claude d888a9700e Simplify to kernel-install-only; default to BBR + CAKE + ECN
Strip the project down to installing the BBRv3 kernel and nothing else, and
ship a single standard kernel (x86_64 + arm64, latest stable).

- install.sh: 1413 -> ~490 lines. Menu reduced to install latest / install
  specific / status / uninstall. Removed all qdisc/TCP-tuning/speedtest/
  smart-bandwidth/"madness"/clear-config features, the security (Dirty-Frag)
  mitigations, the profile (standard/max) selection, and the self-installing
  `b` quick command. Map dep command->package (sysctl->procps, awk->gawk) and
  abort clearly when a hard dependency is missing.
- Default network stack: on install write /etc/sysctl.d/99-bbrv3.conf with
  net.core.default_qdisc=cake, net.ipv4.tcp_congestion_control=bbr,
  net.ipv4.tcp_ecn=1 (CAKE has no compile-time default-qdisc option, so it is
  set via sysctl); uninstall removes the drop-in.
- prepare-kernel-config.sh: build sch_cake in (=y) so cake works at boot; drop
  the now-dead build-configs/ output.
- build.yml: matrix is just x86_64 + arm64 standard; tags are <arch>-<version>;
  removed the max profile/steps and the update-config-baseline auto-commit job;
  releases carry only the kernel .deb assets.
- Remove cve_2026_31431_detector.py and the two max-profile helper scripts.
- README rewritten to the 4-action, kernel-only scope.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 14:24:56 +08:00
Claude c9c52c7e94 Fix arm64 cross-build headers failure and installer error reporting
Follow-up fixes from adversarial verification of the Gitea adaptation:

- build.yml: arm64 `bindeb-pkg` cross build aborted on the linux-headers
  package because CONFIG_MODULE_SIG_FORMAT=y makes it cross-compile
  scripts/sign-file, which needs arm64 OpenSSL dev headers that aren't
  installed. Pass DEB_BUILD_PROFILES=pkg.linux-upstream.nokernelheaders on
  the arm64 make line (the maintainers' documented remedy) so the arm64
  release publishes an image package without the unbuildable headers deb.
- install.sh: api_get used `curl -fsSL`, which discards the HTTP error body,
  so Gitea's {"message":...} never reached check_release_api_response and the
  token/permission hint was dead on 401/403/404. Drop -f (keep -sSL) so the
  error JSON is surfaced; network-layer failures still exit non-zero.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:33:54 +08:00
Claude 8ac6ae9411 Adapt CI and installer to self-hosted Gitea, cross-compile arm64
Retarget the build pipeline and installer from GitHub to the
git.chilldove.com Gitea instance (icePigeon/linux-kernel-bbrv3).

- build.yml: replace gh CLI release checks and softprops/action-gh-release
  with Gitea REST API calls (curl); drop the GitHub-only delete-workflow-runs
  cleanup job; authenticate via the auto-injected GITEA_TOKEN.
- Avoid actions/upload-artifact@v4 / download-artifact@v4 (they abort on
  Gitea as GHES): pass the config baseline between jobs via Gitea release
  assets instead of artifacts, and drop the redundant deb/marker artifacts.
- Cross-compile arm64 on the single x86_64 runner
  (CROSS_COMPILE=aarch64-linux-gnu-, gcc-aarch64-linux-gnu); thread
  CROSS_COMPILE through prepare-kernel-config.sh olddefconfig.
- install.sh: fetch releases from the Gitea API, self-update and CVE
  detector from Gitea raw URLs, token-authenticated asset downloads,
  paginate the release list; keep GITHUB_TOKEN/GH_TOKEN as fallbacks.
- README.md: point install/download URLs at Gitea, reword GitHub -> Gitea,
  remove the GitHub-only Star History widget.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:24:54 +08:00
Claude b5a270b34a Drop joeyblog branding from kernel build artifact names
Rename the kernel LOCALVERSION used by the build from
-joeyblog-bbrv3 / -joeyblog-bbrv3-max to -bbrv3 / -bbrv3-max, so the
produced uname strings and .deb package names no longer carry the
custom brand. Standard vs max kernels stay distinguishable.

- .github/workflows/build.yml: matrix localversion for all four jobs
- scripts/build-bbrv3-max-kernel.sh: LOCALVERSION for local max builds
- install.sh: update detection, profile matching, expected-uname and
  uninstall logic to key off -bbrv3 / -bbrv3-max instead of joeyblog
- README.md: describe uninstall by the new package-name suffixes

Runtime config paths (e.g. /etc/sysctl.d/99-joeyblog.conf) and author
attribution are unchanged; they are not kernel names.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PvXBX9hm6GzStHUMDZzDoZ
2026-06-17 04:47:10 +00:00
byjoey 09b66322e4 Handle Debian codenames without VERSION_ID 2026-06-16 22:18:19 +08:00
byjoey c5ce59967f Switch quick command to b 2026-06-15 21:05:45 +08:00
byjoey f1813e94aa Add bbrv3 quick command 2026-06-15 21:00:56 +08:00
byjoey c5b789cd4b Align Max workflow description 2026-06-15 20:52:07 +08:00
byjoey af2d3d678b Retune BBRv3 Max for usable throughput 2026-06-15 20:51:04 +08:00
github-actions[bot] 07c246922c Refresh generated kernel config baselines [skip ci] 2026-06-15 11:55:33 +00:00
byjoey 5d3245018f Tame BBRv3 Max feedback loop 2026-06-15 18:13:27 +08:00
byjoey a177824bcf Fix BBRv3 Max random probe bounds 2026-06-15 16:15:44 +08:00
byjoey 8e47418950 Add BBRv3 Max kernel build 2026-06-15 15:04:37 +08:00
byjoey 9c436cad53 Add extreme BBR speedtest mode 2026-06-15 14:08:02 +08:00
byjoey 36991589bb Skip kernel build when releases already exist 2026-06-15 11:52:15 +08:00
byjoey 55d4a71769 Remove pre-install userspace refresh 2026-06-15 11:26:20 +08:00
byjoey 9561dcd59a Auto-repair pending grub package state 2026-06-15 09:10:25 +08:00
byjoey 18110692e3 Raise Ubuntu minimum to 24.04 2026-06-15 01:08:10 +08:00
byJoey 4e86cd1740 Update README.md 2026-06-15 00:49:47 +08:00
byjoey 80bf8692b6 Avoid grub package upgrades before kernel install 2026-06-15 00:46:12 +08:00
byjoey 57a57c81ed Remove speedtest-cli before smart tuning 2026-06-14 13:27:03 +08:00
byjoey 990f52e5f5 Require explicit link latency input 2026-06-14 12:38:22 +08:00
byjoey 88aef5e492 Require manual RTT for smart tuning 2026-06-14 12:27:14 +08:00
byjoey e482610409 Make qdisc modes apply to active interfaces 2026-06-14 12:22:57 +08:00
byjoey ef00d937e9 Refresh userspace before kernel installs 2026-06-14 03:28:57 +08:00
byjoey bdbdba96cf Add BBRv3 patch for Linux 7.1 2026-06-14 03:26:38 +08:00
byjoey 8bed6e101d Clarify minimum and recommended OS versions 2026-06-14 03:05:22 +08:00
byjoey a01f12e8a4 Gate kernel installs on supported OS versions 2026-06-14 03:02:37 +08:00
byjoey 4cabf49af5 Require official Ookla speedtest binary 2026-06-13 18:39:31 +08:00
byjoey a2d07c1a60 Remove automatic RTT mode 2026-06-13 10:32:24 +08:00
byjoey f2e49f5fc0 Revert "Prefer China speedtest servers for smart tuning"
This reverts commit ce7c5c3169ef5e5966e2469a6ef8d4f544476f3f.
2026-06-13 10:30:39 +08:00
byjoey 353fe51299 Revert "Require ISP selection for China speedtest"
This reverts commit 613909d9ee4abed0d50468fb5008141f59807f6c.
2026-06-13 10:30:39 +08:00
byjoey e010dad3fa Revert "Fallback to Hong Kong speedtest servers"
This reverts commit 17b2a98e90c413c9d3bad7413f94a8325ac27036.
2026-06-13 10:30:39 +08:00
byjoey bd76ee6cbb Revert "Use Speedtest API for China server lookup"
This reverts commit c35ea49a753f11eae32d01430b1d65a3716dcec9.
2026-06-13 10:30:39 +08:00
byjoey 8bd5489754 Use Speedtest API for China server lookup 2026-06-13 10:25:16 +08:00
byjoey 024219972a Fallback to Hong Kong speedtest servers 2026-06-13 10:20:07 +08:00
byjoey fbb00aca1a Require ISP selection for China speedtest 2026-06-13 10:14:54 +08:00
byjoey 0c4bba832c Prefer China speedtest servers for smart tuning 2026-06-13 10:12:42 +08:00
byjoey 1157b7743f Add smart bandwidth tuning controls 2026-06-13 09:58:22 +08:00
byjoey 270612582e Add APAC TCP tuning option 2026-06-12 17:29:48 +08:00
byjoey a9464ae313 Avoid rebuilding existing kernel releases 2026-06-12 16:42:21 +08:00
github-actions[bot] b0560b0206 Refresh generated kernel config baselines [skip ci] 2026-06-12 05:14:34 +00:00
byjoey 2505e5d82b Roll forward generated config baselines 2026-06-12 11:33:47 +08:00
byjoey 72b7dc3210 Export generated kernel configs 2026-06-12 11:29:02 +08:00
byjoey e5e8876546 Enable legacy iptables modules 2026-06-12 11:20:21 +08:00
byjoey 5c4c18889e Enable default fq qdisc selection 2026-06-12 11:03:40 +08:00
byjoey 2448d781b4 Use provider baseline kernel configs 2026-06-12 10:58:45 +08:00