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