I noticed
configure: libOSMesa 32-bit development files not found (or too old), OpenGL rendering in bitmaps won't be supported.
popping up at the end of ./configure. I've added a fix for it based on http://forum.winehq.org/viewtopic.php?f=2&t=17713
Original post:
Here's a generic way of building Wine 1.6 which is now stable. And yes, it's the instructions for 1.5.28-1.6-rcX recycled.
See here for information about 3D acceleration using libGL/U with Wine: http://verahill.blogspot.com.au/2013/05/429-briefly-wine-libglliubglu-blender.html
Getting started:
If you set up a e.g. chroot to build 1.5.28 you don't need to set up a new chroot to build 1.6. In that case, skip the set-up step below and instead re-enter your existing chroot like this:
sudo mount -o bind /proc wine32/proc sudo cp /etc/resolv.conf wine32/etc/resolv.conf sudo chroot wine32 su sandbox
cd ~/tmp
And skip to 'Building wine'.
Otherwise do this:
Setting up the Chroot
sudo apt-get install debootstrap mkdir $HOME/tmp/architectures/wine32 -p cd $HOME/tmp/architectures sudo debootstrap --arch i386 wheezy $HOME/tmp/architectures/wine32 http://ftp.au.debian.org/debian/ sudo mount -o bind /proc wine32/proc sudo cp /etc/resolv.conf wine32/etc/resolv.conf sudo chroot wine32
You're now in the chroot:
apt-get update apt-get install locales sudo vim echo 'export LC_ALL="C"'>>/etc/bash.bashrc echo 'export LANG="C"'>>/etc/bash.bashrc echo '127.0.0.1 localhost beryllium' >> /etc/hosts source /etc/bash.bashrc adduser sandbox usermod -g sudo sandbox echo 'Defaults !tty_tickets' >> /etc/sudoers su sandbox cd ~/
Replace 'beryllium' with the name your host system (it's just to suppress error messages)
Building Wine
While still in the chroot, continue (the i386 is ok; don't worry about it -- you don't actually need it):
sudo apt-get install libx11-dev:i386 libfreetype6-dev:i386 libxcursor-dev:i386 libxi-dev:i386 libxxf86vm-dev:i386 libxrandr-dev:i386 libxinerama-dev:i386 libxcomposite-dev:i386 libglu-dev:i386 libosmesa-dev:i386 libglu-dev:i386 libosmesa-dev:i386 libdbus-1-dev:i386 libgnutls-dev:i386 libncurses-dev:i386 libsane-dev:i386 libv4l-dev:i386 libgphoto2-2-dev:i386 liblcms-dev:i386 libgstreamer-plugins-base0.10-dev:i386 libcapi20-dev:i386 libcups2-dev:i386 libfontconfig-dev:i386 libgsm1-dev:i386 libtiff-dev:i386 libpng-dev:i386 libjpeg-dev:i386 libmpg123-dev:i386 libopenal-dev:i386 libldap-dev:i386 libxrender-dev:i386 libxml2-dev:i386 libxslt-dev:i386 libhal-dev:i386 gettext:i386 prelink:i386 bzip2:i386 bison:i386 flex:i386 oss4-dev:i386 checkinstall:i386 ocl-icd-libopencl1:i386 opencl-headers:i386 libasound2-dev:i386 build-essential
mkdir ~/tmp cd ~/tmp wget http://prdownloads.sourceforge.net/wine/wine-1.6.tar.bz2 tar xvf wine-1.6.tar.bz2 cd wine-1.6/
Optional:
To avoid getting the
configure: libOSMesa 32-bit development files not found (or too old), OpenGL rendering in bitmaps won't be supported.
message, do the following:
1. Edit configure
9450 LIBS="-lOSMesa -lGLU -lGL $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS $LIBS"
2. Also change
9473 *) ac_cv_lib_soname_OSMesa=libOSMesa.so
Does it change anything? I don't know. But it removes the error message which is triggered by missing symbols so I think it does since the symbols are found in GLU/GL.
End optional.
Then do
./configure time make -j3 sudo checkinstall --install=noCheckinstall takes a little while (In particular this step: 'Copying files to the temporary directory...').checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran This software is released under the GNU GPL. The package documentation directory ./doc-pak does not exist. Should I create a default set of package docs? [y]: Preparing package documentation...OK Please write a description for the package. End your description with an empty line or EOF. >> wine 1.6 >> ***************************************** **** Debian package creation selected *** ***************************************** This package will be built according to these values: 0 - Maintainer: [ root@beryllium ] 1 - Summary: [ wine 1.6] 2 - Name: [ wine ] 3 - Version: [ 1.6] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ wine-1.6 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ wine ] 12 - Conflicts: [ ] 13 - Replaces: [ ]
Installing Wine
Exit the chroot
sandbox@beryllium:~/tmp/wine-1.6$ exit exit root@beryllium:/# exit exit me@beryllium:~/tmp/architectures$
On your host system
Enable multiarch* and install ia32-libs, since you've built a proper 32 bit binary:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install ia32-libs
*At some point I think ia32-libs may be replaced by proper multiarch packages, but maybe not. So we're kind of doing both here.
Copy the .deb package and install it
sudo cp wine32/home/sandbox/tmp/wine-1.6/wine_1.6-1_i386.deb . sudo chown $USER wine_1.6-1_i386.deb sudo dpkg -i wine_1.6-1_i386.deb
Excellent guide. Helped me a lot.
ReplyDeleteI used it with debian jessie and wine 1.7.0.
I had to:
sudo apt-get install liblcms2-2 liblcms2-dev
Probably only liblcms2-dev is needed as replacement for liblcms-dev(which is maybe obsolete now in 1.7.0).
Thanks.
Thanks for the feedback -- I'll have a look at 1.7 later on.
DeleteThe package generated with this method will run in x86 platforms or in x86-64 ones? I ask because i am running Debian Wheezy 7.1 amd64.
ReplyDeleteAnd what about this: http://wiki.winehq.org/Wine64? It says i just need to add option "--enable-win64" to "./configure" command. Can you talk about it please?
It will run on i386 without having to do anything, and on amd64 if you enable multiarch (as shown in the post).
DeleteAs far as I understand --enable-win64 will give you wine for running 64 bit applications for windows. This is most likely NOT what you want, since up till recently most windows applications were 32 bit. However, I may well be wrong.
Just want to say: Thanks a bunch for this great walk-through, definitely helped a lot and worked like a charm! :-)
ReplyDeleteHappy it worked for you.
DeleteIt is possible to make a backup copy of $HOME/tmp/architectures/wine32 mount point? How?
ReplyDeleteI can't test this for you, but it should be possible -- you obviously need to run rsync as sudo, and you may want to use the --no-links flag to avoid backing up symbolic links.
DeleteThank you VERY much for this howto. Thank you!
ReplyDeleteNo worries. Happy it was useful to you, and thank you for the feedback.
DeleteIs good to install packages "liblcms2-2 liblcms2-dev liblcms2-utils" too, because ./configure get message "configure: liblcms2 32-bit development files not found, Color Management won't be supported.".
ReplyDeleteJust tried this in LMDE (Jessie). Only changes were that I used a Debian mirror which was faster for me and I didn't use the configure editing section. It didn't give any error (maybe jessie fixes what ever was wrong). Thanks for your easy guide.
ReplyDeleteThank you for the feedback!
DeleteSomebody was succeded to compile Wine 1.7.4 with this method? It is not working for me. Wine 1.7.3 work, but 1.7.4 not.
ReplyDeleteSee here for 1.7: http://verahill.blogspot.com.au/2013/08/497-compiling-wine-17-in-chroot-on.html
DeleteCould you provide some more detail re what isn't working?