summaryrefslogtreecommitdiffstats
path: root/pkgs/games/abuse
diff options
context:
space:
mode:
authorIngo Blechschmidt <iblech@web.de>2021-01-12 02:21:24 +0100
committerEmery Hemingway <ehmry@posteo.net>2021-02-08 09:50:26 +0100
commitd2e0fb3122038a404d27815ee30be075cb41e702 (patch)
tree3996d22412f8b4964660dabd8fefc21b11f74296 /pkgs/games/abuse
parent5da323fe47b645260a04b834365cdf131cd2756d (diff)
abuse: init at 0.8
Diffstat (limited to 'pkgs/games/abuse')
-rw-r--r--pkgs/games/abuse/abuse.sh18
-rw-r--r--pkgs/games/abuse/default.nix54
2 files changed, 72 insertions, 0 deletions
diff --git a/pkgs/games/abuse/abuse.sh b/pkgs/games/abuse/abuse.sh
new file mode 100644
index 000000000000..de837d27181f
--- /dev/null
+++ b/pkgs/games/abuse/abuse.sh
@@ -0,0 +1,18 @@
+#! @shell@
+
+if grep datadir ~/.abuse/abuserc &>/dev/null; then
+ if [ ! -d "$(grep datadir ~/.abuse/abuserc | cut -d= -f2)" ]; then
+ echo "Warning: ~/.abuse/abuserc references a datadir which is not existent." >&2
+ echo "Try removing ~/.abuse/abuserc, else abuse will most likely not run." >&2
+ echo >&2
+ # This can happen if the build hash of abuse changes and the older version
+ # is garbage-collected. The correct path of the datadir is compiled into
+ # the binary, but unfortunately abuse writes out the path into abuserc on
+ # first start. This entry may later become stale.
+ fi
+fi
+
+# The timidity bundled into SDL_mixer looks in . and in several global places
+# like /etc for its configuration file.
+cd @out@/etc
+exec @out@/bin/.abuse-bin "$@"
diff --git a/pkgs/games/abuse/default.nix b/pkgs/games/abuse/default.nix
new file mode 100644
index 000000000000..2e863022a68b
--- /dev/null
+++ b/pkgs/games/abuse/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchurl, makeDesktopItem, copyDesktopItems, SDL, SDL_mixer, freepats }:
+
+stdenv.mkDerivation rec {
+ pname = "abuse";
+ version = "0.8";
+
+ src = fetchurl {
+ url = "http://abuse.zoy.org/raw-attachment/wiki/download/${pname}-${version}.tar.gz";
+ sha256 = "0104db5fd2695c9518583783f7aaa7e5c0355e27c5a803840a05aef97f9d3488";
+ };
+
+ configureFlags = [
+ "--with-x"
+ "--with-assetdir=$(out)/orig"
+ # The "--enable-debug" is to work around a segfault on start, see https://bugs.archlinux.org/task/52915.
+ "--enable-debug"
+ ];
+
+ desktopItems = [ (makeDesktopItem {
+ name = "abuse";
+ exec = "abuse";
+ icon = "abuse";
+ desktopName = "Abuse";
+ comment = "Side-scroller action game that pits you against ruthless alien killers";
+ categories = "Game;ActionGame;";
+ }) ];
+
+ postInstall = ''
+ mkdir $out/etc
+ echo -e "dir ${freepats}\nsource ${freepats}/freepats.cfg" > $out/etc/timidity.cfg
+
+ mv $out/bin/abuse $out/bin/.abuse-bin
+ substituteAll "${./abuse.sh}" $out/bin/abuse
+ chmod +x $out/bin/abuse
+
+ install -Dm644 doc/abuse.png $out/share/pixmaps/abuse.png
+ '';
+
+ nativeBuildInputs = [ copyDesktopItems ];
+ buildInputs = [ SDL SDL_mixer freepats ];
+
+ meta = with lib; {
+ description = "Side-scroller action game that pits you against ruthless alien killers";
+ homepage = "http://abuse.zoy.org/";
+ license = with licenses; [ unfree ];
+ # Most of abuse is free (public domain, GPL2+, WTFPL), however the creator
+ # of its sfx and music only gave Debian permission to redistribute the
+ # files. Our friends from Debian thought about it some more:
+ # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648272
+ maintainers = with maintainers; [ iblech ];
+ platforms = platforms.unix;
+ broken = stdenv.isDarwin;
+ };
+}