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:
+33
-10
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user