[SCM] [contrib] Quake III: Arena launcher branch, master, updated. debian/1.0-7-g99d3326

Simon McVittie smcv at debian.org
Thu Nov 11 22:48:36 UTC 2010


The following commit has been merged in the master branch:
commit 6012d503c37de08e51980ae8c4271fb86c542009
Author: Simon McVittie <smcv at debian.org>
Date:   Thu Nov 11 01:14:21 2010 +0000

    Allow game-data-packager to satisfy the quake3-data dependency

diff --git a/Makefile b/Makefile
index f930a84..3656a7b 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,8 @@ ALL = \
 	build/quake3-server \
 	build/quake3.png \
 	build/quake3.xpm \
-	build/quake332.xpm
+	build/quake332.xpm \
+	build/quake3-server.README.Debian
 
 all: $(ALL)
 
@@ -35,5 +36,8 @@ build/quake3.xpm: build/quake3.png
 build/quake332.xpm: build/quake3.png
 	convert -resize 32x32 $< $@
 
+build/quake3-server.README.Debian: need-data.txt
+	install -m644 $< $@
+
 clean:
 	rm -rf build
diff --git a/debian/changelog b/debian/changelog
index d86859f..76ba826 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+quake3 (1.1) UNRELEASED; urgency=low
+
+  * Allow game-data-packager to satisfy the quake3-data dependency
+  * If quake3-data is missing from quake3, don't allow the game to run (the
+    engine doesn't cope well with it); instead, use zenity, kdialog, xmessage
+    or (as a last resort) terminal output to tell the user about
+    game-data-packager
+  * If quake3-data is missing from quake3-server, just output to the console
+
+ -- Simon McVittie <smcv at debian.org>  Wed, 10 Nov 2010 21:35:01 +0000
+
 quake3 (1.0) experimental; urgency=low
 
   [ Jack Coulter ]
diff --git a/debian/control b/debian/control
index 40fc457..584ce41 100644
--- a/debian/control
+++ b/debian/control
@@ -12,24 +12,27 @@ Standards-Version: 3.9.1
 
 Package: quake3
 Architecture: all
-Depends: ioquake3, quake3-data, ${misc:Depends}
-Recommends: game-data-packager (>= 23)
+Depends: ioquake3,
+         quake3-data | game-data-packager (>= 23),
+         ${misc:Depends}
+Recommends: x11-utils | zenity | kdebase-bin
 Description: Quake III Arena menu entry and launcher scripts
  This package contains a launcher script and menu entry to play
  Quake III Arena with the ioQuake3 engine.
  .
- Before installing this package you will need to create and install the
+ To make this package useful, you will need to create and install the
  non-distributable quake3-data package, by using the game-data-packager
  package. This requires pak0.pk3 from a Quake III installation or CD-ROM.
 
 Package: quake3-server
 Architecture: all
-Depends: ioquake3-server, quake3-data, ${misc:Depends}
-Recommends: game-data-packager (>= 23)
+Depends: ioquake3-server,
+         quake3-data | game-data-packager (>= 23),
+         ${misc:Depends}
 Description: Quake III Arena dedicated server launcher scripts
  This package contains a launcher script to run a Quake III Arena dedicated
  server with the ioQuake3 engine.
  .
- Before installing this package you will need to create and install the
+ To make this package useful, you will need to create and install the
  non-distributable quake3-data package, by using the game-data-packager
  package. This requires pak0.pk3 from a Quake III installation or CD-ROM.
diff --git a/debian/quake3-server.install b/debian/quake3-server.install
index 9b4b15e..18acb36 100644
--- a/debian/quake3-server.install
+++ b/debian/quake3-server.install
@@ -1 +1,2 @@
 build/quake3-server usr/games
+build/quake3-server.README.Debian usr/share/doc/quake3-server
diff --git a/debian/quake3.install b/debian/quake3.install
index cb18ad3..a2bba73 100644
--- a/debian/quake3.install
+++ b/debian/quake3.install
@@ -3,3 +3,5 @@ build/quake3.png usr/share/pixmaps
 build/quake3.xpm usr/share/pixmaps
 build/quake332.xpm usr/share/pixmaps
 build/quake3 usr/games
+need-data.sh usr/share/games/quake3
+need-data.txt usr/share/games/quake3
diff --git a/need-data.sh b/need-data.sh
new file mode 100755
index 0000000..7212150
--- /dev/null
+++ b/need-data.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+TITLE="Quake III Arena"
+TEXT="`cat "$1"`"
+
+# This is basically the code/sys/sys_unix.c implementation of Sys_Dialog,
+# redone in shell.
+
+try_zenity () {
+  if command -v zenity >/dev/null; then
+    zenity --error --text="$TEXT" --title="$TITLE"
+    return 0
+  else
+    return 1
+  fi
+}
+
+try_kdialog () {
+  if command -v kdialog >/dev/null; then
+    kdialog --error --text="$TEXT" --title="$TITLE"
+    return 0
+  else
+    return 1
+  fi
+}
+
+try_xmessage () {
+  if command -v xmessage >/dev/null; then
+    xmessage -center -buttons OK "$TEXT"
+    return 0
+  else
+    return 1
+  fi
+}
+
+case $(echo "$DESKTOP_SESSION" | tr A-Z a-z) in
+  (kde)
+    pref=try_kdialog
+    ;;
+  (gnome)
+    pref=try_zenity
+    ;;
+  (*)
+    pref=false
+    ;;
+esac
+
+$pref || try_zenity || try_kdialog || try_xmessage
+
+printf "%s\n" "$TEXT"
+exit 72         # EX_OSFILE
diff --git a/need-data.txt b/need-data.txt
new file mode 100644
index 0000000..d46709e
--- /dev/null
+++ b/need-data.txt
@@ -0,0 +1,21 @@
+Use game-data-packager to build and install the quake3-data package.
+You will need these two files:
+
+--------------- baseq3/pak0.pk3
+
+From a Quake III Arena CD-ROM or installation
+
+size: 479493658 bytes
+md5sum: 1197ca3df1e65f3c380f8abc10ca43bf
+sha1sum: 9d588ea65e92944d3e23eeb6ec08f1dd666f4658
+sha256sum: 7ce8b3910620cd50a09e4f1100f426e8c6180f68895d589f80e6bd95af54bcae
+
+--------------- linuxq3apoint-1.32b-3.x86.run
+
+From any mirror of ftp.idsoftware.com, Gentoo or FreeBSD: for instance try
+http://www.filewatcher.com/m/linuxq3apoint-1.32b-3.x86.run.30923961.0.0.html
+
+size: 30923961 bytes
+md5sum: c71fdddccb20e8fc393d846e9c61d685
+sha1sum: 802d84af0d515db50a496c4c55d1f1c4f40a9239
+sha256sum: c36132c5556b35e01950f1e9c646235033a5130f87ad776ba2bc7becf4f4f186
diff --git a/quake3.in b/quake3.in
index 13eea6f..a409d57 100644
--- a/quake3.in
+++ b/quake3.in
@@ -9,6 +9,7 @@ IOQ3BINARY=@IOQ3BINARY@
 # q3a or openarena
 IOQ3DOTDIR=q3a
 
+BASEPATH="/usr/share/games/quake3"
 ENGINE="/usr/lib/ioquake3/${IOQ3BINARY}"
 
 DEBUGGER="$QUAKE3_DEBUGGER"
@@ -19,7 +20,7 @@ fi
 
 # the defaults mostly apply
 CVARS="+set com_standalone 0"
-CVARS="$CVARS +set fs_basepath /usr/share/games/quake3"
+CVARS="$CVARS +set fs_basepath $BASEPATH"
 
 QUIET=0
 
@@ -49,6 +50,20 @@ while [ "$1" != "" ]; do
   shift
 done
 
+# sanity check: the engine doesn't cope well with missing data
+for i in 0 1 2 3 4 5 6 7 8; do
+  if test -f $BASEPATH/baseq3/pak$i.pk3; then
+    :
+  else
+    if test "$IOQ3ROLE" = client; then
+      $BASEPATH/need-data.sh $BASEPATH/need-data.txt
+    else
+      echo "Quake III Arena data missing, see /usr/share/doc/quake3-server/README.Debian"
+    fi
+    exit 72     # EX_OSFILE
+  fi
+done
+
 if test "z$QUIET" = z1; then
   exec >/dev/null 2>&1;
 fi

-- 
[contrib] Quake III: Arena launcher



More information about the Pkg-games-commits mailing list