Wine 64bit Specifics for Wine Packagers
Wine 64bit and it's WoW64 subsystem aren't ready for public consumption yet. We still recommend the 32bit Wine build for users.
Wine 64bit works at the moment only on Linux.
Introduction
All Windows 64bit versions come with a WoW64 subsystem which is an integral part of Windows 64bit. This WoW64 subsystem allows the execution of 32bit Windows binaries on a Windows 64bit system.
The major feature of the next Wine release is proper 64bit support including the WoW64 subsystem. This will allow 32bit and 64bit programs to share the same $WINEPREFIX and use the same wineserver process; like in Windows communication between 32bit and 64bit apps will be possible.
Though this changes how the 64bit Wine is build and packaged correctly as a 64bit Wine requires both 64bit as well as 32bit libraries and binaries.
The Wine WoW64 is mostly ready "for a limited value of ready" - AlexandreJulliard. To continue quoting Alexandre "yeah, still a few backwards compatibility things to address, but in fairly good shape otherwise".
Package Dependencies
Like 64bit Windows Wine needs the WoW64 parts which are the 32bit libs. The Windows 64bit applications rely on the WoW64 subsystem; some of those applications include 32bit components like installers etc.
The 64bit Wine packages must depend on the 32bit WoW64 Wine packages.
The WoW64 Wine sub-packages should conflict with the normal i386 (or i686) Wine packages.
Building and Packaging the WoW64 Wine
Recommended Method
The preferred method for building Wine64 bit is to follow the instruction from "Building a shared WoW64 setup" on Wine64 aka build both 64bit and 32bit together.
Alternatives
As the standard package build process of a distribution might impose restrictions on the availability of 32bit libs in the 64bit build environment there are different ways around it.
WoW64 needs only following 32bit libraries and binaries:
- $libdir/libwine.so*
- $libdir/wine/
- $bindir/wine
- $bindir/wine-preloader
During Build of the 32bit Wine
During the 32bit package build of Wine an additional wine-wow64 sub-package can be build by copying the above libs and binaries.
Extracting the Needed Parts from the 32bit Packages
There is nothing special about the 32bit WoW64 Wine libs and binaries and those can be just extracted from the Wine 32bit package. Care must be taken to not include the 32bit wineserver as it would conflict with the 64-bit one.
Parallel Install of 64bit and 32bit Packages
On correctly setup dual arch systems even a parallel install of the 32bit and 64bit packages should work in theory provided that:
- The 32bit and 64bit libraries are installed in different directories
- On conflict between 32bit and 64bit binaries the 64bit binaries win.
- The 32bit binaries use the same $bindir as the 64-bit binaries.
The best way to do this is likely to have a 64-bit Wine package, a 32-bit "universal" Wine package that can be installed on 64, and a 32-bit specific package that depends on the 32-bit universal package. The 32-bit specific package would have things that only belong on a 32-bit only system, like the 32-bit wineserver.
FAQ
- Is there a way to convert a WINEPREFIX from 32bit to 64bit?
- No, that is technically not possible. Windows doesn't offer cross arch upgrades either.
Can I still use my 32bit WINEPREFIX with Wine WoW64?
- Yes, this is possible starting with wine-1.1.44.
Though a 32bit WINEPREFIX will allow only 32bits applications. For 64bit a new WINEPREFIX needs to be created.
- Yes, this is possible starting with wine-1.1.44.
- Will there be 64bit support on non-Linux OSes?
- Wine 64bit on other OSes is possible for Wine-1.2, patches are welcome. We are focusing on finishing the 64bit Wine on Linux; support for other OSes aren't a blocker for Wine-1.2.
