mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-13 14:16:46 +00:00
Every arm64 Ubuntu CI image build failed twice on 2026-11-11 (14:11 to 14:34 and 15:58 to 16:18 UTC) with Could not resolve 'ports.ubuntu.com' (PR #1477, job 130634835861). apt-mirrors.sh rewrote only the archive.ubuntu.com and security.ubuntu.com sources to the mirror list; arm64 images point at ports.ubuntu.com/ubuntu-ports, which the archive mirrors do not carry, so ports.ubuntu.com stayed their single source. INFINITO_APT_UBUNTU_PORTS_MIRRORS now lists ports.ubuntu.com, then ftp.tu-chemnitz.de and mirrors.dotsrc.org (both official Launchpad mirrors carrying ubuntu-ports with resolute and resolute-security, in sync with ports.ubuntu.com). apt-mirrors.sh points the ports sources at that list the same way the archive sources use theirs, the image build passes the key through, and the external mirror test checks both lists for speed, freshness and officiality. 🎯 Fix: 92 % 💥 Break: 3 % 💸 Cost: – ⏱️ Time: – 🛡️ Security: 75 % 🏆 Score: 67 🚦 Gate: ⚠️ security 75 % < 100: ask the operator before the commit Security 75 % comes from Trivy DS-0002 (image user should not be root) on the root Dockerfile, present on main before this change, which touches no USER line; the finding carries no line, so security.py cannot accept it. Committed on the operator's word with that cause named. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Install Scripts
This directory contains scripts that install and bootstrap host-side tooling used by the project.
- 📦 Install Python, Ansible, and lint dependencies for supported environments
- 🐧 Install ad-hoc APT packages for CI and workflow jobs via
apt.sh - 📦 Build and install distro package metadata via
package.sh(Arch/Debian/Ubuntu/Fedora) - 🗂️ Copy the repository into a fresh package build workspace via
stage.sh, a tar pipe instead of rsync, because rsync's local copy waits for an in-container signal that hosts stacking AppArmor onto containers refuse - 🪞 Point an Ubuntu image's apt sources at
INFINITO_APT_UBUNTU_MIRRORS(amd64) andINFINITO_APT_UBUNTU_PORTS_MIRRORS(arm64, which the archive mirrors do not carry) viaapt-mirrors.sh, run first in the image build: apt tries the mirrors in list order and moves on when one fails or stays silent for 10 s; images of other distros are left untouched - 🏖️ Install OS-level Claude Code sandbox dependencies (
bubblewrap,socat) viasandbox.sh, covering Debian, Ubuntu, Fedora, CentOS/RHEL/Rocky/Alma, and Arch; also exposed asmake install-agent - 🧊 Install the ext4, btrfs and zfs userlands via
filesystem.sh(distro packages, EPEL for btrfs on CentOS, the AUR PKGBUILD for zfs on Arch, the zfsonlinux repository on Fedora/CentOS); the kernel side comes from the host - 🐍 Bootstrap virtual environments and editable project dependencies
- 🛠️ Keep host preparation separate from lint, build, and test execution
The scope of this folder is installation and bootstrap. Lint execution, build workflows, and test orchestration should stay in their dedicated script directories.