[pkg-wine-party] Bug#762058: WoW64 (mostly) working
jre.winesim at gmail.com
Fri Dec 11 21:56:44 UTC 2015
control: tags -1 + patch
to my great surprise our wine binaries already seem to support WoW64,
(maybe only mostly, see below). I.e. installing and running 32-bit
applications in 64-bit prefixes works. Or is there more to it?
Previously I thought that wine64 has to be linked into wine32 during
build. Now I realized that it seems to work as long as wine32 and
wine64 are installed. Also I didn't see anything indicating this in the
ubuntu/winehq packaging, which is WoW64 enabled.
A definitely wrong assumption of mine was that WoW64 has a separate
winearch. But it is "win64".
So I tried the wine script with the patch below. Basically I just switch
the order of wine32 and wine64 in there. The patch works best with the
automatic-detect-patch (#769234), but that is not necessary.
This solves the problem for 64-bit apps with PE32-installers.
I successfully installed the following apps in the same 64-bit prefix. I
started them (using the Desktop launcher if available) concurrently with
the same wineserver. It all happened in ~/.wine64, no ~/.wine was
- Daggerfall (16-bit, dosbox is installed)
- SteuerSparErklärung (32-bit)
- Steam (32-bit) 
- 7z (64-bit, msi installer)
- ImageMagick (64-bit version with a PE32-installer)
 App and Launcher fail to start, but this issue also exists with the
official winehq packages.
 Starts, but can't login, same with winehq packages.
However installing EA's Origin (32-bit) failed, while this works with
the winehq packages. I don't know if this is WoW64 related.
winetricks, without a WINEPREFIX specified, starts correctly in 64-bit
mode, but creates ~/.wine, instead of ~/.wine64. Note that generally the
64-bit mode of winetricks isn't perfect yet.
diff --git a/debian/scripts/wine b/debian/scripts/wine
index a1463c9..3bf4117 100755
@@ -32,15 +32,15 @@ elif [ -f "$1" ] &&
-if test -x $wine32 -a "$WINEARCH" != "win64"; then
-elif test -x $wine64; then
+if test -x $wine64 -a "$WINEARCH" != "win32"; then
- if [ "$(dpkg --print-architecture)" = "amd64" -a "$(dpkg --print-foreign-architectures | grep -cx "i386")" -ne 1 ]; then
+ if [ ! -x "$wine32" -a "$(dpkg --print-architecture)" = "amd64" -a "$(dpkg --print-foreign-architectures | grep -cx "i386")" -ne 1 ]; then
echo "it looks like multiarch needs to be enabled. as root, please"
echo "execute \"dpkg --add-architecture i386 && apt-get update &&"
echo "apt-get install $(echo $name | sed s/wine/wine32/)\""
+elif test -x $wine32 -a "$WINEARCH" != "win64"; then
echo "error: unable to find wine executable. this shouldn't happen."
More information about the pkg-wine-party