{ config, pkgs, lib, ... }: let # ──────────────────────────────────────────────────────────────── # Legacy libxml2 (2.9.x) — Tibia requires libxml2.so.2 # ──────────────────────────────────────────────────────────────── libxml2_2_9 = pkgs.stdenv.mkDerivation { pname = "libxml2-2.9"; version = "2.9.14"; src = pkgs.fetchurl { url = "https://download.gnome.org/sources/libxml2/2.9/libxml2-2.9.14.tar.xz"; sha256 = "sha256-YNdKJX0czsBHXnScui8hVZ5IE577pv8oIkNXx8eY3+4="; }; nativeBuildInputs = [ pkgs.pkg-config ]; buildInputs = [ pkgs.zlib pkgs.xz ]; configureFlags = [ "--disable-static" "--without-python" ]; enableParallelBuilding = true; }; # ──────────────────────────────────────────────────────────────── # Centralized runtime library path for Tibia # ──────────────────────────────────────────────────────────────── tibiaLibPath = lib.makeLibraryPath [ pkgs.nss pkgs.nspr pkgs.libxkbfile libxml2_2_9 ]; exportLibs = '' export LD_LIBRARY_PATH="${tibiaLibPath}:$LD_LIBRARY_PATH" ''; # ──────────────────────────────────────────────────────────────── # System-wide wrapper for the Tibia client binary # ──────────────────────────────────────────────────────────────── tibiaClientWrapper = pkgs.writeShellScriptBin "tibia-client" '' #!/usr/bin/env bash ${exportLibs} exec steam-run "$HOME/.local/share/CipSoft GmbH/Tibia/packages/Tibia/bin/client" "$@" ''; # ──────────────────────────────────────────────────────────────── # Patcher for Tibia's package.json (launcher → wrapper redirect) # ──────────────────────────────────────────────────────────────── tibiaPatcher = pkgs.writeShellScriptBin "tibia-patch" '' #!/usr/bin/env bash set -e PKGDIR="$HOME/.local/share/CipSoft GmbH/Tibia/packages/Tibia" PKGJSON="$PKGDIR/package.json" LOCALWRAPPER="$PKGDIR/tibia-client-wrapper" if [ ! -f "$PKGJSON" ]; then echo "package.json not found — run the launcher once first." exit 0 fi cat > "$LOCALWRAPPER" <