Building a shared WoW64 setup from source

Questions about Wine on Linux
Locked
Parisa Tatapudy
Newbie
Newbie
Posts: 2
Joined: Mon May 28, 2012 6:12 pm

Building a shared WoW64 setup from source

Post by Parisa Tatapudy »

I am trying to build a shared WoW64 setup on Ubuntu 10.04 from source. I have already installed wine-1.4 using the APT package handling utility in Ubuntu, and I have downloaded and uncompressed the tarball for wine-1.5.5 into /usr/local. If I understand correctly, I must remove wine-1.4 before installing wine-1.5.5 from source, which presumably includes removing (or moving) my current $HOME/.wine directory.

My version of gcc is 4.4.3, the lastest stable package for Ubuntu 10.04. The page http://wiki.winehq.org/Wine64 seems to say that I will be unable to compile wine-1.5.5 with this version of gcc? I would rather not install a currently unsupported version of gcc.

Running ./configure --help from /usr/local/wine-1.5.5, it says that the --with-wine64=DIR flag will "use the 64-bit Wine in DIR for a Wow64 build". I don't understand what directory DIR is supposed to be. Perhaps $HOME/.wine or something? So, will the commands

Code: Select all

rm -r $HOME/.wine
mkdir $HOME/.wine
cd /usr/local/wine-1.5.5
./configure --with-wine64=$HOME/.wine
make
sudo make install
build the shared WoW64 setup that I want?
User avatar
dimesio
Moderator
Moderator
Posts: 13208
Joined: Tue Mar 25, 2008 10:30 pm

Re: Building a shared WoW64 setup from source

Post by dimesio »

Parisa Tatapudy wrote:If I understand correctly, I must remove wine-1.4 before installing wine-1.5.5 from source, which presumably includes removing (or moving) my current $HOME/.wine directory.
Not necessarily. http://wiki.winehq.org/FAQ#head-5d2fd50 ... 59e67c465f

Note that even if you decide to uninstall the 1.4 package, that won't remove $HOME/.wine.
My version of gcc is 4.4.3, the lastest stable package for Ubuntu 10.04. The page http://wiki.winehq.org/Wine64 seems to say that I will be unable to compile wine-1.5.5 with this version of gcc? I would rather not install a currently unsupported version of gcc.
My interpretation of that page is that it will compile but not work properly.
Running ./configure --help from /usr/local/wine-1.5.5, it says that the --with-wine64=DIR flag will "use the 64-bit Wine in DIR for a Wow64 build". I don't understand what directory DIR is supposed to be. Perhaps $HOME/.wine or something? So, will the commands

Code: Select all

rm -r $HOME/.wine
mkdir $HOME/.wine
cd /usr/local/wine-1.5.5
./configure --with-wine64=$HOME/.wine
make
sudo make install
build the shared WoW64 setup that I want?
You are confusing the directory for install with the wineprefix. They are not the same thing. DIR in that command should be the directory where you have installed 64 bit Wine.
Parisa Tatapudy
Newbie
Newbie
Posts: 2
Joined: Mon May 28, 2012 6:12 pm

Post by Parisa Tatapudy »

Thank you for your suggestion, dimesio. The instructions at http://wiki.winehq.org/Wine64 seem to suggest that building a shared WoW64 installation is an alternative to building separate 32- and 64-bit trees rather than an option after you have build separate 32- and 64-bit trees. Hence my confusion.

For the benefit of Ubuntu 10.04 users, I'll describe in full detail what I did in case it was somehow correct. On a x86_64 Ubuntu 10.04 machine, I installed gcc version 4.6 with the commands:

Code: Select all

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
update
sudo apt-get dist-upgrade
sudo apt-get install gcc-4.6
sudo apt-get install g++-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 20
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
upgrade
I then installed wine version 1.5.5 with the commands:

Code: Select all

cd /usr/local
wget http://prdownloads.sourceforge.net/wine/wine-1.5.5.tar.bz2
bunzip wine-1.5.5.tar.bz2
tar -xvf wine-1.5.5.tar
cd /usr/local/wine-1.5.5
./configure --enable-win64
make
/bin/cp -r $HOME/.wine $HOME/.wine_2012_05_30
/bin/rm -r $HOME/.wine
sudo apt-get remove wine wine1.3 wine1.3-gecko lib32nss-mdns winetricks winbind ttf-symbol-replacement-wine1.3
make install
mkdir $HOME/.wine32
mkdir $HOME/.wine64
wineserver -k
winecfg
The configure command produced a number of warnings, the winecfg command crashed with some sort of error about Wine Gecko, but I was able to use wine to run both 32-bit and 64-bit exe files with the command "wine program.exe" (through with some warnings about integer data types). The $HOME/.wine64 and $HOME/.wine32 directories were useless, but I thought I should create them for the shared WoW64 setup. Starting wine created a new $HOME/.wine directory.

I don't know if I've successfully built a shared WoW64 setup; the instructions at http://wiki.winehq.org/Wine64 don't make sense to me: the installation of 64-bit wine described above did not produce a wine-git directory with a configure file in my home directory or anywhere else as far as I can see. So the instruction to run "../wine-git/configure --enable-win64 CC=/usr/local/gcc/bin/gcc" from the directory $HOME/wine64 is obviously not going to work without doing something or other that the page http://wiki.winehq.org/Wine64 never describes (nor the README file in /usr/local/wine-1.5.5).

At this point I am not sure if I have built a shared WoW64 installation, but I have built something, and I would be pleased to know if improvements are possible in setting up what I want.
User avatar
dimesio
Moderator
Moderator
Posts: 13208
Joined: Tue Mar 25, 2008 10:30 pm

Post by dimesio »

Parisa Tatapudy wrote:
I don't know if I've successfully built a shared WoW64 setup; the instructions at http://wiki.winehq.org/Wine64 don't make sense to me: the installation of 64-bit wine described above did not produce a wine-git directory with a configure file in my home directory or anywhere else as far as I can see.
From what you've posted, what you built was pure 64 bit Wine. It can run many 32 bit apps, but there will be problems with any apps that require a pure 32 bit wineprefix.

The instructions on the wiki page assume you are building Wine from git rather than a tarball. Instructions for getting Wine from git are here: http://wiki.winehq.org/GitWine#head-b89 ... 1128bb8a64

Note that unless you have 64 bit apps you want to run, you do not need to build 64 bit Wine at all. It is much easier to just build 32 bit Wine.
Locked