aboutsummaryrefslogtreecommitdiffstats
path: root/.extras/image-builder/bootstrap.sh
AgeCommit message (Collapse)AuthorFilesLines
2026-07-13image-builder: feed full build from LAN NFS mirror over HTTP, fix GPG verifyDanilo M.1-1/+5
The full-image build pulled the entire Slackware tree from slackware.nl over WAN: slow (40+ min), flaky (truncated .asc downloads), and it wedged the legacy builder. The identical tree is on LAN NFS, so serve it to the build container instead. - config: add HTTP_MIRROR_HOST/PORT (docker0 bridge gateway + ephemeral port). - bootstrap.sh: bake the LAN HTTP mirror URL into the base image instead of slackware.nl, so the full build inherits it. - build-full-image.sh: start an ephemeral python3 http.server rooted at the variant NFS tree on the bridge for the build duration, killed via the EXIT trap; require_mount so an unmounted NAS fails loud; wait for the server before building. Also fix a silent-failure bug: without importing the Slackware GPG key against the mirror first, slackpkg cannot verify CHECKSUMS.md5 and installs almost nothing (94 packages instead of ~1788). Add "slackpkg update gpg" as the first Dockerfile step; verified the package count jumps 94 -> 1788 with it. Fetch is incremental (slackpkg downloads only installed packages), unlike the buildkit --build-context path which eagerly copies the whole multi-GB tree. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13image-builder: fix false GPG-update warning from SIGPIPE on yes pipeDanilo M.1-1/+9
bootstrap fed slackpkg update gpg with "yes YES |". When slackpkg exits first (key already valid), yes takes SIGPIPE and, under set -e/pipefail, the pipeline reports non-zero even though the key import succeeded, firing a bogus "slackpkg GPG update failed" warning on every run. Read slackpkg own status via PIPESTATUS[1] instead of the pipeline status, inside an if so set -e/pipefail does not abort on the SIGPIPE; capture PIPESTATUS as the first command in each branch so no intervening command resets it. Verified: warning gone on re-run, key still imports. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13image-builder: require_mount in changelog gate so unmounted NAS fails loudDanilo M.1-0/+1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13image-builder: mark scripts executableDanilo M.1-0/+0
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13image-builder: per-variant isolation, non-zero exit on failureDanilo M.1-1/+6
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13image-builder: bootstrap.sh cleanup trap on EXIT not RETURNDanilo M.1-1/+1
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13image-builder: bootstrap.sh base image from NASDanilo M.1-0/+525
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>