Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ModOrganizer 2 missing innoextract on SteamOS #1046

Closed
sirensongss opened this issue Feb 28, 2024 · 5 comments
Closed

ModOrganizer 2 missing innoextract on SteamOS #1046

sirensongss opened this issue Feb 28, 2024 · 5 comments
Labels
bug Something isn't working ModOrganizer 2 Issues related to installing or using ModOrganizer 2 with SteamTinkerLaunch Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck

Comments

@sirensongss
Copy link

System Information

-v14.0.20240218-1

  • Distribution: SteamOS 3.5.7
  • Installation Method: Proton- QT

Issue Description

I am unable to launch MO2 after following the troubleshooting guide. The error "innoextract: error while loading shared libraries: libboost_iostreams.so.1.80.0: cannot open shared object file: No such file or directory" appears in the terminal. I have followed steps to purge MO2 2.5, (the files it told me to delete weren't there)but still the install fails.

Logs

steamtinkerlaunch.log

@sirensongss sirensongss added the bug Something isn't working label Feb 28, 2024
@sonic2kk
Copy link
Owner

sonic2kk commented Feb 28, 2024

This looks like it's because innoextract has not installed properly. Note these lines from your log:

Wed Feb 28 12:44:22 PM PST 2024 ERROR - installMO2 - Version for 'innoextract' is invalid. You need to at least version '1.9'
Wed Feb 28 12:44:22 PM PST 2024 ERROR - installMO2 - Starting /home/deck/.config/steamtinkerlaunch/mo2/compatdata/pfx/drive_c/Modding/MO2/ModOrganizer.exe using wine/proton instead
Wed Feb 28 12:44:22 PM PST 2024 WARN - installMO2 - Unfortunately 'innoextract' is required to install ModOrganizer on the Steam Deck, but it wasn't found
Wed Feb 28 12:44:22 PM PST 2024 WARN - installMO2 - '/home/deck/.config/steamtinkerlaunch/mo2/compatdata/pfx/drive_c/Modding/MO2/ModOrganizer.exe' not found after installation, creating '/dev/shm/steamtinkerlaunch/ModOrganizer-failed.txt' to avoid further attempts

The 2nd line is also why the files you were supposed to delete don't exist.

Go to ~/stl/deps/usr/bin and see if you have an innoextract binary. Earlier in the log, SteamTinkerLaunch appears to suggest that it is found, so I'm not sure why it wouldn't be:

Wed Feb 28 12:44:07 PM PST 2024 INFO - installDependencyVersionFromURL - Using 'innoextract' binary found in path: '/home/deck/stl/deps/usr/bin/innoextract'

Perhaps somehow it pulled the wrong version? You can check with ./home/deck/stl/deps/usr/bin/innoextract --version (it will only print the version, not the package increment, so you will only get i.e. 1.9). If so, you can try manually downloading and replacing the innoextract binrary with innoextract 1.9-8 from the Arch Mirrors. If that still fails, you could also try 1.9-9, but I don't think that'll work.


I have followed steps to purge MO2 2.5

ModOrganizer 2 v2.5 is currently not widely compatible with any Proton versions (including Proton 9.0 beta, afaik) outside of Proton-tkg based on Wine Master, and it will not be downloaded by SteamTinkerLaunch-git.


Also, as a word of warning, I would not recommend using ANY modding tools on SteamOS, ever. It is a headache that I don't wish on anyone, because of how fragile SteamOS is (even the Steam Workshop can brick games).

@sonic2kk sonic2kk added ModOrganizer 2 Issues related to installing or using ModOrganizer 2 with SteamTinkerLaunch Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck labels Feb 28, 2024
@sonic2kk sonic2kk changed the title MO2 Install failing ModOrganizer 2 missing innoextract on SteamOS Feb 28, 2024
@sirensongss
Copy link
Author

I did have an innoextract binary, but replacing it with the one you sent has solved the issue! Thank you so much, I really appreciate you helping out stubborn bozos like myself trying to get this stuff working on steamOS.

I wasn't aware of having installed 2.5, but I was running STL 12.2 briefly before realizing i needed to update, and I uninstalled it entirely before installing a new version.

@sonic2kk
Copy link
Owner

sonic2kk commented Feb 29, 2024

Glad it's working! It might be a bit late now unless the binary is in your trash, but I wonder if it existed, but was 0 bytes? Or at least, smaller than the one you downloaded.

By the way, I should've really clarified and linked to the code, but SteamTinkerLaunch downloads (or is meant to download) from the same link that I provided. It wasn't great of me to just provide a link without much context like that, so my apologies on that front.

I wasn't aware of having installed 2.5, but I was running STL 12.2

Ah okay, yeah, v12.12 will download the latest MO2 including pre-releases. We pin to v2.4.4 for compatibility reasons now though, we should've did it before but MO2 v2.4.4 was simply out for a long time and I guess it was never gotten around to 😄

I'll keep this issue open for a bit until I have time to check if STL actually checks to make sure the stuff it downloads is > 0 bytes. We may not be able to do anything except log for now as we don't have much in the way of a "retry X times" function right now.

Happy gaming!

@sonic2kk
Copy link
Owner

sonic2kk commented Mar 1, 2024

It looks like SteamTinkerLaunch is not checking if a binary is actually > 0 bytes. We only check if it exists in installDependencyVersionFromURL. I guess I made the assumption back then that if the file exists then download probably succeeded, but this is not necessarily the case, as the file is probably created even if download fails.

https://github.com/sonic2kk/steamtinkerlaunch/blob/3691a67e160ee7f058ab48cf8257cf3e6ca81daa/steamtinkerlaunch#L25751

Doing a simple byte size check is probably not enough on its own, but because installDependencyVersionFromURL is generic, we can't really do any more specific checks. It may be a safe assumption that -v exists for all current dependencies but perhaps not in future, so we can't really check if we get a success status code or something.

We can probably change the check to be if [ -f "$(command -v "$DEPCMD")" ] && [ -s "$(command -v "$DEPCMD" ]; then, this is probably enough (-s checks if the file is not empty, i.e. > 0 bytes). We could even store the path returned by $(command -v "$DEPCMD")" in a variable and use it in the checks (and any future checks).

I don't have a Steam Deck to test, so I can't implement this myself, but I'll document this in #859 and then close this issue :-)

@sonic2kk
Copy link
Owner

sonic2kk commented Mar 1, 2024

Updated #859 with some approaches to fix this problem in future. I don't have SteamTinkerLaunch on a Steam Deck anymore so I cannot test this fix. Hopefully someone can come forward and help out, using the information provided in this issue and the linked Steam Deck improvements issue.

I will close this now as I have consolidated the idea for the fix in another issue. Please re-open if you feel like there is something more that should be done. You are also more than welcome to contribute a fix if you want, but of course no pressure, just letting you know the door is always open for STL contributions of any kind :-)

@sonic2kk sonic2kk closed this as completed Mar 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working ModOrganizer 2 Issues related to installing or using ModOrganizer 2 with SteamTinkerLaunch Steam Deck Issues related to using SteamTinkerLaunch on Steam Deck
Projects
None yet
Development

No branches or pull requests

2 participants