feat(build): add preflight package resolution and fws-dnd package
Add preflight package resolution step in build-offi.sh to validate all profile packages against pacman repositories before mkarchiso execution. This prevents 'target not found' errors during ISO creation by catching missing packages early with helpful error messages and recovery instructions. Introduce fws-dnd package (D&D 5e manager for FWS with GTK4 interface) to the local package build process in setup-aur.sh. Include PKGBUILD definition and source tarball. When package resolution fails, the build now exits with clear feedback pointing users to run setup-aur.sh to build missing dependencies like fws-dnd.
This commit is contained in:
@@ -353,6 +353,31 @@ echo "==> Correction des retours à la ligne Windows (dos2unix)..."
|
||||
pacman -S --needed --noconfirm dos2unix
|
||||
find /tmp/fws-build/releng -type f -exec dos2unix {} + 2>/dev/null
|
||||
|
||||
# ── Pré-vol : résolution de TOUS les paquets du profil ──
|
||||
# « error: target not found » ne doit plus surgir en plein mkarchiso : on
|
||||
# résout la liste complète (packages.x86_64 fusionné) contre le pacman.conf
|
||||
# du profil (fws-local injecté inclus) dans une base temporaire. S'il manque
|
||||
# un paquet, on échoue ICI avec la liste + le geste correctif.
|
||||
echo "==> Pré-vol : résolution des paquets du profil..."
|
||||
PREFLIGHT_DB="$(mktemp -d)"
|
||||
pacman -Sy --config /tmp/fws-build/releng/pacman.conf --dbpath "$PREFLIGHT_DB" >/dev/null
|
||||
mapfile -t PROFILE_PKGS < <(sed -e 's/#.*//' -e 's/[[:space:]]//g' -e '/^$/d' \
|
||||
/tmp/fws-build/releng/packages.x86_64)
|
||||
# -Sp n'installe rien (affiche les URLs) ; LC_ALL=C fige le motif d'erreur.
|
||||
# stderr → capture, stdout → poubelle ; le pipeline sed sort toujours 0.
|
||||
MISSING="$(LC_ALL=C pacman -Sp --config /tmp/fws-build/releng/pacman.conf \
|
||||
--dbpath "$PREFLIGHT_DB" "${PROFILE_PKGS[@]}" 2>&1 >/dev/null \
|
||||
| sed -n 's/^error: target not found:[[:space:]]*//p')"
|
||||
rm -rf "$PREFLIGHT_DB"
|
||||
if [ -n "$MISSING" ]; then
|
||||
echo -e "\e[31mPaquets introuvables dans les dépôts du profil :\e[0m" >&2
|
||||
printf ' \e[31m%s\e[0m\n' $MISSING >&2
|
||||
echo -e "\e[33mDépôt fws-local absent/incomplet ? Lance ./setup-aur.sh (construit" >&2
|
||||
echo -e "anaconda, winboat-bin, fws-dnd, …) puis relance ce script.\e[0m" >&2
|
||||
exit 1
|
||||
fi
|
||||
echo "==> Pré-vol OK : ${#PROFILE_PKGS[@]} paquets résolus."
|
||||
|
||||
echo "==> Lancement de mkarchiso..."
|
||||
mkdir -p "$OUT_DIR"
|
||||
# mkarchiso fait un « rm » interne de l'ISO cible avant de la (ré)écrire ; si
|
||||
|
||||
Reference in New Issue
Block a user