reformat tibia.nix

This commit is contained in:
Sasza Stanczew 2026-02-16 13:16:20 +01:00
parent 9ec7c2631d
commit 8d1f5e59c3

View file

@ -1,8 +1,7 @@
{ config, pkgs, lib, ... }: { config, pkgs, lib, ... }:
let let
# Legacy libxml2 (2.9.x) — required by Tibia
# Inline legacy libxml2 (2.9.x) because modern Nixpkgs removed it
libxml2_2_9 = pkgs.stdenv.mkDerivation { libxml2_2_9 = pkgs.stdenv.mkDerivation {
pname = "libxml2-2.9"; pname = "libxml2-2.9";
version = "2.9.14"; version = "2.9.14";
@ -23,13 +22,28 @@ let
enableParallelBuilding = true; enableParallelBuilding = true;
}; };
# Wrapper for the real client # Centralized runtime library path for Tibia
tibiaLibPath =
lib.makeLibraryPath [
pkgs.nss
pkgs.nspr
pkgs.libxkbfile
libxml2_2_9
];
# Helper: LD_LIBRARY_PATH export line
exportLibs = ''
export LD_LIBRARY_PATH="${tibiaLibPath}:$LD_LIBRARY_PATH"
'';
# Wrapper for the real client (system-wide)
tibiaClientWrapper = pkgs.writeShellScriptBin "tibia-client" '' tibiaClientWrapper = pkgs.writeShellScriptBin "tibia-client" ''
#!/usr/bin/env bash #!/usr/bin/env bash
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:$LD_LIBRARY_PATH" ${exportLibs}
exec steam-run "$HOME/.local/share/CipSoft GmbH/Tibia/packages/Tibia/bin/client" "$@" exec steam-run "$HOME/.local/share/CipSoft GmbH/Tibia/packages/Tibia/bin/client" "$@"
''; '';
# Script that patches Tibia's package.json
# Patcher for Tibia's package.json
tibiaPatcher = pkgs.writeShellScriptBin "tibia-patch" '' tibiaPatcher = pkgs.writeShellScriptBin "tibia-patch" ''
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
@ -43,20 +57,21 @@ let
exit 0 exit 0
fi fi
# Create wrapper INSIDE the Tibia package directory # Create wrapper inside Tibia package directory
cat > "$LOCALWRAPPER" <<EOF cat > "$LOCALWRAPPER" <<EOF
#!/usr/bin/env bash #!/usr/bin/env bash
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:\$LD_LIBRARY_PATH" ${exportLibs}
exec /run/current-system/sw/bin/tibia-client "\$@" exec /run/current-system/sw/bin/tibia-client "\$@"
EOF EOF
chmod +x "$LOCALWRAPPER" chmod +x "$LOCALWRAPPER"
# Patch JSON to use the local wrapper (relative path!) # Patch JSON to use the local wrapper
sed -i 's#"executable": "bin/client"#"executable": "tibia-client-wrapper"#' "$PKGJSON" sed -i 's#"executable": "bin/client"#"executable": "tibia-client-wrapper"#' "$PKGJSON"
echo "Tibia client patched to use tibia-client-wrapper." echo "Tibia client patched to use tibia-client-wrapper."
''; '';
# Wrapper for the Tibia launcher
tibiaLauncherWrapper = pkgs.writeShellScriptBin "tibia" '' tibiaLauncherWrapper = pkgs.writeShellScriptBin "tibia" ''
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
@ -71,10 +86,11 @@ EOF
tibia-patch tibia-patch
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:$LD_LIBRARY_PATH" ${exportLibs}
exec steam-run "$LAUNCHER" exec steam-run "$LAUNCHER"
''; '';
# Direct client launcher (bypasses Tibia's launcher entirely)
tibiaDirect = pkgs.writeShellScriptBin "tibia-direct" '' tibiaDirect = pkgs.writeShellScriptBin "tibia-direct" ''
#!/usr/bin/env bash #!/usr/bin/env bash
@ -86,8 +102,7 @@ EOF
exit 1 exit 1
fi fi
export LD_LIBRARY_PATH="${pkgs.nss}/lib:${pkgs.libxkbfile}/lib:${pkgs.nspr}/lib:${libxml2_2_9}/lib:$LD_LIBRARY_PATH" ${exportLibs}
exec steam-run "$CLIENT" exec steam-run "$CLIENT"
''; '';