Skip to content

Commit d2ae06f

Browse files
committed
1.0.13 (various fixes)
* disable pywebview for linux entirely again * add functionality to use steam breakpad if sentry is disabled * possibly fix some libs not being correctly loaded * dont use cmd, use CreateProcess
1 parent 4b3b32c commit d2ae06f

6 files changed

Lines changed: 35 additions & 12 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "tc2-launcher"
3-
version = "1.0.12"
3+
version = "1.0.13"
44
description = ""
55
authors = [
66
{name = "mastercoms",email = "mastercoms@tuta.io"}

tc2_launcher/env.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,12 @@
2424

2525

2626
def get_host_lib_paths() -> str:
27-
"""Map host library directories to /run/host/ paths for use inside
27+
"""Discover host library directories as /run/host/ paths for use inside
2828
the Sniper container, where the host filesystem is mounted at /run/host/.
29-
Deduplicates via realpath (e.g. /usr/lib64 -> /usr/lib on some distros).
29+
30+
Scans HOST_LIB_DIRS and their immediate subdirectories that contain .so
31+
files (catches RUNPATH-resolved private dirs like /usr/lib64/pulseaudio/).
32+
Deduplicates via realpath to avoid redundant entries (e.g. /usr/lib64 -> /usr/lib).
3033
"""
3134
seen: set[str] = set()
3235
paths: list[str] = []
@@ -38,6 +41,24 @@ def get_host_lib_paths() -> str:
3841
seen.add(real_dir)
3942
paths.append("/run/host" + host_dir)
4043

44+
try:
45+
with os.scandir(real_dir) as it:
46+
for entry in it:
47+
if not entry.is_dir(follow_symlinks=False):
48+
continue
49+
try:
50+
with os.scandir(entry.path) as sub_it:
51+
if any(
52+
f.name.endswith(".so") or ".so." in f.name
53+
for f in sub_it
54+
if f.is_file(follow_symlinks=False)
55+
):
56+
paths.append("/run/host" + os.path.join(host_dir, entry.name))
57+
except OSError:
58+
continue
59+
except OSError:
60+
continue
61+
4162
return os.pathsep.join(paths)
4263

4364

tc2_launcher/gui.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ def _start_gui_private(
429429
current_entry = entry_name
430430
current_queue = queue
431431

432-
supported_os = os.name == "nt" or not is_qt_environment()
432+
supported_os = os.name == "nt"
433433
if supported_os:
434434
width = 800
435435
height = 600

tc2_launcher/run.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -577,7 +577,7 @@ def run_non_blocking(
577577
cmd,
578578
env=new_env,
579579
cwd=cwd,
580-
shell=True,
580+
shell=False,
581581
stdin=None,
582582
stdout=None,
583583
stderr=None,
@@ -670,8 +670,6 @@ def launch_game(
670670
"-steam",
671671
"-particles",
672672
"1",
673-
"-nobreakpad",
674-
"-nominidumps",
675673
]
676674
default_cmds = ["+ip", "127.0.0.1"]
677675
if os.name == "posix":
@@ -732,6 +730,10 @@ def launch_game(
732730
res_opts = ["-w", "-width", "-h", "-height"]
733731
has_res_opt = any(opt in extra_options_set for opt in res_opts)
734732

733+
has_nosentry_opt = "-nosentry" in extra_options_set
734+
if not has_nosentry_opt:
735+
default_args += ["-nobreakpad", "-nominidumps"]
736+
735737
if not has_res_opt and res_w and res_h:
736738
conf_w = game_settings.get("ScreenWidth")
737739
conf_h = game_settings.get("ScreenHeight")

tc2_launcher/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sys
22

3-
VERSION = (1, 0, 12)
3+
VERSION = (1, 0, 13)
44
VERSION_STR = ".".join(map(str, VERSION))
55
DEV_INSTANCE = not getattr(sys, "frozen", False)

version.rc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ VSVersionInfo(
66
ffi=FixedFileInfo(
77
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
88
# Set not needed items to zero 0.
9-
filevers=(1, 0, 12, 0),
10-
prodvers=(1, 0, 12, 0),
9+
filevers=(1, 0, 13, 0),
10+
prodvers=(1, 0, 13, 0),
1111
# Contains a bitmask that specifies the valid bits 'flags'r
1212
mask=0x0,
1313
# Contains a bitmask that specifies the Boolean attributes of the file.
@@ -31,12 +31,12 @@ StringFileInfo(
3131
u'040904B0',
3232
[StringStruct(u'CompanyName', u'mastercomfig'),
3333
StringStruct(u'FileDescription', u'TC2 Launcher'),
34-
StringStruct(u'FileVersion', u'1.0.12.0'),
34+
StringStruct(u'FileVersion', u'1.0.13.0'),
3535
StringStruct(u'InternalName', u'tc2_launcher'),
3636
StringStruct(u'LegalCopyright', u'Copyright © mastercomfig'),
3737
StringStruct(u'OriginalFilename', u'TC2Launcher.exe'),
3838
StringStruct(u'ProductName', u'TC2 Launcher'),
39-
StringStruct(u'ProductVersion', u'1.0.12.0')])
39+
StringStruct(u'ProductVersion', u'1.0.13.0')])
4040
]),
4141
VarFileInfo([VarStruct(u'Translation', [1033, 1200])])
4242
]

0 commit comments

Comments
 (0)