From cf844f47e5f7a7fafa5a4fc9f9648ac516ea3a64 Mon Sep 17 00:00:00 2001 From: John McCardle Date: Tue, 30 Jun 2026 19:04:14 -0400 Subject: [PATCH] Set version 0.2.8 for release; fix Linux package libtcod SONAME Release the commits since 0.2.7-prerelease-7drl2026 as 0.2.8, dropping the in-development -7DRL-2026 suffix. Shipped libtcod (Linux .so / Windows .dll / Emscripten .a) rebuilt from submodule 79abc66 so release binaries carry the #321 FOV overflow fix. The Linux .so is built SDL3=OFF with vendored utf8proc so it stays self-contained (only libz + system libs), matching prior releases. Fix tools/package.sh: ship libtcod under its DT_NEEDED SONAME (libtcod.so.2) plus a libtcod.so compat symlink, mirroring the SFML packaging. It previously shipped only the bare libtcod.so, so the Linux package could not resolve libtcod on a clean machine -- an absolute dev RUNPATH masked this, and it also affected 0.2.7. Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01TvvE6TB2cScBVbeap2btHw --- src/McRogueFaceVersion.h | 2 +- tools/package.sh | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/McRogueFaceVersion.h b/src/McRogueFaceVersion.h index c790897..aef6cb1 100644 --- a/src/McRogueFaceVersion.h +++ b/src/McRogueFaceVersion.h @@ -1,4 +1,4 @@ #pragma once // McRogueFace version string (#164) -#define MCRFPY_VERSION "0.2.8-7DRL-2026" +#define MCRFPY_VERSION "0.2.8" diff --git a/tools/package.sh b/tools/package.sh index 02af859..e821b6b 100755 --- a/tools/package.sh +++ b/tools/package.sh @@ -200,8 +200,11 @@ package_linux() { if [ -d "$PROJECT_ROOT/__lib" ]; then # Copy only essential runtime libraries (not test modules) # Core libraries: libpython, libsfml-*, libtcod + # NOTE: libtcod.so.2 is the SONAME the executable records in DT_NEEDED; + # ship the real object under that exact name (not the bare libtcod.so), + # otherwise the runtime loader cannot find it on a clean machine. for lib in libpython3.14.so.1.0 libsfml-graphics.so.2.6.1 libsfml-window.so.2.6.1 \ - libsfml-system.so.2.6.1 libsfml-audio.so.2.6.1 libtcod.so; do + libsfml-system.so.2.6.1 libsfml-audio.so.2.6.1 libtcod.so.2; do [ -f "$PROJECT_ROOT/__lib/$lib" ] && cp "$PROJECT_ROOT/__lib/$lib" "$package_dir/lib/" done @@ -215,7 +218,8 @@ package_linux() { ln -sf libsfml-system.so.2.6.1 libsfml-system.so.2.6 && \ ln -sf libsfml-system.so.2.6.1 libsfml-system.so && \ ln -sf libsfml-audio.so.2.6.1 libsfml-audio.so.2.6 && \ - ln -sf libsfml-audio.so.2.6.1 libsfml-audio.so) + ln -sf libsfml-audio.so.2.6.1 libsfml-audio.so && \ + ln -sf libtcod.so.2 libtcod.so) # Copy Python extension modules to correct location (excluding test modules) # Must match structure: lib/Python/lib.linux-x86_64-3.14/