From e393b159eaf036cdc126dc87c09e12450b05a01b Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 22 Jul 2026 22:19:26 +0200 Subject: [PATCH] openjdk: drop gtk2 support --- .../8/patches/swing-use-gtk-jdk8.patch | 26 ------------------- .../development/compilers/openjdk/generic.nix | 15 +++++------ pkgs/top-level/java-packages.nix | 9 ++++++- 3 files changed, 14 insertions(+), 36 deletions(-) delete mode 100644 pkgs/development/compilers/openjdk/8/patches/swing-use-gtk-jdk8.patch diff --git a/pkgs/development/compilers/openjdk/8/patches/swing-use-gtk-jdk8.patch b/pkgs/development/compilers/openjdk/8/patches/swing-use-gtk-jdk8.patch deleted file mode 100644 index 9538aade6726..000000000000 --- a/pkgs/development/compilers/openjdk/8/patches/swing-use-gtk-jdk8.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -ru3 a/jdk/src/share/classes/javax/swing/UIManager.java b/jdk/src/share/classes/javax/swing/UIManager.java ---- a/jdk/src/share/classes/javax/swing/UIManager.java 2016-07-26 00:41:37.000000000 +0300 -+++ b/jdk/src/share/classes/javax/swing/UIManager.java 2016-10-02 22:46:01.890071761 +0300 -@@ -607,11 +607,9 @@ - if (osType == OSInfo.OSType.WINDOWS) { - return "com.sun.java.swing.plaf.windows.WindowsLookAndFeel"; - } else { -- String desktop = AccessController.doPrivileged(new GetPropertyAction("sun.desktop")); - Toolkit toolkit = Toolkit.getDefaultToolkit(); -- if ("gnome".equals(desktop) && -- toolkit instanceof SunToolkit && -- ((SunToolkit) toolkit).isNativeGTKAvailable()) { -+ if (toolkit instanceof SunToolkit && -+ ((SunToolkit) toolkit).isNativeGTKAvailable()) { - // May be set on Linux and Solaris boxs. - return "com.sun.java.swing.plaf.gtk.GTKLookAndFeel"; - } -@@ -1341,7 +1339,7 @@ - lafName = (String) lafData.remove("defaultlaf"); - } - if (lafName == null) { -- lafName = getCrossPlatformLookAndFeelClassName(); -+ lafName = getSystemLookAndFeelClassName(); - } - lafName = swingProps.getProperty(defaultLAFKey, lafName); - diff --git a/pkgs/development/compilers/openjdk/generic.nix b/pkgs/development/compilers/openjdk/generic.nix index 7d123cb1fdf9..8de868bb664b 100644 --- a/pkgs/development/compilers/openjdk/generic.nix +++ b/pkgs/development/compilers/openjdk/generic.nix @@ -69,7 +69,6 @@ enableGtk ? true, gtk3, - gtk2, glib, temurin-bin-8, @@ -88,6 +87,9 @@ .${featureVersion}, }: +assert lib.assertMsg (enableGtk -> lib.versionAtLeast featureVersion "11") + "GTK support in OpenJDK requires version 11.x or newer, because earlier versions would depend on GTK 2."; + let sourceFile = ./. + "/${featureVersion}/source.json"; source = nixpkgs-openjdk-updater.openjdkSource { @@ -227,12 +229,7 @@ stdenv.mkDerivation (finalAttrs: { ] ++ lib.optionals (!headless && enableGtk) [ ( - if atLeast17 then - ./17/patches/swing-use-gtk-jdk13.patch - else if atLeast11 then - ./11/patches/swing-use-gtk-jdk10.patch - else - ./8/patches/swing-use-gtk-jdk8.patch + if atLeast17 then ./17/patches/swing-use-gtk-jdk13.patch else ./11/patches/swing-use-gtk-jdk10.patch ) ] ++ lib.optionals (featureVersion == "11") [ @@ -300,7 +297,7 @@ stdenv.mkDerivation (finalAttrs: { lcms2 ] ++ lib.optionals (!headless && enableGtk) [ - (if atLeast11 then gtk3 else gtk2) + gtk3 glib ]; @@ -602,7 +599,7 @@ stdenv.mkDerivation (finalAttrs: { inherit jdk-bootstrap; inherit (source) updateScript; } - // (if atLeast11 then { inherit gtk3; } else { inherit gtk2; }) + // lib.optionalAttrs atLeast11 { inherit gtk3; } // lib.optionalAttrs (!atLeast23) { inherit architecture; }; diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix index 7c222e5f8300..34cfd827366e 100644 --- a/pkgs/top-level/java-packages.nix +++ b/pkgs/top-level/java-packages.nix @@ -32,7 +32,14 @@ in featureVersion: let openjdkLinux = - (callPackage ../development/compilers/openjdk/generic.nix { inherit featureVersion; }) + (callPackage ../development/compilers/openjdk/generic.nix ( + { + inherit featureVersion; + } + // lib.optionalAttrs (lib.versionOlder featureVersion "11") { + enableGtk = false; + } + )) // { headless = mergeMetaPlatforms openjdkLinuxHeadless openjdkDarwin; };