solus-project / linux-steam-integration

Helper for enabling better Steam integration on Linux
GNU Lesser General Public License v2.1
433 stars 19 forks source link

libbz2 is missing / can't load steamui #38

Closed ghost closed 6 years ago

ghost commented 6 years ago

Hello, wanted to try LSI after watching this project since a long time.

Used Copr repo for Fedora, followed all instructions, and I have bz2 libs installed (32&64 bits). However when I launch LSI Steam, it says that libbz2 is missing and that it can't load steamui.

I have Steam from RPMFusion, installed and used before trying LSI. Client switched to beta version. Didn't try Negativo17 version but shouldn't be required.

ikeydoherty commented 6 years ago

o_O do you actually have /usr/lib64/libbz2.so.1.0 and the 32-bit equivalent or is it a weird ABI on Fedora? Also whats the terminal spam saying?

ghost commented 6 years ago

Thank you for this fast answer Ikey!

Ok you made me realize that instructions found on Copr page were missing something. In /usr/lib/ I have libbz2.so.1.0.6 and libbz2.so.1 but not libbz2.so.1.0.

After doing su -c 'ln -sf /usr/lib/libbz2.so.1.0.6 /usr/lib/libbz2.so.1.0' LSI Steam runs well. It should be added in Copr instructions, however command for libudev 32-bit was given.

Sorry for wasting your time :laughing: and keep up the good work! Feel free to contact me if you have any problem in Steam community, I'm a global moderator :)

ikeydoherty commented 6 years ago

No no not a waste of time at all! Here lemme add a fix into LSI for you

ikeydoherty commented 6 years ago

Should do the trick nicely: 287781356c705fabafdc3c358393d7e67dd99e54

ikeydoherty commented 6 years ago

Ah .1.0 - lemme refix :P

ikeydoherty commented 6 years ago

There. xD

ghost commented 6 years ago

Thanks. So linking libbz2 shouldn't be necessary now, LSI taking care of it directly, right?

By the way, following instructions in the Copr page, this is what we have to do for Fedora26/27: /usr/lib64/libbz2.so.1.0.6 -> /usr/lib64/libbz2.so.1.0 /usr/lib/libbz2.so.1.0.6 -> /usr/lib/libbz2.so.1.0 (that's the one we found here) /usr/lib64/libudev.so.1.6.6 -> /usr/lib64/libudev.so.0 /usr/lib/libudev.so.1.6.6 -> /usr/lib/libudev.so.0

ikeydoherty commented 6 years ago

Yeah the next release of LSI will automatically redirect to the correct bz2. What's the story with udev, and do you have a libudev.so.1 ?

ghost commented 6 years ago

Don't know, it's just from the instructions in Copr repo but I can't tell if it's really needed or not regarding udev.

And yes, I have libudev.so.1 in both 32bits/64bits directories (as links). And it's probably default because if I remember well I only linked libs in user directories when I was tweaking my Steam installation a few months ago, not in root directories including /usr/lib and /usr/lib64.

ikeydoherty commented 6 years ago

Yeah - fwiw I know that some stuff can require libudev.so.0 - just can't remember what. If it becomes a problem, well, we'll stick a new rule in.

ghost commented 6 years ago

Thank you again!

ikeydoherty commented 6 years ago

Np bud :) FWIW my hope is we can eventually wean folks off the distro packages and move towards the snap and solve all of these kinds of issues, and ensure the runtime is open for solid contributions (as well as the Solus base). But I suspect when that guy goes out public, we're gonna need an army of willing testers.. :)

ghost commented 6 years ago

I heard of the snap version, I'll try it if I have some spare time. Like many others, I would prefer Flatpak instead of Snap :p but we really can't complain, what you did for Steam integration is awesome (and I speak as someone who's close to Valve) and bringing everything to other people instead of keeping that for Solus as a killer feature is great.

ikeydoherty commented 6 years ago

It'll be a short while before I consider the snap ready for prime time fwiw. Though I'd argue one of the killer features of Solus is that we care about portability and architecture a lot :)

alunux commented 6 years ago

@DarthWound thanks for bringing this issue to upstream. Finally, this issue was fixed, I will include this patch to copr. Thanks @ikeydoherty!

ikeydoherty commented 6 years ago

Finally, this issue was fixed

Can't fix what I don't know about. :)

ghost commented 6 years ago

@alunux Are the instructions (about symlinks) mandatory? It seems that these steps aren't required if they are handled by LSI but I could be wrong. BTW in your readme you're talking about Steam from negativo17 but package from RPMFusion works flawlessly too. Thank you for updating the repo.

alunux commented 6 years ago

@DarthWound No, we don't need to do that again. After I update the repo, I will update the readme too :)

ghost commented 6 years ago

Nice. By the way did you think about making your packages available in RPMFusion?

Coprs are often testbeds before getting in official repositories or RPMFusion. This way we avoid using several thirdparty repos that may break, like what happens with PPAs on Ubuntu.

ikeydoherty commented 6 years ago

Do note however that LSI can only do these tricks when liblsi-intercept is enabled, which infers using native runtime

ghost commented 6 years ago

Thank you for giving this detail. Not a problem for me as I enable everything except force 32-bits mode.

ikeydoherty commented 6 years ago

Sweet! As LSI has evolved this has become the preferred mode, and tbh this is where LSI actually kicks in. In time we'll sorta frown on not using those options as it would lead to unexpected experiences (like, idk, not working)

ghost commented 6 years ago

Well, I enabled them because imo it doesn't make sense to install LSI if it's to disable two options that actually make LSI awesome and useful :D

alunux commented 6 years ago

Can libudev be handled by LSI too? Without it, Steam gets stuck at "Connecting Steam account: user...". On Fedora 26/27, we have:

➜ ll /usr/lib64/libudev.so*
lrwxrwxrwx 1 root root   16 Oct 26 18:53 /usr/lib64/libudev.so.1 -> libudev.so.1.6.6
-rwxr-xr-x 1 root root 136K Oct 26 18:54 /usr/lib64/libudev.so.1.6.6

➜ ll /usr/lib/libudev.so*  
lrwxrwxrwx 1 root root   16 Oct 26 18:54 /usr/lib/libudev.so.1 -> libudev.so.1.6.6
-rwxr-xr-x 1 root root 134K Oct 26 18:54 /usr/lib/libudev.so.1.6.6

screenshot from 2017-11-15 21 02 37

alunux commented 6 years ago

It was fixed by doing symlink:

ln -sf /usr/lib64/libudev.so.1.6.6 /usr/lib64/libudev.so.0
ln -sf /usr/lib/libudev.so.1.6.6 /usr/lib/libudev.so.0

Because when i do ldd steamclient.so, I get libudev.so.0 => not found

ikeydoherty commented 6 years ago

Can you try it with https://github.com/solus-project/linux-steam-integration/commit/f8b583bc0b9fbed0b0e5131504eae4d277674553 applied and see if that resolves the issue?

alunux commented 6 years ago

@ikeydoherty OMG, it works! [lsi:steam] transforming vendor soname: libudev.so.0 -> libudev.so.1 screenshot from 2017-11-15 21 47 47

ikeydoherty commented 6 years ago

magic :D

ghost commented 6 years ago

Was wondering why my DNF update told me "cannot install the best update candidate for package linux-steam-integration-libs-0.6-2.fc27.i686 - nothing provides linux-steam-integration = 0.6-3.fc27 needed by linux-steam-integration-libs-0.6-3.fc27.i686", now I know :D a new build with this patch is pending in Copr.

alunux commented 6 years ago

@DarthWound Aha, sorry, Copr build is not finished yet. I don't know what happen with Copr infrastructure (the build had been pending since 5 hours ago) :( https://copr.fedorainfracloud.org/coprs/alunux/linux-steam-integration/build/662304/

ghost commented 6 years ago

Build failed for F26-32, F26-64, and F27-64.

alunux commented 6 years ago

@DarthWound try again :)

ghost commented 6 years ago

It's ok now :)

Poor Ikey, Fedora users spamming his notifications :angel:

ikeydoherty commented 6 years ago

lol