Frogging-Family / wine-tkg-git

The wine-tkg build systems, to create custom Wine and Proton builds
885 stars 159 forks source link

Lutris won't launch after compiling Wine 7.4 and 7.5 #719

Open malonn23 opened 2 years ago

malonn23 commented 2 years ago

Title says it all. After I compiled Wine 7.4 and 7.5 this morning, Lutris will not launch. Nothing happens when I try to launch. I have a feeling it has something to do with those packages your script asked to uninstall. Perhaps a dependency was removed. I'm going to repair the Lutris installation, but I just wanted to bring that to your attention.

malonn23 commented 2 years ago

Update. Reinstalling Lutris allows it to launch, but all those packages being removed screwed my OS (Mint MATE 20.3) all up. Where can I get a list of packages removed so I can reinstall them?

Removing all those packages is a bad thing. I have to assume there is no other way, but damn...

malonn23 commented 2 years ago

I just compiled 7.5 and it gave the warning again prior to 32 bit compilation. I declined after having to reinstall my OS the first time. The warning cannot be mistaken, I just didn't know it would break my OS. There must be some way other than breaking operating systems? I know (at least I think) 32 bit Wine is required to run 32 bit games, is that right? I do play some older 32 bit games; I guess I'm out of luck playing them on 7.4 and above?

SveSop commented 2 years ago

Yes, you need wine-32 to run 32-bit windows programs.

I have not personally tried the TKG build-script for non-arch distro's, as i do it manually in a Ubuntu 20.04 (same as my distro) docker image. Too much breakage to get 32-bit to compile without too much missing stuff sadly. In other words: Ubuntu/Mint/Debian distro's are not the best at multilib compiling these days... or to be even more blunt - It's a sh**show :grinning:

malonn23 commented 2 years ago

Lol, you hit the nail on the head there. I nuked the shit out of my OS by compiling 32 bit.

Just so you know, unless the compilation gets sorted, I'll look at Lutris pre-compiled versions for Wine. Eventually, I'll try other distros and see what's what then.

My common sense spidey sense told me you need 32 bit Wine to run 32 bit games. Thanks for the confirmation.

Tk-Glitch commented 2 years ago

I'll check how we are handling it currently, but simply looping back to 64-bit dependencies installation after the 32-bit side is done might work if we're not doing that already.

malonn23 commented 2 years ago

Sounds good man. I'd love to have wine-tkg-git back. I'll be standing by.

Tk-Glitch commented 2 years ago

Please give it a try, hopefully that'll do it.

SveSop commented 2 years ago

Most common culprits for me building on Ubuntu20.04 atm is libgcrypt20-dev (possibly only if you use proton-bcrypt patchset), and samba-dev. libgcrypt20-dev is not that big of a deal, since it does not break anything by switching... samba-dev on the other hand hinges on python3 & friends, and that can turn ugly really fast imo.

I kinda gave up on it, and just started using Docker.. worst case if it breaks down - just rerun image and no harm done :smile:

If interested or the script does not work out @MalonnBethesda i have a somewhat extensive Dockerfile that installs some PPA's with latest Vulkan, gcc-11, mingw-w64 and schtuff for wine building...

malonn23 commented 2 years ago

@SveSop yeah, I'm interested in that docker script. I'm pretty new to Linux, so am not even the least bit familiar with Docker, but I can get myself familiar. Send it over, if you could.

SveSop commented 2 years ago

First i set up Docker installation from here (and not the distro provided version): Docker I would assume this works fine for Mint aswell.

Attaching my Dockerfile to the post. I would recommend doing the following:

  1. Edit Dockerfile and change the "yourusername" to your actual username, although it might not matter too much (just saves some confusion i guess).
  2. From the folder where you extracted Dockerfile, run docker build -t ubuntu_docker .
  3. I would suggest to map wherever your source is (TKG git source folder), and the wine install folder you intend to use for the wine binaries TO the docker image by starting docker like this: docker run -it -v /home/yourusername/tkg-source -v /home/yourusername/winebinaries ubuntu_docker (replacing foldernames and username and such with YOUR setup ofc)
  4. Once "inside" the image, create a password for the user you set in step 1 by running passwd yourusername. Log in to your user by running su - yourusername (replacing the username ofc)
  5. You can then run the TKG script without fear of breaking your live system :smile:

OBS. Be aware that ONLY the folders you "mount" when running the docker command (the -v /home/... folders) will survive shutting down/deleting the docker image as all other folders only live inside the docker VM.

IF you want to build wine yourself outside of the TKG script, and just use the wine source you downloaded, it is a bit more tedious, but i found this to work fairly well:

Make a wine64 buildfolder, and cd into that. Then you run: ../tkg-source-foldername/configure CPPFLAGS='-O2 -march=native -msse2avx -ftree-vectorize -Wall -Wdate-time -D_FORTIFY_SOURCE=2' CFLAGS='-O2 -march=native -msse2avx -ftree-vectorize -Wall -Wformat -Werror=format-security' CROSSCFLAGS='-O2 -mavx2 -msse2avx -ftree-vectorize -Wall -gdwarf-2 -gstrict-dwarf' LDFLAGS='-march=native -msse2avx -Wl,-O2,--sort-common,--as-needed -Wl,-Bsymbolic-functions -Wl,-z,relro' CROSSLDFLAGS='-mavx2 -msse2avx -Wl,-O2,--sort-common,--as-needed' --enable-win64 --disable-tests --prefix=/home/yourusername/tkg-7.5 --libdir=\${prefix}/lib64 (Replacing ofc /home/yourusername and tkg-source folder with your actual folder names.. you can change tkg-7.5 to whatever you like.. it is the destination foldername for the wine binaries, but as mentioned above, it should be in a folder you mounted when starting docker or else it will just be gone when exiting docker. See step 3) Once that is configured, you build by running make -j$(nproc) .

When building is done, run sudo apt -y install libgcrypt20-dev:i386 samba-libs:i386 python3-ldb:i386 python3-talloc:i386 python3:i386 samba-dev:i386 && sudo apt -y autoremove --purge Once that is installed, make a wine32 buildfolder same place you have the wine64 folder, and cd into that. Run the following (changing the foldernames as you did in the step above): PKG_CONFIG_PATH="/usr/lib/i386-linux-gnu/pkgconfig" ../tkg-source-foldername/configure CPPFLAGS='-O2 -march=native -msse2avx -ftree-vectorize -Wall -Wdate-time -D_FORTIFY_SOURCE=2' CFLAGS='-O2 -march=native -msse2avx -ftree-vectorize -Wall -Wformat -Werror=format-security' CROSSCFLAGS='-O2 -mavx2 -msse2avx -ftree-vectorize -Wall -gdwarf-2 -gstrict-dwarf' LDFLAGS='-march=native -msse2avx -Wl,-O2,--sort-common,--as-needed -Wl,-Bsymbolic-functions -Wl,-z,relro' CROSSLDFLAGS='-mavx2 -msse2avx -Wl,-O2,--sort-common,--as-needed' --with-wine64=../wine64 --disable-tests --prefix=/home/yourusername/tkg-7.5 --libdir=\${prefix}/lib

Do make -j$(nproc) && make -j$(nproc) install. Once building is done run: sudo apt -y install libgcrypt20-dev samba-libs python3-ldb python3-talloc python3 samba-dev && sudo apt -y autoremove --purge . Enter the wine64 folder where you built 64-bit wine, and do make -j$(nproc) install

Hopefully this will work.. if not, you can play around with it a bit and learn a lot :smile: Create your OWN buildscripts and whatnot. Good luck :+1:

Its worth learning about Docker (or other VM setups), as it provides a way to build without needing -dev packages on (or break) your live system, and once you have set up a working Dockerfile script, it is easy and very portable. I have used VirtualBox in the past, but using Docker is a bit easier imo.

Dockerfile.gz

malonn23 commented 2 years ago

Thanks, @SveSop . I didn't even know Docker was virtual machine software. I actually have VirtualBox installed for stuff Wine breaks/doesn't work under. I will start working with this, if I want 2 VM packages on my rig. Docker could be better than VirtualBox. I'll have to see.

Thanks again. I'm sure that was a tedious post to make. P.S. I guess you recommend Docker over VirtualBox?

SveSop commented 2 years ago

Docker is not the SAME as virtualbox, as you would not run it like that i guess you could say. I mean, virtualbox is a "booting virtual machine" vs. Docker (and others) just virtualize your system. It basically runs your Linux kernel and such. But it is called "virtualization" since it is virtualizing a running operating system. Well.. not sure i can explain it tbh :smile: Maybe something like: VirtualBox is a virtual MACHINE, vs. Docker that is more like a virtual operating system?

You cant use Docker to run Windows 10 with a graphical desktop+++ like you can with VirtualBox, so i did not mean i would replace VirtualBox with Docker in that sense... But for compiling a particular software using eg. ArchLinux when your live system is Debian/Mint/whatever, it is easier to do that with Docker than to actually install Arch on a VirtualBox machine to do it.

malonn23 commented 2 years ago

Oh, okay. I misunderstood. Then I will devote some time to learning Docker.

Sorry to keep bugging you, but you said you compile under Ubuntu. Why? Your distro is Ubuntu, right? But you compile under Docker to keep things from happening like what happened to me--uninstalling dependencies the OS requires?

Docker is a brand new word to me (been on Linux since this past September). I'll do my due diligence in a search engine though. I don't actually expect a crash course from you.

SveSop commented 2 years ago

Sorry to keep bugging you, but you said you compile under Ubuntu. Why? Your distro is Ubuntu, right? But you compile under Docker to keep things from happening like what happened to me--uninstalling dependencies the OS requires?

Yeah basically. I had no issues building wine on my live system until recently, but some upstream change made compiling depend on 32-bit samba-dev package, and that pops up a whole lot of python3 changing.. and that is a bit iffy. Loads of stuff seems to use python backend, so breaking that i felt would be kinda bad.. and i decided i would not try that.

Google + trying yourself is my best advice... oh and make notes or scripts of what you do that works. This issuetracker is probably not the best place to continue lengthy discussions about this tho :smile:

malonn23 commented 2 years ago

I agree, @SveSop . We're kinda getting off topic here. I have what I need: knowledge of Docker's existence. I'll leave the rest to a net search.

Thanks again for your patience and help.

malonn23 commented 2 years ago

Update @SveSop , @Tk-Glitch I'm going to leave this issue open, because, at this point, I'm not going to find out if the updated script fixes my issue. I don't want to risk a broken OS again. With @SveSop 's help, and my own trials and tribulations (and mojo), I've successfully managed to build Wine in Docker. From here on out, I use Docker for custom builds of Wine.