From d2e0fb3122038a404d27815ee30be075cb41e702 Mon Sep 17 00:00:00 2001 From: Ingo Blechschmidt Date: Tue, 12 Jan 2021 02:21:24 +0100 Subject: [PATCH] abuse: init at 0.8 --- pkgs/games/abuse/abuse.sh | 18 +++++++++++ pkgs/games/abuse/default.nix | 54 +++++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 74 insertions(+) create mode 100644 pkgs/games/abuse/abuse.sh create mode 100644 pkgs/games/abuse/default.nix diff --git a/pkgs/games/abuse/abuse.sh b/pkgs/games/abuse/abuse.sh new file mode 100644 index 00000000000..de837d27181 --- /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 00000000000..2e863022a68 --- /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; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c6ed3e24ace..bac6dd13abb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -26344,6 +26344,8 @@ in abbaye-des-morts = callPackage ../games/abbaye-des-morts { }; + abuse = callPackage ../games/abuse { }; + adom = callPackage ../games/adom { }; airstrike = callPackage ../games/airstrike { };