anchor.diff:      aarch64-linux = "aarch64";
     }.${stdenv.system} or (throw "Unsupported platform");
   
  -  update = "272";
  -  build = if stdenv.isAarch64 then "b10" else "b10";
  -  baseurl = if stdenv.isAarch64 then "https://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah"
  -            else "https://hg.openjdk.java.net/jdk8u/jdk8u";
  -  repover = lib.optionalString stdenv.isAarch64 "aarch64-shenandoah-"
  -            + "jdk8u${update}-${build}";
  -
  -  jdk8 = fetchurl {
  -             name = "jdk8-${repover}.tar.gz";
  -             url = "${baseurl}/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "db98897d6fddce85996a9b0daf4352abce4578be0b51eada41702ee1469dd415"
  -                      else "8f0e8324d3500432e8ed642b4cc7dff90a617dbb2a18a94c07c1020d32f93b7a";
  -          };
  -  langtools = fetchurl {
  -             name = "langtools-${repover}.tar.gz";
  -             url = "${baseurl}/langtools/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "6544c1cc455844bbbb3d2914ffc716b1cee7f19e6aa223764d41a7cddc41322c"
  -                      else "632417b0b067c929eda6958341352e29c5810056a5fec138641eb3503f9635b7";
  -          };
  -  hotspot = fetchurl {
  -             name = "hotspot-${repover}.tar.gz";
  -             url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "37abb89e66641607dc6f372946bfc6bd413f23fec0b9c3baf75f41ce517e21d8"
  -                      else "2142f3b769800a955613b51ffe192551bab1db95b0c219900cf34febc6f20245";
  -          };
  -  corba = fetchurl {
  -             name = "corba-${repover}.tar.gz";
  -             url = "${baseurl}/corba/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "5da82f7b4aceff32e02d2f559033e3b62b9509d79f1a6891af871502e1d125b1"
  -                      else "320098d64c843c1ff2ae62579817f9fb4a81772bc0313a543ce68976ad7a6d98";
  -          };
  -  jdk = fetchurl {
  -             name = "jdk-${repover}.tar.gz";
  -             url = "${baseurl}/jdk/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "ee613296d823605dcd1a0fe2f89b4c7393bdb8ae5f2659f48f5cbc0012bb1a47"
  -                      else "957c24fc58ac723c8cd808ab60c77d7853710148944c8b9a59f470c4c809e1a0";
  -          };
  -  jaxws = fetchurl {
  -             name = "jaxws-${repover}.tar.gz";
  -             url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "7c426b85f0d378125fa46e6d1b25ddc27ad29d93514d38c5935c84fc540b26ce"
  -                      else "4efb0ee143dfe86c8ee06db2429fb81a0c8c65af9ea8fc18daa05148c8a1162f";
  -          };
  -  jaxp = fetchurl {
  -             name = "jaxp-${repover}.tar.gz";
  -             url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "928e363877afa7e0ad0c350bb18be6ab056b23708c0624a0bd7f01c4106c2a14"
  -                      else "25a651c670d5b036042f7244617a3eb11fec80c07745c1c8181a1cdebeda3d8e";
  -          };
  -  nashorn = fetchurl {
  -             name = "nashorn-${repover}.tar.gz";
  -             url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
  -             sha256 = if stdenv.isAarch64 then "f060e08c5924457d4f5047c02ad6a987bdbdcd1cea53d2208322073ba4f398c3"
  -                      else "a28b41d86f0c87ceacd2b686dd31c9bf391d851b1b5187a49ef5e565fc2cbc84";
  -          };
  -  openjdk8 = stdenv.mkDerivation {
  +  update = "322";
  +  build = "ga";
  +
  +  openjdk8 = stdenv.mkDerivation rec {
       pname = "openjdk" + lib.optionalString headless "-headless";
       version = "8u${update}-${build}";
   
  -    srcs = [ jdk8 langtools hotspot corba jdk jaxws jaxp nashorn ];
  -    sourceRoot = ".";
  -
  +    src = fetchFromGitHub {
  +      owner = "openjdk";
  +      repo = "jdk8u";
  +      rev = "jdk${version}";
  +      sha256 = "sha256-e39Yv+NDQG7z6fGmpKEnkKd5MoHZ50SXlq/Q7lzWcDA=";
  +    };
       outputs = [ "out" "jre" ];
   
       nativeBuildInputs = [ pkg-config lndir unzip ];
  
positive.code:     ] ++ lib.optionals (!headless && enableGnome2) [
        gtk2 gnome_vfs GConf glib
      ];
  
      # move the seven other source dirs under the main jdk8u directory,
      # with version suffixes removed, as the remainder of the build will expect
      prePatch = ''
        mainDir=$(find . -maxdepth 1 -name jdk8u\*);
        find . -maxdepth 1 -name \*jdk\* -not -name jdk8u\* | awk -F- '{print $1}' | while read p; do
          mv $p-* $mainDir/$p
        done
        cd $mainDir
      '';
  
      patches = [
        ./fix-java-home-jdk8.patch
  
negative.code: { stdenv, lib, fetchFromGitHub, pkg-config, lndir, bash, cpio, file, which, unzip, zip
  , cups, freetype, alsa-lib, cacert, perl, liberation_ttf, fontconfig, zlib
  , libX11, libICE, libXrender, libXext, libXt, libXtst, libXi, libXinerama, libXcursor, libXrandr
  , libjpeg, giflib
  