[pkg-wine-party] Call for testing: automatically detect wine arch and WoW64

Jens Reyer jre.winesim at gmail.com
Sun Dec 13 12:47:50 UTC 2015


On 12/13/2015 08:11 AM, Michael Gilbert wrote:
> On Sat, Dec 12, 2015 at 10:52 PM, Jens Reyer <jre.winesim at gmail.com> wrote:
>> On 12/13/2015 04:06 AM, Jens Reyer wrote:
>>> But afaics there is no need to launch different executables:
>>
>>> If I then have an application that works only in plain wine32 I have to
>>> opt-out and use:
>>> WINEARCH=win32 WINEPREFIX="$HOME/.wine32" wine ...
>>
>> Hmm, I added "export WINEARCH=win64" to .bashrc.
>>
>> Seems that only WINEARCH=win32 Desktop launcher work out of the box.
>>
>> The launchers for the 64-bit applications only work if a 64-bit
>> wineserver is already running (which was the case during my previous
>> testing).
> 
> So, maybe we want wineserver to not be multiarch?  So if the user is
> on a 64-bit platform, the only wineserver we make available is the
> 64-bit one?

No, then we can't use win32 prefixes on a 64-bit platform.

[For the nomination I use see [3] below.]

In general:
The prefix, loader and server have to be the same arch.
The binary may be either 32-bit or 64-bit.

32-bit apps in a 64-bit wineprefix [1]:
- loader wine64
- server wine64
- binary wine32 or wine64

32-bit apps in a 32-bit wineprefix [2]:
- loader wine32
- server wine32
- binary wine32 or wine64

It seems the binary decides about server and loader with the following
precedence:
1. WINESERVER/WINELOADER if set
2. WINEARCH -> matching loader/server
3. arch of running wineserver -> matching loader
4. arch of prefix -> matching loader/server

(4.) only works with real WoW64 binaries, but not with ours.
Note: I'm not sure yet if the precedence is 3, 4 or 4, 3. Will check later.
WoW64 automatically finds the correct loader, we have to specify a
non-matching loader for a given binary, otherwise we get:
wine: could not exec the wine loader


If the loader/server and prefix have different arch, it'll error out.
Manual example:
$ export WINEPREFIX=/home/jens/.wine32/
$ export WINESERVER=/usr/lib/x86_64-linux-gnu/wine/wineserver
$ /usr/lib/wine/wine wineboot
wine: '/home/jens/.wine32' is a 32-bit installation, it cannot support
64-bit applications.

Currently we set th

Greets
jre


[1]: This is what I normally referred to recently with WoW64, e.g. Steam.

[2]: This is the opt-out case for WoW64 for problematic 32-bit apps,
e.g. Origin.

[3]: Nomination and paths in the current Debian packages:
Given a command similar to the last line of our wine-script:
WINEPREFIX=prefix WINELOADER=loader binary "$@"
-->
"loader" and "binary" both relate to the same files:
/usr/lib/wine/wine ("wine32") or
/usr/lib/wine/wine64 ("wine64")




More information about the pkg-wine-party mailing list