Skip to content

Commit

Permalink
Revert "openjfx11: drop (NixOS#347149)"
Browse files Browse the repository at this point in the history
This reverts commit 7b588db, reversing
changes made to 7cedc7e.
  • Loading branch information
qubitnano committed Oct 10, 2024
1 parent a2011c8 commit e7d50e9
Show file tree
Hide file tree
Showing 6 changed files with 265 additions and 8 deletions.
2 changes: 0 additions & 2 deletions pkgs/applications/blockchains/bisq-desktop/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,5 @@ stdenv.mkDerivation rec {
license = licenses.mit;
maintainers = with maintainers; [ juaningan emmanuelrosa ];
platforms = [ "x86_64-linux" ];
# Requires OpenJFX 11 or 16, which are both EOL.
broken = true;
};
}
103 changes: 103 additions & 0 deletions pkgs/development/compilers/openjdk/openjfx/11/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
{ stdenv, lib, pkgs, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake
, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_7-headless, python3, ruby
, openjdk11-bootstrap
, withMedia ? true
, withWebKit ? false
}:

let
pname = "openjfx-modular-sdk";
major = "11";
update = ".0.20";
build = "1";
repover = "${major}${update}+${build}";
jdk = openjdk11-bootstrap;
gradle = gradle_7;

in stdenv.mkDerivation {
inherit pname;
version = "${major}${update}-${build}";

src = fetchFromGitHub {
owner = "openjdk";
repo = "jfx${major}u";
rev = repover;
sha256 = "sha256-BbBP2DiPZTSn1SBYMCgyiNdF9GD+NqR6YjeVNOQHHn4=";
};

patches = [
../backport-ffmpeg-6-support-jfx11.patch
../backport-ffmpeg-7-support-jfx11.patch
];

buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_7-headless ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];

dontUseCmakeConfigure = true;

config = writeText "gradle.properties" ''
CONF = Release
JDK_HOME = ${jdk.home}
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
'';

postPatch = ''
substituteInPlace buildSrc/linux.gradle \
--replace ', "-Werror=implicit-function-declaration"' ""
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
ln -s $config gradle.properties
'';

mitmCache = gradle.fetchDeps {
attrPath = "openjfx${major}";
pkg = pkgs."openjfx${major}".override { withWebKit = true; };
data = ./deps.json;
};

__darwinAllowLocalNetworking = true;

preBuild = ''
export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
'';

enableParallelBuilding = false;

gradleBuildTask = "sdk";

installPhase = ''
cp -r build/modular-sdk $out
'';

stripDebugList = [ "." ];

postFixup = ''
# Remove references to bootstrap.
export openjdkOutPath='${jdk.outPath}'
find "$out" -name \*.so | while read lib; do
new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
patchelf --set-rpath "$new_refs" "$lib"
done
# Remove licenses, otherwise they may conflict with the ones included in the openjdk
rm -rf $out/modules_legal/*
'';

disallowedReferences = [ jdk gradle.jdk ];

# Uses a lot of RAM, OOMs otherwise
requiredSystemFeatures = [ "big-parallel" ];

meta = with lib; {
homepage = "http://openjdk.java.net/projects/openjfx/";
license = licenses.gpl2;
description = "Next-generation Java client toolkit";
maintainers = with maintainers; [ abbradar ];
platforms = [ "x86_64-linux" ];
};
}
152 changes: 152 additions & 0 deletions pkgs/development/compilers/openjdk/openjfx/11/deps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion pkgs/top-level/aliases.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1188,7 +1188,6 @@ mapAliases {
openjdk20_headless = openjdk20; # Added 2024-08-01
jdk20 = openjdk20; # Added 2024-08-01
jdk20_headless = openjdk20; # Added 2024-08-01
openjfx11 = throw "OpenJFX 11 was removed as it has reached its end of life"; # Added 2024-10-07
openjfx19 = throw "OpenJFX 19 was removed as it has reached its end of life"; # Added 2024-08-01
openjfx20 = throw "OpenJFX 20 was removed as it has reached its end of life"; # Added 2024-08-01
openjpeg_2 = openjpeg; # Added 2021-01-25
Expand Down
10 changes: 7 additions & 3 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3299,7 +3299,9 @@ with pkgs;

bazarr = callPackage ../servers/bazarr { };

bisq-desktop = callPackage ../applications/blockchains/bisq-desktop { };
bisq-desktop = callPackage ../applications/blockchains/bisq-desktop {
openjdk11 = openjdk11.override { enableJavaFX = true; };
};

bic = callPackage ../development/interpreters/bic { };

Expand Down Expand Up @@ -12363,7 +12365,9 @@ with pkgs;
snort = callPackage ../applications/networking/ids/snort { };

soapui = callPackage ../applications/networking/soapui {
jdk = jdk11;
jdk = if stdenv.hostPlatform.isDarwin
then (jdk11.override { enableJavaFX = true; })
else jdk11;
};

sockdump = callPackage ../tools/networking/sockdump { };
Expand Down Expand Up @@ -15087,7 +15091,7 @@ with pkgs;

hugs = callPackage ../development/interpreters/hugs { };

inherit (javaPackages) openjfx17 openjfx21 openjfx22;
inherit (javaPackages) openjfx11 openjfx17 openjfx21 openjfx22;
openjfx = openjfx17;

openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap;
Expand Down
5 changes: 3 additions & 2 deletions pkgs/top-level/java-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@
with pkgs;

let
openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11 { };
openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17 { };
openjfx21 = callPackage ../development/compilers/openjdk/openjfx/21 { };
openjfx22 = callPackage ../development/compilers/openjdk/openjfx/22 { };

in {
inherit openjfx17 openjfx21 openjfx22;
inherit openjfx11 openjfx17 openjfx21 openjfx22;

compiler = let
mkOpenjdk = path-linux: path-darwin: args:
Expand Down Expand Up @@ -43,7 +44,7 @@ in {
openjdk11 = mkOpenjdk
../development/compilers/openjdk/11.nix
../development/compilers/zulu/11.nix
{ openjfx = throw "JavaFX is not supported on OpenJDK 11"; };
{ openjfx = openjfx11; };

openjdk17 = mkOpenjdk
../development/compilers/openjdk/17.nix
Expand Down

0 comments on commit e7d50e9

Please sign in to comment.