HowTo Patch WINE in Ubuntu 12.04.1 64 bit (pylotro) - full WoW64
EDIT: The letters etc between two / characters causes the forum post code to barf. I can work around it by bolding the "etc", that's why it looks funny. If you are cut and pasting, you may need to past into a editor that strips formating.
This is for Ubuntu Gnome Classic (and maybe Kubuntu) 12.04.1 64 bit installs to patch the wine 1.5.17->1.5.18 bug. There are much easier paths for other distros, including ubuntu 12.04.1 32 bit, but if other solution have failed you, try this. I tried to record each step as I took it, but I might have missed some - please tell me if you find mistakes!
Many thanks to Kenny, whoever he is, for posting
which explained how to bind across the root jail boundries to make the 32 bit component aware of the 64 bit component, and to wkavinsky(http://forums.ddo.com/member.php?u=429114) and Xilth (http://forums.ddo.com/member.php?u=428353) who had walk throughs that didn't work in my case but taught me enough to get me to the next step. Thanks all.
1)Add wine PPA and pylotro PPAs to your sources list
sudo add-apt-repository ppa:ajackson-bcs/ppa
sudo add-apt-repository ppa:ubuntu-wine/ppa
2) refresh package list
sudo apt-get update
3) Get the latest wine (should be 1.5.17) and the tools you'll need to compile it (maybe not mono?)
sudo apt-get install wine1.5 wine1.5-dev wine1.5-dbg winetricks pylotro git gedit make winemono0.0.4 winemono 0.0.8 dchroot debootstrap
NOTE: If you've tried updating before, your package database may have hanging dependency conflicts - you can remove all wine stuff (not remove completely, just remove is enough), apply, and then re-install. I use synaptic with a sort on "wine" and make sure I uncheck everything.
4)Get the latest (now already patched!) Wine source code, put it in a folder named "wine-git" in your home folder
git clone git://source.winehq.org/git/wine.git ~/wine-git
5)Make sure your graphics acceleration is working - it can get messed up during the upgrade process. I had to uninstall all of my proprietary video drivers (flxgr got thrown in somehow, I don't even own an ATI card anymore!), even the nVidia ones, and then re-install the nVidia-current. You can test with glxgears and applications-systemsettings-additional_drivers and make sure your card (nvidia current for me) has a green dot next to it.
6) Prepare a root jail to compile in, because in Ubuntu 12.04 multilib support is whacked. Start with a directory to put it in
sudo mkdir /var/chroot
7a) Edit the chroot config file to allow you access to it.
sudo gedit /etc/schroot/schroot.conf
7b) put this inside at the end, but replace MYNAME with your username. Save and close.
8) Populate it with the basics of a 386 install
sudo debootstrap --variant=buildd --arch i386 precise /var/chroot/ http://ubuntu.cs.utah.edu/ubuntu/
9) Copy your APT source list into the root jail so you can pull in dependencies
sudo cp /etc/apt/sources.list /var/chroot/etc/apt/
=====At this point, we want 2 terminals open, we'll call 1 #JAIL and the other #FREE=========
10) in #JAIL, enter jail mode
sudo chroot /var/chroot
11) Once inside the chroot, install the build dependencies. These will be *32bit* dependencies!
apt-get build-dep wine
12) Make the following directories (some may already exist, that's OK), again, replace MYNAME with your username.
13) Going back to the other terminal, #FREE, we build the 64 bit version of wine. This takes more than 1/2 hour, if you are impatient you can open a third terminal and periodically cat ~/wine64/make.log to view progress.
make > make.log 2>&1
14) Give the root jail access to shared directories it needs, again, replace MYNAME with your username
sudo mount -B ~/wine-git /var/chroot/home/MYNAME/wine-git
sudo mount -B /usr/lib/x86_64-linux-gnu /var/chroot/usr/lib/x86_64-linux-gnu
sudo mount -B /lib64 /var/chroot/lib64
sudo mount -B /lib/x86_64-linux-gnu /var/chroot/lib/x86_64-linux-gnu
sudo mount -B ~/wine64 /var/chroot/home/MYNAME/wine64
sudo mount -B /var/chroot/home/MYNAME/wine3264 ~/wine3264
sudo mount -B /tmp /var/chroot/tmp
15) Back in the jailed session, compile 32 bit telling it to refer to the already compiled 64 bit version made available to it through the BINDing. Again, replace MYNAME with your username (do I need to keep saying this?)
make > make.log 2>&1
16) Now back to the un-jailed terminal session (#FREE) for the final step, installing both the 64 and 32 bit versions so you can actually execute them.
sudo make install
You should now have a working system again, at least until the next patch :/
Note that this does not require any changes to Pylotro - you don't point the execution path at the root jail, you just let it find the installed wine, which is now the one you just compiled.
Also note that if pylotro is having trouble patching (a different issue entirely, but also one I had with this release) you can copy the .wine/drive_c/Program Files/Turbine/DDO/backup/patchclient.dll into .wine/drive_c/Program Files/Turbine/DDO and point pylotro's patch dll setting to that, run the patch, and then point the patch dll setting back to .wine/drive_c/Program Files/Turbine/DDO/lotropatcher.dll and patch a second time.