about summary refs log tree commit diff
path: root/pkgs/applications/editors/greenfoot
diff options
context:
space:
mode:
authorCharlotte Van Petegem <charlotte.vanpetegem@ugent.be>2023-09-20 10:28:55 +0200
committerCharlotte Van Petegem <charlotte.vanpetegem@ugent.be>2023-09-21 09:57:11 +0200
commit11e7a4161fc41c639567e6f76b39d74bffe4ce9c (patch)
tree96fed85d13233afee6d5ace63d1875728d8e3c59 /pkgs/applications/editors/greenfoot
parent77cbaa49185e5af87fa6f4269c0b5d287d88b468 (diff)
greenfoot: 3.7.1 -> 3.8.0
https://greenfoot.org/version_history

Also did some cleanup of the derivation to make it more like bluej (a very
closely related program).
Diffstat (limited to 'pkgs/applications/editors/greenfoot')
-rw-r--r--pkgs/applications/editors/greenfoot/default.nix35
1 files changed, 23 insertions, 12 deletions
diff --git a/pkgs/applications/editors/greenfoot/default.nix b/pkgs/applications/editors/greenfoot/default.nix
index f7dc988de1536..52d52a0785eea 100644
--- a/pkgs/applications/editors/greenfoot/default.nix
+++ b/pkgs/applications/editors/greenfoot/default.nix
@@ -1,31 +1,41 @@
-{ lib, stdenv, fetchurl, makeWrapper, jdk }:
+{ lib, stdenv, fetchurl, openjdk, glib, dpkg, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "greenfoot";
-  version = "3.7.1";
+  version = "3.8.0";
+
   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
     # to unpack than the deb.
     url = "https://www.greenfoot.org/download/files/Greenfoot-linux-${builtins.replaceStrings ["."] [""] version}.deb";
-    sha256 = "sha256-wGgKDsA/2luw+Nzs9dWb/HRHMx/0S0CFfoI53OCzxug=";
+    sha256 = "sha256-HDXmgLHS18VZVV+hCA0RgIrKRftOlV7t+fvE0pAHGjk=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ dpkg wrapGAppsHook ];
+  buildInputs = [ glib ];
 
-  unpackPhase = ''
-    ar xf $src
-    tar xf data.tar.xz
-  '';
+  dontWrapGApps = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out
     cp -r usr/* $out
+
     rm -r $out/share/greenfoot/jdk
-    rm -r $out/share/greenfoot/javafx
+    rm -r $out/share/greenfoot/javafx-*.jar
+
+    makeWrapper ${openjdk}/bin/java $out/bin/greenfoot \
+      "''${gappsWrapperArgs[@]}" \
+      --add-flags "-Dawt.useSystemAAFontSettings=on -Xmx512M \
+                   --add-opens javafx.graphics/com.sun.glass.ui=ALL-UNNAMED \
+                   -cp $out/share/greenfoot/boot.jar bluej.Boot \
+                   -greenfoot=true -bluej.compiler.showunchecked=false \
+                   -greenfoot.scenarios=$out/share/doc/Greenfoot/scenarios \
+                   -greenfoot.url.javadoc=file://$out/share/doc/Greenfoot/API"
 
-    makeWrapper ${jdk}/bin/java $out/bin/greenfoot \
-      --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/greenfoot/bluej.jar\" bluej.Boot -greenfoot=true -bluej.compiler.showunchecked=false -greenfoot.scenarios=$out/share/doc/Greenfoot/scenarios -greenfoot.url.javadoc=file://$out/share/doc/Greenfoot/API"
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -33,7 +43,8 @@ stdenv.mkDerivation rec {
     homepage = "https://www.greenfoot.org/";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl2ClasspathPlus;
+    mainProgram = pname;
     maintainers = [ maintainers.chvp ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }