Help Building Wine For Fedora and Updating Build Instructions

Questions about Wine on Linux
Locked
CuriousTommy
Newbie
Newbie
Posts: 3
Joined: Mon Jan 13, 2020 10:30 pm

Help Building Wine For Fedora and Updating Build Instructions

Post by CuriousTommy »

Hello Everyone,

I am trying to build Wine for Fedora, but I am having trouble finding all of the right dependencies.

The Wiki page (https://wiki.winehq.org/Fedora) was pretty helpful at getting most of the dependencies installed, but it doesn't contain everything needed to build Wine with all of the options enabled. Some of the packages listed are not even available anymore.

I updated the install command to include a few more packages. With that being said, some of the packages added may not actually be needed. This was tested on Fedora 31.
sudo dnf install alsa-plugins-pulseaudio.i686 glibc-devel.i686 glibc-devel libgcc.i686 libX11-devel.i686 freetype-devel.i686 libXcursor-devel.i686 libXi-devel.i686 libXext-devel.i686 libXxf86vm-devel.i686 libXrandr-devel.i686 libXinerama-devel.i686 mesa-libGLU-devel.i686 mesa-libOSMesa-devel.i686 libXrender-devel.i686 libpcap-devel.i686 ncurses-devel.i686 libzip-devel.i686 lcms2-devel.i686 zlib-devel.i686 libv4l-devel.i686 libgphoto2-devel.i686 cups-devel.i686 libxml2-devel.i686 openldap-devel.i686 libxslt-devel.i686 gnutls-devel.i686 libpng-devel.i686 flac-libs.i686 json-c.i686 libICE.i686 libSM.i686 libXtst.i686 libasyncns.i686 libedit.i686 liberation-narrow-fonts.noarch libieee1284.i686 libogg.i686 libsndfile.i686 libuuid.i686 libva.i686 libvorbis.i686 libwayland-client.i686 libwayland-server.i686 llvm-libs.i686 mesa-dri-drivers.i686 mesa-filesystem.i686 mesa-libEGL.i686 mesa-libgbm.i686 nss-mdns.i686 ocl-icd.i686 pulseaudio-libs.i686 sane-backends-libs.i686 tcp_wrappers-libs.i686 unixODBC.i686 samba-common-tools.x86_64 samba-libs.x86_64 samba-winbind.x86_64 samba-winbind-clients.x86_64 samba-winbind-modules.x86_64 mesa-libGL-devel.i686 fontconfig-devel.i686 libXcomposite-devel.i686 libtiff-devel.i686 openal-soft-devel.i686 mesa-libOpenCL-devel.i686 opencl-utils-devel.i686 alsa-lib-devel.i686 gsm-devel.i686 libjpeg-turbo-devel.i686 pulseaudio-libs-devel.i686 pulseaudio-libs-devel gtk3-devel.i686 libattr-devel.i686 libva-devel.i686 libexif-devel.i686 libexif.i686 glib2-devel.i686 mpg123-devel.i686 mpg123-devel.x86_64 libcom_err-devel.i686 libcom_err-devel.x86_64 libFAudio-devel.i686 libFAudio-devel.x86_64 dbus-devel.i686 SDL2-devel.i686 libXfixes-devel.i686 krb5-devel.i686 sane-backends-devel.i686 cups-devel.i686 mingw32-llvm mingw64-llvm
I am currently stuck at this part. Some of these libraries are probably easy to figure out, but I am not sure about the others...

Code: Select all

$ ./configure
...
configure: OpenCL 32-bit development files not found, OpenCL won't be supported.
configure: libhal 32-bit development files not found, no legacy dynamic device support.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: libudev 32-bit development files not found, plug and play won't be supported.
configure: libcapi20 32-bit development files not found, ISDN won't be supported.
configure: libvulkan and libMoltenVK 32-bit development files not found, Vulkan won't be supported.
configure: vkd3d 32-bit development files not found (or too old), Direct3D 12 won't be supported.
I'll try to update this when I figure out what additional packages are needed for Fedora. With that being said, any help would be appreciated.
User avatar
dimesio
Moderator
Moderator
Posts: 13202
Joined: Tue Mar 25, 2008 10:30 pm

Re: Help Building Wine For Fedora and Updating Build Instructions

Post by dimesio »

CuriousTommy wrote: Mon Jan 13, 2020 11:04 pm The Wiki page (https://wiki.winehq.org/Fedora) was pretty helpful at getting most of the dependencies installed, but it doesn't contain everything needed to build Wine with all of the options enabled. Some of the packages listed are not even available anymore.
Those instructions were written for Fedora 22, so they definitely need updating.

Code: Select all

$ ./configure
...
configure: OpenCL 32-bit development files not found, OpenCL won't be supported.
configure: libhal 32-bit development files not found, no legacy dynamic device support.
configure: OSS sound system found but too old (OSSv4 needed), OSS won't be supported.
configure: libudev 32-bit development files not found, plug and play won't be supported.
configure: libcapi20 32-bit development files not found, ISDN won't be supported.
configure: libvulkan and libMoltenVK 32-bit development files not found, Vulkan won't be supported.
configure: vkd3d 32-bit development files not found (or too old), Direct3D 12 won't be supported.
Don't worry about libhal, libcapi20, and OSS; you won't find them. HAL is legacy, not available on any modern distro; libcapi20 was just dropped by Fedora, but it, too, is old and being phased out. OSS support is mainly for *BSD operating systems; no Linux distro distributes the version Wine needs because it is proprietary.

For the rest, we do build the WineHQ Fedora 31 packages with support for OpenCL, udev, vulkan, and vkd3d, but the caveat is that we build 32 bit Wine against the pure i586 environment provided by Fedora's Koji buildserver, not the standard repository. The standard repository for Fedora 31 no longer has a separate i586 directory; the i686 packages are mixed in with the x86_64 ones, and while Fedora claimed they would provide everything Wine needed to run, I don't think they included all the 32 bit packages needed for users to build Wine. So you may need to get some packages from Koji.
CuriousTommy
Newbie
Newbie
Posts: 3
Joined: Mon Jan 13, 2020 10:30 pm

Re: Help Building Wine For Fedora and Updating Build Instructions

Post by CuriousTommy »

Those instructions were written for Fedora 22, so they definitely need updating.
Yeah, I really hope someone updates that.
Don't worry about libhal, libcapi20, and OSS; you won't find them. HAL is legacy, not available on any modern distro; libcapi20 was just dropped by Fedora, but it, too, is old and being phased out. OSS support is mainly for *BSD operating systems; no Linux distro distributes the version Wine needs because it is proprietary.
Thanks for letting me know, I will ignore those.
For the rest, we do build the WineHQ Fedora 31 packages with support for OpenCL, udev, vulkan, and vkd3d, but the caveat is that we build 32 bit Wine against the pure i586 environment provided by Fedora's Koji buildserver, not the standard repository.
So do I have to build wine with the i586 packages instead of the i686 packages, or am I misunderstanding?
User avatar
dimesio
Moderator
Moderator
Posts: 13202
Joined: Tue Mar 25, 2008 10:30 pm

Re: Help Building Wine For Fedora and Updating Build Instructions

Post by dimesio »

No, i586 is just the designation on the OBS for the 32 bit build environment. The Fedora packages are i686. A better way to put it is x86; there are subtle differences between i386, i486, i586, and i686, but they are all 32 bit.
CuriousTommy
Newbie
Newbie
Posts: 3
Joined: Mon Jan 13, 2020 10:30 pm

Re: Help Building Wine For Fedora and Updating Build Instructions

Post by CuriousTommy »

So here is an updated list, the only important thing missing is OpenCL.
sudo dnf install alsa-plugins-pulseaudio.i686 glibc-devel.i686 glibc-devel libgcc.i686 libX11-devel.i686 freetype-devel.i686 libXcursor-devel.i686 libXi-devel.i686 libXext-devel.i686 libXxf86vm-devel.i686 libXrandr-devel.i686 libXinerama-devel.i686 mesa-libGLU-devel.i686 mesa-libOSMesa-devel.i686 libXrender-devel.i686 libpcap-devel.i686 ncurses-devel.i686 libzip-devel.i686 lcms2-devel.i686 zlib-devel.i686 libv4l-devel.i686 libgphoto2-devel.i686 cups-devel.i686 libxml2-devel.i686 openldap-devel.i686 libxslt-devel.i686 gnutls-devel.i686 libpng-devel.i686 flac-libs.i686 json-c.i686 libICE.i686 libSM.i686 libXtst.i686 libasyncns.i686 libedit.i686 liberation-narrow-fonts.noarch libieee1284.i686 libogg.i686 libsndfile.i686 libuuid.i686 libva.i686 libvorbis.i686 libwayland-client.i686 libwayland-server.i686 llvm-libs.i686 mesa-dri-drivers.i686 mesa-filesystem.i686 mesa-libEGL.i686 mesa-libgbm.i686 nss-mdns.i686 ocl-icd.i686 pulseaudio-libs.i686 sane-backends-libs.i686 tcp_wrappers-libs.i686 unixODBC.i686 samba-common-tools.x86_64 samba-libs.x86_64 samba-winbind.x86_64 samba-winbind-clients.x86_64 samba-winbind-modules.x86_64 mesa-libGL-devel.i686 fontconfig-devel.i686 libXcomposite-devel.i686 libtiff-devel.i686 openal-soft-devel.i686 mesa-libOpenCL-devel.i686 opencl-utils-devel.i686 alsa-lib-devel.i686 gsm-devel.i686 libjpeg-turbo-devel.i686 pulseaudio-libs-devel.i686 pulseaudio-libs-devel gtk3-devel.i686 libattr-devel.i686 libva-devel.i686 libexif-devel.i686 libexif.i686 glib2-devel.i686 mpg123-devel.i686 mpg123-devel.x86_64 libcom_err-devel.i686 libcom_err-devel.x86_64 libFAudio-devel.i686 libFAudio-devel.x86_64 dbus-devel.i686 SDL2-devel.i686 libXfixes-devel.i686 krb5-devel.i686 sane-backends-devel.i686 cups-devel.i686 mingw32-llvm mingw64-llvm systemd-devel.i686 vulkan-loader-devel.i686 libvkd3d-devel.i686
---
No, i586 is just the designation on the OBS for the 32 bit build environment. The Fedora packages are i686. A better way to put it is x86; there are subtle differences between i386, i486, i586, and i686, but they are all 32 bit.
Ah, that makes sense.
Locked