Frogging-Family/wine-tkg-git

gstreamer1-devel/glib2-devel dependency issue on Fedora

daegalus opened this issue · 8 comments

I have tried to build a custom wine with Fedora locally and in Github Actions, and they are both failing with GStreamer dependency errors between 32bit and 64bit.

I haven't investigated deeper, but thought I would report it incase someone else gets to it sooner.

Error: Transaction test error:
  file /usr/share/gir-1.0/GLib-2.0.gir from install of glib2-devel-2.80.3-1.fc40.i686 conflicts with file from package glib2-devel-2.80.3-1.fc40.x86_64

 ==> WARNING: Failed to install package: gstreamer1-devel.i686
 ===> ERROR: Failed to install package: gstreamer1-devel.i686 after 3 attempts.
 ===> ERROR: 32-bit dependencies installation failed. Please check the error message and install the missing dependencies manually.

https://github.com/daegalus/wine-tkg-affinity/actions/runs/10186553303/job/28178597271

I notice that your builds are not failing, so I assume it might be a misconfiguratin with my settings.

My config is at https://github.com/daegalus/wine-tkg-affinity/blob/master/wine-tkg-git/customization.cfg and advanced config at https://github.com/daegalus/wine-tkg-affinity/blob/master/wine-tkg-git/wine-tkg-profiles/advanced-customization.cfg

That's a packaging problem on your distribution, you have two packages owning that same .gir file (gobject introspection... XML files with metadata and stuff for describing typelibs)

It's better to have the stuff you need and disable that bootstrap in this build

If you're building wine-tkg, that's wine-tkg-git/customization.cfg

# Enable dependency autoresolver for non-makepkg builds - Set to true to automatically install missing dependencies for your distro.
# This will autodetect your OS and install the required dependencies for building wine-tkg using the appropriate package manager.
# The autoresolver will also attempt to use the best available privileged escalation method for your system (sudo, doas, etc.)
_nomakepkg_dependency_autoresolver="true"

If you're building proton-tkg that's in proton-tkg/proton-tkg.cfg

There is some discussion about this here:

https://bugzilla.redhat.com/show_bug.cgi?id=2258600

@daegalus We're using the wow64 path for lib32 in the CI for both Fedora and Ubuntu, which "emulates" 32-bit libs through 64-bit ones. That's still kinda experimental in wine and might break in some circumstances, but since it only relies on 64-bit dependencies, the conflict doesn't happen. It breaks 32-bit support in proton builds however, due to the necessary steam bridging libs not supporting that, so we're only building non-proton builds on those distros because of this issue.
We used to be able to go through with some hacks but both Fedora and Ubuntu broke some of their lib32 packages along the way (on different packages on each side).

@daegalus We're using the wow64 path for lib32 in the CI for both Fedora and Ubuntu, which "emulates" 32-bit libs through 64-bit ones. That's still kinda experimental in wine and might break in some circumstances, but since it only relies on 64-bit dependencies, the conflict doesn't happen. It breaks 32-bit support in proton builds however, due to the necessary steam bridging libs not supporting that, so we're only building non-proton builds on those distros because of this issue. We used to be able to go through with some hacks but both Fedora and Ubuntu broke some of their lib32 packages along the way (on different packages on each side).

Thanks for the response, that makes sense. But I am using a fork of your repo, so I was using all the same settings, includng WoW64. Im currently resetting the repo to make sure I didn't change anything unexpected that is forcing 32bit libs to install.

Until the issue is (possibly) fixed by Red Hat, I would recommend that you use distrobox with an Arch Linux container to build Wine TKG.

Thanks for the suggestions. I got it working on GitHub actions. I had manually set _NOLIB32="wow64" in the config, but it was causing issues, so I reverted the change and just kept the sed in the actions workflow and it works now.

It's failing for other reasons, but it's not dependencies.

Thanks for the tips, it works in "wow64" mode.

Would you like me to close the ticket? Or keep it open until Redhat fixes their shit?