#!/usr/bin/env bash # Gera o ardentryst.pgapp do Ardentryst 1.71 (Jordan Trudgett, 2009: codigo GPL-3+, dados e musica CC BY-SA 3.0, fontes # FreeFont GPL-3+) a partir do tarball do Debian (ardentryst_1.71.orig.tar.gz) com os patches do pacote 1.71-11 (porta para # Python 3, saves, placar online desligado, avisos; o do .desktop fica de fora) e o nosso ardentryst/web.patch (lacos # assincronos, sem threads nem rede, saves em /saves, sem tela cheia, scripts dos niveis via aexec). # Decisao do usuario (2026-11-04): sem os efeitos sonoros do Freesound nem os MonsterSounds. Ficam a musica do autor e as # vozes (NYX, PYR e VOI_Intro); todos os outros efeitos (71 arquivos, mesmos nomes) sao gerados aqui por # ardentryst/gen-sounds.py (sintese nossa, CC0) e codificados em ogg com o wav2ogg (Builds/pygame-music). # Zip deterministico (Builds/pgapp.py). # # src/FredGames.Bundler/Builds/build-ardentryst.sh # # Saida: artifacts/build/ardentryst-1.71/ardentryst.pgapp set -euo pipefail ORIG_SHA256=1672825743327f963dfcf51228b89e335089f73ac70aafbd78eb154ff0eb0169 DEBIAN_SHA256=55dd5027fc4fc93cd49c627b9f369bbaeaea4c6408cf94dd03d323734dc349f8 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/ardentryst-1.71" cache="$root/artifacts/build/cache" tools="$root/artifacts/tools/pygame-music" [ -x "$tools/wav2ogg" ] || { echo "Compile antes a ferramenta de musica: $here/pygame-music/README" >&2; exit 1; } mkdir -p "$cache" orig="$cache/ardentryst_1.71.orig.tar.gz" deb="$cache/ardentryst_1.71-11.debian.tar.xz" [ -f "$orig" ] || curl -fsSL "http://deb.debian.org/debian/pool/main/a/ardentryst/ardentryst_1.71.orig.tar.gz" -o "$orig" [ -f "$deb" ] || curl -fsSL "http://deb.debian.org/debian/pool/main/a/ardentryst/ardentryst_1.71-11.debian.tar.xz" -o "$deb" echo "$ORIG_SHA256 $orig" | shasum -a 256 -c - echo "$DEBIAN_SHA256 $deb" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" "$out/debian" tar -xzf "$orig" -C "$out/tree" --strip-components 1 tar -xJf "$deb" -C "$out/debian" cd "$out/tree" for p in python3 python3fix savesfix offline deprecationfix; do patch -p1 -s --no-backup-if-mismatch < "$out/debian/debian/patches/$p.patch" done patch -p1 -s --no-backup-if-mismatch < "$here/ardentryst/web.patch" # so ficam a musica e as vozes; os outros efeitos sao gerados find Sounds -mindepth 1 -maxdepth 1 ! -name NYX ! -name PYR ! -name 'VOI_Intro_*.ogg' -exec rm -rf {} + python3 -I "$here/ardentryst/gen-sounds.py" "$out/tree/Sounds" "$tools/wav2ogg" rm -rf ardentryst Ardentryst.desktop install.sh INSTALLING Demos Saves Screenshots find . -name '*.orig' -delete find . -name __pycache__ -prune -exec rm -rf {} \; mv ardentryst.py main.py python3 -I "$here/pgapp.py" "$out/tree" "$out/ardentryst.pgapp" shasum -a 256 "$out/ardentryst.pgapp" ls -la "$out/ardentryst.pgapp"