Repository navigation
Conversation
The frontend uses the ZIP file name as the plugin name for a local install. When the file name is different from the name in plugin.json, the first check for an installed plugin finds nothing. The installer reads the real name later, but it did not check again. So it did not uninstall the old plugin, and it extracted the ZIP over the running plugin. On Linux, the overwrite of a running backend binary fails with ETXTBSY, and the install stops before it completes. Check again with the real name from plugin.json. Also, the installer no longer adds the plugin to pluginOrder a second time. Fixes SteamDeckHomebrew#993
burghr
marked this pull request as ready for review
October 27, 2026 00:09
AAGaming00
approved these changes
Oct 27, 2026
3 of 5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Please tick as appropriate:
If you're wanting to update a translation or add a new one, please use the weblate page: https://weblate.werwolv.net/projects/decky/
Description
This fixes issue: #993
For a local ZIP install, the frontend uses the ZIP file name as the plugin name.
_install()checks for an installed plugin with that name before it reads the real name fromplugin.json. When the two names are different, the check finds nothing, and the installer does not check again. So it does not uninstall the old plugin, and it extracts the ZIP over the running plugin. On Linux, the overwrite of a running backend binary fails withETXTBSY, and the install stops at "Installing plugin".This change checks again with the real name from
plugin.json. The early check stays, because the install count request for a URL install uses it. The fix also stops a second entry of the plugin inpluginOrder.Testing
Steam Deck OLED, SteamOS 3.9.5, Steam client stable. The test plugin is PowerTools 2.0.3, which has a native backend. The ZIP is
powertools-test-993.zip.Rejected PY callwith a PythonOSErrorforutilities/confirm_plugin_install. The old backend keeps running, andbin/backendis not replaced.pluginOrdergets the name only one time.