Forums

HOWTO: Manually Patching WINE for League Of Legends

Targetted towards archlinux users, but intelligent/resourceful users of other distros may benefit.

Auteur Réponses
Cronanius Jeudi 6 Décembre 2012 à 6:47
CronaniusAnonymous

Step-by-step tutorial for getting league running flawlessly for all you knuckleheads.:

(DISCLAIMER: ARCHLINUX ONLY. I DON'T KNOW HOW OTHER DISTRIBUTIONS HANDLE BUILDING FROM SOURCE. IF YOU CAN GET YOUR DISTRO'S WINE SOURCE CODE, THESE INSTRUCTIONS SHOULD WORK FOR YOU FROM THAT POINT ON. ALSO, I DO SOMETHING THAT IS CONSIDERED VERY BAD PRACTICE, BECAUSE I'M LAZY. IF YOU NARC YOUR SYSTEM BECAUSE YOU ARE SO DESPERATE TO GET LEAGUE RUNNING A FEW DAYS BEFORE THE FINE FOLKS AT PLAYONLINUX HAND YOU A PAINLESS SOLUTION, I CANNOT BE HELD RESPONSIBLE.).

1. Get your wine source code.

Archlinux users:

Download the arch build system using pacman -S abs, and subsequently run the "abs" command in the terminal without quotations to populate /var/abs.

In the terminal, find the place where your PKGBUILD file WINE exists. From here on in, I will refer to this as /var/abs/multilib/wine, because this is where it is on my system.

We will use nano as our text editor of choice, because that's what I use. Type:

sudo nano /var/abs/multilib/wine/PKGBUILD

This will open the file with read/write permissions. Scroll down the file until you find the line that starts with:

source=(

And, after the url given ON THAT LINE, INSIDE THE PARANTHESES, add a space, and type the following:

http://uz.sns.it/~ranma42/iLoL/0001-HACK-Disallow-block-based-textures-with-sub-block-si.patch

Then, on the line below (that starts with md5sums), add the following md5 checksum IN THE SAME MANNER AS THE OTHER TWO, NOT ON THE SAME LINE, AT THE END, INSIDE THE PARENTHESES:

'49b2581a9b6e57df440f61c5a7b08a57'

This is the md5 checksum for the patch file that will automatically download with the PKGBUILD file, and is the same one that I used. PLEASE note that you are using this patchfile at your own risk, and, even though it is the one that I used myself, I cannot validate the authenticity of the patch file and/or checksum. This kind of thing is inherently risky business.

Next, scroll down to find the following 2 lines:

# Allow ccache to work

mv $pkgname-$_pkgbasever $pkgname

Type the following 4 lines after these lines, AND MAKE SURE EACH DOES NOT TAKE A NEWLINE:

#apply patches

cd "$srcdir/wine"

patch -p1 < ../0001-HACK-Disallow-block-based-textures-with-sub-block-si.patch

cd "$srcdir"

For future reference, this is the place you can put any other wine patches, and it should work. Now ctrl+o and ctrl+x out of nano (you did open nano with sudo, right? If you forgot, save after ctrl+o to your home folder by typing /home/username/PKGBUILD into the save file line).

For NON-ARCHLINUX USERS: I'm not entirely sure how the various distros build from scratch; I've been using Arch for nearly 6 years now and am not particularly helpful for you here. However, IF you know how to get your wine compiled (read the fine wikis), and all you need is to patch it, just do the following:

1. Download wget, if you don't already have it installed on your system.

2. Find the place where you downloaded the source code tree. cd into the "/src" directory in this tree.

3. Find where the "wine" folder is in the source tree that you downloaded off the internets, and cd into it. Then type:

wget http://uz.sns.it/~ranma42/iLoL/0001-HACK-Disallow-block-based-textures-with-sub-block-si.patch

4. This will have downloaded the patch to the "/src" directory.

5. cd into "/src/wine"

6. Type the following:

patch -p1 < ../0001-HACK-Disallow-block-based-textures-with-sub-block-si.patch

7. WINE SHOULD NOW BE PATCHED.

8. Compile wine.

9. Follow the "EVERYBODY" instructions below.

ARCHLINUX USERS: It's time for me to do bad things. Don't tell the powerusers in #archlinux IRC that I told you to do this; they will call you nine kinds of idiot, and probably ban me for life for telling you to run makepkg as root. In lieu of potentially breaking your system, you can follow along by copying your new PKGBUILD to someplace in your home directory and trying to follow along as a regular user, WITHOUT using the --asroot option on makepkg. I am a bad/lazy person, however, and did not try to do it this way. But please try it this way BEFORE doing it as the superuser; I would feel mildly bad if somebody narc'd their computer. YOU. HAVE. BEEN. WARNED.

DOWNLOAD YOUR (x86_64) DEPENDENCIES:

pacman -Sy autoconf ncurses bison perl fontforge flex prelink gcc gcc-multilib giflib lib32-giflib libpng lib32-libpng gnutls lib32-gnutls libxinerama lib32-libxinerama libxcomposite lib32-libxcomposite libxmu lib32-libxmu libxxf86vm lib32-libxxf86vm libxml2 lib32-libxml2 libldap lib32-libldap lcms lib32-lcms mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils alsa-lib lib32-alsa-lib libxcomposite lib32-libxcomposite mesa lib32-mesa oss samba

I don't know what they are for 32-bit OS's, but you can find them in the PKGBUILD file, and they will be very similar, though probably not as many. Use your head. Now that those are installed:

cd /var/abs/multilib/wine

Type the following:

sudo makepkg --asroot

It will start to build wine, and then fail miserably BECAUSE WE FORGOT A DEPENDENCY. GO AND DOWNLOAD YOUR DEPENDENCIES >:(.

^^That last bit is what happens to me all the time :P. If this does happen to you, just sudo rm -r the /src and /pkg trees in /var/abs/multilib/wine, download your missing dependencies, and rerun sudo makepkg --asroot.

At this point, wine should be compiling flawlessly, assuming I've written down these directions correctly. I'm writing them after the fact and hoping I didn't forget anything. Now you go do something else for an hour while it compiles.

EVERYBODY: So, you've got wine compiled. Congrats! Hopefully you spent less time at it than I did :). Now you'll want to go to /home/username/.playonlinux/wine/linux-x86 and create a directory called 1.5.18-LeagueOfLegends. Then copy the following folders from wherever you've compiled wine (for me, it was in /var/abs/multilib/wine/pkg/usr) into /home/username/.playonlinux/wine/linux-x86/1.5.18-LeagueOfLegends:

/bin

/include

/lib

/lib32

/share

If you're not using a 64-bit OS, you probably won't have /lib32, at the least (but I don't know for sure), so don't sweat it.

Just a few more, very simple steps:

1. Run PlayOnLinux.

2. Select League of Legends.

3. Click on "Configure" button on the top right or the bar on the right.

4. Select the "General" tab, if you're not already there.

5. Click the down-drop arrow beside 1.5.5-LeagueOfLegends

6. Select 1.5.18-LeagueOfLegends

7. Select the "Wine" tab (at the top, beside the "General" tab).

8. Select the "Configure Wine" button, with the gears picture (this will run winecfg).

9. Under the "Applications" tab (you should start here), you will see "Windows Version" bar. Change this from Windows 7 to Windows XP to get rid of the so-called "Laser Light Show" (Particle effects are not rendered correctly in the Windows 7 emulation, apparently).

10. PLAY. LEAGUE. BITCHES.

Fin.

Edité par Cronanius

Cronanius Jeudi 6 Décembre 2012 à 6:50
CronaniusAnonymous

Ugh, it lost all my formatting :(. I wrote it up in libreoffice - sorry if it's hard to read.