Package Details: ioquake3-git 20160314.geb7408d-1

Git Clone URL: https://aur.archlinux.org/ioquake3-git.git (read-only)
Package Base: ioquake3-git
Description: The de-facto OSS Quake 3 distribution. You need the retail/demo .pk3 files to play.
Upstream URL: http://ioquake3.org/
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: 56
Popularity: 1.555053
First Submitted: 2013-01-22 00:31
Last Updated: 2016-03-15 00:17

Latest Comments

smokey2k commented on 2016-08-12 16:46

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.
https://github.com/ioquake/ioq3/commit/1cf0b21cda562bade9152958f1525e5ac281ab9c

hendry commented on 2016-06-03 07:49

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

@andreyv: Thanks, updated.

andreyv commented on 2016-03-11 17:40

Hello,

More suggested changes: http://pastie.org/10756399

* 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

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

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

andreyv commented on 2014-08-29 16:49

Some more changes are needed to reflect recent additions: http://pastie.org/9513336

Slash commented on 2014-08-28 02:35

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

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"?

breed808 commented on 2014-08-26 08:27

ioquake3-git now builds with SDL2: http://ioquake3.org/2014/08/25/ioquake3-updates-to-sdl-2/

andreyv commented on 2014-03-31 13:44

Hi,

The following needs to be applied to reflect source changes:

http://pastie.org/8982574

andreyv commented on 2014-02-06 06:58

@hoschi: I think SDL2 indeed has Wayland support, to enable it in ioquake3 you have to use 'quake3::git+https://github.com/ioquake/ioq3.git#branch=sdl2' in the PKGBUILD.

hoschi commented on 2014-02-05 18:17

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

Slash commented on 2014-01-07 02:12

Thanks, updated.

andreyv commented on 2014-01-06 14:42

Hello again,

Here are some follow-up changes: http://pastie.org/8606663

* 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

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

Slash commented on 2014-01-05 21:14

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


hello andreyv,

I've tested your changes, it's working smoothly!

Nice update btw, thanks!

andreyv commented on 2014-01-05 12:35

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 https://github.com/ioquake/ioq3/#compilation-and-installation. I have updated the package files to use them:

https://dl.dropboxusercontent.com/u/24028280/ioquake3-git-20131217.gbc2efc4-1.src.tar.gz

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

Thanks, I modernized the PKGBUILD.

samlt commented on 2013-12-17 20:06

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="http://ioquake3.org/"
@@ -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' \
-'http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run')
+source=('quake3.desktop'
+ 'quake3.launcher'
+ 'quake3ded.launcher'
+ 'http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run'
+ 'git://github.com/ioquake/ioq3.git')
md5sums=('9eca51e2b3ee3e0100944cba436a2a4c'
'ea5d99df80b41269523b34229fdf854d'
'ea5d99df80b41269523b34229fdf854d'
- 'c71fdddccb20e8fc393d846e9c61d685')
+ 'c71fdddccb20e8fc393d846e9c61d685'
+ 'SKIP')

-_gitroot=git://github.com/ioquake/ioq3.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/linuxq3apoint-1.32b-3.x86.run
- $srcdir/linuxq3apoint-1.32b-3.x86.run --tar xf
+ cd "$srcdir"
+ chmod +x "$srcdir/linuxq3apoint-1.32b-3.x86.run"
+ "$srcdir/linuxq3apoint-1.32b-3.x86.run" --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

merging into git version

Slash commented on 2013-01-22 00:31

@omer666: Yes, they switched to github. I created a new PKGBUILD, ioquake3-git, available here: https://aur.archlinux.org/packages/ioquake3-git/

omer666 commented on 2013-01-14 12:26

Hasn't ioquake3 abandonned SVN ?
http://ioquake3.org/2013/01/01/happy-new-year-ioquake3-and-github/
https://github.com/ioquake/ioq3

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

You're right, sorry.

Slash commented on 2012-07-27 23:07

That is how VCS PKGBUILDs work. makepkg pulls the latest version and automatically updates pkgver when it's run. Please see: https://wiki.archlinux.org/index.php/Arch_CVS_%26_SVN_PKGBUILD_guidelines

andreyv commented on 2012-07-27 12:16

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

Security update required:
http://ioquake3.org/2012/06/14/cve-2012-3345-symlink-attack-in-ioquake3-r1773/

>= r2253

Slash commented on 2011-11-05 20:32

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

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 musicbrainz.org is down (still at time of writing this), see:
http://blog.musicbrainz.org/?p=1111#comments
change mirror please to:
http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run
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 (ioquake3-1.36.tar.bz..> 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.

https://bugzilla.redhat.com/show_bug.cgi?id=526338
https://bugzilla.icculus.org/show_bug.cgi?id=4331


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="http://ioquake3.org/"
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' \
'http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run')
md5sums=('a4363cd27cba4027bd309bee6e48aaf2'
'9eca51e2b3ee3e0100944cba436a2a4c'
'37dbc85b482ee5c5b5063a31482bd083'
'37dbc85b482ee5c5b5063a31482bd083'
'c71fdddccb20e8fc393d846e9c61d685')

_svntrunk=svn://svn.icculus.org/quake3/trunk
_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/linuxq3apoint-1.32b-3.x86.run
$startdir/src/linuxq3apoint-1.32b-3.x86.run --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
}

hoschi commented on 2011-11-05 17:45

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 musicbrainz.org is down (still at time of writing this), see:
http://blog.musicbrainz.org/?p=1111#comments
change mirror please to:
http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run
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 (ioquake3-1.36.tar.bz..> 22-Apr-2009 11:55 189 )
Instead use this PKGBUILD ioquake3-svn! Yeah bleeding edge is fine for everyone, but without an new release this is the only solution.
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 why, 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.

https://bugzilla.redhat.com/show_bug.cgi?id=526338
https://bugzilla.icculus.org/show_bug.cgi?id=4331


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="http://ioquake3.org/"
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' \
'http://ftp.gwdg.de/pub/misc/ftp.idsoftware.com/idstuff/quake3/linux/linuxq3apoint-1.32b-3.x86.run')
md5sums=('a4363cd27cba4027bd309bee6e48aaf2'
'9eca51e2b3ee3e0100944cba436a2a4c'
'37dbc85b482ee5c5b5063a31482bd083'
'37dbc85b482ee5c5b5063a31482bd083'
'c71fdddccb20e8fc393d846e9c61d685')

_svntrunk=svn://svn.icculus.org/quake3/trunk
_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/linuxq3apoint-1.32b-3.x86.run
$startdir/src/linuxq3apoint-1.32b-3.x86.run --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

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

Diff: http://codepad.org/ERm8gfoV

Tarball: http://code.google.com/p/ttll/downloads/detail?name=ioquake3-svn-1784-1.src.tar.gz