From 00f8cac10b818ec9accfd7805527d68e19b9f4e8 Mon Sep 17 00:00:00 2001 From: quartz Date: Tue, 9 Sep 2025 23:57:21 -0400 Subject: [PATCH 1/2] bluej: 5.2.0 -> 5.5.0 --- pkgs/by-name/bl/bluej/package.nix | 86 ++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 24 deletions(-) diff --git a/pkgs/by-name/bl/bluej/package.nix b/pkgs/by-name/bl/bluej/package.nix index 7d71ce926e62..96d767e2d4da 100644 --- a/pkgs/by-name/bl/bluej/package.nix +++ b/pkgs/by-name/bl/bluej/package.nix @@ -2,59 +2,97 @@ lib, stdenv, fetchurl, - openjdk17, - openjfx17, + makeDesktopItem, + copyDesktopItems, + unzip, + openjdk21, + openjfx21, glib, - dpkg, + gsettings-desktop-schemas, + gtk3, wrapGAppsHook3, + imagemagick, + nix-update-script, }: let - openjdk = openjdk17.override { + openjdk = openjdk21.override { enableJavaFX = true; - openjfx_jdk = openjfx17.override { withWebKit = true; }; + openjfx_jdk = openjfx21.override { withWebKit = true; }; }; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "bluej"; - version = "5.2.0"; + version = "5.5.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.bluej.org/download/files/BlueJ-linux-${ - builtins.replaceStrings [ "." ] [ "" ] version - }.deb"; - sha256 = "sha256-sOT86opMa9ytxJlfURIsD06HiP+j+oz3lQ0DqmLV1wE="; + url = "https://github.com/k-pet-group/BlueJ-Greenfoot/releases/download/BLUEJ-RELEASE-${finalAttrs.version}/BlueJ-generic-${finalAttrs.version}.jar"; + sha256 = "sha256-UClhTH/9oFfhjYsScBvmD4cKZUJwuAsiyRTiVkPAV0o="; }; + unpackPhase = '' + runHook preUnpack + + unzip -d jar ${finalAttrs.src} + unzip -d dist jar/bluej-dist.jar + + runHook postUnpack + ''; + + sourceRoot = "dist"; + nativeBuildInputs = [ - dpkg wrapGAppsHook3 + copyDesktopItems + imagemagick + unzip + ]; + buildInputs = [ + glib + gtk3 ]; - buildInputs = [ glib ]; dontWrapGApps = true; + desktopItems = [ + (makeDesktopItem { + name = "BlueJ"; + desktopName = "BlueJ"; + exec = "BlueJ"; + icon = "bluej"; + comment = "A simple powerful Java IDE"; + categories = [ + "Application" + "Development" + ]; + }) + ]; + installPhase = '' runHook preInstall - mkdir -p $out - cp -r usr/* $out + mkdir -p $out/lib - rm -r $out/share/bluej/jdk - rm -r $out/share/bluej/javafx - rm -r $out/share/bluej/javafx-*.jar + cp -r ./lib $out/lib/bluej + + mkdir -p $out/share/icons/hicolor/{16x16,32x32,48x48,64x64,128x128,256x256}/apps + + for dimension in 16x16 32x32 48x48 64x64 128x128 256x256; do + magick convert ./icons/bluej-icon-512-embossed.png -geometry $dimension\ + $out/share/icons/hicolor/$dimension/apps/bluej.png + done makeWrapper ${openjdk}/bin/java $out/bin/bluej \ "''${gappsWrapperArgs[@]}" \ - --add-flags "-Dawt.useSystemAAFontSettings=gasp -Xmx512M \ + --suffix XDG_DATA_DIRS : ${gtk3}/share/gsettings-schemas/${gtk3.name}/ \ + --add-flags "-Dawt.useSystemAAFontSettings=on \ --add-opens javafx.graphics/com.sun.glass.ui=ALL-UNNAMED \ - -cp $out/share/bluej/boot.jar bluej.Boot" + -cp $out/lib/bluej/boot.jar bluej.Boot" runHook postInstall ''; + passthru.updateScript = nix-update-script { }; + meta = { description = "Simple integrated development environment for Java"; homepage = "https://www.bluej.org/"; @@ -68,4 +106,4 @@ stdenv.mkDerivation rec { platforms = lib.platforms.linux; }; -} +}) From fa96b456b33ac68d83e85e60ac0ced0c4bebf0ae Mon Sep 17 00:00:00 2001 From: quartz Date: Wed, 10 Sep 2025 12:48:22 -0400 Subject: [PATCH 2/2] bluej: add weirdrock as maintainer, remove chvp --- pkgs/by-name/bl/bluej/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/bl/bluej/package.nix b/pkgs/by-name/bl/bluej/package.nix index 96d767e2d4da..e4a97dbe2d0a 100644 --- a/pkgs/by-name/bl/bluej/package.nix +++ b/pkgs/by-name/bl/bluej/package.nix @@ -102,7 +102,7 @@ stdenv.mkDerivation (finalAttrs: { classpathException20 ]; mainProgram = "bluej"; - maintainers = with lib.maintainers; [ chvp ]; + maintainers = with lib.maintainers; [ weirdrock ]; platforms = lib.platforms.linux; };