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

Ubuntu 20.x ships outdated glibc version for use with Yad appimage #595

Closed
ShneekeyTheLost opened this issue Sep 22, 2022 · 7 comments
Closed

Comments

@ShneekeyTheLost
Copy link

So, trying to install on Mint and discovered that Mint uses the Ubuntu repos, and the version of glibc in the Ubuntu repos is only 2.31 while the Yad appimage included when using the steamtinkerlaunch yad ai command requires at least version 2.33.

Therefore, users of Ubuntu and Ubuntu-derived distros (like Mint) will need to also update glibc manually in addition to the rest of the stuff since Ubuntu's update schedule appears to be running on geological time scale.

Posting this Issue primarily to inform other Ubuntu-dependent users of this issue which may at first appear to be an issue with Yad (which is a trial in and of itself, thank you for making the appimage to simplify things), and to inform the devs when receiving issues with Yad.

Possibly may wish to include this on the Yad support page to inform new users of this additional step required on these distros. Unfortunately, this isn't an issue that can be as easily resolved with an appimage, and will require user to manually install a compatible version of glibc.

Also possibly check version of glibc during install as a dependency to catch this and inform user?

@sonic2kk
Copy link
Owner

Wow, thank you for opening this issue! Was this glibc issue always a thing? Other users on Ubuntu and Pop!_OS were able to install in the past. Did the AppImage update to require a new glibc recently, or did Yad update? Basically, what caused this breakage if you know?

Definitely a good idea to add it to the wiki, I'll add a note later tonight crediting you and linking to this issue. Do you know if there is a straightforward way of updating glibc on Ubuntu and its derivatives? There are other ways to install a more up-to-date Yad but as you alluded to the AppImage is the most straightforward. Being able to offer a recovery path to users would be ideal, but no worries if you don't know this. Just providing this information was invaluable imo.

For glibc's version checking, I think it's a good idea to warn about this when checking dependencies.

Thanks to you I think we can help users that may experience Issues and also this will likely save a lot of developer headaches on our part trying to figure out why Ubuntu users were having trouble.

@ShneekeyTheLost
Copy link
Author

I can't say about what happened in the past, as I only now discovered steamtinkerlaunch and its Yad requirement. It does seem likely that Yad updated to require a more modern version of glibc, but I haven't previously attempted installation to confirm or deny, and ran into the issue.

Unfortunately, the only means of updating glibc that I can discern is by manually compiling, which can be an absolute nightmare. You can download the latest from the main website here and carefully follow the compile instructions found here. However, this is a massive undertaking, given the size of the project.

Ideally, Ubuntu would finally get off their collective duffs and update to a more modern version of glibc, and maybe updating their repo version of Yad in the process. However Ubuntu is extremely resistant to any such requests from their users, so unless something from one of the large contributors causes them to update, they likely won't.

The only other option would be to use something other than Yad for the GUI, such as Glade (which uses the GTK toolkit). Which... I rather doubt the devs are willing to do something so drastic. Unfortunately, my talents don't lie in that direction so I'm not really able to meaningfully contribute to such a project, or I'd be tempted to roll up my sleeves and give it a crack.

Besides that, the final option I can think of would involve backdating the Yad dependency to one which is compatible with glibc 2.31. I see this as... extremely unlikely, as they wouldn't have updated Yad dependency to a more modern version if they weren't taking advantage of some of the newer features offered.

Ubuntu used to be the 'it just works' distro back in the day. But their glacially slow repo updating system (which, granted, at least has the excuse of leaning to stability rather than speed) has bit me more than once while trying to get things done. Maybe I should go try an Arch based distro again, it's been a few years. Heck, if Steam Deck runs an Arch distro, it can't be that hard anymore.

@ShneekeyTheLost
Copy link
Author

ShneekeyTheLost commented Sep 22, 2022

Update: I've discovered the issue!

Mint 20 is based on Ubuntu 20 which uses glibc 2.31. However, Mint 21 is based on Ubuntu 21 which uses glibc 2.34 which WOULD be compatible

In other words, anyone running into this issue needs to upgrade their distro to one which is compatible.

Manually upgrading glibc is NOT SUGGESTED as it is a core function which can and will break a lot of things if you attempt it.

Updated title to clarify the problem.

@ShneekeyTheLost ShneekeyTheLost changed the title Ubuntu ships outdated glibc version for use with Yad appimage Ubuntu 20.x ships outdated glibc version for use with Yad appimage Sep 22, 2022
@sonic2kk
Copy link
Owner

I can't say about what happened in the past, as I only now discovered steamtinkerlaunch and its Yad requirement. It does seem likely that Yad updated to require a more modern version of glibc, but I haven't previously attempted installation to confirm or deny, and ran into the issue.

Ah, well welcome! And thank you for getting involved, even if it's not under ideal circumstances.

Unfortunately, the only means of updating glibc that I can discern is by manually compiling, which can be an absolute nightmare.

Oh god, yeah I can imagine. Manually compiling something like glibc is... not ideal as you have pointed out.

Ideally, Ubuntu would finally get off their collective duffs and update to a more modern version of glibc, and maybe updating their repo version of Yad in the process.

I entirely agree with you, I could write a book on my... "opinions" on Ubuntu's package versions 😅 But our gripes with Ubuntu won't change that as it stands SteamTinkerLaunch has problems on Ubuntu.

The only other option would be to use something other than Yad for the GUI

Not a bad suggestion but as you suspected this won't happen in the near-future. To my understanding SteamTinkerLaunch grew in complexity and by the time the realization that there may be a better choice than Yad set in, it was too late to switch. Frostworx, the creator, previously expressed that had he known what STL would become, he would've written it in C++ with something like Qt.

Changing to a different toolkit would, as far as I understand, entirely rewriting SteamTinkerLaunch, and so that probably won't happen anytime soon. SteamTinkerLaunch is behemoth written in pure Bash script, over 20,000 lines long 😅

Besides that, the final option I can think of would involve backdating the Yad dependency to one which is compatible with glibc 2.31. I see this as... extremely unlikely, as they wouldn't have updated Yad dependency to a more modern version if they weren't taking advantage of some of the newer features offered.

I agree.

Ubuntu used to be the 'it just works' distro back in the day. But their glacially slow repo updating system (which, granted, at least has the excuse of leaning to stability rather than speed) has bit me more than once while trying to get things done. Maybe I should go try an Arch based distro again, it's been a few years. Heck, if Steam Deck runs an Arch distro, it can't be that hard anymore.

OOooh boy this is another subject I could write a book about, but I won't haha. All I'll say is I wholeheartedly agree with your assessment on Ubuntu. Back on topic, I strongly recommend trying an Arch distro - Honestly pure Arch is probably the way to go (archinstall makes the process fairly straightforward, used it on a few machines now and its pretty solid). As for stability, my current PC has been running Arch for 4 years without a reinstall (I installed manually back then), it hasn't failed me once and I have done quite a lot of tinkering.

Other than Arch you might want to check out Nobara Linux from GloriousEggroll, it even comes with SteamTinkerLaunch preinstalled! It's based on Fedora but has a lot of newer packages and tweaks (mesa-git for AMD/Intel, automatic latest Nvidia proprietary driver installation for those on nvidia). It's very new but I highly recommend it if Arch puts you off, though it only offers GNOME and KDE desktops officially (both with Wayland support).


Mint 20 is based on Ubuntu 20 which uses glibc 2.31. However, Mint 21 is based on Ubuntu 21 which uses glibc 2.34 which WOULD be compatible
In other words, anyone running into this issue needs to upgrade their distro to one which is compatible.

Ah!! This is excellent news. I'll update the wiki with this information right away, I think Ubuntu 20.04 is still supported by Canonical but the other Ubuntu flavours I don't think are (I think they only support the latest LTS?). I also think Pop!_OS updates faster, and as you mentioned Mint is updating. KDE neon should also be using the latest 22.04 LTS.

Basically on the wiki, I will outline that users must be using Ubuntu 22.04 or later, or a distribution based on Ubuntu 22.04 or later, because Yad now requires glibc version 2.34.

Thank you for your research, it is much appreciated! ❤️

@sonic2kk
Copy link
Owner

The Ubuntu wiki has been updated with a warning to users that they must use an up-to-date version of Ubuntu or a distribution based on an up-to-date version of Ubuntu, due to a dependency change with Yad: https://github.com/frostworx/steamtinkerlaunch/wiki/Ubuntu-&-Derivitives

I gave you credit for providing the information and linked to this issue. Awesome find, please let me know if any of the information here should be changed in any way. If it looks good, I think we can close this issue 😃

@ShneekeyTheLost
Copy link
Author

Looks good to me. Going to try again after a distro update. I like the idea of what this project is attempting to do, I already use MO2 for things like Fallout New Vegas, so when I came across references to it on protondb while looking for compatibility issues with FO4, I decided to check it out.

Closing topic.

@sonic2kk
Copy link
Owner

I like the idea of what this project is attempting to do, I already use MO2 for things like Fallout New Vegas, so when I came across references to it on protondb while looking for compatibility issues with FO4, I decided to check it out.

I have a lot of experience using MO2 to mod Fallout: New Vegas, and I recently just updated the ModOrganizer 2 wiki page with more information on getting MO2 set up with STL. Actually, I just finished updating the page when I came across your issue.

Also see the Modding wiki page for some potential issues you might run into, although truth be told I haven't run into them in a few months with newer versions of Proton (7.0-4 and later).

If, in your modding adventures, you come across a problem that you are able to find a fix to or that you know how to fix, please suggest it so that we can get it documented on the wiki to help other users 😄

Good luck, happy tinkering!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants