diff --git a/build-offi.sh b/build-offi.sh index 336ed0b..b191dab 100755 --- a/build-offi.sh +++ b/build-offi.sh @@ -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 diff --git a/pkgbuilds/fws-dnd/PKGBUILD b/pkgbuilds/fws-dnd/PKGBUILD new file mode 100644 index 0000000..250eb26 --- /dev/null +++ b/pkgbuilds/fws-dnd/PKGBUILD @@ -0,0 +1,31 @@ +# Maintainer: FWS +pkgname=fws-dnd +pkgver=2.0.0 +pkgrel=1 +pkgdesc="Gestionnaire D&D 5e pour FWS (GTK4) : dés, créateur de personnage (règles officielles), grimoire, sessions, tracker de combat" +arch=('any') +url="https://fws.local/fws-dnd" +license=('MIT') +depends=('python' 'python-gobject' 'gtk4') +source=("${pkgname}-${pkgver}.tar.gz") +sha256sums=('SKIP') + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + + # Module Python (application GTK4) + install -d "${pkgdir}/usr/share/${pkgname}" + cp -r gui/fwsdnd "${pkgdir}/usr/share/${pkgname}/" + # pas de bytecode pré-généré dans le paquet + find "${pkgdir}/usr/share/${pkgname}" -name '__pycache__' -type d -exec rm -rf {} + + + # Exécutable + install -Dm755 bin/fws-dnd "${pkgdir}/usr/bin/fws-dnd" + + # Intégration bureau + install -Dm644 fws-dnd.desktop "${pkgdir}/usr/share/applications/fws-dnd.desktop" + install -Dm644 fws-dnd.svg "${pkgdir}/usr/share/icons/hicolor/scalable/apps/fws-dnd.svg" + + # Documentation + install -Dm644 README.md "${pkgdir}/usr/share/doc/${pkgname}/README.md" +} diff --git a/pkgbuilds/fws-dnd/fws-dnd-2.0.0.tar.gz b/pkgbuilds/fws-dnd/fws-dnd-2.0.0.tar.gz new file mode 100644 index 0000000..f3e3990 Binary files /dev/null and b/pkgbuilds/fws-dnd/fws-dnd-2.0.0.tar.gz differ diff --git a/setup-aur.sh b/setup-aur.sh index d446f91..f3d39e8 100755 --- a/setup-aur.sh +++ b/setup-aur.sh @@ -1,7 +1,7 @@ #!/bin/bash # ============================================================ -# FWS — Build des paquets AUR (winboat-bin) + PKGBUILD locaux (deps Anaconda) -# et création du repo pacman local fws-local/. +# FWS — Build des paquets AUR (winboat-bin) + PKGBUILD locaux (deps Anaconda, +# fws-dnd) et création du repo pacman local fws-local/. # # Rejoue-le si tu changes la liste AUR_PACKAGES ou pour # rafraîchir le repo local. @@ -297,6 +297,7 @@ done # --- PKGBUILD locaux FWS (ordre explicite, feuilles d'abord, anaconda dernier) --- LOCAL_PKGBUILDS_DIR="$SCRIPT_DIR/pkgbuilds" LOCAL_BUILD_ORDER=( + fws-dnd pykickstart python-productmd python-requests-file python-simpleline python-crypt_r python-iso639 python-langtable python-meh python-blivet anaconda-widgets anaconda