diff options
author | Ingo Blechschmidt <iblech@web.de> | 2021-01-12 02:21:24 +0100 |
---|---|---|
committer | Emery Hemingway <ehmry@posteo.net> | 2021-02-08 09:50:26 +0100 |
commit | d2e0fb3122038a404d27815ee30be075cb41e702 (patch) | |
tree | 3996d22412f8b4964660dabd8fefc21b11f74296 /pkgs/games/abuse | |
parent | 5da323fe47b645260a04b834365cdf131cd2756d (diff) |
abuse: init at 0.8
Diffstat (limited to 'pkgs/games/abuse')
-rw-r--r-- | pkgs/games/abuse/abuse.sh | 18 | ||||
-rw-r--r-- | pkgs/games/abuse/default.nix | 54 |
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 0000000000000..de837d27181f4 --- /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 0000000000000..2e863022a68b8 --- /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; + }; +} |