#!/usr/bin/env bash # Gera o solarwolf.pgapp do SolarWolf 1.5 (Pete Shinners, LGPL-2.1; graficos de Eero Tamminen, GPL-2, com os fontes # POV-Ray no tarball) a partir da versao do Debian (solarwolf_1.5+dfsg1.orig.tar.xz) com os patches do pacote # 1.5+dfsg1-7 que valem para a web (porta para Python 3, musica ao ligar o volume, transparencia das imagens, som no # inicio, ortografia; o da thread de noticias, o do .desktop e o do comentario do .desktop ficam de fora) e o nosso # solarwolf/web.patch (laco assincrono, carga dos recursos em quadros em vez de thread, saves em /saves, sem noticias # nem rede, sem tela cheia e sem "quit"). Fora do pacote: oldsolarfox.png (captura de tela de um jogo do Atari), a # tela de noticias, dist/, solarwolf-gfx/ e os arquivos de apoio. A musica .xm vira .ogg aqui (Builds/pygame-music: # modrender, da libxmp 4.6.2, e wav2ogg, da libvorbis 1.3.7, em artifacts/tools/; mesmos bytes a cada execucao). # Zip deterministico (Builds/pgapp.py). # # src/FredGames.Bundler/Builds/build-solarwolf.sh # # Saida: artifacts/build/solarwolf-1.5/solarwolf.pgapp set -euo pipefail ORIG_SHA256=828302972a972f8b0d32ed641e161d2d0922402b011de6463597da6fe931a1f2 DEBIAN_SHA256=310689b996a7f20c85e0fdf79b74beee725840b720d51d758d57ffa6a4f0f8d6 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/solarwolf-1.5" cache="$root/artifacts/build/cache" tools="$root/artifacts/tools/pygame-music" [ -x "$tools/modrender" ] && [ -x "$tools/wav2ogg" ] || { echo "Compile antes as ferramentas de musica: $here/pygame-music/README" >&2; exit 1; } mkdir -p "$cache" orig="$cache/solarwolf_1.5+dfsg1.orig.tar.xz" deb="$cache/solarwolf_1.5+dfsg1-7.debian.tar.xz" [ -f "$orig" ] || curl -fsSL "http://deb.debian.org/debian/pool/main/s/solarwolf/solarwolf_1.5+dfsg1.orig.tar.xz" -o "$orig" [ -f "$deb" ] || curl -fsSL "http://deb.debian.org/debian/pool/main/s/solarwolf/solarwolf_1.5+dfsg1-7.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 -xJf "$orig" -C "$out/tree" --strip-components 1 tar -xJf "$deb" -C "$out/debian" cd "$out/tree" for p in music.patch spelling.patch python3.patch respecting-sound-settings-when-playing-game-start-sound.patch \ fixing-image-transparency-loss-due-to-transition-to-pygame2.patch; do patch -p1 -s < "$out/debian/debian/patches/$p" done patch -p1 -s < "$here/solarwolf/web.patch" find . -name '*.orig' -delete for m in arg aster2_sw; do "$tools/modrender" "data/music/$m.xm" "$out/$m.wav" "$tools/wav2ogg" "$out/$m.wav" "data/music/$m.ogg" 0.2 rm -f "data/music/$m.xm" done rm -rf dist solarwolf-gfx data/.xvpics code/gamenews.py data/news data/oldsolarfox.png data/download.png \ data/downok.gif data/downerror.gif data/newversion.gif data/menu_news_on.png data/menu_news_off.png data/menu_quit_on.png data/menu_quit_off.png mv code/main.py code/solarmain.py mv solarwolf.py main.py find . -name __pycache__ -prune -exec rm -rf {} \; python3 -I "$here/pgapp.py" "$out/tree" "$out/solarwolf.pgapp" shasum -a 256 "$out/solarwolf.pgapp"