anchor.diff:    buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
       # point to offline repo
  -    sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle
  -    gradle --offline --no-daemon desktop:dist
  +    sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle
  +    gradle --offline --no-daemon desktop:release
     '';
   
     installPhase = ''
       install -Dm644 desktop/build/libs/desktop-${version}.jar $out/share/shattered-pixel-dungeon.jar
       mkdir $out/bin
       makeWrapper ${jre}/bin/java $out/bin/shattered-pixel-dungeon \
  -      --prefix LD_LIBRARY_PATH : ${xorg.libXxf86vm}/lib:${openal}/lib \
  +      --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \
         --add-flags "-jar $out/share/shattered-pixel-dungeon.jar"
     '';
   
     meta = with stdenv.lib; {
       homepage = "https://shatteredpixel.com/";
  -    downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon-gdx/releases";
  +    downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon/releases";
       description = "Traditional roguelike game with pixel-art graphics and simple interface";
       license = licenses.gpl3;
       maintainers = with maintainers; [ fgaz ];
  
positive.code:     '';
      outputHashAlgo = "sha256";
      outputHashMode = "recursive";
      outputHash = "1k0v5scadw9ziq4dw2rckmh8x2xlmxslfsxmpw79zg78n3hvwhf1";
    };
  
  in stdenv.mkDerivation rec {
  
negative.code: { stdenv
  , makeWrapper
  , fetchFromGitHub
  , gradle_5
  , perl
  , jre
  , libpulseaudio
  }:
  
  let
    pname = "shattered-pixel-dungeon";
    version = "0.8.0b";
  
    src = fetchFromGitHub {
      owner = "00-Evan";
      repo = "shattered-pixel-dungeon";
      rev = "v${version}";
      sha256 = "1qi90qw2xp56wai4gn39rpwh3gs3kx2zcpbni861f7hl9hnf87bf";
    };
  
    postPatch = ''
      # disable gradle plugins with native code and their targets
      perl -i.bak1 -pe "s#(^\s*id '.+' version '.+'$)#// \1#" build.gradle
      perl -i.bak2 -pe "s#(.*)#// \1# if /^(buildscript|task portable|task nsis|task proguard|task tgz|task\(afterEclipseImport\)|launch4j|macAppBundle|buildRpm|buildDeb|shadowJar)/ ... /^}/" build.gradle
      # Remove unbuildable android stuff
      rm android/build.gradle
    '';
  
    # fake build to pre-download deps into fixed-output derivation
  