https://bugs.winehq.org/show_bug.cgi?id=55958
Bug ID: 55958 Summary: [Debian-based] wiki.winehq.org/Regression_Testing - instructions do not work on modern distros Product: WineHQ.org Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: www-unknown Assignee: wine-bugs@winehq.org Reporter: NM64+bugs.winehq.org@PM.me Distribution: ---
Created attachment 75550 --> https://bugs.winehq.org/attachment.cgi?id=75550 video demonstration on Linux Mint 21.2
The instructions provided on wiki.winehq.org/Regreesion_Testing for Debian-based distros seem to not be functional on modern Debian-based distros.
See the attached video for a demonstration on the live ISO of Linux Mint 21.2 Cinnamon (and, while not shown in the video, I get the exact same result when trying this on an actual installation of Linux Mint 21.2 rather than using a live ISO session)
https://bugs.winehq.org/show_bug.cgi?id=55958
--- Comment #1 from NM64+bugs.winehq.org@PM.me --- Also not shown in the video is that I get the same result on the likes of Xubuntu 23.10
https://bugs.winehq.org/show_bug.cgi?id=55958
Fabian Maurer dark.shadow4@web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dark.shadow4@web.de
--- Comment #2 from Fabian Maurer dark.shadow4@web.de --- Did you check the config.log? It usually tells you exactly what went wrong. Post it here and we can help.
https://bugs.winehq.org/show_bug.cgi?id=55958
--- Comment #3 from NM64+bugs.winehq.org@PM.me --- (In reply to Fabian Maurer from comment #2)
Did you check the config.log? It usually tells you exactly what went wrong. Post it here and we can help.
I've attached it now.
I do want to point out I like using live ISO sessions specifically so that others can very easily reproduce whatever issue I'm reporting.
https://bugs.winehq.org/show_bug.cgi?id=55958
--- Comment #4 from NM64+bugs.winehq.org@PM.me --- Created attachment 75556 --> https://bugs.winehq.org/attachment.cgi?id=75556 log file during compilation attempt
https://bugs.winehq.org/show_bug.cgi?id=55958
--- Comment #5 from Fabian Maurer dark.shadow4@web.de --- You don't seem to have a working 32bit compiler. You need to build it in a chroot AFAIK, but since I couldn't get that to work on Ubuntu either I won't be much help here.
https://bugs.winehq.org/show_bug.cgi?id=55958
--- Comment #6 from NM64+bugs.winehq.org@PM.me --- (In reply to Fabian Maurer from comment #5)
You don't seem to have a working 32bit compiler. You need to build it in a chroot AFAIK, but since I couldn't get that to work on Ubuntu either I won't be much help here.
So then my presumption is correct in that the instructions are on wiki.winehq.org/Regression_Testing are indeed outdated since anything Ubuntu-based only comes in 64bit nowadays?
https://bugs.winehq.org/show_bug.cgi?id=55958
--- Comment #7 from Fabian Maurer dark.shadow4@web.de --- I agree, there should be a section on how to properly build 32bit, since that is IMHO a massive pain. And since lots of windows programs are still 32bit...
https://bugs.winehq.org/show_bug.cgi?id=55958
Patrick Hibbs hibbsncc1701@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |hibbsncc1701@gmail.com
--- Comment #8 from Patrick Hibbs hibbsncc1701@gmail.com --- Actually, it is possible to build wine on Debian without a chroot / container. The biggest problems you'll encounter are:
1) You'll need to do a triple build of wine to get 32bit and 64bit support. (I.e. 64bit native build -> 32bit build tools -> 32bit build. See also: https://wiki.winehq.org/Building_Wine#Shared_WoW64)
2) GStreamer's plugins are *still* not multi arch compatible in the upstream Debian builds. This means installing the GStreamer plugins and their development components from deb-multimedia (https://www.deb-multimedia.org).
2a) Then manually call pkgconfig, with PKG_CONFIG_PATH set to the correct 32bit pkgconfig path to get the GSTREAMER_LIBS and GSTREAMER_CFLAGS variables for wine's configure when building the 32bit components. You'll also need to explicitly specify the gstreamer-tag-1.0 library when calling pkgconfig. (Or you'll get a linker error during wine's build.)
This is required as wine's configure script will only detect the 64bit GStreamer libs by default. (pkgconfig seems not to do it's job here, even if linux32 is prepended to the configure command.)
3) You'll need to manually specify the cross compiler to use when calling wine's configure for the 32bit builds. I.e. (Define CROSSCC32, CC, AR, NM, RANLIB, READELF, OBJDUMP, OBJCOPY, and STRIP binary paths.) Also you'll need to define "-m32" in CPPFLAGS and LDFLAGS.
That being said there are a few components that are not available in Debian: Samba's libnetapi , and OSS.
In the case of OSS, Wine's configure script does detect it but it's considered to be too old. (Not really a problem if you ask me, but it could be a deal breaker for some.)
For Samba's libnetapi, it's simply not shipped in Debian's upstream Samba builds. (Although it used to be? There are Debian bug reports mentioning it in older Debian releases, but the library itself is not in Debian 12.) You'll need to build Samba from source if you want that library to use with wine.
I have a bash script that I use to build wine on Debian, if anyone is interested in it. It only handles the actual build process though. Not installing prereqs.
https://bugs.winehq.org/show_bug.cgi?id=55958
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #9 from Zeb Figura z.figura12@gmail.com --- (In reply to Patrick Hibbs from comment #8)
Actually, it is possible to build wine on Debian without a chroot / container. The biggest problems you'll encounter are:
- You'll need to do a triple build of wine to get 32bit and 64bit support.
(I.e. 64bit native build -> 32bit build tools -> 32bit build. See also: https://wiki.winehq.org/Building_Wine#Shared_WoW64)
You don't need to build 3 times, only twice. You can just use the tools from the 64-bit build. The only reason you need to build 3 times is if you're using a chroot.
- GStreamer's plugins are *still* not multi arch compatible in the upstream
Debian builds. This means installing the GStreamer plugins and their development components from deb-multimedia (https://www.deb-multimedia.org).
Or just skip GStreamer for one or both architectures. It's not a hard dependency.
In general you don't need to satisfy every dependency. It depends on what program you're using. https://wiki.winehq.org/Building_Wine#Satisfying_Build_Dependencies is there specifically to help people figure out what they do and don't need.
2a) Then manually call pkgconfig, with PKG_CONFIG_PATH set to the correct 32bit pkgconfig path to get the GSTREAMER_LIBS and GSTREAMER_CFLAGS variables for wine's configure when building the 32bit components. You'll also need to explicitly specify the gstreamer-tag-1.0 library when calling pkgconfig. (Or you'll get a linker error during wine's build.)
This is required as wine's configure script will only detect the 64bit GStreamer libs by default. (pkgconfig seems not to do it's job here, even if linux32 is prepended to the configure command.)
This is more complex than necessary. You can just set PKG_CONFIG_PATH (or, better, PKG_CONFIG_LIBDIR; or, even better, set PKG_CONFIG=i686-linux-gnu-pkg-config) when invoking configure.
That said, under what circumstances are we still detecting the wrong libraries? We have logic in place that should specifically prevent that.
- You'll need to manually specify the cross compiler to use when calling
wine's configure for the 32bit builds. I.e. (Define CROSSCC32, CC, AR, NM, RANLIB, READELF, OBJDUMP, OBJCOPY, and STRIP binary paths.) Also you'll need to define "-m32" in CPPFLAGS and LDFLAGS.
Uh... no, you really shouldn't need to do that, and if you do that suggests something's seriously broken. Wine should be specifically doing that for you. Under what circumstance do you need to define anything manually?
That being said there are a few components that are not available in Debian: Samba's libnetapi , and OSS.
In the case of OSS, Wine's configure script does detect it but it's considered to be too old. (Not really a problem if you ask me, but it could be a deal breaker for some.)
You should never need OSS on a modern Linux distribution. Rely on ALSA or PulseAudio instead.
For Samba's libnetapi, it's simply not shipped in Debian's upstream Samba builds. (Although it used to be? There are Debian bug reports mentioning it in older Debian releases, but the library itself is not in Debian 12.) You'll need to build Samba from source if you want that library to use with wine.
Huh? /usr/lib/x86_64-linux-gnu/libnetapi.so is right here in samba-dev:
https://packages.debian.org/bookworm/amd64/samba-dev/filelist