https://wiki.archlinux.org/api.php?action=feedcontributions&user=217.210.100.37&feedformat=atomArchWiki - User contributions [en]2024-03-29T08:18:01ZUser contributionsMediaWiki 1.41.0https://wiki.archlinux.org/index.php?title=Login_Manager&diff=6656Login Manager2005-12-11T21:52:09Z<p>217.210.100.37: </p>
<hr />
<div>#REDIRECT [[Adding_a_login_manager_(KDM,_GDM,_or_XDM)_to_automatically_boot_on_startup]]</div>217.210.100.37https://wiki.archlinux.org/index.php?title=World_of_Warcraft&diff=6591World of Warcraft2005-12-09T00:05:10Z<p>217.210.100.37: Fixed commentary loc.</p>
<hr />
<div>[[Category:Games]][[Category:Installation]]<br />
<br />
{{stub}}<br />
<br />
World of Warcraft is a Massive Multiplayer Online Role-Playing Game (MMORPG) by Blizzard Entertainment taking place in the fictional world of Azeroth; The world that previous Blizzard titles in the real-time strategy Warcraft game series has presented to the players.<br />
<br />
This article will describe how to get it runing on Arch Linux, even though it's a Windows (Win32) game.<br />
<br />
Patches from the Gentoo forum thread<br />
http://forums.gentoo.org/viewtopic-t-246098.html<br />
<br />
This REQUIRES a bought copy of World of Warcraft (of course you need a copy of the game, duh!).<br />
<br />
==Introduction==<br />
As Blizzard so kindly also shipped World of Warcraft with OpenGL support, we don't need Transgaming's Cedega software (which is a implementation of the Microsoft DirectX libraries).<br />
Basically, we just need a out-of-the-box wine installation and run WoW with opengl<br />
<br />
==Installation==<br />
<br />
''I had WoW already installed and patched on a Windows machine, so I simply copied the WoW folder to my Linux system to save me some time. If you have installed WoW on ArchLinux from the retail CD/DVD copy, please add it to this article.''<br />
<br />
==Post-Installation Tasks==<br />
<br />
===Updating World of Warcraft===<br />
<br />
''I had WoW already installed and patched on a Windows machine, so I simply copied the WoW folder to my Linux system to save me some time.''<br />
<br />
===No sound===<br />
Edit /path to your World of Warcraft folder/WTF/Config.wtf and add or change:<br />
<br />
SET SoundOutputSystem "1"<br />
SET SoundBufferSize "100"<br />
<br />
====OK, I have sound, but it's all crappy====<br />
I solved this by running<br />
<br />
# winecfg<br />
<br />
In the "Audio" tab, selected OSS as the sound driver, using "Standard" hardware acceleration and driver emulation enabled.<br />
<br />
===Running World of Warcraft===<br />
After patching and installing my custom wine package (see further down on this page) and fixed the sound, the only bug I've noticed in WoW (compared to running it on Windows using Microsoft's DirectX) is that characters/mobs (etc.) doesn't have that ring on the ground around them. But that's it.<br />
<br />
# wine /home/jdoe/.wine/c_drive/Program\ Files/World\ of\ Warcraft/WoW.exe -opengl<br />
<br />
==Patching and Build Wine==<br />
Like said above, you need wine. Wich isn't that difficult to install, but currently (Thu 08 Dec 2005) there's some bugs in World of Warcraft (1.8.4) that requires us to patch and re-compile Wine. I was able to start WoW with the package in ArchLinux repo, but I was unable to select NPCs/Objects/players etc in-game.<br />
<br />
First, we need the wine package from ArchLinux, which we get by running:<br />
<br />
# pacman -Sy cvsup<br />
# abs<br />
<br />
Then begin the creation of the new custom wine package.<br />
<br />
# cd /var/abs/local<br />
# mkdir wine<br />
# cd wine<br />
# cp ../../extra/x11/wine/PKGBUILD ../../extra/x11/wine/wine.install .<br />
<br />
Now get a CVS snapshot of Wine.<br />
<br />
# pacman -Sy cvs<br />
# cvs -d:pserver:cvs@cvs.winehq.org:/home/wine login<br />
# Logging in to :pserver:cvs@cvs.winehq.org:2401/home/wine<br />
CVS password: '''cvs'''<br />
# cvs -z3 -d:pserver:cvs@cvs.winehq.org:/home/wine checkout wine<br />
<br />
Because we want to make it a proper ArchPackage build, we tarball the source:<br />
<br />
# tar cf Wine-CVS-20051208.tar<br />
# gzip Wine-CVS-20051208.tar<br />
<br />
Now we need the patch,<br />
<br />
* wine-wow.patch (patch from [http://forums.gentoo.org/viewtopic-t-246098.html Gentoo forum]):<br />
<br />
--- dlls/opengl32/opengl_norm.c.old 2005-11-09 17:38:20.000000000 -0500<br />
+++ dlls/opengl32/opengl_norm.c 2005-11-09 17:38:35.000000000 -0500<br />
@@ -2367,7 +2367,7 @@<br />
void WINAPI wine_glPolygonOffset( GLfloat factor, GLfloat units ) {<br />
TRACE("(%f, %f)\n", factor, units );<br />
ENTER_GL();<br />
- glPolygonOffset( factor, units );<br />
+ glPolygonOffset(-factor, units );<br />
LEAVE_GL();<br />
}<br />
--- libs/wine/mmap.c.old 2005-06-20 13:43:47.000000000 +0200<br />
+++ libs/wine/mmap.c 2005-10-14 21:49:54.794346832 +0200<br />
@@ -161,6 +161,26 @@Gentoo forum <br />
<br />
#endif /* (__svr4__ || __NetBSD__) && !MAP_TRYFIXED */<br />
<br />
+static void *get_anon_mmap_null_address(size_t size)<br />
+{<br />
+ static int got_override = 0;<br />
+ static void *low_alloc_ptr = NULL;<br />
+ void * current_low_alloc_ptr;<br />
+<br />
+ if (!got_override)<br />
+ {<br />
+ low_alloc_ptr = (void*)0x10000000;<br />
+ got_override = 1;<br />
+ //printf("gaak!\n");<br />
+ }<br />
+<br />
+ current_low_alloc_ptr = low_alloc_ptr;<br />
+<br />
+ if (low_alloc_ptr)<br />
+ low_alloc_ptr += size;<br />
+<br />
+ return current_low_alloc_ptr;<br />
+ }<br />
<br />
/***********************************************************************<br />
* wine_anon_mmap<br />
@@ -209,6 +229,9 @@<br />
return start;<br />
#endif<br />
}<br />
+ if ((start == NULL) && !(flags & MAP_FIXED))<br />
+ start = get_anon_mmap_null_address(size);<br />
+<br />
return mmap( start, size, prot, flags, fdzero, 0 );<br />
#elsehttp://forums.gentoo.org/viewtopic-t-246098.html<br />
return (void *)-1;<br />
--- loader/preloader.c.old 2005-06-02 12:30:08.000000000 +0200<br />
+++ loader/preloader.c 2005-10-14 21:51:16.529921136 +0200<br />
@@ -110,7 +110,7 @@<br />
{<br />
{ (void *)0x00000000, 0x00110000 }, /* DOS area */<br />
{ (void *)0x80000000, 0x01000000 }, /* shared heap */<br />
- { (void *)0x00110000, 0x1fef0000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */<br />
+ { (void *)0x10000000, 0x00f00000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */<br />
{ 0, 0 } /* end of list */<br />
};<br />
<br />
Before we edit the PKGBUILD, get the md5 sums for the files,<br />
<br />
# md5sums Wine-CVS-20051208.tar.gz wine-wow.patch<br />
9bd3940851c23cc51db7c275278b2afb Wine-20051208.tar.gz<br />
3537367ec50ff6c812223de77d46afce wine-wow.patch<br />
<br />
What you need to modify in your PKGBUILD (as we copied it from the ArchLinux abs tree) is the pkgver, source & md5sums variables; plus a small addition to the build() function.<br />
My PKGBUILD based on the 0.9.2-1 package looks like follows,<br />
<br />
# $Id: PKGBUILD,v 1.2 2005/11/23 22:09:47 judd Exp $<br />
# Maintainer: judd <jvinet@zeroflux.org><br />
# Contributor: Matt Smith (Majik) <darkknight@helpdesk.zaz.net><br />
pkgname=wine<br />
pkgver=20051208<br />
# ugh, have to use the force switch to work around the version format<br />
# change -- remove the force switch after an upgrade or two<br />
force=y<br />
pkgrel=1<br />
pkgdesc="Emulator of the Windows 3.x and Win32 APIs"<br />
url="http://www.winehq.com"<br />
depends=('x-server' 'libjpeg' 'libungif' 'alsa-lib' 'glut')<br />
makedepends=('alsa-lib')<br />
install=wine.install<br />
source=(Wine-20051208.tar.gz wine-wow.patch)<br />
md5sums=('9bd3940851c23cc51db7c275278b2afb' \<br />
'3537367ec50ff6c812223de77d46afce')<br />
<br />
build() {<br />
cd $startdir/src/$pkgname<br />
<br />
# Apply WoW patch!<br />
patch -Np0 -i ../wine-wow.patch || return 1<br />
<br />
./configure --prefix=/usr --sysconfdir=/etc --enable-opengl --with-x<br />
make depend<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
# conflicts with textutils<br />
rm -f $startdir/pkg/usr/bin/expand<br />
mkdir -p $startdir/pkg/etc/wine<br />
mkdir -p $startdir/pkg/etc/profile.d<br />
#cp -r $startdir/src/$pkgname-$pkgver/documentation/samples $startdir/pkg/etc/wine<br />
}<br />
<br />
Now simply run<br />
<br />
# makepkg<br />
# pacman -A wine-20051208.pkg.tar.gz<br />
<br />
and you have a patched Wine package installed!</div>217.210.100.37https://wiki.archlinux.org/index.php?title=World_of_Warcraft&diff=6590World of Warcraft2005-12-09T00:04:18Z<p>217.210.100.37: </p>
<hr />
<div>[[Category:Games]][[Category:Installation]]<br />
<br />
{{stub}}<br />
<br />
World of Warcraft is a Massive Multiplayer Online Role-Playing Game (MMORPG) by Blizzard Entertainment taking place in the fictional world of Azeroth; The world that previous Blizzard titles in the real-time strategy Warcraft game series has presented to the players.<br />
<br />
This article will describe how to get it runing on Arch Linux, even though it's a Windows (Win32) game.<br />
<br />
Patches from the Gentoo forum thread<br />
http://forums.gentoo.org/viewtopic-t-246098.html<br />
<br />
This REQUIRES a bought copy of World of Warcraft (of course you need a copy of the game, duh!).<br />
<br />
==Introduction==<br />
As Blizzard so kindly also shipped World of Warcraft with OpenGL support, we don't need Transgaming's Cedega software (which is a implementation of the Microsoft DirectX libraries).<br />
Basically, we just need a out-of-the-box wine installation and run WoW with opengl<br />
<br />
==Installation==<br />
<br />
''I had WoW already installed and patched on a Windows machine, so I simply copied the WoW folder to my Linux system to save me some time.''<br />
<br />
==Post-Installation Tasks==<br />
<br />
===Updating World of Warcraft===<br />
<br />
''I had WoW already installed and patched on a Windows machine, so I simply copied the WoW folder to my Linux system to save me some time. If you have installed WoW on ArchLinux from the retail CD/DVD copy, please add it to this article.''<br />
<br />
===No sound===<br />
Edit /path to your World of Warcraft folder/WTF/Config.wtf and add or change:<br />
<br />
SET SoundOutputSystem "1"<br />
SET SoundBufferSize "100"<br />
<br />
====OK, I have sound, but it's all crappy====<br />
I solved this by running<br />
<br />
# winecfg<br />
<br />
In the "Audio" tab, selected OSS as the sound driver, using "Standard" hardware acceleration and driver emulation enabled.<br />
<br />
===Running World of Warcraft===<br />
After patching and installing my custom wine package (see further down on this page) and fixed the sound, the only bug I've noticed in WoW (compared to running it on Windows using Microsoft's DirectX) is that characters/mobs (etc.) doesn't have that ring on the ground around them. But that's it.<br />
<br />
# wine /home/jdoe/.wine/c_drive/Program\ Files/World\ of\ Warcraft/WoW.exe -opengl<br />
<br />
==Patching and Build Wine==<br />
Like said above, you need wine. Wich isn't that difficult to install, but currently (Thu 08 Dec 2005) there's some bugs in World of Warcraft (1.8.4) that requires us to patch and re-compile Wine. I was able to start WoW with the package in ArchLinux repo, but I was unable to select NPCs/Objects/players etc in-game.<br />
<br />
First, we need the wine package from ArchLinux, which we get by running:<br />
<br />
# pacman -Sy cvsup<br />
# abs<br />
<br />
Then begin the creation of the new custom wine package.<br />
<br />
# cd /var/abs/local<br />
# mkdir wine<br />
# cd wine<br />
# cp ../../extra/x11/wine/PKGBUILD ../../extra/x11/wine/wine.install .<br />
<br />
Now get a CVS snapshot of Wine.<br />
<br />
# pacman -Sy cvs<br />
# cvs -d:pserver:cvs@cvs.winehq.org:/home/wine login<br />
# Logging in to :pserver:cvs@cvs.winehq.org:2401/home/wine<br />
CVS password: '''cvs'''<br />
# cvs -z3 -d:pserver:cvs@cvs.winehq.org:/home/wine checkout wine<br />
<br />
Because we want to make it a proper ArchPackage build, we tarball the source:<br />
<br />
# tar cf Wine-CVS-20051208.tar<br />
# gzip Wine-CVS-20051208.tar<br />
<br />
Now we need the patch,<br />
<br />
* wine-wow.patch (patch from [http://forums.gentoo.org/viewtopic-t-246098.html Gentoo forum]):<br />
<br />
--- dlls/opengl32/opengl_norm.c.old 2005-11-09 17:38:20.000000000 -0500<br />
+++ dlls/opengl32/opengl_norm.c 2005-11-09 17:38:35.000000000 -0500<br />
@@ -2367,7 +2367,7 @@<br />
void WINAPI wine_glPolygonOffset( GLfloat factor, GLfloat units ) {<br />
TRACE("(%f, %f)\n", factor, units );<br />
ENTER_GL();<br />
- glPolygonOffset( factor, units );<br />
+ glPolygonOffset(-factor, units );<br />
LEAVE_GL();<br />
}<br />
--- libs/wine/mmap.c.old 2005-06-20 13:43:47.000000000 +0200<br />
+++ libs/wine/mmap.c 2005-10-14 21:49:54.794346832 +0200<br />
@@ -161,6 +161,26 @@Gentoo forum <br />
<br />
#endif /* (__svr4__ || __NetBSD__) && !MAP_TRYFIXED */<br />
<br />
+static void *get_anon_mmap_null_address(size_t size)<br />
+{<br />
+ static int got_override = 0;<br />
+ static void *low_alloc_ptr = NULL;<br />
+ void * current_low_alloc_ptr;<br />
+<br />
+ if (!got_override)<br />
+ {<br />
+ low_alloc_ptr = (void*)0x10000000;<br />
+ got_override = 1;<br />
+ //printf("gaak!\n");<br />
+ }<br />
+<br />
+ current_low_alloc_ptr = low_alloc_ptr;<br />
+<br />
+ if (low_alloc_ptr)<br />
+ low_alloc_ptr += size;<br />
+<br />
+ return current_low_alloc_ptr;<br />
+ }<br />
<br />
/***********************************************************************<br />
* wine_anon_mmap<br />
@@ -209,6 +229,9 @@<br />
return start;<br />
#endif<br />
}<br />
+ if ((start == NULL) && !(flags & MAP_FIXED))<br />
+ start = get_anon_mmap_null_address(size);<br />
+<br />
return mmap( start, size, prot, flags, fdzero, 0 );<br />
#elsehttp://forums.gentoo.org/viewtopic-t-246098.html<br />
return (void *)-1;<br />
--- loader/preloader.c.old 2005-06-02 12:30:08.000000000 +0200<br />
+++ loader/preloader.c 2005-10-14 21:51:16.529921136 +0200<br />
@@ -110,7 +110,7 @@<br />
{<br />
{ (void *)0x00000000, 0x00110000 }, /* DOS area */<br />
{ (void *)0x80000000, 0x01000000 }, /* shared heap */<br />
- { (void *)0x00110000, 0x1fef0000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */<br />
+ { (void *)0x10000000, 0x00f00000 }, /* PE exe range (may be set with WINEPRELOADRESERVE), defaults to 512mb */<br />
{ 0, 0 } /* end of list */<br />
};<br />
<br />
Before we edit the PKGBUILD, get the md5 sums for the files,<br />
<br />
# md5sums Wine-CVS-20051208.tar.gz wine-wow.patch<br />
9bd3940851c23cc51db7c275278b2afb Wine-20051208.tar.gz<br />
3537367ec50ff6c812223de77d46afce wine-wow.patch<br />
<br />
What you need to modify in your PKGBUILD (as we copied it from the ArchLinux abs tree) is the pkgver, source & md5sums variables; plus a small addition to the build() function.<br />
My PKGBUILD based on the 0.9.2-1 package looks like follows,<br />
<br />
# $Id: PKGBUILD,v 1.2 2005/11/23 22:09:47 judd Exp $<br />
# Maintainer: judd <jvinet@zeroflux.org><br />
# Contributor: Matt Smith (Majik) <darkknight@helpdesk.zaz.net><br />
pkgname=wine<br />
pkgver=20051208<br />
# ugh, have to use the force switch to work around the version format<br />
# change -- remove the force switch after an upgrade or two<br />
force=y<br />
pkgrel=1<br />
pkgdesc="Emulator of the Windows 3.x and Win32 APIs"<br />
url="http://www.winehq.com"<br />
depends=('x-server' 'libjpeg' 'libungif' 'alsa-lib' 'glut')<br />
makedepends=('alsa-lib')<br />
install=wine.install<br />
source=(Wine-20051208.tar.gz wine-wow.patch)<br />
md5sums=('9bd3940851c23cc51db7c275278b2afb' \<br />
'3537367ec50ff6c812223de77d46afce')<br />
<br />
build() {<br />
cd $startdir/src/$pkgname<br />
<br />
# Apply WoW patch!<br />
patch -Np0 -i ../wine-wow.patch || return 1<br />
<br />
./configure --prefix=/usr --sysconfdir=/etc --enable-opengl --with-x<br />
make depend<br />
make || return 1<br />
make prefix=$startdir/pkg/usr install<br />
# conflicts with textutils<br />
rm -f $startdir/pkg/usr/bin/expand<br />
mkdir -p $startdir/pkg/etc/wine<br />
mkdir -p $startdir/pkg/etc/profile.d<br />
#cp -r $startdir/src/$pkgname-$pkgver/documentation/samples $startdir/pkg/etc/wine<br />
}<br />
<br />
Now simply run<br />
<br />
# makepkg<br />
# pacman -A wine-20051208.pkg.tar.gz<br />
<br />
and you have a patched Wine package installed!</div>217.210.100.37