feat(iso): build end-4 deps in-image, ship end4-pC as default shell
Tests / tests (push) Successful in 2m35s

- customize_airootfs.sh stages dots-hyprland at /opt, runs ./setup
  install-deps as a throwaway builder, harvests the built packages into
  /opt/localrepo so pacstrap resolves them offline
- image ships its own [local-aur] (file:///opt/localrepo); CI and
  localrepo/update.sh keep that copy in sync; .gitignore covers work/,
  out/ and airootfs/opt/localrepo/
- alvin-install runs ./setup install --skip-alldeps on the target
- clone pctrade/end4-pC into /etc/skel/.config/quickshell, patch qsConfig
  ii -> end4-pC in the staged variables.lua (guarded + idempotent), and
  restore the fork after setup rsync --delete's ~/.config/quickshell
- ship user presets in skel, point fish `q` alias at end4-pC
- AGENTS.md: document the fourth package source and new gotchas
This commit is contained in:
alvinlollo
2026-09-27 10:31:49 +10:00
parent 5ffd5d0d82
commit 83ed87f6a9
11 changed files with 1779 additions and 6 deletions
+12
View File
@@ -22,9 +22,21 @@ jobs:
- name: Setup local AUR repo
run: |
set -euo pipefail
shopt -s nullglob
mkdir -p /tmp/localrepo
cp localrepo/*.pkg.tar.zst localrepo/local-aur.db* localrepo/local-aur.files* /tmp/localrepo/
sed -i 's|file:///home/alvin/AlvinArch/localrepo|file:///tmp/localrepo|' pacman.conf
# The medium needs its own copy: the ISO's /etc/pacman.conf points
# [local-aur] at file:///opt/localrepo, which pacstrap reads at
# install time to resolve packages that are not in the official repos
# (built during the ISO build and harvested there by
# airootfs/root/customize_airootfs.sh).
mkdir -p airootfs/opt/localrepo
shipped=(localrepo/*.pkg.tar.zst localrepo/local-aur.db* localrepo/local-aur.files*)
if (( ${#shipped[@]} > 0 )); then
cp -L "${shipped[@]}" airootfs/opt/localrepo/
fi
echo "airootfs/opt/localrepo: $(ls airootfs/opt/localrepo | wc -l) file(s)"
- name: Install archiso and dependencies
run: |