Files
computer-playbook/scripts/install
kevinveenbirkenbachandClaude Opus 5.5 ae8a15b4e9 fix(install): give arm64 Ubuntu images a ports mirror list
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>
2026-11-11 18:05:22 +00:00
..
…
…
…

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) and INFINITO_APT_UBUNTU_PORTS_MIRRORS (arm64, which the archive mirrors do not carry) via apt-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) via sandbox.sh, covering Debian, Ubuntu, Fedora, CentOS/RHEL/Rocky/Alma, and Arch; also exposed as make 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.