Closed lastrogue closed 3 months ago
If I understand correctly, you can ./steamtinkerlaunch compat add
from the cloned repo. That doesn't sound right, you should run the script installed to ~/stl/prefix/steamtinkerlaunch
. But I am not sure that this is what is causing the issue. Also, it doesn't sound like you removed ~/stl
before installing from master / did not run steamtinkerlaunch cleardeckdeps
after updating, so you may have out-of-date dependencies.
If you go to ~/stl/deps/usr/bin
, is innoextract
there and non-zero in bytes? Additionally, can you run ./innoextract --version
and get a valid version back?
If the innoextract
file is zero bytes, the file is just invalid. If you get a libboost
error, this is because the innoextract
version you are using is not compatible with SteamOS. Maybe you moved to Preview recently and got SteamOS 3.6? If so, the innoextract
version is not compatible because of the updated Arch snapshot.
For background: This may be similar to #1135 where, from memory, the innoextract
binary there is a valid file but incompatible with SteamOS 3.6 Preview. innoextract
needs to be bumped manually each time a new SteamOS stable comes out, because one of its C++ dependency libraries (libboost
) gets updated with each Arch snapshot update in each SteamOS 3.X release (i.e. should be compatible going from 3.5.X to 3.5.Y, but incompatible going to 3.5.Y to 3.6).
There is new-ish dependency validation that tries to validate that the innoextract
file downloaded can actually be used on SteamOS, but if the binary is incompatible (for example if running ./innoextract --version
returns a libboost error) then SteamTinkerLaunch assumes the binary is invalid -- which is partially correct, although the check for this is designed with checking file validity in mind.
There is a Steam Deck dependency overhaul in #1111 that should resolve this. When the SteamTinkerLaunch version changes we will re-download all dependencies. However if you are using SteamOS 3.6 Preview then there is no version bump as the dependency version is not bumped until the updated Arch snapshot is in stable.
I think this is an issue with the innoextract
version rather than a failure to download the dependency, although the error message is cryptic and I only catch this because of the linked similar issue where this came up. The wider issue of Steam Deck dependencies as mentioned will be resolved as part of the linked PR, so if some of the above resolves the issue, then the underlying problem should be fixed with #1111. If you are using SteamOS Preview, please keep in mind that the updated Arch snapshot can introduce incompatibilities - for the record, I use SteamOS Preview (but will never again use SteamTinkerLaunch on my Steam Deck :sweat_smile:)
Also, as a cautionary tale from experience, I don't encourage modding games or using modding tools (including ModOrganizer 2, whether it's installed via STL or otherwise) on SteamOS.
Thank you for the detailed write-up.
The binary does exist. it is non-zero in bytes, but I can't get a version back by running ./innoextract --version
.
I instead get an error around it being corrupted or similar.
cat /etc/*-release
returns version 3.6.9. I must have updated to it at some point. Possibly the Steam Family beta I went to that did it.
Either way, I think I'm landing in the camp of not going to be able to run it due to my SteamOS version.
So if I understand everything correctly, I will not be able to run steamtinker on the 3.6 beta until the Arch snapshot is stable and the dependency version is bumped to match, which doesn't have a timeline because of multiple variables lining up. Am I correct on that?
Thanks again, for the help in tracking this down.
The binary does exist. it is non-zero in bytes, but I can't get a version back by running ./innoextract --version. I instead get an error around it being corrupted or similar.
Ah, thanks. Then yes this is either a bad binary or an out of date binary.
So if I understand everything correctly, I will not be able to run steamtinker on the 3.6 beta until the Arch snapshot is stable and the dependency version is bumped to match, which doesn't have a timeline because of multiple variables lining up. Am I correct on that?
You can still use SteamTinkerLaunch, it will work no problem on SteamOS 3.6. By default, ModOrganizer 2 installation will fail because of the outdated innoextract version, but you can use either the steamos-3.6
branch or you can manually update the innoextract
binary by downloading the 1.9-9
binary and replacing it in the ~/stl/deps/usr/bin
folder.
Once SteamOS 3.6 is out in Stable I will merge #1136. I would prefer to merge it ASAP but very few people run even the SteamOS Beta (Steam Client Stable and SteamOS Stable are simply not in a usable state for me most of the time, so I stick to Stable).
It seems like this has the same root cause as #1135, so I will close this issue. One of the above solutions should fix things for you.
Happy gaming!
Actually, the steamos-3.6 branch is not renamed onto master. I'll fix that now.
Rebased, it's up-to-date with master
now so you shouldn't be missing any features by using that branch. You can switch to it and run steamtinkerlaunch cleardeckdeps
to remove the oudated dependencies, and download fresh ones. That branch points to innoextract
1.9-9, so it'll pull that. You should be able to switch back to master
afterwards if you want.
Alternatively again you can just download the innoextract
1.9-9 binary.and place it into the ~/stl/deps/usr/bin
folder as mentioned, then it'll return a version, SteamTinkerLaunch will take the dependency as valid, and should work.
The trouble of dependencies being incompatible with SteamOS versions can't fully be resolved, but automatically updating dependencies to match what new versions of SteamTinkerLaunch require (i.e. once that branch is merged, currently the innoextract
version won't get automatically updated by SteamTinkerLaunch) won't be resolved until #1111 is merged.
System Information
Issue Description
I had been having issues installing Mod Organizer 2 via SteamTinkerLaunch stable version, it kept referring to a missing dependency when trying to install. I was able to open STL, but unable to install MO2.
I shutdown Steam, Removed STL stable from ProtonUp-Qt.
I then followed the steps in the wiki to manually install via cloning the git repo.
These are the commands I ran after cloning the directory and changing to the directory:
./steamtinkerlaunch
./steamtinkerlaunch compat add
I notice when I re-run ./steamtinkerlaunch, it continuously tries to install innoextract, it does not say that it failed.
Logs for this are uploaded as _gitrepo_update_installsteamtinkerlaunch.log
However when I run Skyrim Special Edition with Steam Tinker set as the compatability tool, it launches, has a few pop ups that flash by and I catch that it failed to do something with innoextract. In looking at the steamtinkerlaunch.log file, it says the following:
Fri Aug 9 15:13:45 MDT 2024 WARN - fetchAndExtractDependency - Failed to download dependency 'innoextract-1.9-8-x86_64.pkg.tar.zst', will attempt to continue with installation in case dependency archives already exist at '/home/deck/stl/deps'
Full logs will be uploaded as _compatability_tool_launchsteamtinkerlaunch.log
I am able to browse to the URL in the logs for innoextract and past the file in the location that it is attempt to output the curl command to.
Let me know if there is anything else I can provide.
Logs
gitrepo_update_install_steamtinkerlaunch.log compatability_tool_launch_steamtinkerlaunch.log