-
-
Notifications
You must be signed in to change notification settings - Fork 168
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/debian] wine-tkg installs dependencies incorrectly, bricking my system #773
Comments
Finally someone who can understand how painful it is for me to do anything with apt distros. Joking aside, apt and distros using it have been the most infuriating stuff I've had to work with in the past decade, and at this point and following your report, what I think is the best thing to do is disabling the dependency installer outside of GitHub actions. |
I remember toying with this before and I faced issues I can't remember. I'm not against trying it again though, as things might have improved since. |
I'm glad my distro is Arch Linux and not an apt based one - that's happiness in my opinion. |
This comment was marked as spam.
This comment was marked as spam.
This comment was marked as off-topic.
This comment was marked as off-topic.
Aptitude at least gives you better insides in what is the ROOT cause... The debian solution is just remove all essential packages from your distro, that is not good. But maybe this gives us better insides in what is really going wrong. See:
|
It's not really a fix as is, as different apt distros ship different packages. What works on Debian won't work on Ubuntu, and inversely. The worst example begin Pop!_OS which has the most broken package base of all apt distros (all distros?), that simply doesn't allow to build wine 32-bit at all. @Hexcede We are clear that you have set |
You didn't FROGgot it. It's documented here: https://github.com/Tk-Glitch/PKGBUILDS/wiki/wine-tkg-git 🐸 |
Yep, I have set it to debuntu in my configuration. At the moment I've been using an Ubuntu docker container to build inside of (can't build on anything but Ubuntu as far as I can tell, tried a few different debian-based containers without luck), and just sharing my wine-tkg folder. The docker container gets left in a broken state too, but it isn't my main system, and it has much less required to let it keep booting, so I don't have to worry. I can always just create another container, after all. I can confirm that the breakage happens during building 32 bit wine. Particularly the worst effects from this come down to apt wanting to remove my graphics drivers, various packages related to my desktop environment, and a couple essential system packages as well. I believe what happens is the 32 bit version of an existing system package is selected, which causes that package to be re-installed by |
Regarding Docker builds. I did that in the past as well (2 years ago). See: https://hub.docker.com/r/danger89/wine-pkgbuilds (using Arch). I'm not sure about the state of the current image. |
Building wine with the tkg-script is "at your own peril" i would say, but it is not overly horrible with Docker - especially since it wont break anything. If i were to actually recommend building a .deb package (if that is what is wanted), i can highly recommend building it on OBS (The same build system that WineHQ uses to build their ubuntu/debian packages). Easy for me, hard for others.. as much Linux stuff usually is. Just building a standalone wine setup that you can use with eg. lutris or the likes, i would build with Docker. Debian/Ubuntu is notoriously horrendous when it comes to multilib support, and it will not change. Hopefully wine will be done with the 32-bit requirements eventually, so it will be a thing of the past. |
Hi, I could compile wine-tkg on Linux Mint Una (Ubuntu Focal). To avoid breaking system, do not install the packages gdb:i386 gdbserver:i386 libgcrypt20-dev:i386 libgpg-error-dev:i386 libxfont-dev:i386 samba-dev:i386 python3-minimal:i386 python3.8:i386 python3.8-minimal:i386 (the problematic packages). Do not set _nomakepkg_dep_resolution_distro="debuntu", but install packages related (go to script wine-tkg-git/wine-tkg-scripts/deps) to verify what 32-bits packages should be installed. If you need 32-bit samba and gcrypt, get the 32-bit packages from Ubuntu packages website, unpack them and copy the usr/lib/i386-linux-gnu folder to system /usr/lib/i386-linux-gnu folder. Works perfectly! /opt/wine-tkg-git/bin/wine --version |
Wauw this is great news! Should we consider updating the wine-tkg script for Ubuntu? So those breaking packages are removed from the script. And give the user a warning about those remaining packages? |
Update: I also found this experiment where they managed to build wine statically. that would be interesting as well for wine-tkg. https://github.com/MIvanchev/static-wine32 |
this really needs a giant warning in the readme and to top it off, despite the build script reporting success, the packaged build is nowhere to be found. |
A Nix flake for building would be a great solution for this problem. It would let apt people easily build without having to worry about a bricked system. |
I did not get any of my packages removed..
But this is very much the case.
|
this is a very serious issue |
Ubuntu can't build wine cleanly in its own env because of broken packages. Nothing to do here except for canonical to fix their mess - which is unlikely to happen - or to wait for 32on64 to be ready on the wine side to disable using 32-bit libs altogether. In the meantime just don't set any distro in your .cfg and no package will be installed/removed. |
is there a way to undo the command after it's run? I didn't know I didn't need the distro. |
Here is a solution. And wine tkg could actually do something. Changing the script for Ubuntu distro. |
Sadly it's more of a workaround. There are also special quirks that apply to mint that wouldn't apply to buntu, or debian.. All debian/buntu distros aren't equal on the package quality/freshness and it's so brittle it breaks every few updates. The CI allows us to target buntu 20.04 which is an acceptable middle ground (I couldn't reproduce a system-wide breakage on 20.04 testing VMs with our current dependency list), but clearly Fedora and Arch based distros are in a much better shape for the job. |
The typical build it on your system experience is that the user is provided a list of necessary packages/libraries in the readme/wiki and installs those however they see fit. |
Ubuntu/debian apt break itself so much it's better to use ArchLinux. I had a more stable experience with ArchLinux than with Ubuntu or Debian. This is the reason why I hate apt based (Ubuntu/Debian) distros so much. |
Just ran it on my popOS 22.04 system and everything seems to be fine. Big improvement since the last time I attempted this on popOS a year ago! So at the very least, that distro seems to be safe. |
Seconded. Arch has given a far more stable experience for us*. |
Remarks regarding 22.04: 64bit-dependencies work still fine I have tried to install 32bit-dependencies and found that installing samba-libs:i386 as well as python:i386 dependencies can't be installed currently on Ubuntu without removing large parts of gnome and more. xserver-xorg-dev:i386 and libgcrypt20-dev:i386 and valgrind:i386 and rustc:i386 directly conflicts with it's 64bit variant. I needed to switch update-alternatives for gcc and g++ (i.e. first g++, then gcc) to make them work. In my build test I removed these packages from the "deps" file (see renamed attachment due to github limitations I needed to change the "own" patch since loader.c has additionally code (attached renamed patch due to github limitations). This was reported in 2022 and no point on the discussion of the issues was reached so far: My recommendation is to leave out those dependencies completely for (at least) Ubuntu systems. I hope that 32bit changes in wine 9.0 will make it easier to handle the 32bit build topic in the future. Back to the build: non-makepg-build seems to work. The proton skript which i run afterwards exit with Analysis. As written before, both 64bit and 32bit rust can't be installed in parallel on Ubuntu (at least I have found no way). This is strange, since there is proton available for Ubuntu. How is this achieved? mingw Version of 22.04 is broken. You need either 22.10 (obsolete), 23.04 (obsolete in 2 weeks) or 23.10. I still found 22.10 and currently use this. a backport from 23.10 could be needed if some dependencies are not met. Configuration, part 2: TKG proton / wine has options allowing to switch to stable or staging 9.0. Also when building proton tkg there are not only three, but 4 options to choose from (experimental / proton). I choose the most current one as that most likely works best with current wine. Tests: I tested with the linux install script for MO2. From there I switched to my own build version 9.0/proton. I have manually exchanged MO2 (2.5.1rc) and could launch this as well as the latest LOOT. For the game to work you need to start with proton if you use command line. |
will it work if i build it on Arch then copy it to Debian? |
Most likely yes, assuming it's the same platform (eg. amd64). Maybe it could cause issues with libc or other runtime problems. |
When compiling wine via wine-tkg, dependencies are automatically installed by the script.
The problem is that when
wine-tkg
'snon-makepkg-build.sh
script is ran on some systems, like my own, it incorrectly downgrades or reinstalls several critical system dependencies because they are both dependencies of the system, and of wine-tkg, and some kind of conflict about what has what dependencies arises from this.The result is that the next time any
apt
command is ran,apt
will prompt to auto remove hundreds of automatically installed packages, and there is no way to avoid this without passing an additional argument toapt
when performing any action. Even with this obnoxious workaround,apt
is left in a terrible state where many packages are marked as manually installed when they shouldn't be, and many automatically installed packages (critical to the system) want to be auto removed.This bricks my system every time the wine-tkg script is ran, and it is indescribably infuriating to deal with, it requires that I fresh install my OS, which takes many hours, and is very stressful because I must manually back up all of my important files on a separate drive, go through the install process, and reconfigure all settings, applications, etc.
Please fix this ASAP, I have dealt with it more times than I can count.
The text was updated successfully, but these errors were encountered: