Package Details: ioquake3-git 20180304.gd28e667e-1

Git Clone URL: (read-only, click to copy)
Package Base: ioquake3-git
Description: The de-facto OSS Quake 3 distribution. You need the retail/demo .pk3 files to play.
Upstream URL:
Licenses: GPL
Conflicts: ioquake3-svn, quake3, quake3-icculus-svn, quake3-svn
Provides: ioquake3, quake3
Replaces: ioquake3-svn, quake3-icculus-svn
Submitter: Slash
Maintainer: Slash
Last Packager: Slash
Votes: 78
Popularity: 0.055994
First Submitted: 2013-01-22 00:31 (UTC)
Last Updated: 2021-09-08 21:54 (UTC)

Latest Comments

CaRp commented on 2021-08-22 11:50 (UTC) (edited on 2021-08-22 12:12 (UTC) by CaRp)

After playing for a while I got a "hunk_alloc failed" error on map load. I fixed it by typing

seta com_hunkMegs "256"

into the console and restarting the game.

Techman35 commented on 2021-01-05 10:10 (UTC)

recursive error after: User Interface is version 3, expected 6 is there something i miss?

Slash commented on 2020-12-23 03:14 (UTC)

@Opvolger: I added aarch64 to the arch list, thanks for the heads up.

Opvolger commented on 2020-12-22 20:32 (UTC)

Can you add aarch64 in arch=('i686' 'x86_64' 'aarch64') ? Works op pinebook pro!

Slash commented on 2018-03-04 18:44 (UTC)

@zeroxfourc: Thanks for the heads up, I updated the PKGBUILD

zeroxfourc commented on 2018-03-04 13:00 (UTC)

The .service file needs to be patched because of this commit:

Slash commented on 2017-09-05 23:07 (UTC)

You can't download the ioquake3 patches via script (try curl or wget, it just downloads HTML). It looks like it works if you spoof the referral header, but then it would need to be a separate curl or wget command in the PKGBUILD instead of just the URL as part of the sources array. We would also need to manually compute and check that the checksum matches instead of makepkg doing it automatically. That could be done, but I don't know if the end result is any neater :)

zeroxfourc commented on 2017-09-04 16:31 (UTC) (edited on 2017-09-04 16:42 (UTC) by zeroxfourc)

Just noticed the q3a.service error is actually from upstream, my bad! I've reported it!

zeroxfourc commented on 2017-09-04 16:30 (UTC)

Also, perhaps we should use the patch package ioquake3 provides? It probably doesn't matter either way, but I think it feels neater :)

zeroxfourc commented on 2017-09-04 16:22 (UTC)

The q3a.service file doesn't work: Sep 04 18:16:17 ingarill systemd[1]: /usr/lib/systemd/system/q3a.service:8: Executable path is not absolute: $(which q3ded) +set dedicated 2

hoschi commented on 2017-03-15 00:02 (UTC)

Hello! Everybody shall update the package, important security fixes are available: ------------------------------------------------------------------------------------------------ b173ac05 Merge some file writing extension checks from OpenJK. f61fe5f6 Don't open .pk3 files as OpenAL drivers. 376267d5 Don't load .pk3s as .dlls, and don't load user config files from .pk3s. ... ------------------------------------------------------------------------------------------------ This packages is using Git, so the package itself doesn't need an upgrade.

smokey2k commented on 2016-08-12 16:46 (UTC)

Just a side note: If you have any gamepad/joystick connected the game wont start, you got only a blank screen/window. You have to set in_joystick "1", then it will start properly.

hendry commented on 2016-06-03 07:49 (UTC)

Unable to get it running fullscreen on my T460s 2560x1440 screen with Intel driver. Couldn't get window display mode, no resolutions detected: Couldn't find display mode match GL_RENDERER: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2)

Slash commented on 2016-03-15 00:18 (UTC)

@andreyv: Thanks, updated.

andreyv commented on 2016-03-11 17:40 (UTC)

Hello, More suggested changes: * Remove obsolete speex dependency * Honor CPPFLAGS from makepkg.conf I also noticed that the code starting from pre_remove() seems unneeded in quake3.install.

hoschi commented on 2014-09-01 07:32 (UTC)

The new PKGBUILD with SDL2 works for me perfect. My performance in also increased around 5%, looks good.

Slash commented on 2014-08-30 00:53 (UTC)

@andreyv: Thanks for keeping up with ioquake3 changes. I updated the PKGBUILD.

andreyv commented on 2014-08-29 16:49 (UTC)

Some more changes are needed to reflect recent additions:

Slash commented on 2014-08-28 02:35 (UTC)

I changed the deps from sdl to sdl2. It looks like it builds with sdl2 instead of sdl without any additional build changes.

hoschi commented on 2014-08-27 11:59 (UTC)

Maybe I can check if everything compiles and runs with the new SDL2-Support around friday. The pkgbuild seems to use the pkgver()-function already. Propably it is enough to change from "sdl" to "sdl2"?

commented on 2014-08-26 08:27 (UTC)

ioquake3-git now builds with SDL2:

andreyv commented on 2014-03-31 13:44 (UTC)

Hi, The following needs to be applied to reflect source changes:

andreyv commented on 2014-02-06 06:58 (UTC)

@hoschi: I think SDL2 indeed has Wayland support, to enable it in ioquake3 you have to use 'quake3::git+' in the PKGBUILD.

hoschi commented on 2014-02-05 18:17 (UTC)

Question, does anybody know if and how IOQuake3 will handle Wayland-Support? Maybe it needs SDL2?

Slash commented on 2014-01-07 02:12 (UTC)

Thanks, updated.

andreyv commented on 2014-01-06 14:42 (UTC)

Hello again, Here are some follow-up changes: * Manually add include path for opus codec to make it work * Add mumble description in optdepends * Use HTTPS for git source

andreyv commented on 2014-01-05 21:36 (UTC)

Thanks! BTW, 'nasm' is no longer needed as a dependency.

Slash commented on 2014-01-05 21:14 (UTC)

Thanks for the contribution, it seems to work well. I symlinked the pk3 files to demoq3/ by default to simplify the .install instructions.

samlt commented on 2014-01-05 15:28 (UTC)

hello andreyv, I've tested your changes, it's working smoothly! Nice update btw, thanks!

andreyv commented on 2014-01-05 12:35 (UTC)

Hi, I would like to contribute some changes as well. Currently there are these problems with the package: * It takes time and space to build files that are normally not necessary (.so and .qvm) * It does not enable the new ioquake3-specific features * It uses bundled code/headers instead of the system ones There are Make variables that allow to control ioquake3 build process and solve the problems listed above, see I have updated the package files to use them: More detailed changelog: * There is no need to have separate launchers, instead use DEFAULT_BASEDIR and symlink binaries * Rename quake3ded to the standard q3ded * Set OPTIMIZE='' to use system compiler flags from makepkg.conf * Don't build .so and .qvm files * Use openal, curl, audio codecs, voip support, freetype font rendering * Disable unneeded dlopen() * Use system versions instead of bundled libraries and headers * Don't generate source dependencies for faster compilation * Extract patch files in prepare() function * The "Opus" codec support seems to be broken now, so don't enable it * Also build the new renderer engine It would be nice if someone could test and comment on it. Thanks. Regarding the Q3 Demo comments in quake3.install, which say that the .so files are needed: I tried the Q3 Demo version and it seems to work without .so after I copied the pak{1..8}.pk3 files from the baseq3 directory. So I updated the instructions in quake3.install accordingly.

Slash commented on 2013-12-26 02:21 (UTC)

Thanks, I modernized the PKGBUILD.

samlt commented on 2013-12-17 20:06 (UTC)

hello, Here is a patch to make use of pacman VCS support for the sources: diff --git a/ioquake3-git/PKGBUILD b/ioquake3-git/PKGBUILD index 8006222..162a214 100644 --- a/ioquake3-git/PKGBUILD +++ b/ioquake3-git/PKGBUILD @@ -1,7 +1,7 @@ # Contributor: Slash <demodevil5[at]yahoo[dot]com> pkgname=ioquake3-git -pkgver=20130121 +pkgver=20131217.g90331bb pkgrel=1 pkgdesc="The de-facto OSS Quake 3 distribution. You need the retail/demo .pk3 files to play." url="" @@ -13,34 +13,27 @@ conflicts=('quake3' 'quake3-icculus-svn' 'quake3-svn' 'ioquake3-svn') provides=('quake3' 'ioquake3') replaces=('quake3-icculus-svn' 'ioquake3-svn') install=quake3.install -source=('quake3.desktop' 'quake3.launcher' 'quake3ded.launcher' \ -'') +source=('quake3.desktop' + 'quake3.launcher' + 'quake3ded.launcher' + '' + 'git://') md5sums=('9eca51e2b3ee3e0100944cba436a2a4c' 'ea5d99df80b41269523b34229fdf854d' 'ea5d99df80b41269523b34229fdf854d' - 'c71fdddccb20e8fc393d846e9c61d685') + 'c71fdddccb20e8fc393d846e9c61d685' + 'SKIP') -_gitroot=git:// -_gitname=quake3 +_gitname=ioq3 -build() { - cd $srcdir - - msg "Connecting to GIT server...." - - if [[ -d "$_gitname" ]]; then - cd "$_gitname" && git pull origin - msg "The local files are updated." - else - git clone "$_gitroot" "$_gitname" - fi +pkgver() { + cd "$srcdir/$_gitname" + git log -1 --format="%cd.g%h" --date=short | sed 's/-//g' +} - msg "GIT checkout done or server timeout" - msg "Starting build..." - rm -rf "$srcdir/$_gitname-build" - git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build" - cd "$srcdir/$_gitname-build" +build() { + cd "$srcdir/$_gitname" # Modify Makefile to correct install path /bin/sed -i "s:/usr/local/games/quake3:$pkgdir/opt/quake3:" Makefile @@ -50,15 +43,15 @@ build() { } package() { - cd "$srcdir/$_gitname-build" + cd "$srcdir/$_gitname" # Install Files make copyfiles || return 1 # Extract Patch Files - cd $srcdir - chmod +x $srcdir/ - $srcdir/ --tar xf + cd "$srcdir" + chmod +x "$srcdir/" + "$srcdir/" --tar xf # Modify Launcher Scripts if [ "$CARCH" = "x86_64" ]; then @@ -100,6 +93,6 @@ package() { $pkgdir/usr/share/applications/quake3.desktop # Install Icon File - install -D -m 644 $srcdir/quake3-build/misc/quake3.png \ - $pkgdir/usr/share/pixmaps/quake3.png + install -D -m 644 "$srcdir/$_gitname/misc/quake3.png" \ + "$pkgdir/usr/share/pixmaps/quake3.png" } Also, not that $srcdir et $pkgdir may point to a directory containing spaces, so they should be quoted: (applies on top of the previous one): iff --git a/ioquake3-git/PKGBUILD b/ioquake3-git/PKGBUILD index 162a214..075785c 100644 --- a/ioquake3-git/PKGBUILD +++ b/ioquake3-git/PKGBUILD @@ -59,40 +59,41 @@ package() { # x86_64 Systems # /bin/sed -i "s:IOQ3_BINARY:ioquake3.x86_64:" \ - $srcdir/quake3.launcher + "$srcdir/quake3.launcher" /bin/sed -i "s:IOQ3_BINARY:ioq3ded.x86_64:" \ - $srcdir/quake3ded.launcher + "$srcdir/quake3ded.launcher" else # # i686 Systems # /bin/sed -i "s:IOQ3_BINARY:ioquake3.i386:" \ - $srcdir/quake3.launcher + "$srcdir/quake3.launcher" /bin/sed -i "s:IOQ3_BINARY:ioq3ded.i386:" \ - $srcdir/quake3ded.launcher + "$srcdir/quake3ded.launcher" fi # Install Quake 3 Patch Files - install -m 644 $srcdir/baseq3/*.pk3 \ - $pkgdir/opt/quake3/baseq3/ + install -m 644 "$srcdir"/baseq3/*.pk3 \ + "$pkgdir/opt/quake3/baseq3/" # Install Quake 3 Expansion Pack Patch Files - install -m 644 $srcdir/missionpack/*.pk3 \ - $pkgdir/opt/quake3/missionpack/ + install -m 644 "$srcdir"/missionpack/*.pk3 \ + "$pkgdir/opt/quake3/missionpack/" # Install Launcher (Client) - install -D -m 755 $srcdir/quake3.launcher \ - $pkgdir/usr/bin/quake3 + install -D -m 755 "$srcdir/quake3.launcher" \ + "$pkgdir/usr/bin/quake3" # Install Launcher (Server) - install -D -m 755 $srcdir/quake3ded.launcher \ - $pkgdir/usr/bin/quake3ded + install -D -m 755 "$srcdir/quake3ded.launcher" \ + "$pkgdir/usr/bin/quake3ded" # Install Desktop File - install -D -m 644 $srcdir/quake3.desktop \ - $pkgdir/usr/share/applications/quake3.desktop + install -D -m 644 "$srcdir/quake3.desktop" \ + "$pkgdir/usr/share/applications/quake3.desktop" # Install Icon File install -D -m 644 "$srcdir/$_gitname/misc/quake3.png" \ "$pkgdir/usr/share/pixmaps/quake3.png" } +

alucryd commented on 2013-02-16 23:07 (UTC)

merging into git version

Slash commented on 2013-01-22 00:31 (UTC)

@omer666: Yes, they switched to github. I created a new PKGBUILD, ioquake3-git, available here:

omer666 commented on 2013-01-14 12:26 (UTC)

Hasn't ioquake3 abandonned SVN ? SVN has been last updated 12 days ago, whereas github has been updated 6 hours ago. That's not a request, just a comment.

andreyv commented on 2012-07-28 06:29 (UTC)

You're right, sorry.

Slash commented on 2012-07-27 23:07 (UTC)

That is how VCS PKGBUILDs work. makepkg pulls the latest version and automatically updates pkgver when it's run. Please see:

andreyv commented on 2012-07-27 12:16 (UTC)

Why is this package locked to a specific SVN revision? If one installs ioquake3-_svn_, he/she wants the latest SVN trunk, not a random outdated revision.

hoschi commented on 2012-07-14 16:38 (UTC)

Security update required: >= r2253

Slash commented on 2011-11-05 20:32 (UTC)

Thanks, I updated the PKGBUILD with the working mirror, made the modifications suggested by OttoA, and modernized the PKGBUILD (it had not been updated since 2007).

hoschi commented on 2011-11-05 17:47 (UTC)

Hello! 1. As far as I can see the PKGBUILD is using to old executable run-file from ID-Software to extract the launch-scripts. The ftp-mirror is down (still at time of writing this), see: change mirror please to: The official ftp-server of ID-Software is also down! The link above leads to a university-sever in germany, so it "should" be save. 2. Don't use the ioquake3-1.36-1! Bots won't work with newer glibc on x86_64! 1.36-1 released in April 2009 (> 22-Apr-2009 11:55 189 ) Instead use this PKGBUILD ioquake3-svn! Yeah bleeding edge is not fine for everyone, but without an new official release this is the only solution (or patching itself). The Red Hat people discoverd this bug in 2009, it occurs here on archlinux since some days. Two years later *lol* Quake3 uses strcpy() in a wrong way, strings may not overlap! It is fixed in svn by using memmove() instead. The other part is that strcpy shouldn't be used, because is dangerous itself (doesn't check length), instead everyone should use strncpy() nowadays. Of course the codebase of quake3 itself is old. For the lazy people: # Contributor: Slash <demodevil5[at]yahoo[dot]com> pkgname=ioquake3-svn pkgver=2196 pkgrel=1 pkgdesc="The de-facto OSS Quake 3 distribution. You need the retail/demo .pk3 files to play." url="" license='GPL' arch=('i686' 'x86_64') depends=('sdl' 'openal') makedepends=('nasm' 'subversion') conflicts=('quake3' 'quake3-icculus-svn' 'quake3-svn') provides=('quake3') replaces=('quake3-icculus-svn') install=quake3.install source=('quake3.install' 'quake3.desktop' 'quake3.launcher' 'quake3ded.launcher' \ '') md5sums=('a4363cd27cba4027bd309bee6e48aaf2' '9eca51e2b3ee3e0100944cba436a2a4c' '37dbc85b482ee5c5b5063a31482bd083' '37dbc85b482ee5c5b5063a31482bd083' 'c71fdddccb20e8fc393d846e9c61d685') _svntrunk=svn:// _svnmod=quake3 _revnumber=$pkgver build() { cd $startdir/src # Be sure to have a ~/.subversion. If it doesn't exist, touch it. touch ~/.subversion/ # Checkout Files svn co $_svntrunk --config-dir ./ -r $_revnumber $_svnmod cd $_svnmod msg "SVN checkout done or server timeout" msg "Starting make..." # Copy files to build directory mkdir ../$_svnmod-build cp -r * ../$_svnmod-build cd ../$_svnmod-build # Modify Makefile to correct install path /bin/sed -i "s:/usr/local/games/quake3:$startdir/pkg/opt/quake3:" Makefile # Compile ioQuake3 make || return 1 # Install Files make copyfiles || return 1 # Extract Patch Files cd $startdir/src/ chmod +x $startdir/src/ $startdir/src/ --tar xf # Modify Launcher Scripts if [ "$CARCH" = "x86_64" ]; then # # x86_64 Systems # /bin/sed -i "s:IOQ3_BINARY:ioquake3.x86_64:" \ $startdir/src/quake3.launcher /bin/sed -i "s:IOQ3_BINARY:ioq3ded.x86_64:" \ $startdir/src/quake3ded.launcher else # # i686 Systems # /bin/sed -i "s:IOQ3_BINARY:ioquake3.i386:" \ $startdir/src/quake3.launcher /bin/sed -i "s:IOQ3_BINARY:ioq3ded.i386:" \ $startdir/src/quake3ded.launcher fi # Install Quake 3 Patch Files install -m 644 $startdir/src/baseq3/*.pk3 \ $startdir/pkg/opt/quake3/baseq3/ # Install Quake 3 Expansion Pack Patch Files install -m 644 $startdir/src/missionpack/*.pk3 \ $startdir/pkg/opt/quake3/missionpack/ # Install Launcher (Client) install -D -m 755 $startdir/src/quake3.launcher \ $startdir/pkg/usr/bin/quake3 # Install Launcher (Server) install -D -m 755 $startdir/src/quake3ded.launcher \ $startdir/pkg/usr/bin/quake3ded # Install Desktop File install -D -m 644 $startdir/src/quake3.desktop \ $startdir/pkg/usr/share/applications/quake3.desktop # Install Icon File install -D -m 644 $startdir/src/quake3-build/misc/quake3.png \ $startdir/pkg/usr/share/pixmaps/quake3.png }

OttoA commented on 2010-06-07 11:26 (UTC)

I modified the package to use exec to run binaries. This makes it easier to use the PID of the run script. Diff: Tarball: