secubox-deb/packages/secubox-defaults
CyberMind-FR 8e8708f95d ci+packaging: unblock v2.9.0 release — 4 package fixes + partial-release resilience
Five package builds failed on v2.9.0 first attempt, and the release
pipeline cascaded to skip all downstream jobs (collect/publish/images/
live-usb/create-release) because GH Actions treats *any* matrix failure
as a global failure for `needs:` purposes. This commit fixes both
root causes:

Package fixes:
- secubox-eye-square: drop debian/compat (conflicted with control's
  `Build-Depends: debhelper-compat (= 13)`)
- secubox-defaults: same — drop debian/compat
- secubox-metoblizer: switch from legacy `Build-Depends: debhelper
  (>= 13)` (which then requires a debian/compat file) to the modern
  `Build-Depends: debhelper-compat (= 13)` virtual package
- secubox-haproxy: override dh_usrlocal — it can only rehome /usr/local
  directories (Policy 9.1.2), not the individual admin tools we
  deliberately drop there per issue #44

Pipeline resilience:
- build-packages.yml `collect` job: `if: always() && != cancelled` so we
  bundle whatever .deb files the matrix produced even when entries failed
- build-packages.yml `publish` job: predicate now reads collect's success
  rather than the matrix's overall conclusion
- release.yml `build-images`, `build-live-usb`, `publish`,
  `create-release`: all gain `if: always() && needs.build-packages.result
  != 'cancelled'` so a partial build matrix doesn't black-hole the
  release. `create-release` already gracefully skips its
  `if: needs.build-images.result == 'success'` download steps when
  images failed, so the partial release ships what's available.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 10:14:50 +02:00
..
debian ci+packaging: unblock v2.9.0 release — 4 package fixes + partial-release resilience 2026-05-17 10:14:50 +02:00
etc/default WebUI Obfuscation - admin.HOSTNAME.secubox.in Only (#96) 2026-05-12 14:07:11 +02:00
README.md WebUI Obfuscation - admin.HOSTNAME.secubox.in Only (#96) 2026-05-12 14:07:11 +02:00

secubox-defaults

Ships /etc/default/secubox, the single source of truth for the SecuBox board identity:

  • SECUBOX_HOSTNAME — short board name (e.g. gk2).
  • SECUBOX_DOMAIN_SUFFIX — domain root (e.g. secubox.in).

Composed canonical admin URL: https://admin.${SECUBOX_HOSTNAME}.${SECUBOX_DOMAIN_SUFFIX}/.

Consumers (secubox-haproxy API, render scripts, …) read this file at startup and refresh on dpkg-trigger secubox-defaults-changed.

After hand-editing /etc/default/secubox:

curl -fsS -X POST --unix-socket /run/secubox/haproxy.sock \
     http://localhost/webui/refresh
/usr/local/bin/secubox-render-nginx-webui
/usr/local/bin/secubox-haproxy-regen-safe