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

Support non-multilib x86_64 setups #38

Open
PureTryOut opened this issue Apr 30, 2020 · 11 comments
Open

Support non-multilib x86_64 setups #38

PureTryOut opened this issue Apr 30, 2020 · 11 comments

Comments

@PureTryOut
Copy link

Currently Lutris seems to expect an x86_64 system to always be capable of running 32-bit programs, while this is not always the case. For example Gentoo Linux has an option to install as pure 64-bit, and Alpine Linux supports both x86_64 and x86 but not multilib. Besides, distributions like Ubuntu have already shown they like to get rid of multilib as well.

There are several ways of solving this, for example by installing stuff into Flatpaks, chroots or even Docker (assuming the kernel has been configured to be able to execute 32-bit programs on 64-bit). Preferably Lutris would realize itself the system is not capable of running 32-bit programs, and automatically install stuff in a compatible way when required.

@stephanlachnit
Copy link
Member

Lutris runs just fine on amd64 setups with 32bit multilib, however you can't use stuff like gamemoderun since Lutris doesn't check whether the game is 32 or 64 bit (correct me if I'm wrong).
What would be possible is a "no-multilib"-option, unlocking all options anyway, however I don't think it should be default (consider that Steam only provides 32bit binaries).

@PureTryOut
Copy link
Author

Lutris runs just fine on amd64 setups with 32bit multilib

Well yes, but I'm talking about non-multilib systems. Why should it be an option, rather than automatically doing the things required to make it work?

@stephanlachnit
Copy link
Member

Well yes, but I'm talking about non-multilib systems. Why should it be an option, rather than automatically doing the things required to make it work?

Since that requires a huge amount of work. Lutris is intended for "throw a game at me and I make it work", and that just isn't the case without 32bit support (sadly). Adding checks to figure out whether the missing 32bit support is intentional or not is just to much effort for something that isn't really inside the scope of Lutris.
And enabling for example gamemoderun anyway even if the 32 bit lib isn't installed will cause unnecessary bug reports.

By adding an option for users that really don't want any 32 bit software can use some more features of Lutris, and the other users will still be pointed out to missing software, without requiring a ton of code.

@strycore
Copy link
Member

Having a 64 bit only system is a good way to not be able to run any game at all.

@PureTryOut
Copy link
Author

That is honestly a short-sighted argument, and will cause you problems in the future. There are multiple ways to run 32-bit stuff on 64-bit only hosts, I play my Steam games fine for example.

Alpine Linux might not be a distribution you care for, but Ubuntu probably is. Did you forget they tried to get rid of multilib already? They reverted their changes after a lot of backlash, but they will undoubtedly try again in the future. Why not be prepared for this?

@strycore
Copy link
Member

strycore commented May 1, 2020

Fine, let's talk.
For me, removing 32bit multilib equates to the death of all 32bit applications.
Apple did it and they didn't have a 32 bit compatibility layer and now their 32bit software ecosystem is no longer executable on modern hardware.
The way Canonical seemed to do things looked a lot like that too.

There are just so many things that are dependent on a 32 bit layer being here.
I'm mostly concerned about graphics drivers though. It's nice to have the ability to run 32bit code in Flatpak or Docker for example but containers aren't going to ship kernel drivers so how 32bit GL and Vulkan drivers going to be available?

@strycore strycore reopened this May 1, 2020
@PureTryOut
Copy link
Author

but containers aren't going to ship kernel drivers so how 32bit GL and Vulkan drivers going to be available?

I'll be honest, I don't fully know how this works. But I can most definitely say I can run 32-bit Steam games perfectly fine in the Steam Flatpak, on my system which is most definitely 64-bit only.

I'm guessing the 32-bit userland drivers are installed in one of the runtime layers Flatpak offers, which makes it work. There is no such thing as a 32-bit kernel driver, even on a multilib 64-bit systems. It seems the userland drivers don't care what bit kernel you are running.

@strycore
Copy link
Member

strycore commented May 1, 2020

I don't have a full understanding of this either. This is why I'm hostile to anyone even suggesting removal of 32bit layers.
The way Canonical did it shows they didn't have a clear understanding either, they were just eager to remove the architecture because it's too much work for them to maintain.
And Apple just didn't care.

Our number 1 response to people having issues running games is "have you installed 32bit Vulkan libs" or "do you have 32bit Wine". And most of the time they do not. And most of the time, adding the missing 32bit component will fix things.

@eszlari
Copy link

eszlari commented May 12, 2020

Our number 1 response to people having issues running games is "have you installed 32bit Vulkan libs" or "do you have 32bit Wine". And most of the time they do not.

You could avoid this by embracing flatpak as the primary distribution mechanism for Lutris. People could just install Lutris from Flathub and would have all the same/identical working setup out of the box.

At the moment, manual work is necessary, because Lutris is only in the Flathub Beta repository:

sudo apt install flatpak
flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak remote-add flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
flatpak install lutris
flatpak install org.freedesktop.Platform.GL32.nvidia-xxx-xx (see flatpak --gl-drivers)
flatpak install org.freedesktop.Platform.GL32.default (for mesa drivers)
flatpak install org.gnome.Platform.Compat.i386

flatpak run net.lutris.Lutris

@Saroufim
Copy link

Saroufim commented Aug 5, 2020

Just tossing an idea here but Lutris requires a lot of libraries to be fully functional. What about a docker image with all the necessary bits and pieces?

@strycore
Copy link
Member

strycore commented Aug 5, 2020

I've started experimented with the idea and so far I've ran Jamestown and Doom 3 native. I'm still having issues with a lot of games.

@strycore strycore transferred this issue from lutris/lutris Dec 10, 2020
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

5 participants