New version 0.5.2, fixes some issues with login.

This commit is contained in:
2026-08-27 21:09:18 +02:00
parent 5a0e6520f4
commit 4288036bb3
11 changed files with 76 additions and 7 deletions

View File

@@ -1,6 +1,6 @@
# PristonTale EU for Linux
Version 0.5.1 installs, updates, repairs, and launches PristonTale EU through a
Version 0.5.2 installs, updates, repairs, and launches PristonTale EU through a
native Linux dashboard. Game files come directly from the publisher and are not
included in this archive.
@@ -9,9 +9,9 @@ included in this archive.
Keep the archive and checksum file together, then run:
```text
sha256sum -c pristontale-eu-linux-installer-v0-5-1.tar.gz.sha256
tar -xzf pristontale-eu-linux-installer-v0-5-1.tar.gz
cd pristontale-eu-linux-installer-v0-5-1
sha256sum -c pristontale-eu-linux-installer-v0-5-2.tar.gz.sha256
tar -xzf pristontale-eu-linux-installer-v0-5-2.tar.gz
cd pristontale-eu-linux-installer-v0-5-2
./install.sh
```
@@ -48,6 +48,7 @@ for rollback.
pristontale-eu --help Show all commands and options
pristontale-eu gui Open the native dashboard
pristontale-eu doctor Check required host components
pristontale-eu login-diagnostics Check the login route without credentials
pristontale-eu update Install or update official files
pristontale-eu update --repair Verify and repair every game file
pristontale-eu update --dry-run Preview an update

View File

@@ -0,0 +1 @@
cd0314c9fba1779dac5bbe24190c174941dbed89c371b68808fefa37de7750bf pristontale-eu-linux-installer-v0-5-2.tar.gz

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1 @@
e391accd5448f3239aeda2561e5faf2eb17b5aa5c61837da609f456815398002 pristontale-eu-linux-update-v0.5.2.tar.gz

11
dist/stable.json vendored Normal file
View File

@@ -0,0 +1,11 @@
{
"archive_sha256": "e391accd5448f3239aeda2561e5faf2eb17b5aa5c61837da609f456815398002",
"archive_size": 71737,
"archive_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/download/v0.5.2/pristontale-eu-linux-update-v0.5.2.tar.gz",
"channel": "stable",
"minimum_updater_version": "0.5.0",
"notes_url": "https://git.m4ko.net/m4ko/pristontale-eu-linux/releases/tag/v0.5.2",
"published_at": "2026-08-27T19:01:33Z",
"schema": 1,
"version": "0.5.2"
}

BIN
dist/stable.json.sig vendored Normal file

Binary file not shown.

View File

@@ -3,7 +3,7 @@
set -euo pipefail
SOURCE_ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
VERSION="${PTLINUX_VERSION:-0.5.1}"
VERSION="${PTLINUX_VERSION:-0.5.2}"
if [[ ! "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]
then
printf 'Invalid launcher version: %s (expected X.Y.Z)\n' "$VERSION" >&2

View File

@@ -4,4 +4,4 @@ from .paths import AppPaths
__all__ = ["AppPaths", "__version__"]
__version__ = "0.5.1"
__version__ = "0.5.2"

View File

@@ -25,6 +25,7 @@ from .launcher import (
prepare_launcher_binary,
)
from .locking import launcher_operation_lock
from .login_diagnostics import inspect_login_environment
from .overlay import cache_compatibility_binaries, cache_runtime_patch, prepare_runtime_view
from .paths import AppPaths
from .runtime import (
@@ -56,6 +57,16 @@ def build_parser() -> argparse.ArgumentParser:
subparsers.add_parser("gui", help="open the native Linux dashboard")
subparsers.add_parser("doctor", help="check cross-distribution dependencies")
login_diagnostics = subparsers.add_parser(
"login-diagnostics",
help="check the client, runtime, and publisher login route without credentials",
)
login_diagnostics.add_argument(
"--timeout",
type=float,
default=5.0,
help="TCP connection timeout in seconds (default: 5)",
)
fetch = subparsers.add_parser("fetch", help="fetch and safely prepare the latest official launcher")
fetch.add_argument("--dry-run", action="store_true")
@@ -169,6 +180,8 @@ def main(argv: Sequence[str] | None = None) -> int:
return 0
if command == "doctor":
return _doctor(arguments.json)
if command == "login-diagnostics":
return _login_diagnostics(paths, arguments.timeout, arguments.json)
if command == "fetch":
return _fetch(paths, arguments.dry_run, arguments.json)
if command == "setup":
@@ -274,6 +287,48 @@ def _doctor(as_json: bool) -> int:
return 0 if report.ok else 1
def _login_diagnostics(paths: AppPaths, timeout_seconds: float, as_json: bool) -> int:
settings = _load_or_default_settings(paths, persist=False)
report = inspect_login_environment(
paths,
settings,
timeout_seconds=timeout_seconds,
)
if as_json:
_print_json(report.to_dict())
else:
probe = report.login_server
print(f"Launcher: {report.launcher_version} ({report.launcher_module})")
print(f"Python: {report.python_executable}")
status = "REACHABLE" if probe.reachable else "UNREACHABLE"
latency = f", {probe.latency_ms:.1f} ms" if probe.latency_ms is not None else ""
print(f"Login server: {status} ({probe.host}:{probe.port}{latency})")
if probe.error:
print(f"Network error: {probe.error}")
print("Authentication: not tested; no credentials or game-protocol data were sent")
print(f"Game profile: {report.game_profile}")
print(f"Game.exe: {report.game_exe}")
if report.game_exe_sha256:
print(f"Game SHA-256: {report.game_exe_sha256}")
print(f"game.dll: {report.game_dll}")
if report.game_dll_sha256:
print(f"DLL SHA-256: {report.game_dll_sha256}")
if report.runtime_kind:
print(f"Runtime: {report.runtime_kind} ({report.runtime_path or 'unknown path'})")
else:
print(f"Runtime: unavailable ({report.runtime_error or 'selection failed'})")
prefix_status = "ready" if report.prefix_ready else "not ready"
directx_status = "ready" if report.directx_ready else "not ready"
print(f"Prefix: {prefix_status}; DirectX helpers {directx_status}")
print(f"Prefix path: {report.prefix or 'unavailable'}")
print(f"Latest log: {report.latest_game_log or 'not found'}")
if report.latest_game_log_modified_at:
print(f"Log modified: {report.latest_game_log_modified_at}")
for warning in report.warnings:
print(f"Warning: {warning}")
return 0 if report.preflight_ok else 1
def _fetch(paths: AppPaths, dry_run: bool, as_json: bool) -> int:
if not dry_run:
paths.create_base_directories()

View File

@@ -1,6 +1,6 @@
[project]
name = "ptdiag"
version = "0.5.1"
version = "0.5.2"
description = "PristonTale EU Linux installer, clean launcher, and diagnostic harness"
requires-python = ">=3.11"
dependencies = []