{ stdenv, lib, fetchurl, pkg-config, gettext, SDL2, SDL2_image, SDL2_mixer, SDL2_net, SDL2_ttf, zlib }:

stdenv.mkDerivation rec {
  pname = "blobwars";
  version = "2.00";

  src = fetchurl {
    url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
    sha256 = "c406279f6cdf2aed3c6edb8d8be16efeda0217494acd525f39ee2bd3e77e4a99";
  };

  patches = [ ./blobwars-2.00-glibc-2.38.patch ];

  nativeBuildInputs = [ pkg-config gettext ];
  buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_net SDL2_ttf zlib ];
  env.NIX_CFLAGS_COMPILE = toString [ "-Wno-error" ];

  makeFlags = [ "PREFIX=$(out)" "RELEASE=1" ];

  postInstall = ''
    install -Dm755 $out/games/blobwars -t $out/bin
    rm -r $out/games
    cp -r {data,gfx,sound,music} $out/share/games/blobwars/
    # fix world readable bit
    find $out/share/games/blobwars/. -type d -exec chmod 755 {} +
    find $out/share/games/blobwars/. -type f -exec chmod 644 {} +
  '';

  meta = with lib; {
    description = "Platform action game featuring a blob with lots of weapons";
    mainProgram = "blobwars";
    homepage = "https://www.parallelrealities.co.uk/games/metalBlobSolid/";
    license = with licenses; [ gpl2Plus free ];
    maintainers = with maintainers; [ iblech ];
    platforms = platforms.unix;
  };
}
