Merge pull request #155746 from bachp/openjfx17

openjfx17: init at 17.0.0.1+1

authored by Nikolay Amiantov and committed by GitHub 2eefdb5c b2de4627

+119 -6
+106
pkgs/development/compilers/openjdk/openjfx/17.nix
··· 1 + { stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7 2 + , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib 3 + , ffmpeg, python3, ruby, icu68 }: 4 + 5 + let 6 + major = "17"; 7 + update = ".0.0.1"; 8 + build = "+1"; 9 + repover = "${major}${update}${build}"; 10 + gradle_ = (gradle_7.override { 11 + java = openjdk17_headless; 12 + }); 13 + 14 + makePackage = args: stdenv.mkDerivation ({ 15 + version = "${major}${update}${build}"; 16 + 17 + src = fetchFromGitHub { 18 + owner = "openjdk"; 19 + repo = "jfx"; 20 + rev = repover; 21 + sha256 = "sha256-PSiE9KbF/4u9VyBl9PAMLGzKyGFB86/XByeh7vhL6Kw="; 22 + }; 23 + 24 + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg icu68 ]; 25 + nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; 26 + 27 + dontUseCmakeConfigure = true; 28 + 29 + config = writeText "gradle.properties" ('' 30 + CONF = Release 31 + JDK_HOME = ${openjdk17_headless.home} 32 + '' + args.gradleProperties or ""); 33 + 34 + buildPhase = '' 35 + runHook preBuild 36 + 37 + export GRADLE_USER_HOME=$(mktemp -d) 38 + ln -s $config gradle.properties 39 + export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" 40 + gradle --no-daemon $gradleFlags sdk 41 + 42 + runHook postBuild 43 + ''; 44 + } // args); 45 + 46 + # Fake build to pre-download deps into fixed-output derivation. 47 + # We run nearly full build because I see no other way to download everything that's needed. 48 + # Anyone who knows a better way? 49 + deps = makePackage { 50 + pname = "openjfx-deps"; 51 + 52 + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) 53 + installPhase = '' 54 + find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ 55 + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ 56 + | sh 57 + rm -rf $out/tmp 58 + ''; 59 + 60 + outputHashAlgo = "sha256"; 61 + outputHashMode = "recursive"; 62 + outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; 63 + }; 64 + 65 + in makePackage { 66 + pname = "openjfx-modular-sdk"; 67 + 68 + gradleProperties = '' 69 + COMPILE_MEDIA = true 70 + COMPILE_WEBKIT = false 71 + ''; 72 + 73 + preBuild = '' 74 + swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" 75 + substituteInPlace build.gradle \ 76 + --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ 77 + --replace 'name: SWT_FILE_NAME' "files('$swtJar')" 78 + ''; 79 + 80 + installPhase = '' 81 + cp -r build/modular-sdk $out 82 + ''; 83 + 84 + stripDebugList = [ "." ]; 85 + 86 + postFixup = '' 87 + # Remove references to bootstrap. 88 + export openjdkOutPath='${openjdk17_headless.outPath}' 89 + find "$out" -name \*.so | while read lib; do 90 + new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')" 91 + patchelf --set-rpath "$new_refs" "$lib" 92 + done 93 + ''; 94 + 95 + disallowedReferences = [ openjdk17_headless ]; 96 + 97 + passthru.deps = deps; 98 + 99 + meta = with lib; { 100 + homepage = "http://openjdk.java.net/projects/openjfx/"; 101 + license = licenses.gpl2; 102 + description = "The next-generation Java client toolkit"; 103 + maintainers = with maintainers; [ abbradar ]; 104 + platforms = platforms.unix; 105 + }; 106 + }
+8 -2
pkgs/development/tools/build-managers/gradle/default.nix
··· 3 3 rec { 4 4 gen = 5 5 6 - { version, nativeVersion, sha256, defaultJava ? jdk8 }: 6 + { version, nativeVersion, sha256, defaultJava ? jdk8, supportedPlatforms ? null }: 7 7 8 8 { lib, stdenv, fetchurl, makeWrapper, unzip, java ? defaultJava 9 9 , javaToolchains ? [ ], ncurses5, ncurses6 }: ··· 87 87 changelog = "https://docs.gradle.org/${version}/release-notes.html"; 88 88 downloadPage = "https://gradle.org/next-steps/?version=${version}"; 89 89 license = licenses.asl20; 90 - platforms = platforms.unix; 90 + platforms = if (supportedPlatforms != null) then supportedPlatforms else platforms.unix; 91 91 maintainers = with maintainers; [ lorenzleutgeb liff ]; 92 92 }; 93 93 }; ··· 100 100 nativeVersion = "0.22-milestone-23"; 101 101 sha256 = "0d56bgd2m64pzmycjk29hwdlhbpn1kkm7fjik1sibn6vslw71hlc"; 102 102 defaultJava = jdk17; 103 + # Gradle 7 ships some binaries that are only available for some platforms 104 + # See https://github.com/gradle/native-platform#supported-platforms 105 + supportedPlatforms = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" "x86_64-cygwin" "x86_64-windows" "i686-windows" ]; 103 106 }; 104 107 105 108 gradle_6 = gen { ··· 107 110 nativeVersion = "0.22-milestone-20"; 108 111 sha256 = "13qyk3f6namw27ynh6nxljxpk9r3l12vxl3f0qpglprdf3c6ydcb"; 109 112 defaultJava = jdk11; 113 + # Gradle 6 ships some binaries that are only available for some platforms 114 + # See https://github.com/gradle/native-platform#supported-platforms 115 + supportedPlatforms = [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin" "x86_64-cygwin" "x86_64-windows" "i686-windows" ]; 110 116 }; 111 117 112 118 # NOTE: No GitHub Release for the following versions. `update.sh` will not work.
+2 -2
pkgs/top-level/all-packages.nix
··· 12537 12537 12538 12538 hugs = callPackage ../development/interpreters/hugs { }; 12539 12539 12540 - inherit (javaPackages) openjfx11 openjfx15; 12541 - openjfx = openjfx15; 12540 + inherit (javaPackages) openjfx11 openjfx15 openjfx17; 12541 + openjfx = openjfx17; 12542 12542 12543 12543 openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap; 12544 12544 openjdk8 = javaPackages.compiler.openjdk8;
+3 -2
pkgs/top-level/java-packages.nix
··· 8 8 9 9 openjfx11 = callPackage ../development/compilers/openjdk/openjfx/11.nix { }; 10 10 openjfx15 = callPackage ../development/compilers/openjdk/openjfx/15.nix { }; 11 + openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17.nix { }; 11 12 12 13 in { 13 - inherit mavenbuild fetchMaven openjfx11 openjfx15; 14 + inherit mavenbuild fetchMaven openjfx11 openjfx15 openjfx17; 14 15 15 16 compiler = let 16 17 ··· 170 171 ../development/compilers/openjdk/darwin/17.nix 171 172 { 172 173 inherit openjdk17-bootstrap; 173 - openjfx = openjfx15; 174 + openjfx = openjfx17; 174 175 }; 175 176 }; 176 177