anchor.diff: -{ lib, stdenv, fetchurl, makeWrapper, jdk }:
  +{ lib, stdenv, fetchurl, jdk, glib, wrapGAppsHook }:
   
   stdenv.mkDerivation rec {
     pname = "bluej";
     version = "5.0.3";
  +
     src = fetchurl {
       # We use the deb here. First instinct might be to go for the "generic" JAR
       # download, but that is actually a graphical installer that is much harder
  
positive.code:     description = "A simple integrated development environment for Java";
      homepage = "https://www.bluej.org/";
      license = licenses.gpl2ClasspathPlus;
      maintainers = [ maintainers.chvp ];
      platforms = platforms.unix;
    };
  }
  
negative.code:     sha256 = "sha256-OarqmptxZc7xEEYeoCVqHXkAvfzfSYx5nUp/iWPyoqw=";
    };
  
    nativeBuildInputs = [ wrapGAppsHook ];
    buildInputs = [ glib ];
  
    sourceRoot = ".";
    preUnpack = ''
      unpackCmdHooks+=(_tryDebData)
      _tryDebData() {
        if ! [[ "$1" =~ \.deb$ ]]; then return 1; fi
        ar xf "$1"
        if ! [[ -e data.tar.xz ]]; then return 1; fi
        unpackFile data.tar.xz
      }
    '';
  
    installPhase = ''
      runHook preInstall
  
      if [ -n "$prefix" ]; then
          mkdir -p "$prefix"
      fi
  
      mkdir -p "$out"
  
      if shopt -q dotglob; then dotglobOpt=$?; else dotglobOpt=$?; fi
      shopt -s dotglob
      for file in usr/*; do
        cp -R "$file" "$out"
      done
      if (( !dotglobOpt )); then shopt -u dotglob; fi
  
      runHook postInstall
    '';
  
    dontWrapGApps = true;
  
    preFixup = ''
      makeWrapper ${jdk}/bin/java $out/bin/bluej \
        "''${gappsWrapperArgs[@]}" \
        --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/bluej/bluej.jar\" bluej.Boot"
    '';
  
  