This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch quake
in repository game-data-packager.

commit ca8c0376662780eb85b445ffa6fe9e5510c010d8
Author: Alexandre Detiste <alexandre.deti...@gmail.com>
Date:   Thu Dec 10 00:48:57 2015 +0100

    add support for Enemy Territory: Quake Wars based on Quake 4 support
---
 Makefile                             | 20 ++++++++++
 README.etqw-data                     |  1 +
 debian/changelog                     |  9 +++++
 debian/control                       | 54 +++++++++++++++++++++++++
 debian/etqw-server.README.Debian     | 34 ++++++++++++++++
 debian/etqw-server.default           |  9 +++++
 debian/etqw-server.install           |  2 +
 debian/etqw-server.lintian-overrides |  2 +
 debian/etqw-server.manpages          |  1 +
 debian/etqw-server.postinst          | 30 ++++++++++++++
 debian/etqw-server.postrm            | 16 ++++++++
 debian/etqw-server.service           | 24 +++++++++++
 debian/etqw.install                  |  4 ++
 debian/etqw.links                    |  1 +
 debian/etqw.lintian-overrides        |  2 +
 debian/etqw.manpages                 |  1 +
 debian/rules                         |  2 +
 etqw-dedicated.6                     | 54 +++++++++++++++++++++++++
 etqw.6                               | 60 ++++++++++++++++++++++++++++
 etqw.desktop                         |  9 +++++
 etqw.in                              | 77 ++++++++++++++++++++++++++++++++++++
 21 files changed, 412 insertions(+)

diff --git a/Makefile b/Makefile
index 1e17590..19a857e 100644
--- a/Makefile
+++ b/Makefile
@@ -7,10 +7,12 @@ obj = \
        build/quake2 \
        build/quake3 \
        build/quake4 \
+       build/etqw \
        build/quake-server \
        build/quake2-server \
        build/quake3-server \
        build/quake4-dedicated \
+       build/etqw-dedicated \
        build/24/quake.png \
        build/24/quake-armagon.png \
        build/24/quake-dissolution.png \
@@ -76,6 +78,15 @@ build/quake4: quake4.in Makefile
                < $< > $@
        chmod +x $@
 
+build/etqw: etqw.in Makefile
+       install -d build
+       sed \
+               -e 's!@binary@!etqw.x86!' \
+               -e 's!@self@!etqw!' \
+               -e 's!@role@!client!' \
+               < $< > $@
+       chmod +x $@
+
 build/quake4-smp: quake4-smp.in Makefile
        install -d build
        sed \
@@ -121,6 +132,15 @@ build/quake4-dedicated: quake4.in Makefile
                < $< > $@
        chmod +x $@
 
+build/etqw-dedicated: etqw.in Makefile
+       install -d build
+       sed \
+               -e 's!@binary@!etqwded.x86!' \
+               -e 's!@self@!etqw-dedicated!' \
+               -e 's!@role@!server!' \
+               < $< > $@
+       chmod +x $@
+
 build/tmp/recolour-dissolution.svg: quake1+2.svg Makefile
        install -d build/tmp
        sed -e 's/#c17d11/#999984/' \
diff --git a/README.etqw-data b/README.etqw-data
new file mode 100644
index 0000000..6f72d9d
--- /dev/null
+++ b/README.etqw-data
@@ -0,0 +1 @@
+Use game-data-packager to build and install the etqw-data package.
diff --git a/debian/changelog b/debian/changelog
index 74142ec..06fc700 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,12 @@
+quake (17) UNRELEASED; urgency=medium
+
+  [ Alexandre Detiste ]
+  * Add support for "Enemy Territory: Quake Wars" using the
+    propietary binaries (there is no open-source engine)
+    and following the same patterns as used for Quake 4.
+
+ -- Simon McVittie <s...@debian.org>  Thu, 10 Dec 2015 00:44:21 +0100
+
 quake (16) unstable; urgency=medium
 
   * Move Build-Depends-Indep to Build-Depends; they are needed
diff --git a/debian/control b/debian/control
index c2dbbcf..0e4f969 100644
--- a/debian/control
+++ b/debian/control
@@ -200,3 +200,57 @@ Description: dedicated server for Quake 4
  quake4-censored-de-data (for the incompatible version sold in Germany).
  Creating those packages requires data files from a Quake 4 installation
  or DVD.
+
+Package: etqw
+Architecture: i386
+Depends:
+ ${misc:Depends},
+ etqw-bin | game-data-packager (>= 43),
+Suggests:
+ etqw-pb-bin,
+Description: science-fiction-themed multiplayer first person shooter
+ Enemy Territory: Quake Wars is a multiplayer first-person shooter game
+ by Splash Damage and id Software, released in 2007.
+ This package contains a launcher script and menu entry to play
+ ETQW using the proprietary x86 binaries provided by id Software.
+ .
+ Please note that the ETQW engine is not Free Software, and Debian
+ cannot fix any bugs or security flaws in the engine or game code.
+ .
+ To make this package useful, you will need to create and install some
+ non-distributable packages by using the game-data-packager package:
+ etqw-bin, and etqw-data.
+ Creating those packages requires data files from an "Enemy Territory:
+ Quake Wars" installation or DVD.
+
+Package: etqw-server
+Architecture: i386
+Depends:
+ ${misc:Depends},
+ adduser,
+ etqw-bin | game-data-packager (>= 43),
+ etqw-data | game-data-packager (>= 43),
+Recommends:
+ systemd-sysv,
+Suggests:
+ etqw-pb-bin,
+Description: dedicated server for Enemy Territory: Quake Wars
+ This package contains a launcher script and systemd unit to run a
+ Enemy Territory: Quake Wars server using the proprietary
+ x86 binaries provided by id Software.
+ .
+ Please note that the ETQW engine is not Free Software, and Debian
+ cannot fix any bugs or security flaws in the engine or game code.
+ .
+ To mitigate any security flaws that might exist in this server,
+ the systemd unit is not enabled by default, and must be enabled
+ with systemctl if it should start at boot time. The systemd unit
+ uses various security hardening options to prevent the server from
+ escalating its privileges. There is no sysvinit script,
+ since sysvinit does not provide similar security hardening.
+ .
+ To make this package useful, you will need to create and install some
+ non-distributable packages by using the game-data-packager package:
+ etqw-bin, and etqw-data.
+ Creating those packages requires data files from an "Enemy Territory:
+ Quake Wars" installation or DVD.
diff --git a/debian/etqw-server.README.Debian b/debian/etqw-server.README.Debian
new file mode 100644
index 0000000..7c9d07c
--- /dev/null
+++ b/debian/etqw-server.README.Debian
@@ -0,0 +1,34 @@
+Enemy Territory: Quake Wars dedicated server for Debian
+=======================================================
+
+The etqw-server systemd unit runs a dedicated server as
+the user "etqw-server". This is a simple setup suitable for running one
+server on a machine.
+
+The etqw-server user's home directory is /var/games/etqw-server,
+so game files can be found in /var/games/etqw-server/.etqw .
+For convenience, /var/games/etqw-server/etqw is a symlink to
+that directory.
+
+The /etc/etqw-server directory is symlinked into the game engine's
+search path as etc/etqw-server, so you can place files there and execute
+them with commands like "exec etc/etqw-server/ctf.cfg".
+By default, the init script will use etc/etqw-server/server.cfg.
+
+To set options that can only be configured via the command-line,
+such as net_port, set the variable DAEMON_OPTS
+in /etc/default/etqw-server.
+
+The server can be managed in the usual way, e.g. via service(8)
+and update-rc.d(8) commands like
+
+    service etqw-server stop
+    service etqw-server start
+    update-rc.d etqw-server disable
+    update-rc.d etqw-server enable
+
+Because ETQW is proprietary software and might have security flaws
+that Debian cannot fix, the dedicated server is disabled by default.
+To mitigate any security flaws that might exist in it, the systemd unit
+is configured with various security-hardening options, and a
+corresponding sysvinit script is not provided.
diff --git a/debian/etqw-server.default b/debian/etqw-server.default
new file mode 100644
index 0000000..815b72a
--- /dev/null
+++ b/debian/etqw-server.default
@@ -0,0 +1,9 @@
+# Defaults for ETQW systemd unit
+
+# Options that are passed to the daemon.
+#
+# In addition to these options, the server will execute commands from
+# /etc/etqw-server/server.cfg using "+exec etc/etqw-server/server.cfg".
+# For most options it's better to edit server.cfg instead, but some options
+# only work on the command-line.
+DAEMON_OPTS=""
diff --git a/debian/etqw-server.install b/debian/etqw-server.install
new file mode 100644
index 0000000..85e1b29
--- /dev/null
+++ b/debian/etqw-server.install
@@ -0,0 +1,2 @@
+README.etqw-data usr/share/doc/etqw-server
+build/etqw-dedicated usr/games
diff --git a/debian/etqw-server.lintian-overrides 
b/debian/etqw-server.lintian-overrides
new file mode 100644
index 0000000..7106c59
--- /dev/null
+++ b/debian/etqw-server.lintian-overrides
@@ -0,0 +1,2 @@
+# verbatim quote
+etqw-server binary: spelling-error-in-copyright ment meant
diff --git a/debian/etqw-server.manpages b/debian/etqw-server.manpages
new file mode 100644
index 0000000..b217565
--- /dev/null
+++ b/debian/etqw-server.manpages
@@ -0,0 +1 @@
+etqw-dedicated.6
diff --git a/debian/etqw-server.postinst b/debian/etqw-server.postinst
new file mode 100644
index 0000000..cfde5fb
--- /dev/null
+++ b/debian/etqw-server.postinst
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+  configure)
+    if ! getent passwd etqw-server >/dev/null; then
+      adduser --disabled-password --quiet --system \
+        --home /var/games/etqw-server --no-create-home \
+        --gecos "ETQW dedicated server" \
+        --ingroup games etqw-server
+    fi
+    install -d /var/games
+    install -d /var/games/etqw-server
+    chown etqw-server:games /var/games/etqw-server
+    install -d /var/games/etqw-server/.etqw
+    chown etqw-server:games /var/games/etqw-server/.etqw
+    if ! [ -e /var/games/etqw-server/etqw ]; then
+        ln -s .etqw /var/games/etqw-server/etqw
+    fi
+  ;;
+  abort-upgrade|abort-remove|abort-deconfigure)
+  ;;
+  *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 1
+  ;;
+esac
+
+#DEBHELPER#
diff --git a/debian/etqw-server.postrm b/debian/etqw-server.postrm
new file mode 100644
index 0000000..ae2aeda
--- /dev/null
+++ b/debian/etqw-server.postrm
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+set -e
+
+#DEBHELPER#
+
+if [ "$1" = "purge" ] ; then
+    # Lock account on purge
+    if [ -f /etc/shadow ]; then
+        usermod -L -e 1 etqw-server
+    else
+        usermod -L etqw-server
+    fi
+    rm -r /var/games/etqw-server
+    rmdir --ignore-fail-on-non-empty /var/games
+fi
diff --git a/debian/etqw-server.service b/debian/etqw-server.service
new file mode 100644
index 0000000..1d54a61
--- /dev/null
+++ b/debian/etqw-server.service
@@ -0,0 +1,24 @@
+[Unit]
+Description=Enemy Territory: Quake Wars game server
+After=network.target
+
+[Service]
+Type=simple
+User=etqw-server
+Environment=DAEMON_OPTS=
+EnvironmentFile=-/etc/default/etqw-server
+ExecStart=/usr/games/etqw-dedicated $DAEMON_OPTS +exec 
etc/etqw-server/server.cfg
+Restart=on-failure
+RestartPreventExitStatus=72
+# hardening
+CapabilityBoundingSet=
+NoNewPrivileges=true
+PrivateDevices=true
+PrivateTmp=true
+ProtectHome=true
+ProtectSystem=full
+# this game uses proprietary x86-only binaries, even on amd64
+Personality=x86
+
+[Install]
+WantedBy=multi-user.target
diff --git a/debian/etqw.install b/debian/etqw.install
new file mode 100644
index 0000000..6b248d9
--- /dev/null
+++ b/debian/etqw.install
@@ -0,0 +1,4 @@
+build/etqw                              usr/games
+README.etqw-data                        usr/lib/etqw
+need-data.sh                            usr/lib/etqw
+etqw.desktop                            usr/share/applications
diff --git a/debian/etqw.links b/debian/etqw.links
new file mode 100644
index 0000000..e2edf72
--- /dev/null
+++ b/debian/etqw.links
@@ -0,0 +1 @@
+usr/lib/etqw/README.etqw-data usr/share/doc/etqw/README.etqw-data
diff --git a/debian/etqw.lintian-overrides b/debian/etqw.lintian-overrides
new file mode 100644
index 0000000..a94a554
--- /dev/null
+++ b/debian/etqw.lintian-overrides
@@ -0,0 +1,2 @@
+# verbatim quote
+etqw binary: spelling-error-in-copyright ment meant
diff --git a/debian/etqw.manpages b/debian/etqw.manpages
new file mode 100644
index 0000000..2db1779
--- /dev/null
+++ b/debian/etqw.manpages
@@ -0,0 +1 @@
+etqw.6
diff --git a/debian/rules b/debian/rules
index 6da310a..70cc344 100755
--- a/debian/rules
+++ b/debian/rules
@@ -5,8 +5,10 @@
 
 override_dh_installinit:
        dh_installinit -pquake4-server --noscripts
+       dh_installinit -petqw-server --noscripts
        dh_installinit --remaining-packages
 
 override_dh_systemd_enable:
        dh_systemd_enable -pquake4-server --no-enable
+       dh_systemd_enable -petqw-server --no-enable
        dh_systemd_enable --remaining-packages
diff --git a/etqw-dedicated.6 b/etqw-dedicated.6
new file mode 100644
index 0000000..80da01d
--- /dev/null
+++ b/etqw-dedicated.6
@@ -0,0 +1,54 @@
+.TH ETQW-DEDICATED 6 2015-12-09
+
+.SH NAME
+etqw-dedicated \- Enemy Territory: Quake Wars server
+
+.SH SYNOPSIS
+.B etqw-dedicated
+.BR "" [ \-h | \-\-help ]
+.BR "" [ +set
+.IR option " " value ]...
+
+.SH DESCRIPTION
+.B etqw-dedicated
+is the dedicated server for Enemy Territory: Quake Wars server,
+a first-person shooter game.
+
+.SH OPTIONS
+The wrapper script used for ETQW in Debian accepts one option:
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display a short help summary
+.PP
+Any console command can also be prefixed with \fB+\fR and used as a
+command-line option (press Ctrl+Alt and the key above Tab to access the
+in-game console).
+
+.SH FILES
+.TP
+\fI~/.etqw\fR
+Configuration and state for ETQW
+
+.SH ENVIRONMENT
+The wrapper script used to launch ETQW allows it to be debugged
+by setting environment variables.
+.TP
+\fBETQW_DEBUGGER=\fIcommand\fR
+A debugger or other prefix to prepend to the ETQW command line, such
+as \fBstrace\fR; overridden by \fBETQW_BACKTRACE\fR
+.TP
+\fBETQW_BACKTRACE=1\fR
+Use \fBgdb\fR(1) to get a backtrace if ETQW crashes (the \fBgdb\fR
+package must be installed)
+
+.SH AUTHOR
+ETQW was written by Splash Damage and originally published by Activision.
+It is proprietary software.
+.PP
+This manual page was written by Simon McVittie for the Debian project (but
+may be used by others). Permission is granted to copy, distribute and/or
+modify this document under the terms of the GNU General Public License,
+Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License
+can be found in /usr/share/common-licenses/GPL-2.
diff --git a/etqw.6 b/etqw.6
new file mode 100644
index 0000000..fcb4197
--- /dev/null
+++ b/etqw.6
@@ -0,0 +1,60 @@
+.TH ETQW 6 2015-12-10
+
+.SH NAME
+etqw \- Enemy Territory: Quake Wars client
+
+.SH SYNOPSIS
+.B etqw
+.BR "" [ \-h | \-\-help ]
+.BR "" [ +set
+.IR option " " value ]...
+
+.SH DESCRIPTION
+.B etqw
+is the client for "Enemy Territory: Quake Wars", a multiplayer
+first-person shooter game.
+
+.SH OPTIONS
+The wrapper script used for ETQW in Debian accepts these options:
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display a short help summary
+.TP
+\fB\-\-smp\fR
+Use the multi-threaded version of the client and the modified
+copy of SDL that is bundled with it. The default is to use the
+single-threaded client and the system copy of SDL. Both versions
+are included in the etqw-bin package.
+.PP
+Any console command can also be prefixed with \fB+\fR and used as a
+command-line option (press Ctrl+Alt and the key above Tab to access the
+in-game console).
+
+.SH FILES
+.TP
+\fI~/.etqwcl\fR
+Configuration and state for ETQW
+
+.SH ENVIRONMENT
+The wrapper script used to launch ETQW allows it to be debugged
+by setting environment variables.
+.TP
+\fBETQW_DEBUGGER=\fIcommand\fR
+A debugger or other prefix to prepend to the ETQW command line, such
+as \fBstrace\fR; overridden by \fBETQW_BACKTRACE\fR
+.TP
+\fBETQW_BACKTRACE=1\fR
+Use \fBgdb\fR(1) to get a backtrace if ETQW crashes (the \fBgdb\fR
+package must be installed)
+
+.SH AUTHOR
+ETQW was written by Splash Damage and originally published by Activision.
+It is proprietary software.
+.PP
+This manual page was written by Simon McVittie for the Debian project (but
+may be used by others). Permission is granted to copy, distribute and/or
+modify this document under the terms of the GNU General Public License,
+Version 2 or any later version published by the Free Software Foundation.
+.PP
+On Debian systems, the complete text of the GNU General Public License
+can be found in /usr/share/common-licenses/GPL-2.
diff --git a/etqw.desktop b/etqw.desktop
new file mode 100644
index 0000000..415a358
--- /dev/null
+++ b/etqw.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Version=1.0
+Name=Enemy Territory: Quake Wars
+Exec=/usr/games/etqw
+Icon=etqw
+Terminal=false
+Type=Application
+Categories=Game;ActionGame;
+Keywords=first person shooter;fps;3d;
diff --git a/etqw.in b/etqw.in
new file mode 100644
index 0000000..de6d8e7
--- /dev/null
+++ b/etqw.in
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+# etqw or etqw-dedicated
+self=@self@
+# client or server
+role=@role@
+# etqw.x86, etqw-rthread.x86 or etqwded.x86
+binary=@binary@
+
+pkglibdir="/usr/lib/etqw"
+
+help() {
+  cat <<EOF
+Enemy Territory: Quake Wars ${role} wrapper for Debian
+
+Usage: ${self} [OPTION]...
+
+ -h, --help\t\tDisplay this help
+EOF
+
+  if [ "$role" = client ] && [ -x "$pkglibdir/quake4smp.x86" ]; then
+    cat <<EOF
+ --smp\t\tUse the multi-threaded version of the client
+EOF
+  fi
+
+  cat <<EOF
+ +<internal command>\tPass commands to the engine
+EOF
+}
+
+while [ "$1" != "" ]; do
+  case "$1" in
+    -h|--help)
+      help
+      exit 0
+      ;;
+    --smp)
+      if [ "$role" = client ] && [ -x "$pkglibdir/etqw-rthread.x86" ]; then
+        binary=etqw-rthread.x86
+      fi
+      ;;
+    *)
+      break
+      ;;
+  esac
+  shift
+done
+
+# sanity check: the engine doesn't cope well with missing data
+for i in pak008 game000 pak000 zpak_english000; do
+  if [ -f $pkglibdir/base/$i.pk4 ]; then
+    :
+  else
+    if [ "$role" = client ]; then
+      $pkglibdir/need-data.sh "Enemy Territory: Quake Wars" "$(cat 
$pkglibdir/README.etqw-data)"
+    else
+      echo "ETQW data missing, see /usr/share/doc/etqw-server/README.etqw-data"
+    fi
+    exit 72     # EX_OSFILE
+  fi
+done
+
+cvars="+set com_allowconsole 1"
+
+# ETQW expects to run in its installation directory
+cd "$pkglibdir"
+# The SMP binary needs a modified bundled copy of SDL.
+export LD_LIBRARY_PATH="${pkglibdir}${LD_LIBRARY_PATH:+":${LD_LIBRARY_PATH}"}"
+
+if test -n "$QUAKE4_BACKTRACE"; then
+  exec gdb -return-child-result -batch -ex run -ex 'thread apply all bt full' 
-ex kill -ex quit --args "${pkglibdir}/${binary}" ${cvars} "$@"
+else
+  exec ${QUAKE4_DEBUGGER} "${pkglibdir}/${binary}" ${cvars} "$@"
+fi
+
+# vim:set sw=2 sts=2 et:

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-games/game-data-packager.git

_______________________________________________
Pkg-games-commits mailing list
Pkg-games-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-games-commits

Reply via email to