anchor.diff:  , unzip
   , xorg
   , zlib
  +# runtime dependencies
  +, cups
  +# runtime dependencies for GTK+ Look and Feel
  +, gtkSupport ? true
  +, cairo
  +, glib
  +, gtk3
   }:
   
   let
     platform = if stdenv.isDarwin then "darwin-amd64" else "linux-amd64";
  +  runtimeDependencies = [
  +    cups
  +  ] ++ lib.optionals gtkSupport [
  +    cairo glib gtk3
  +  ];
  +  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
     common = javaVersion:
       let
         javaVersionPlatform = "${javaVersion}-${platform}";
  
positive.code: , lib
  , fetchurl
  , autoPatchelfHook
  , Foundation
  , setJavaClassPath
  , alsaLib
  , fontconfig
  , freetype
  
negative.code: 
          dontStrip = true;
  
          preFixup = ''
            # We cannot use -exec since wrapProgram is a function but not a
            # command.
            for bin in $( find "$out" -executable -type f -not -path '*/languages/ruby/lib/gems/*' ); do
              if patchelf --print-interpreter "$bin" &> /dev/null || head -n 1 "$bin" | grep '^#!' -q; then
                wrapProgram "$bin" \
                  --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
              fi
            done
  
            # copy-paste openjdk's preFixup
            # Set JAVA_HOME automatically.
            mkdir -p $out/nix-support
            cat <<EOF > $out/nix-support/setup-hook
  