Compare commits

...

2 Commits

Author SHA1 Message Date
AAGaming 02e8640ad4 bump @decky/ui to fix ConfirmModal component (#789)
Co-Authored-By: shadow <81448108+shdwmtr@users.noreply.github.com>
2025-07-08 23:30:47 -04:00
AAGaming e63983dba9 Fix updater reload freezing (#786) 2025-07-01 15:24:52 -04:00
4 changed files with 10 additions and 12 deletions
@@ -11,7 +11,7 @@ logger = logging.getLogger("localplatform")
# subprocess._ENV
ENV = Mapping[str, str]
ProcessIO = int | IO[Any] | None
async def run(args: list[str], stdin: ProcessIO = DEVNULL, stdout: ProcessIO = PIPE, stderr: ProcessIO = PIPE, env: ENV | None = None) -> tuple[Process, bytes | None, bytes | None]:
async def run(args: list[str], stdin: ProcessIO = DEVNULL, stdout: ProcessIO = PIPE, stderr: ProcessIO = PIPE, env: ENV | None = {"LD_LIBRARY_PATH": ""}) -> tuple[Process, bytes | None, bytes | None]:
proc = await create_subprocess_exec(args[0], *(args[1:]), stdin=stdin, stdout=stdout, stderr=stderr, env=env)
proc_stdout, proc_stderr = await proc.communicate()
return (proc, proc_stdout, proc_stderr)
@@ -146,6 +146,7 @@ async def service_active(service_name : str) -> bool:
async def service_restart(service_name : str, block : bool = True) -> bool:
await run(["systemctl", "daemon-reload"])
logger.info("Systemd reload done.")
cmd = ["systemctl", "restart", service_name]
if not block:
@@ -272,7 +273,7 @@ async def close_cef_socket():
logger.info(f"Closing CEF socket with PID {pid} and FD {fd}")
# Use gdb to inject a close() call for the socket fd into steamwebhelper
gdb_ret, _, _ = await run(["gdb", "--nx", "-p", pid, "--batch", "--eval-command", f"call (int)close({fd})"], env={"LD_LIBRARY_PATH": ""})
gdb_ret, _, _ = await run(["gdb", "--nx", "-p", pid, "--batch", "--eval-command", f"call (int)close({fd})"])
if gdb_ret.returncode != 0:
logger.error(f"Failed to close CEF socket with gdb! return code: {str(gdb_ret.returncode)}", exc_info=True)
+1 -4
View File
@@ -14,7 +14,6 @@ import zipfile
from aiohttp import ClientSession
from . import helpers
from .injector import get_gamepadui_tab
from .settings import SettingsManager
if TYPE_CHECKING:
from .main import PluginManager
@@ -142,8 +141,6 @@ class Updater:
async def download_decky_binary(self, download_url: str, version: str, is_zip: bool = False, size_in_bytes: int | None = None):
download_filename = "PluginLoader" if ON_LINUX else "PluginLoader.exe"
download_temp_filename = download_filename + ".new"
tab = await get_gamepadui_tab()
await tab.open_websocket()
if size_in_bytes == None:
size_in_bytes = 26214400 # 25MiB, a reasonable overestimate (19.6MiB as of 2024/02/25)
@@ -186,7 +183,6 @@ class Updater:
logger.info("Updated loader installation.")
await self.context.ws.emit("updater/finish_download")
await tab.close_websocket()
await self.do_restart()
async def do_update(self):
@@ -244,6 +240,7 @@ class Updater:
await self.download_decky_binary(download_url, version, size_in_bytes=size_in_bytes)
async def do_restart(self):
logger.info("Restarting loader for update.")
await service_restart("plugin_loader", block=False)
async def do_shutdown(self):
+1 -1
View File
@@ -47,7 +47,7 @@
}
},
"dependencies": {
"@decky/ui": "^4.10.2",
"@decky/ui": "^4.10.3",
"compare-versions": "^6.1.1",
"filesize": "^10.1.2",
"i18next": "^23.11.5",
+5 -5
View File
@@ -9,8 +9,8 @@ importers:
.:
dependencies:
'@decky/ui':
specifier: ^4.10.2
version: 4.10.2
specifier: ^4.10.3
version: 4.10.3
compare-versions:
specifier: ^6.1.1
version: 6.1.1
@@ -218,8 +218,8 @@ packages:
'@decky/api@1.1.1':
resolution: {integrity: sha512-R5fkBRHBt5QIQY7Q0AlbVIhlIZ/nTzwBOoi8Rt4Go2fjFnoMKPInCJl6cPjXzimGwl2pyqKJgY6VnH6ar0XrHQ==}
'@decky/ui@4.10.2':
resolution: {integrity: sha512-dfY/OEI/rhG4d3Tvx4Y3TLmBrJ+nAm2RTbkoOJ3VAglql3Lu7RY2ixeDFbs21ZWWzWh/C+9dAQKjQ4lx4d1f2g==}
'@decky/ui@4.10.3':
resolution: {integrity: sha512-4Di2CocFtDZkEybMb/3ouYgXHwEbPh95v8ElazsNJFaAnUrTdMdZMa/EMVLClyK9WxEMOkxDmLZ5n7HGmTcT3g==}
'@esbuild/aix-ppc64@0.20.2':
resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==}
@@ -2295,7 +2295,7 @@ snapshots:
'@decky/api@1.1.1': {}
'@decky/ui@4.10.2': {}
'@decky/ui@4.10.3': {}
'@esbuild/aix-ppc64@0.20.2':
optional: true