Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

64 bit installation cannot be used with a 32 bit wineserver #839

Closed
mikeknerr opened this issue Sep 16, 2017 · 31 comments
Closed

64 bit installation cannot be used with a 32 bit wineserver #839

mikeknerr opened this issue Sep 16, 2017 · 31 comments
Assignees
Labels
bug Acknowledged bug win64 Bugs only affecting win64

Comments

@mikeknerr
Copy link

mikeknerr commented Sep 16, 2017

When I first installed wine and winetricks over a year ago, it was for the purpose of installing an old 32-bit game. My default .wine prefix is therefore a 32 bit prefix. Recently, I bought Life Is Strange: Before the Storm and wanted to play through Steam, but the game is 64-bit only, so I created a new 64-bit wine prefix called .wine-new (also in my user folder -- I am on Mac OS X, full comp specs at bottom of post).

I was unable to run the game still and a suggested resolution was to install the Visual C++ 2017 redistributables. When I do so I get the following error message: cmd.exe /c echo '%ProgramFiles%' returned empty string, error message "wine: '/Users//.wine-new' is a 64-bit installation, it cannot be used with a 32-bit wineserver."

I've found references to this on other forums, but they've always been for the opposite scenario: someone has a 64-bit default prefix and is trying to install things in a 32-bit prefix.

I have tried to set my wineserver to the one in my /bin as below, but so far nothing I try has had any effect. See log attached.
Error log.txt

I also tried accessing the winetricks GUI directly, which works when I call the original .wine prefix, but not my .wine-new prefix.

Works: WINE=/Applications/Wine\ Devel.app/Contents/Resources/wine/bin/wine WINEPREFIX=~/.wine winetricks [but no access to vcrun2017]

Does not work: WINE=/Applications/Wine\ Devel.app/Contents/Resources/wine/bin/wine WINEPREFIX=~/.wine-new winetricks

Specs:
Macbook Pro 2016
Processor: 3.3 GHz Intel Core i7
Memory: 16 GB 2133 MHz LPDDR3
Graphics: Intel Iris Graphics 550 1536 MB
Software: OS 10.12.4
Wine is currently emulating Windows 7, but I can change that in winecfg if need be.

@austin987
Copy link
Contributor

WINE should not point to wineserver, just wine.

Anyway, what winetricks version is this? It appears to be quite old

@mikeknerr
Copy link
Author

I installed the newest version of winetricks earlier this week.

MacBook-2:~ $ winetricks --version
20170823-next - sha256sum: b81ae41a5d50608c9b3f0200f2e267aebd76231de477922b9a3d3dcf049e15ee

I also tried pointing WINE to wine within /bin in the second half of my post above, but it gave me the same error.

WINE=/Applications/Wine\ Devel.app/Contents/Resources/wine/bin/wine WINEPREFIX=~/.wine-new winetricks

@austin987
Copy link
Contributor

I was able to reproduce with a test script. Thanks for reporting. In the future, be sure to include the winetricks version.

@austin987 austin987 self-assigned this Sep 19, 2017
@austin987 austin987 added bug Acknowledged bug win64 Bugs only affecting win64 labels Sep 19, 2017
@austin987
Copy link
Contributor

austin987 commented Sep 19, 2017

So for me, turned out it was a bug in my script, which was running a 32-bit only wine. When I fixed that, my testcase succeeded. The other issue is that vcrun2017 doesn't exist in winetrricks ;). Could you try running it please? Be sure to move .wine/.wine-new out of the way first.

#!/bin/bash
set -x
set -e

rm -rf "$HOME/.wine" "$HOME/.wine-new"

# 64-bit wine
#export WINE=/usr/bin/wine
export WINE="/Applications/Wine Devel.app/Contents/Resources/wine/bin/wine"

# doesn't exist..
# verb=vcrun2017
verb=good

# Need two prefixes:
WINEARCH=win32 WINEPEFIX=$HOME/.wine wineboot

WINEARCH=win64 WINEPREFIX=$HOME/.wine-new $WINE wineboot

# Should work
echo "this should work"
WINEPREFIX=$HOME/.wine winetricks -q "$verb"

# should fail:
echo "this should fail"
WINEPREFIX=$HOME/.wine-new winetricks -q "$verb"

echo "Success!"

Feel free to open a separate issue for missing vcrun2017.

@mikeknerr
Copy link
Author

Thanks, I'll run this! Before I do though, will this delete my existing default .wine directory? I have a number of programs and settings in there that I'd like to preserve.

I'll open that separate issue on vcrun2017 as well. In the meantime is there an alternate way other than through winetricks to install those redistributables?

@Chiitoo
Copy link
Collaborator

Chiitoo commented Sep 20, 2017

It will remove not only '.wine', but '.wine-new' as well, should it exist, so definitely copy or move them as necessary. :]

@austin987
Copy link
Contributor

Yes, it will delete it, that's why I said to move it first ;)

I would've used temporary directories, but the only way I can see this being a bug is it's somehow related to ~/.wine being the default prefix, so I wanted you to test that on your machine.

@mikeknerr
Copy link
Author

mikeknerr commented Sep 21, 2017

I ran this and got the terminal output below. I'm not sure what I should be looking for to tell whether this worked as expected. There don't appear to be new wine prefixes in my user folder.

Terminal output.txt

@austin987
Copy link
Contributor

You should save that in a file, call it test.sh. Then, run:

bash test.sh &> test.txt

Then attach test.txt here

@mikeknerr
Copy link
Author

Got it, see below:
test.txt

@austin987
Copy link
Contributor

austin987 commented Sep 22, 2017

Bad assumption (and typo) on my part, could you retry with this please?

#!/bin/bash
set -x
set -e

rm -rf "$HOME/.wine" "$HOME/.wine-new"

# 64-bit wine
#export WINE=/usr/bin/wine
export WINE="/Applications/Wine Devel.app/Contents/Resources/wine/bin/wine"

# doesn't exist..
# verb=vcrun2017
verb=good

# Need two prefixes:
WINEARCH=win32 WINEPEFIX="$HOME/.wine" "$WINE" wineboot

WINEARCH=win64 WINEPREFIX="$HOME/.wine-new" "$WINE" wineboot

# Should work
echo "this should work"
WINEPREFIX="$HOME/.wine winetricks" -q "$verb"

# should fail:
echo "this should fail"
WINEPREFIX="$HOME/.wine-new winetricks" -q "$verb"

echo "Success!"

@mikeknerr
Copy link
Author

Here's the new one
test.txt

@austin987
Copy link
Contributor

@iPenguin67 sorry, I forgot to quote $WINE. I edited the last comment to quote everything that wasn't before. Could you try once more? Sorry again about that!

@mikeknerr
Copy link
Author

Updated:
test.txt

@austin987
Copy link
Contributor

Huh. Wine doesn't show an error, but it exited after making the 32-bit prefix. Your copy has a typo I fixed, "WINEPEFIX" instead of WINEPREFIX, but I can't see that making it fail.

Try removing set -e

@mikeknerr
Copy link
Author

Looks like that helped:
test.txt

@mikeknerr
Copy link
Author

What is the next step to take from here? And will I need to wait for vcrun2017 to be added in order to make this work?

@austin987
Copy link
Contributor

@iPenguin67 yell at me basically; apparently I was drunk when I wrote it for you/didn't test). Another bug. This should hopefully be last try:


#!/bin/bash
set -x
set -e

rm -rf "$HOME/.wine" "$HOME/.wine-new"

# 64-bit wine
#export WINE=/usr/bin/wine
export WINE="/Applications/Wine Devel.app/Contents/Resources/wine/bin/wine"

# doesn't exist..
# verb=vcrun2017
verb=good

# Need two prefixes:
WINEARCH=win32 WINEPEFIX="$HOME/.wine" "$WINE" wineboot

WINEARCH=win64 WINEPREFIX="$HOME/.wine-new" "$WINE" wineboot

# Should work
echo "this should work"
WINEPREFIX="$HOME/.wine" winetricks -q "$verb"

# should fail:
echo "this should fail"
WINEPREFIX="$HOME/.wine-new" winetricks -q "$verb"

echo "Success!"

If you have issues, for faster response time, ping me on #winetricks on IRC (freenode). austin987/wizardedit are me.

Sorry again for wild goose chase.

@mikeknerr
Copy link
Author

No problem, here's the new file:
test.txt

@austin987
Copy link
Contributor

@iPenguin67 the only issue I see there is that your wine64 segfaults on startup; but no in indication of your original issue.

@mikeknerr
Copy link
Author

mikeknerr commented Oct 1, 2017

I'm not sure what the script was doing, so I'm not sure what to look for that would be different, but I tried running the commands from the top of the page again. I didn't see the same error (at least not when opening winetricks), but both seemed to indicate they were 32 bit. Both output the following:

MacBook-2:~ $ WINE=/Applications/Wine\ Devel.app/Contents/Resources/wine/bin/wine WINEPREFIX=~/.wine-new winetricks
usage: dirname path
Using winetricks 20170823-next - sha256sum: b81ae41a5d50608c9b3f0200f2e267aebd76231de477922b9a3d3dcf049e15ee with wine-2.16 and WINEARCH=win32
/opt/local/bin/winetricks: line 3736: /var/folders/41/klldp_dd4pn7b997nzlgg8sc0000gt/T//winetricks.ImB19bDy/w..12035/metadata//*.vars: No such file or directory
Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.

I was assuming wine-new would be 64 bit but it seems like it's still confused, unless I'm reading it wrong.

@austin987
Copy link
Contributor

Make sure .wine doesn't exist, then run:

WINEARCH=wine64 /Applications/Wine\ Devel.app/Contents/Resources/wine/bin/wine wineboot
ls ~/.wine/drive_c

what does that show?

@jre-wine
Copy link
Contributor

jre-wine commented Oct 5, 2017

[I didn't follow the thread, just spotted a typo while scrolling through my mails:]
WINEARCH=wine64
has to be
WINEARCH=win64

@mikeknerr
Copy link
Author

Here's the output:


MacBook-2:~ <myuser>$ WINEARCH=win64 /Applications/Wine\ Devel.app/Contents/Resources/wine/bin/wine wineboot
wine: created the configuration directory '/Users/<myuser>/.wine'
wine: WINEARCH set to win64 but '/Users/<myuser>/.wine' is a 32-bit installation.
MacBook-2:~ <myuser>$ ls ~/.wine/drive_c
MacBook-2:~ <myuser>$ 

@qwertychouskie
Copy link
Contributor

@iPenguin67 It seems your "Wine Devel.app" is 32-bit only.

@mikeknerr
Copy link
Author

@qwertychouskie I didn't know that was possible? I recently updated it and it's currently on wine-2.16.

@qwertychouskie
Copy link
Contributor

@qwertychouskie
Copy link
Contributor

Or https://dl.winehq.org/wine-builds/macosx/pool/winehq-staging-2.18.pkg for staging (from my experience, staging generally works better with various applications).

@mikeknerr
Copy link
Author

@qwertychouskie This looks like it worked! I was able to get the 64 bit prefix working and I download the vcrun2017 package elsewhere and installed it successfully.

Unfortunately, I am still unable to run the game I was hoping to run, but that wasn't the topic of this thread so I think we can close!

@qwertychouskie
Copy link
Contributor

You're welcome. By the way, did you download devel or staging? Staging has a lot of patches that help things to run better (most notable for games is CSMT, which can be enabled in the staging tab of winecfg).

@mikeknerr
Copy link
Author

@qwertychouskie Thanks for the advice -- I just tried with Staging and I'm getting the same issue. Essentially regardless of whether I start the game in question (Life is Strange: Before the Storm) from within Steam or directly via -applaunch, wine seems to think the game has launched/is running, but it never actually seems to load, or is in an invisible window somewhere.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Acknowledged bug win64 Bugs only affecting win64
Projects
None yet
Development

No branches or pull requests

5 participants