feat(pkgbuild): add anaconda and anaconda-widgets packages with dependency ordering

Add PKGBUILD files for anaconda (45.8) and anaconda-widgets (45.8) to support Fedora's Anaconda installer ported to Arch for FWS with liveimg payload.

anaconda-widgets:
- GTK3 UI widgets with GObject introspection
- Extracted from anaconda source as autonomous autotools project
- Versioned on anaconda release

anaconda:
- Main installer with comprehensive dependency set
- Includes note that further iteration needed on real Arch for buildtime deps and Fedora-specific paths
- Removes widgets files (provided by anaconda-widgets package)

Update setup-aur.sh to build local packages in proper dependency order:
- Define LOCAL_BUILD_ORDER array to ensure leaf packages build first
- anaconda builds last (depends on all other local packages)
- Extract build logic into build_local_pkg function
- Fallback to alphabetical scan for future unlisted packages
- This prevents makepkg -s failures when deps are not yet installed
This commit is contained in:
2026-06-17 11:24:10 +02:00
parent c6f066b0d9
commit 4473f0eee7
3 changed files with 157 additions and 10 deletions
+33 -10
View File
@@ -224,20 +224,43 @@ done
# cf. portage de l'installateur Anaconda sur Arch.
# ------------------------------------------------------------
LOCAL_PKGBUILDS_DIR="$SCRIPT_DIR/pkgbuilds"
# Ordre de build des PKGBUILD locaux : les FEUILLES d'abord, « anaconda » EN
# DERNIER (il dépend de tous les autres locaux + des AUR déjà construits).
# La boucle alpha naïve mettrait « anaconda » en premier → makepkg -s échouerait
# (ses deps locales pas encore construites/installées).
LOCAL_BUILD_ORDER=(
pykickstart python-productmd python-requests-file python-simpleline
python-meh python-blivet anaconda-widgets anaconda
)
BUILT_LOCAL=()
build_local_pkg() {
local name="$1" dir="$LOCAL_PKGBUILDS_DIR/$1"
[ -f "$dir/PKGBUILD" ] || return 0
info "Build local $name"
rm -rf "$BUILD_DIR/$name"
cp -a "$dir" "$BUILD_DIR/$name"
chown -R "$BUILD_USER:$BUILD_USER" "$BUILD_DIR/$name"
su - "$BUILD_USER" -c "cd $BUILD_DIR/$name && makepkg -sf --noconfirm" \
|| error "Build local $name échoué"
# Install (même logique que la boucle AUR) pour que les paquets locaux
# dépendants se résolvent (ex. anaconda → anaconda-widgets/blivet/meh/…).
pacman -U --noconfirm "$BUILD_DIR/$name/"*.pkg.tar.zst \
|| error "Install du paquet local $name échouée"
success "$name build + install OK"
BUILT_LOCAL+=("$name")
}
if [ -d "$LOCAL_PKGBUILDS_DIR" ]; then
# 1) Ordre explicite (deps avant dépendants).
for name in "${LOCAL_BUILD_ORDER[@]}"; do build_local_pkg "$name"; done
# 2) Repli : tout PKGBUILD présent mais non listé (futur ajout oublié).
for dir in "$LOCAL_PKGBUILDS_DIR"/*/; do
[ -f "$dir/PKGBUILD" ] || continue
name="$(basename "$dir")"
info "Build local $name"
cp -a "$dir" "$BUILD_DIR/$name"
chown -R "$BUILD_USER:$BUILD_USER" "$BUILD_DIR/$name"
su - "$BUILD_USER" -c "cd $BUILD_DIR/$name && makepkg -sf --noconfirm" \
|| error "Build local $name échoué"
# Install (même logique que la boucle AUR) pour que les futurs paquets
# locaux dépendants se résolvent (ex. anaconda → pykickstart/blivet/…).
pacman -U --noconfirm "$BUILD_DIR/$name/"*.pkg.tar.zst \
|| error "Install du paquet local $name échouée"
success "$name build + install OK"
printf '%s\n' "${BUILT_LOCAL[@]}" | grep -qx "$name" && continue
build_local_pkg "$name"
done
fi