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.6 you don't need to set up a new chroot to build 1.7. 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 liblcms2-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.7.0.tar.bz2 tar xvf wine-1.7.0.tar.bz2 cd wine-1.7.0/ ./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.7.0 >> ***************************************** **** Debian package creation selected *** ***************************************** This package will be built according to these values: 0 - Maintainer: [ root@beryllium ] 1 - Summary: [ wine 1.7.0] 2 - Name: [ wine ] 3 - Version: [ 1.7.0] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ wine-1.7.0 ] 9 - Alternate source location: [ ] 10 - Requires: [ ] 11 - Provides: [ wine ] 12 - Conflicts: [ ] 13 - Replaces: [ ]
********************************************************************** Done. The new package has been saved to /home/sandbox/tmp/wine-1.7.0/wine_1.7.0-1_i386.deb You can install it in your system anytime using: dpkg -i wine_1.7.0-1_i386.deb **********************************************************************
Installing Wine
Exit the chroot
sandbox@beryllium:~/tmp/wine-1.7.0$ 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 libgstreamer-plugins-base0.10-0
*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.7.0/wine_1.7.0-1_i386.deb . sudo chown $USER wine_1.7.0-1_i386.deb sudo dpkg -i wine_1.7.0-1_i386.deb
Works for 1.7.1 too.
ReplyDeleteThanks!
Here is a slightly changed version for installing on sid/unstable.
ReplyDelete----
##############
# PREPARATION -run once
##############
# SET UP CHROOT:
mkdir /home/build/chroot32/ -p
sudo apt-get install debootstrap
cd /home/build
sudo debootstrap --arch i386 sid chroot32 http://ftp.se.debian.org/debian/
sudo mount -o bind /proc /home/build/chroot32/proc
sudo cp /etc/resolv.conf /home/build/chroot32/etc/resolv.conf
sudo chroot /home/build/chroot32
# (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
# CHANGE hostname to your hostname
echo '127.0.0.1 localhost hostname' >> /etc/hosts
source /etc/bash.bashrc
adduser sandbox
usermod -g sudo sandbox
echo 'Defaults !tty_tickets' >> /etc/sudoers
su sandbox
# INSTALL 32bit PACKAGES AND WINE BUILD-DEPS:
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install ia32-libs-i386 libgstreamer-plugins-base0.10-0
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 liblcms2-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
############
# BUILD WINE -every new build
############
# ENTER CHROOT (skip if you're already in chroot):
sudo mount -o bind /proc /home/build/chroot32/proc
sudo cp /etc/resolv.conf /home/build/chroot32/etc/resolv.conf
sudo chroot /home/build/chroot32
su sandbox
# UPGRADE PACKAGES (optional):
sudo apt-get update
sudo apt-get upgrade
# BUILD WINE RELEASE:
wget http://prdownloads.sourceforge.net/wine/wine-1.7.1.tar.bz2
tar xvf wine-1.7.1.tar.bz2
# OR BUILD FROM GIT
#git clone git://source.winehq.org/git/wine.git
cd wine-1.7.1/
./configure
time make -j3
sudo checkinstall --install=no
# (answear questions)
# EXIT CHROOT:
exit
exit
# INSTALL WINE:
sudo cp /home/build/chroot32/home/sandbox/wine-1.7.1/wine_1.7.1-1_i386.deb .
sudo chown $USER wine_1.7.1-1_i386.deb
sudo dpkg -i wine_1.7.1-1_i386.deb
----
Changes for sid:
a) sudo debootstrap --arch i386 sid chroot32 http://ftp.debian.org/debian/
b) ia32-libs to ia32-libs-i386 (ia32-libs was not available for some reaseon)
Thanks for the feedback and the build instructions. I need to look into ia32-libs soon -- I think it's in flux on jessie as well.
DeleteYou need to install binutils-multiarch.
DeleteI run into a checkinstall bug to do with mkdir -p....
ReplyDeletehttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=717778
the workaround is to add "--fstrans=no" to the checkinstall invocation
That's right -- I thought I had started to add that to the checkinstall commands in the posts by default, but apparently not.
DeleteThank you for the feedback.
FAILED at checkinstall step:
ReplyDelete(...)
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/sandbox/tmp/wine-1.7.5/dlls/xpssvcs'
STRIPPROG="strip" ./tools/install-sh dlls/xpssvcs/xpssvcs.dll.so /usr/local/lib/wine/xpssvcs.dll.so
/usr/bin/install -c -m 644 dlls/xpssvcs/xpssvcs.dll.fake /usr/local/lib/wine/fakedlls/xpssvcs.dll
make[1]: Entering directory `/home/sandbox/tmp/wine-1.7.5/fonts'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/sandbox/tmp/wine-1.7.5/fonts'
make[1]: Entering directory `/home/sandbox/tmp/wine-1.7.5/fonts'
/bin/mkdir -p -m 755 /usr/local/share/wine/fonts
/bin/mkdir: cannot create directory `/usr/local/share/wine': No such file or directory
make[1]: *** [/usr/local/share/wine/fonts] Error 1
make[1]: Leaving directory `/home/sandbox/tmp/wine-1.7.5/fonts'
make: *** [fonts/install] Error 2
**** Installation failed. Aborting package creation.
Cleaning up...OK
Bye.
Any help?
Fixed with:
ReplyDeletesudo checkinstall --install=no --fstrans=no
Thank you Anonymous (16 October, 2013 02:34).
works for 1.7.6 too (though I had to mkdirs manually during checkinstall), thanks!
ReplyDeletecheckinstall --fstrans=no should obviate the need for creating directories manually
DeleteThe build steps worked a charm for 1.7.7 under Debian Stable (Wheezy / 7.0). Will update with installation and running.
ReplyDeleteThanks for the report/feedback!
Deletewine 1.7.10 works fine with this procedure
ReplyDeleteThanks for the feedback!
DeleteHello,
ReplyDeleteThanks for sharing this very interesting post as a solution to a very old and persistent problem :)
I was wondering if the process can be streamlined using tools like "sbuild" and "pbuilder"?
(I am yet to work on your solution AS IS...though the approach appeared familiar.)
Cheers!
Hello, thanks so much for this walk through. I don't know if this is supposed to be complete, but don't you need to " winecfg "somewhere during the process to actually get the wine up and running? I want to make sure that I install conrrectly!
ReplyDeleteThanks again this has been a very valuable learning aid.
Happy it worked out for you. No, you don't need to do winecfg at any stage.
DeleteMost likely you'll be asked to install gecko and/or mono on your first use of wine.
wine 1.7.13 works fine with this procedure, too
ReplyDeleteHi, I followed this procedure for Jessie and most of the stuff worked fine. The problem arises with ia32-libs as it seems to have been removed from testing. Will it be possible to provide a list of libraries (32 bit) which are required for wine, so that I can do a manual install?
ReplyDeleteYour best bet is probably to use ldd to figure out what packages may be missing.(if any)
Deletee.g.
ldd `which wine`
linux-gate.so.1 (0x55576000)
libwine.so.1 => /usr/local/bin/../lib/libwine.so.1 (0x55579000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0x55761000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0x5577d000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0x55928000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0x5592d000)
/lib/ld-linux.so.2 (0x55555000)