anchor.diff:      sha256 = "sha256-OarqmptxZc7xEEYeoCVqHXkAvfzfSYx5nUp/iWPyoqw=";
     };
   
  -  nativeBuildInputs = [ makeWrapper ];
  +  nativeBuildInputs = [ wrapGAppsHook ];
  +  buildInputs = [ glib ];
   
  -  unpackPhase = ''
  -    ar xf $src
  -    tar xf data.tar.xz
  +  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 = ''
  -    mkdir -p $out
  -    cp -r usr/* $out
  +    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"
     '';
   
  
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: { 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
  