aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xdocker/build-inner.sh10
-rw-r--r--libs/basic_games/gog_utils.py10
2 files changed, 17 insertions, 3 deletions
diff --git a/docker/build-inner.sh b/docker/build-inner.sh
index 3290069..66dadf6 100755
--- a/docker/build-inner.sh
+++ b/docker/build-inner.sh
@@ -78,8 +78,9 @@ if [ -d "build/src/src/plugins/libs" ]; then
mkdir -p "${OUT_DIR}/plugins/libs"
cp -f build/src/src/plugins/libs/mobase*.so "${OUT_DIR}/plugins/libs/" 2>/dev/null || true
fi
-# Python helper shims
+# Python helper shims — copy from source directly (cmake staging is OFF by default)
for f in lzokay.py winreg.py pyCfg.py; do
+ [ -f "libs/${f}" ] && cp -f "libs/${f}" "${OUT_DIR}/plugins/"
[ -f "build/src/src/plugins/${f}" ] && cp -f "build/src/src/plugins/${f}" "${OUT_DIR}/plugins/"
done
@@ -103,7 +104,12 @@ if [ -d "libs/basic_games" ]; then
-o -name "CMakeLists.txt" -o -name "CMakePresets.json" \) \
-delete 2>/dev/null || true
fi
-# data/ dir (DDS headers etc., used by native plugins too).
+# data/ dir (DDS headers etc., used by DDSPreview.py via plugins/data/ in sys.path).
+# Stage DDS package from source directly (cmake staging is OFF by default).
+if [ -d "libs/preview_dds/src/DDS" ]; then
+ mkdir -p "${OUT_DIR}/plugins/data"
+ cp -a "libs/preview_dds/src/DDS" "${OUT_DIR}/plugins/data/DDS"
+fi
[ -d "build/src/src/plugins/data" ] && cp -a "build/src/src/plugins/data" "${OUT_DIR}/plugins/"
# ── Stylesheets (themes) ──
diff --git a/libs/basic_games/gog_utils.py b/libs/basic_games/gog_utils.py
index de66ec2..750f739 100644
--- a/libs/basic_games/gog_utils.py
+++ b/libs/basic_games/gog_utils.py
@@ -5,9 +5,13 @@ from __future__ import annotations
import json
import sys
-import winreg
from pathlib import Path
+try:
+ import winreg
+except ImportError:
+ winreg = None # type: ignore[assignment]
+
def _find_heroic_gog_games() -> dict[str, Path]:
"""Detect GOG games installed via Heroic Launcher on Linux."""
@@ -44,6 +48,10 @@ def _find_heroic_gog_games() -> dict[str, Path]:
def find_games() -> dict[str, Path]:
+ if winreg is None:
+ # winreg not available (Linux without shim); use Heroic GOG.
+ return _find_heroic_gog_games()
+
# List the game IDs from the registry (Windows):
game_ids: list[str] = []
try: