about summary refs log tree commit diff
path: root/pkgs/games
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
parent5da323fe47b645260a04b834365cdf131cd2756d (diff)
downloadnixlib-d2e0fb3122038a404d27815ee30be075cb41e702.tar
nixlib-d2e0fb3122038a404d27815ee30be075cb41e702.tar.gz
nixlib-d2e0fb3122038a404d27815ee30be075cb41e702.tar.bz2
nixlib-d2e0fb3122038a404d27815ee30be075cb41e702.tar.lz
nixlib-d2e0fb3122038a404d27815ee30be075cb41e702.tar.xz
nixlib-d2e0fb3122038a404d27815ee30be075cb41e702.tar.zst
nixlib-d2e0fb3122038a404d27815ee30be075cb41e702.zip
abuse: init at 0.8
Diffstat (limited to 'pkgs/games')
-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;
+  };
+}