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) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TvvE6TB2cScBVbeap2btHw
This commit is contained in:
John McCardle 2026-06-30 19:04:14 -04:00
commit cf844f47e5
2 changed files with 7 additions and 3 deletions

View file

@ -1,4 +1,4 @@
#pragma once
// McRogueFace version string (#164)
#define MCRFPY_VERSION "0.2.8-7DRL-2026"
#define MCRFPY_VERSION "0.2.8"

View file

@ -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/