I think I discovered an issue with Gramps-GodotSteam in regards to a dependency. Buddy of mine exported his game and it won't run on my machine (Ubuntu 18.04).
The output I get by running the game (with full permissions et al using "./game-name") is:
./game-name: /lib/x86_64-linux-gnu/libm.so.6: version 'GLIBC_2.29' not found
(required by ./game-name)
A third party was able to run the game in arch, where they have libc6 2.29, but they were unable to run the game in their ubuntu partition in which they had libc6 2.27, which is what I also have.
libc6 is not something we can easily update on ubuntu, it could cause crashes and brick systems. From what I was able to discover online, this is a cross-compilation user. If this library could be compiled using an earlier version of libc6, many linux users would be greatly appreciative.
Hmm, that's pretty interesting and luckily pinned down to a specific thing.
Was he using pre-compiled version of the editor / template from the release section of the repo? Was he compiling it himself?
I will check my Ubuntu (19.10) installation to see about libc6. So this is basically an issue where older versions of libc6 won't work with newer ones. If that is the case, then I would need to VM a copy of Ubuntu 16.04 to do compilations from.
I will export a test project and upload it to this issue to see if you can run it.
I used the pre-compiled linux files, I believe they were from the Godot 3.x - Steamworks 1.48 - GodotSteam 3.3.2 release
Rokasv is the person in particular who's game I had encountered this problem with, just to be clear about their presence.
Something to note is that without going into sensitive material, steam had run their own testing on rokas' game and it passed their review, which I found odd. I take it that their linux testing, if any, may be limited to steamOS or something else, but somehow this issue wasn't caught. Furthermore, it looks to me like they "officially supports Ubuntu running Ubuntu 12.04 LTS or newer and SteamOS".
@Gramps I was happy to see the suggestion to go as far back as Ubuntu 16.04 for compilation, but perchance 12.04 might be the best target overall if that's what steam "officially supports", 12.04 having libc6-2.15
I think that might be all the useful and actionable information I have, hope it's of some help to y'all. Goodluck!
@rokasv Thanks for the info. Is there any way you can export a test project using that setup and attach it to this issue? Just something that is a blank scene with just the SteamInit() process and a print output.
@SubSage Yeah, I noticed on my Ubuntu 19.10 I am running libc6 2.30 (thanks Synaptic). I attached a basic test which will probably fail but worth a shot... for science.
If I remember correctly, when I had my game go through testing, they actually use Ubuntu; I think either 16.04 or 18.04. I had asked them their test setup so I could resolve the issue since their feedback was pretty lacking. Yeah, I'm not sure how much else we are supposed to talk about with that process but I learned a fair amount about it I had no idea of prior.
There is a good chance their SteamOS documentation is out-of-date, I know some other areas are. Current SteamOS is based on Debian Jessie... not sure what that translates to in Ubuntu, but it's pretty dated. I know 12.04 has already passed EOL a while ago and no one should be using it currently. Plus if the GCC / G++ versions are too old there will probably be other compiling issues.
From what I gather SteamOS is using libc6 2.19 but I am currently downloading SteamOS to check it out myself. Feels like they've kind of abandoned it, but might just be a small team with other projects going on or on Valve Time.
The Godot documentation on Linux compiling suggests using Ubuntu 16.04 for best compatibility so I may have to start targeting that for pre-compile builds on the repo.
Thanks again! All of that was very helpful and very useful. Especially since I was unaware this was even a problem!
Your test needs the .so file "libsteam_api.so", can't run because that file doesn't exist.
Here's an empty project being exported the same way: https://rokasv.itch.io/hidden (bin.zip)
Sage confirmed it crashes the same way.
@SubSage Ah, I thought you had all that stuff from @rokasv's test. Here they are.
test-libs.zip
@rokasv Thanks for the file. Works fine for me, but I do have libc6 2.30 installed on Ubuntu 19.10. The file that I uploaded, however, can you run that? Or do you get a similar error to what @SubSage was talking about?
I don't have a Linux machine setup, only found the issue through Sage.
Like he said, the export seemed to pass steam testing and another guy confirmed it worked on one of his machines and didn't on another.
Ah, OK. Well, I'll do some further testing and see what I can dig up.
Sorry, I've been busy; I downloaded the extra files and here are the results, which are the same bug
Hey there. All good and understandable given everything going on.
Well, we presumed that would be the outcome but good to confirm it. Only odd thing is I compile it with libc6 2.30 not 2.29. Not sure what that means, but doesn't work either way.
I'll get a 16.40 VM set up and SteamOS and do some more experimental exports to try out.
Well, never could get SteamOS installed for whatever reason. I think my created ISO was bad. Nonetheless, I got a version of GodotSteam compiled with Ubuntu 16.04 then exported a test project. Seems libc6 version in 16.04 is 2.23.
See if these work for you. If they are successful then I will add them in the release section.
Weirdly, when I try to run @rokasv's test export in my 16.04 VM it fails to find both GLIBC_2.27 and GLIBC_2.29. So that's only slightly more confusing.
@SubSage I'm not sure why if @rokasv used the pre-compiled templates and editor, both compiled with libc6 2.30, his exported example would be looking for both 2.27 and 2.29 but not 2.30. Or why it would be looking for 2.29 on your system. I feel like I'm missing something.
@Gramps That test project runs for me; caveats to it are that it closes quickly if steam is not running. If I have steam running, it seems to run as intended, icons, data, achievements all working.
Yeah, it should close if Steam isn't on; I think. Well, good to know that version of the pre-compile works. I'll get it added to the release section today.
New pre-compiles with libc6 version 2.23 are now up in releases. Future pre-compiles will be done in Ubuntu 16.04 LTS until it hits EOL, then I'll move up to the next release.
At this point I guess I'll close the issue. Let me know if there is anything else and we will re-open it!