diff --git a/pkgs/development/compilers/openjdk/openjfx/11/default.nix b/pkgs/development/compilers/openjdk/openjfx/11/default.nix index 22b844bb1d67..58bd8678c0de 100644 --- a/pkgs/development/compilers/openjdk/openjfx/11/default.nix +++ b/pkgs/development/compilers/openjdk/openjfx/11/default.nix @@ -1,107 +1,71 @@ -{ stdenv, lib, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake -, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand +{ stdenv, lib, pkgs, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake +, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-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}"; - gradle_ = (gradle_7.override { - java = openjdk11-bootstrap; - }); + jdk = openjdk11-bootstrap; + gradle = gradle_7; - icuVersionWithSep = s: "71${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; +in stdenv.mkDerivation { + inherit pname; + version = "${major}${update}-${build}"; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}-${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx${major}u"; - rev = repover; - sha256 = "sha256-BbBP2DiPZTSn1SBYMCgyiNdF9GD+NqR6YjeVNOQHHn4="; - }; - - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; - - dontUseCmakeConfigure = true; - - postPatch = '' - substituteInPlace buildSrc/linux.gradle \ - --replace ', "-Werror=implicit-function-declaration"' "" - - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk11-bootstrap.home} - '' + args.gradleProperties or ""); - - buildPhase = '' - runHook preBuild - - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk - - runHook postBuild - ''; - } // args); - - # Fake build to pre-download deps into fixed-output derivation. - # We run nearly full build because I see no other way to download everything that's needed. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # 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) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-syceJMUEknBDCHK8eGs6rUU3IQn+HnQfURfCrDxYPa9="; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx${major}u"; + rev = repover; + sha256 = "sha256-BbBP2DiPZTSn1SBYMCgyiNdF9GD+NqR6YjeVNOQHHn4="; }; -in makePackage { - pname = "openjfx-modular-sdk"; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; + nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; - gradleProperties = '' + dontUseCmakeConfigure = true; + + config = writeText "gradle.properties" '' + CONF = Release + JDK_HOME = ${jdk.home} COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} ''; - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + postPatch = '' + substituteInPlace buildSrc/linux.gradle \ + --replace ', "-Werror=implicit-function-declaration"' "" + + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -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 ''; @@ -110,18 +74,16 @@ in makePackage { postFixup = '' # Remove references to bootstrap. + export openjdkOutPath='${jdk.outPath}' find "$out" -name \*.so | while read lib; do - new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${openjdk11-bootstrap}[^:]*,,')" + 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 = [ openjdk11-bootstrap ]; - - passthru.deps = deps; + disallowedReferences = [ jdk gradle.jdk ]; # Uses a lot of RAM, OOMs otherwise requiredSystemFeatures = [ "big-parallel" ]; diff --git a/pkgs/development/compilers/openjdk/openjfx/11/deps.json b/pkgs/development/compilers/openjdk/openjfx/11/deps.json new file mode 100644 index 000000000000..7c8167124430 --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/11/deps.json @@ -0,0 +1,152 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": { + "jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw=" + } + }, + "https://github.com": { + "unicode-org/icu/releases/download/release-71-1/icu4c-71_1-data-bin-l": { + "zip": "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "junit#junit/4.13.2": { + "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=", + "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.1.0": { + "jar": "sha256-vG3+7tCrp0MCqSCBH/1snkVlvviTzMOvg2Iz36s8UTo=", + "pom": "sha256-d7ysnMSDKiKSGJgng2ASB8yYvldcyIRDNtWuBzkbPuE=" + }, + "org/apache/lucene#lucene-grouping/7.1.0": { + "jar": "sha256-5wh/sGDRWa1xvW7p6W8BYGpaM1OgxJofHQ49oPUaTlo=", + "pom": "sha256-738k/3YjlZSfxMiDl1npJhD8mx8Nifmbtw+haHNh2Ec=" + }, + "org/apache/lucene#lucene-parent/7.1.0": { + "pom": "sha256-l7M9mcedTRIoIuWDY0cGvGmfRCvp3tksZiKdEn+WoAc=" + }, + "org/apache/lucene#lucene-queries/7.1.0": { + "jar": "sha256-qamOR/ueclsDerV+wZts4QVBIoTLXl2aGs99Xv8TSTY=", + "pom": "sha256-pvMWrRvMdKy3f3mP/AIKy9aD3nx5OUrFNgAdE6vktVY=" + }, + "org/apache/lucene#lucene-queryparser/7.1.0": { + "jar": "sha256-HNuCsiqq3bGJW9OjSVinyaOgb/0NZ6sskNvDegRshlQ=", + "pom": "sha256-K7m67AcL6g3a5aj1rrDOZlJpBeA4THS+18OrIJ52hdM=" + }, + "org/apache/lucene#lucene-sandbox/7.1.0": { + "jar": "sha256-wZA9Xag+IIZp2NkzdJeeFAIUNYsq32c1sa488kkJW+E=", + "pom": "sha256-WL5E6wSMD0If6eul+30xhr7gk7g72F4w5EKbbctVZMU=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.1.0": { + "pom": "sha256-3NW0Q/KK2QPk/wfTMigGxTF4BWuctNQU+2gMyArhGsU=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/hamcrest#hamcrest-core/1.3": { + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + }, + "org/hamcrest#hamcrest-parent/1.3": { + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + }, + "org/junit#junit-bom/5.8.1": { + "module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=", + "pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM=" + }, + "org/junit/jupiter#junit-jupiter-api/5.8.1": { + "jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=", + "module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=", + "pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.8.1": { + "jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=", + "module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=", + "pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4=" + }, + "org/junit/jupiter#junit-jupiter-params/5.8.1": { + "jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=", + "module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=", + "pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws=" + }, + "org/junit/jupiter#junit-jupiter/5.8.1": { + "jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=", + "module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=", + "pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU=" + }, + "org/junit/platform#junit-platform-commons/1.8.1": { + "jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=", + "module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=", + "pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ=" + }, + "org/junit/platform#junit-platform-engine/1.8.1": { + "jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=", + "module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=", + "pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI=" + }, + "org/junit/vintage#junit-vintage-engine/5.8.1": { + "jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=", + "module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=", + "pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI=" + }, + "org/opentest4j#opentest4j/1.2.0": { + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/development/compilers/openjdk/openjfx/15/default.nix b/pkgs/development/compilers/openjdk/openjfx/15/default.nix index 77c8e4678d6c..bc032a349a76 100644 --- a/pkgs/development/compilers/openjdk/openjfx/15/default.nix +++ b/pkgs/development/compilers/openjdk/openjfx/15/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchFromGitHub, writeText, openjdk11_headless, gradle_6 +{ stdenv, lib, pkgs, fetchFromGitHub, writeText, openjdk11_headless, gradle_6 , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib , ffmpeg_4-headless, python3, ruby , withMedia ? true @@ -6,115 +6,80 @@ }: let + pname = "openjfx-modular-sdk"; major = "15"; update = ".0.1"; build = "+1"; repover = "${major}${update}${build}"; - gradle_ = (gradle_6.override { - java = openjdk11_headless; - }); + jdk = openjdk11_headless; + gradle = gradle_6; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; +in stdenv.mkDerivation { + inherit pname; + version = "${major}${update}${build}"; - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx"; - rev = repover; - sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1"; - }; - - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; - - dontUseCmakeConfigure = true; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk11_headless.home} - '' + args.gradleProperties or ""); - - env.NIX_CFLAGS_COMPILE = toString [ - #avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc. - "-DGLIB_DISABLE_DEPRECATION_WARNINGS" - - # gstreamer workaround for -fno-common toolchains: - # ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of - # `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here - "-fcommon" - ]; - - buildPhase = '' - runHook preBuild - - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon $gradleFlags sdk - - runHook postBuild - ''; - } // args); - - # Fake build to pre-download deps into fixed-output derivation. - # We run nearly full build because I see no other way to download everything that's needed. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # 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) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-fGLTMM9s/Vn7eMzn6OQR3tL0cGbAYc7c4J4/aW3JvkI="; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + sha256 = "019glq8rhn6amy3n5jc17vi2wpf1pxpmmywvyz1ga8n09w7xscq1"; }; -in makePackage { - pname = "openjfx-modular-sdk"; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; + nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; - gradleProperties = '' + dontUseCmakeConfigure = true; + + config = writeText "gradle.properties" '' + CONF = Release + JDK_HOME = ${jdk.home} COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_WEBKIT = ${lib.boolToString withWebKit} ''; - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + postPatch = '' + 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" + # avoids errors about deprecation of GTypeDebugFlags, GTimeVal, etc. + export NIX_CFLAGS_COMPILE="-DGLIB_DISABLE_DEPRECATION_WARNINGS $NIX_CFLAGS_COMPILE" + # gstreamer workaround for -fno-common toolchains: + # ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of + # `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here + export NIX_CFLAGS_COMPILE="-fcommon $NIX_CFLAGS_COMPILE" + ''; + + enableParallelBuilding = false; + + gradleBuildTask = "sdk"; + installPhase = '' cp -r build/modular-sdk $out ''; - # glib-2.62 deprecations - # -fcommon: gstreamer workaround for -fno-common toolchains: - # ld: gsttypefindelement.o:(.bss._gst_disable_registry_cache+0x0): multiple definition of - # `_gst_disable_registry_cache'; gst.o:(.bss._gst_disable_registry_cache+0x0): first defined here - env.NIX_CFLAGS_COMPILE = "-DGLIB_DISABLE_DEPRECATION_WARNINGS -fcommon"; - stripDebugList = [ "." ]; postFixup = '' # Remove references to bootstrap. - export openjdkOutPath='${openjdk11_headless.outPath}' + 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 ''; - disallowedReferences = [ openjdk11_headless ]; - - passthru.deps = deps; + disallowedReferences = [ jdk gradle.jdk ]; meta = with lib; { homepage = "http://openjdk.java.net/projects/openjfx/"; diff --git a/pkgs/development/compilers/openjdk/openjfx/15/deps.json b/pkgs/development/compilers/openjdk/openjfx/15/deps.json new file mode 100644 index 000000000000..efc8ffa4331f --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/15/deps.json @@ -0,0 +1,92 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": { + "jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "junit#junit/4.8.2": { + "jar": "sha256-oqosO7K3LadsPmpxUx8e79w1BJSBm68rHYDXFG4CD54=", + "pom": "sha256-3znTTR9YMLLYqSeQxmtXmDWLCz4BRS3IWzciqIGtkj4=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.7.2": { + "jar": "sha256-gUOKydZ4BQxUbSqEEsxyg6XSD9hcNxQhhEfHWBZZT10=", + "pom": "sha256-MPuqRu1exVS+3nILqReeEqTnQVHh+IaSBJbYREuwVZE=" + }, + "org/apache/lucene#lucene-grouping/7.7.2": { + "jar": "sha256-nKhrWw/YSbq50xpk7RvP8cdTGrHP1z/E/tJDBmX7rUo=", + "pom": "sha256-UezgO9APIm2uObABf5OZPPfXbSju8LQl+MzborrBs3w=" + }, + "org/apache/lucene#lucene-parent/7.7.2": { + "pom": "sha256-fXiTJSgZw4Sx0lvUA6Go85DYUF+VQOHigRcZymjP7zQ=" + }, + "org/apache/lucene#lucene-queries/7.7.2": { + "jar": "sha256-n8XsO17OwtKV0/xM+Dc5LfuWntYegaMr0/3SH4DbfHk=", + "pom": "sha256-D4rAB9QDQb6gD3/s7m1Ewu7ZXQTi66KEf2CBJJLOcoQ=" + }, + "org/apache/lucene#lucene-queryparser/7.7.2": { + "jar": "sha256-v9lKUL8FAf0H5prk9J28FJzjaUoFZrsWTXxui+VeK9Q=", + "pom": "sha256-DmVV70KT9yjEqJhOuuNUK+N7KThK/gcQjPy+R/AS3Us=" + }, + "org/apache/lucene#lucene-sandbox/7.7.2": { + "jar": "sha256-dqY72JMAjr7tJJeePyUIXIkJ/0vEEv33iAJfntoKvhE=", + "pom": "sha256-zwJCiBB2rdYRwEPZZPtrduPRnAQn7/r/Qhc6ZQ+Bk5s=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.7.2": { + "pom": "sha256-a0oZeEo3uKoSdf5mCEZKHZvSlLVv6WgRIgfkDEKETqc=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/development/compilers/openjdk/openjfx/17/default.nix b/pkgs/development/compilers/openjdk/openjfx/17/default.nix index 00fa6af725e5..b61ad29c4a85 100644 --- a/pkgs/development/compilers/openjdk/openjfx/17/default.nix +++ b/pkgs/development/compilers/openjdk/openjfx/17/default.nix @@ -1,104 +1,68 @@ -{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7 +{ stdenv, lib, pkgs, fetchFromGitHub, writeText, openjdk17_headless, gradle_7 , pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib -, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand +, ffmpeg_4-headless, python3, ruby , withMedia ? true , withWebKit ? false }: let + pname = "openjfx-modular-sdk"; major = "17"; update = ".0.11"; build = "-ga"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - java = openjdk17_headless; - }); + jdk = openjdk17_headless; + gradle = gradle_7; - icuVersionWithSep = s: "71${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; +in stdenv.mkDerivation { + inherit pname; + version = "${major}${update}${build}"; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx${major}u"; - rev = repover; - sha256 = "sha256-WV8NHlYlt7buGbirLSorLnS2TnyBD17zUquFfwSL3xE="; - }; - - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; - - dontUseCmakeConfigure = true; - - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk17_headless.home} - '' + args.gradleProperties or ""); - - buildPhase = '' - runHook preBuild - - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk - - runHook postBuild - ''; - } // args); - - # Fake build to pre-download deps into fixed-output derivation. - # We run nearly full build because I see no other way to download everything that's needed. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # 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) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx${major}u"; + rev = repover; + sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw="; }; -in makePackage { - pname = "openjfx-modular-sdk"; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ]; + nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; - gradleProperties = '' + dontUseCmakeConfigure = true; + + config = writeText "gradle.properties" '' + CONF = Release + JDK_HOME = ${jdk.home} COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} ''; - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -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 ''; @@ -107,16 +71,14 @@ in makePackage { postFixup = '' # Remove references to bootstrap. - export openjdkOutPath='${openjdk17_headless.outPath}' + 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 ''; - disallowedReferences = [ openjdk17_headless ]; - - passthru.deps = deps; + disallowedReferences = [ jdk gradle.jdk ]; meta = with lib; { homepage = "http://openjdk.java.net/projects/openjfx/"; diff --git a/pkgs/development/compilers/openjdk/openjfx/17/deps.json b/pkgs/development/compilers/openjdk/openjfx/17/deps.json new file mode 100644 index 000000000000..a9fa40a91be1 --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/17/deps.json @@ -0,0 +1,152 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": { + "jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw=" + } + }, + "https://github.com": { + "unicode-org/icu/releases/download/release-71-1/icu4c-71_1-data-bin-l": { + "zip": "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "junit#junit/4.13.2": { + "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=", + "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.7.3": { + "jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=", + "pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo=" + }, + "org/apache/lucene#lucene-grouping/7.7.3": { + "jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=", + "pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU=" + }, + "org/apache/lucene#lucene-parent/7.7.3": { + "pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU=" + }, + "org/apache/lucene#lucene-queries/7.7.3": { + "jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=", + "pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA=" + }, + "org/apache/lucene#lucene-queryparser/7.7.3": { + "jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=", + "pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI=" + }, + "org/apache/lucene#lucene-sandbox/7.7.3": { + "jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=", + "pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.7.3": { + "pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/hamcrest#hamcrest-core/1.3": { + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + }, + "org/hamcrest#hamcrest-parent/1.3": { + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + }, + "org/junit#junit-bom/5.8.1": { + "module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=", + "pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM=" + }, + "org/junit/jupiter#junit-jupiter-api/5.8.1": { + "jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=", + "module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=", + "pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.8.1": { + "jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=", + "module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=", + "pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4=" + }, + "org/junit/jupiter#junit-jupiter-params/5.8.1": { + "jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=", + "module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=", + "pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws=" + }, + "org/junit/jupiter#junit-jupiter/5.8.1": { + "jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=", + "module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=", + "pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU=" + }, + "org/junit/platform#junit-platform-commons/1.8.1": { + "jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=", + "module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=", + "pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ=" + }, + "org/junit/platform#junit-platform-engine/1.8.1": { + "jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=", + "module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=", + "pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI=" + }, + "org/junit/vintage#junit-vintage-engine/5.8.1": { + "jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=", + "module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=", + "pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI=" + }, + "org/opentest4j#opentest4j/1.2.0": { + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/development/compilers/openjdk/openjfx/19/default.nix b/pkgs/development/compilers/openjdk/openjfx/19/default.nix index 38720efaba54..4aaf71114f59 100644 --- a/pkgs/development/compilers/openjdk/openjfx/19/default.nix +++ b/pkgs/development/compilers/openjdk/openjfx/19/default.nix @@ -1,121 +1,81 @@ -{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless +{ stdenv, lib, pkgs, fetchFromGitHub, fetchpatch, writeText , openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst -, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand +, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby , withMedia ? true , withWebKit ? false }: let + pname = "openjfx-modular-sdk"; major = "19"; update = ".0.2.1"; build = "+1"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - # note: gradle does not yet support running on 19 - java = openjdk17_headless; - }); + jdk = openjdk19_headless; + gradle = gradle_7; - icuVersionWithSep = s: "68${s}2"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "."}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-ieQCLBTNrskuf8j3IUQS3QLIAQzLom/O58muMP363Lw="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; +in stdenv.mkDerivation { + inherit pname; + version = "${major}${update}${build}"; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx"; - rev = repover; - hash = "sha256-A08GhCGpzWlUG1+f6mcjvkJmMNaOReacQKPEmNpUvLs="; - }; - - patches = [ - # 8295962: Reference to State in Task.java is ambiguous when building with JDK 19 - (fetchpatch { - url = "https://github.com/openjdk/jfx/pull/933/commits/cfaee2a52350eff39dd4352484c892716076d3de.patch"; - hash = "sha256-hzJMenhvtmHs/6BJj8GfaLp14myV8VCXCLLC8n32yEw="; - }) - # ditto - (fetchpatch { - url = "https://github.com/openjdk/jfx/pull/933/commits/bd46ce12df0a93a56fe0d58d3653d08e58409b7f.patch"; - hash = "sha256-o9908uw9vYvULmAh/lbfyHhgxz6jpgPq2fcAltWsYoU="; - }) - ]; - - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; - - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; - - dontUseCmakeConfigure = true; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk19_headless.home} - '' + args.gradleProperties or ""); - - buildPhase = '' - runHook preBuild - - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk - - runHook postBuild - ''; - } // args); - - # Fake build to pre-download deps into fixed-output derivation. - # We run nearly full build because I see no other way to download everything that's needed. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # 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) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - # suspiciously the same as for openjfx 17 ... - # could they really not have changed any of their dependencies? - # or did we miss changing another upstream hash when copy-pasting? - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx"; + rev = repover; + hash = "sha256-A08GhCGpzWlUG1+f6mcjvkJmMNaOReacQKPEmNpUvLs="; }; -in makePackage { - pname = "openjfx-modular-sdk"; + patches = [ + # 8295962: Reference to State in Task.java is ambiguous when building with JDK 19 + (fetchpatch { + url = "https://github.com/openjdk/jfx/pull/933/commits/cfaee2a52350eff39dd4352484c892716076d3de.patch"; + hash = "sha256-hzJMenhvtmHs/6BJj8GfaLp14myV8VCXCLLC8n32yEw="; + }) + # ditto + (fetchpatch { + url = "https://github.com/openjdk/jfx/pull/933/commits/bd46ce12df0a93a56fe0d58d3653d08e58409b7f.patch"; + hash = "sha256-o9908uw9vYvULmAh/lbfyHhgxz6jpgPq2fcAltWsYoU="; + }) + ]; - gradleProperties = '' + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; + 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} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} ''; - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -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 ''; @@ -124,16 +84,14 @@ in makePackage { postFixup = '' # Remove references to bootstrap. - export openjdkOutPath='${openjdk19_headless.outPath}' + 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 ''; - disallowedReferences = [ openjdk17_headless openjdk19_headless ]; - - passthru.deps = deps; + disallowedReferences = [ jdk gradle.jdk ]; meta = with lib; { homepage = "https://openjdk.org/projects/openjfx/"; diff --git a/pkgs/development/compilers/openjdk/openjfx/19/deps.json b/pkgs/development/compilers/openjdk/openjfx/19/deps.json new file mode 100644 index 000000000000..04a58b347da9 --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/19/deps.json @@ -0,0 +1,152 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": { + "jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw=" + } + }, + "https://github.com": { + "unicode-org/icu/releases/download/release-68-2/icu4c-68.2-data-bin-l": { + "zip": "sha256-ieQCLBTNrskuf8j3IUQS3QLIAQzLom/O58muMP363Lw=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "junit#junit/4.13.2": { + "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=", + "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.7.3": { + "jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=", + "pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo=" + }, + "org/apache/lucene#lucene-grouping/7.7.3": { + "jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=", + "pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU=" + }, + "org/apache/lucene#lucene-parent/7.7.3": { + "pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU=" + }, + "org/apache/lucene#lucene-queries/7.7.3": { + "jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=", + "pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA=" + }, + "org/apache/lucene#lucene-queryparser/7.7.3": { + "jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=", + "pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI=" + }, + "org/apache/lucene#lucene-sandbox/7.7.3": { + "jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=", + "pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.7.3": { + "pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/hamcrest#hamcrest-core/1.3": { + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + }, + "org/hamcrest#hamcrest-parent/1.3": { + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + }, + "org/junit#junit-bom/5.8.1": { + "module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=", + "pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM=" + }, + "org/junit/jupiter#junit-jupiter-api/5.8.1": { + "jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=", + "module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=", + "pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.8.1": { + "jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=", + "module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=", + "pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4=" + }, + "org/junit/jupiter#junit-jupiter-params/5.8.1": { + "jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=", + "module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=", + "pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws=" + }, + "org/junit/jupiter#junit-jupiter/5.8.1": { + "jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=", + "module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=", + "pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU=" + }, + "org/junit/platform#junit-platform-commons/1.8.1": { + "jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=", + "module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=", + "pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ=" + }, + "org/junit/platform#junit-platform-engine/1.8.1": { + "jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=", + "module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=", + "pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI=" + }, + "org/junit/vintage#junit-vintage-engine/5.8.1": { + "jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=", + "module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=", + "pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI=" + }, + "org/opentest4j#opentest4j/1.2.0": { + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/development/compilers/openjdk/openjfx/20/default.nix b/pkgs/development/compilers/openjdk/openjfx/20/default.nix index 0aa7b262e834..277ee7ad70c4 100644 --- a/pkgs/development/compilers/openjdk/openjfx/20/default.nix +++ b/pkgs/development/compilers/openjdk/openjfx/20/default.nix @@ -1,108 +1,68 @@ -{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless +{ stdenv, lib, pkgs, fetchFromGitHub, writeText , openjdk20_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst -, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand +, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby , withMedia ? true , withWebKit ? false }: let + pname = "openjfx-modular-sdk"; major = "20"; update = ".0.2"; build = "-ga"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - # note: gradle does not yet support running on 19 - java = openjdk17_headless; - }); + jdk = openjdk20_headless; + gradle = gradle_7; - icuVersionWithSep = s: "71${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; +in stdenv.mkDerivation { + inherit pname; + version = "${major}${update}${build}"; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx20u"; - rev = repover; - hash = "sha256-3Hhz4i8fPU2yowb4roylCXzuO9HkW7ZWF9TMA3HIH9o="; - }; - - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; - - dontUseCmakeConfigure = true; - - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk20_headless.home} - '' + args.gradleProperties or ""); - - buildPhase = '' - runHook preBuild - - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk - - runHook postBuild - ''; - } // args); - - # Fake build to pre-download deps into fixed-output derivation. - # We run nearly full build because I see no other way to download everything that's needed. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # 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) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - # suspiciously the same as for openjfx 17 ... - # could they really not have changed any of their dependencies? - # or did we miss changing another upstream hash when copy-pasting? - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx20u"; + rev = repover; + hash = "sha256-3Hhz4i8fPU2yowb4roylCXzuO9HkW7ZWF9TMA3HIH9o="; }; -in makePackage { - pname = "openjfx-modular-sdk"; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; + nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; - gradleProperties = '' + dontUseCmakeConfigure = true; + + config = writeText "gradle.properties" '' + CONF = Release + JDK_HOME = ${jdk.home} COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} ''; - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -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 ''; @@ -111,16 +71,14 @@ in makePackage { postFixup = '' # Remove references to bootstrap. - export openjdkOutPath='${openjdk20_headless.outPath}' + 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 ''; - disallowedReferences = [ openjdk17_headless openjdk20_headless ]; - - passthru.deps = deps; + disallowedReferences = [ jdk gradle.jdk ]; meta = with lib; { homepage = "https://openjdk.org/projects/openjfx/"; diff --git a/pkgs/development/compilers/openjdk/openjfx/20/deps.json b/pkgs/development/compilers/openjdk/openjfx/20/deps.json new file mode 100644 index 000000000000..a9fa40a91be1 --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/20/deps.json @@ -0,0 +1,152 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": { + "jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw=" + } + }, + "https://github.com": { + "unicode-org/icu/releases/download/release-71-1/icu4c-71_1-data-bin-l": { + "zip": "sha256-pVWIy0BkICsthA5mxhR9SJQHleMNnaEcGl/AaLi5qZM=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "junit#junit/4.13.2": { + "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=", + "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.7.3": { + "jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=", + "pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo=" + }, + "org/apache/lucene#lucene-grouping/7.7.3": { + "jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=", + "pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU=" + }, + "org/apache/lucene#lucene-parent/7.7.3": { + "pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU=" + }, + "org/apache/lucene#lucene-queries/7.7.3": { + "jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=", + "pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA=" + }, + "org/apache/lucene#lucene-queryparser/7.7.3": { + "jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=", + "pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI=" + }, + "org/apache/lucene#lucene-sandbox/7.7.3": { + "jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=", + "pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.7.3": { + "pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/hamcrest#hamcrest-core/1.3": { + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + }, + "org/hamcrest#hamcrest-parent/1.3": { + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + }, + "org/junit#junit-bom/5.8.1": { + "module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=", + "pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM=" + }, + "org/junit/jupiter#junit-jupiter-api/5.8.1": { + "jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=", + "module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=", + "pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.8.1": { + "jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=", + "module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=", + "pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4=" + }, + "org/junit/jupiter#junit-jupiter-params/5.8.1": { + "jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=", + "module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=", + "pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws=" + }, + "org/junit/jupiter#junit-jupiter/5.8.1": { + "jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=", + "module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=", + "pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU=" + }, + "org/junit/platform#junit-platform-commons/1.8.1": { + "jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=", + "module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=", + "pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ=" + }, + "org/junit/platform#junit-platform-engine/1.8.1": { + "jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=", + "module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=", + "pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI=" + }, + "org/junit/vintage#junit-vintage-engine/5.8.1": { + "jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=", + "module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=", + "pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI=" + }, + "org/opentest4j#opentest4j/1.2.0": { + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/development/compilers/openjdk/openjfx/21/default.nix b/pkgs/development/compilers/openjdk/openjfx/21/default.nix index ee262eb8b950..dfb1a76b6976 100644 --- a/pkgs/development/compilers/openjdk/openjfx/21/default.nix +++ b/pkgs/development/compilers/openjdk/openjfx/21/default.nix @@ -1,108 +1,68 @@ -{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless +{ stdenv, lib, pkgs, fetchFromGitHub, writeText , openjdk21_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst -, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand +, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby , withMedia ? true , withWebKit ? false }: let + pname = "openjfx-modular-sdk"; major = "21"; update = ".0.3"; build = "-ga"; repover = "${major}${update}${build}"; - gradle_ = (gradle_7.override { - # note: gradle does not yet support running on 19 - java = openjdk17_headless; - }); + jdk = openjdk21_headless; + gradle = gradle_7; - icuVersionWithSep = s: "73${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; +in stdenv.mkDerivation { + inherit pname; + version = "${major}${update}${build}"; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx21u"; - rev = repover; - hash = "sha256-7z0GIbkQwG9mXY9dssaicqaKpMo3FkNEpyAvkswoQQ4="; - }; - - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ]; - - dontUseCmakeConfigure = true; - - postPatch = '' - # Add missing includes for gcc-13 for webkit build: - sed -e '1i #include ' \ - -i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \ - modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h - ''; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk21_headless.home} - '' + args.gradleProperties or ""); - - buildPhase = '' - runHook preBuild - - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk - - runHook postBuild - ''; - } // args); - - # Fake build to pre-download deps into fixed-output derivation. - # We run nearly full build because I see no other way to download everything that's needed. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # 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) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - # suspiciously the same as for openjfx 17 ... - # could they really not have changed any of their dependencies? - # or did we miss changing another upstream hash when copy-pasting? - outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo="; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx21u"; + rev = repover; + hash = "sha256-7z0GIbkQwG9mXY9dssaicqaKpMo3FkNEpyAvkswoQQ4="; }; -in makePackage { - pname = "openjfx-modular-sdk"; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; + nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; - gradleProperties = '' + dontUseCmakeConfigure = true; + + config = writeText "gradle.properties" '' + CONF = Release + JDK_HOME = ${jdk.home} COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} ''; - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + postPatch = '' + # Add missing includes for gcc-13 for webkit build: + sed -e '1i #include ' \ + -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 ''; @@ -111,16 +71,14 @@ in makePackage { postFixup = '' # Remove references to bootstrap. - export openjdkOutPath='${openjdk21_headless.outPath}' + 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 ''; - disallowedReferences = [ openjdk17_headless openjdk21_headless ]; - - passthru.deps = deps; + disallowedReferences = [ jdk gradle.jdk ]; meta = with lib; { homepage = "https://openjdk.org/projects/openjfx/"; diff --git a/pkgs/development/compilers/openjdk/openjfx/21/deps.json b/pkgs/development/compilers/openjdk/openjfx/21/deps.json new file mode 100644 index 000000000000..ec1816339f40 --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/21/deps.json @@ -0,0 +1,152 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.6/R-4.6.3-201703010400/plugins/org.eclipse.swt.gtk.linux.x86_64_3.105.3.v20170228-0512": { + "jar": "sha256-qWM1HV97griQxJlOFY2AVV2uOLAK87jXPzh1wh/zmLw=" + } + }, + "https://github.com": { + "unicode-org/icu/releases/download/release-73-1/icu4c-73_1-data-bin-l": { + "zip": "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "junit#junit/4.13.2": { + "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=", + "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.7.3": { + "jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=", + "pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo=" + }, + "org/apache/lucene#lucene-grouping/7.7.3": { + "jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=", + "pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU=" + }, + "org/apache/lucene#lucene-parent/7.7.3": { + "pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU=" + }, + "org/apache/lucene#lucene-queries/7.7.3": { + "jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=", + "pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA=" + }, + "org/apache/lucene#lucene-queryparser/7.7.3": { + "jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=", + "pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI=" + }, + "org/apache/lucene#lucene-sandbox/7.7.3": { + "jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=", + "pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.7.3": { + "pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/hamcrest#hamcrest-core/1.3": { + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + }, + "org/hamcrest#hamcrest-parent/1.3": { + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + }, + "org/junit#junit-bom/5.8.1": { + "module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=", + "pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM=" + }, + "org/junit/jupiter#junit-jupiter-api/5.8.1": { + "jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=", + "module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=", + "pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.8.1": { + "jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=", + "module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=", + "pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4=" + }, + "org/junit/jupiter#junit-jupiter-params/5.8.1": { + "jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=", + "module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=", + "pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws=" + }, + "org/junit/jupiter#junit-jupiter/5.8.1": { + "jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=", + "module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=", + "pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU=" + }, + "org/junit/platform#junit-platform-commons/1.8.1": { + "jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=", + "module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=", + "pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ=" + }, + "org/junit/platform#junit-platform-engine/1.8.1": { + "jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=", + "module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=", + "pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI=" + }, + "org/junit/vintage#junit-vintage-engine/5.8.1": { + "jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=", + "module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=", + "pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI=" + }, + "org/opentest4j#opentest4j/1.2.0": { + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +} diff --git a/pkgs/development/compilers/openjdk/openjfx/22/default.nix b/pkgs/development/compilers/openjdk/openjfx/22/default.nix index c34ff0466895..ce9d49c14bbb 100644 --- a/pkgs/development/compilers/openjdk/openjfx/22/default.nix +++ b/pkgs/development/compilers/openjdk/openjfx/22/default.nix @@ -1,8 +1,7 @@ { stdenv , lib +, pkgs , fetchFromGitHub -, fetchurl -, runCommand , writeText , openjdk21_headless , gradle @@ -24,90 +23,57 @@ }: let + pname = "openjfx-modular-sdk"; major = "22"; update = ".0.1"; build = "-ga"; repover = "${major}${update}${build}"; + jdk = openjdk21_headless; - icuVersionWithSep = s: "73${s}1"; - icuPath = "download/release-${icuVersionWithSep "-"}/icu4c-${icuVersionWithSep "_"}-data-bin-l.zip"; - icuData = fetchurl { - url = "https://github.com/unicode-org/icu/releases/${icuPath}"; - hash = "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA="; - }; - icuFakeRepository = runCommand "icu-data-repository" {} '' - install -Dm644 ${icuData} $out/${icuPath} - ''; +in stdenv.mkDerivation { + inherit pname; + version = "${major}${update}${build}"; - makePackage = args: stdenv.mkDerivation ({ - version = "${major}${update}${build}"; - - src = fetchFromGitHub { - owner = "openjdk"; - repo = "jfx22u"; - rev = repover; - hash = "sha256-VoEufSO+LciUCvoAM86MG1iMjCA3FSb60Ik4OP2Rk/Q="; - }; - - buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; - nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; - - dontUseCmakeConfigure = true; - - config = writeText "gradle.properties" ('' - CONF = Release - JDK_HOME = ${openjdk21_headless.home} - '' + args.gradleProperties or ""); - - buildPhase = '' - runHook preBuild - - export NUMBER_OF_PROCESSORS=$NIX_BUILD_CORES - export GRADLE_USER_HOME=$(mktemp -d) - ln -s $config gradle.properties - export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" - gradle --no-daemon --console=plain $gradleFlags sdk - - runHook postBuild - ''; - } // args); - - # Fake build to pre-download deps into fixed-output derivation. - # We run nearly full build because I see no other way to download everything that's needed. - # Anyone who knows a better way? - deps = makePackage { - pname = "openjfx-deps"; - - # 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) - installPhase = '' - find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \ - | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ - | sh - rm -rf $out/tmp - ''; - - outputHashAlgo = "sha256"; - outputHashMode = "recursive"; - outputHash = "sha256-2I7LvYcudlB4DKJ/wEiTjY6nICUxUY52euosUqOA+Bs="; + src = fetchFromGitHub { + owner = "openjdk"; + repo = "jfx22u"; + rev = repover; + hash = "sha256-VoEufSO+LciUCvoAM86MG1iMjCA3FSb60Ik4OP2Rk/Q="; }; -in -makePackage { - pname = "openjfx-modular-sdk"; + buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ]; + nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ]; - gradleProperties = '' + dontUseCmakeConfigure = true; + + config = writeText "gradle.properties" '' + CONF = Release + JDK_HOME = ${jdk.home} COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_WEBKIT = ${lib.boolToString withWebKit} - ${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"} ''; - preBuild = '' - swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)" - substituteInPlace build.gradle \ - --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \ - --replace 'name: SWT_FILE_NAME' "files('$swtJar')" + postPatch = '' + 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 ''; @@ -116,16 +82,14 @@ makePackage { postFixup = '' # Remove references to bootstrap. - export openjdkOutPath='${openjdk21_headless.outPath}' + 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 ''; - disallowedReferences = [ openjdk21_headless openjdk21_headless ]; - - passthru.deps = deps; + disallowedReferences = [ jdk gradle.jdk ]; meta = with lib; { homepage = "https://openjdk.org/projects/openjfx/"; diff --git a/pkgs/development/compilers/openjdk/openjfx/22/deps.json b/pkgs/development/compilers/openjdk/openjfx/22/deps.json new file mode 100644 index 000000000000..9ce577967ae2 --- /dev/null +++ b/pkgs/development/compilers/openjdk/openjfx/22/deps.json @@ -0,0 +1,152 @@ +{ + "!comment": "This is a nixpkgs Gradle dependency lockfile. For more details, refer to the Gradle section in the nixpkgs manual.", + "!version": 1, + "https://download.eclipse.org": { + "eclipse/updates/4.30/R-4.30-202312010110/plugins/org.eclipse.swt.gtk.linux.x86_64_3.124.200.v20231113-1355": { + "jar": "sha256-Q048o4oWnZ9Y33AxXiSxbxEeayfbWOf1HoxtoLS4SIs=" + } + }, + "https://github.com": { + "unicode-org/icu/releases/download/release-73-1/icu4c-73_1-data-bin-l": { + "zip": "sha256-QDgpjuAqDDiRcYXvj/Tr3pyLVSx3f9A+TfbGtLGCXiA=" + } + }, + "https://repo.maven.apache.org/maven2": { + "com/ibm/icu#icu4j/61.1": { + "jar": "sha256-VcmOsYOLKku5oH3Da9N4Uy1k0M3LfO7pFCNoZqfeRGQ=", + "pom": "sha256-E7h6QHnOsFUVsZrHoVIDlHB1YB1JQj9xk1ikmACYBWs=" + }, + "junit#junit/4.13.2": { + "jar": "sha256-jklbY0Rp1k+4rPo0laBly6zIoP/1XOHjEAe+TBbcV9M=", + "pom": "sha256-Vptpd+5GA8llwcRsMFj6bpaSkbAWDraWTdCSzYnq3ZQ=" + }, + "net/java#jvnet-parent/3": { + "pom": "sha256-MPV4nvo53b+WCVqto/wSYMRWH68vcUaGcXyy3FBJR1o=" + }, + "org/abego/treelayout#org.abego.treelayout.core/1.0.3": { + "jar": "sha256-+l4xOVw5wufUasoPgfcgYJMWB7L6Qb02A46yy2+5MyY=", + "pom": "sha256-o7KyI3lDcDVeeSQzrwEvyZNmfAMxviusrYTbwJrOSgw=" + }, + "org/antlr#ST4/4.1": { + "jar": "sha256-ixzK7Z7cVc0lXZwZxNjaR1bZtvy0NWcSkrQ0cLFtddg=", + "pom": "sha256-cz5r2XyjTMbfk6QkPlEeVnPLm4jHSxiETgQqRdUWmHw=" + }, + "org/antlr#antlr-master/3.5.2": { + "pom": "sha256-QtkaUx6lEA6wm1QaoALDuQjo8oK9c7bi9S83HvEzG9Y=" + }, + "org/antlr#antlr-runtime/3.5.2": { + "jar": "sha256-zj/I7LEPOemjzdy7LONQ0nLZzT0LHhjm/nPDuTichzQ=", + "pom": "sha256-RqnCIAu4sSvXEkqnpQl/9JCZkIMpyFGgTLIFFCCqfyU=" + }, + "org/antlr#antlr4-master/4.7.2": { + "pom": "sha256-upnLJdI5DzhoDHUChCoO4JWdHmQD4BPM/2mP1YVu6tE=" + }, + "org/antlr#antlr4-runtime/4.7.2": { + "jar": "sha256-TFGLh9S9/4tEzYy8GvgW6US2Kj/luAt4FQHPH0dZu8Q=", + "pom": "sha256-3AnLqYwl08BuSuxRaIXUw68DBiulX0/mKD/JzxdqYPs=" + }, + "org/antlr#antlr4/4.7.2": { + "pom": "sha256-z56zaUD6xEiBA4wb4/LFjgbmjRq/v9SmjTS72LrFV3E=" + }, + "org/antlr#antlr4/4.7.2/complete": { + "jar": "sha256-aFI4bXl17/KRcdrgAswiMlFRDTXyka4neUjzgaezgLQ=" + }, + "org/apache#apache/13": { + "pom": "sha256-/1E9sDYf1BI3vvR4SWi8FarkeNTsCpSW+BEHLMrzhB0=" + }, + "org/apache/lucene#lucene-core/7.7.3": { + "jar": "sha256-jrAzNcGjxqixiN9012G6qDVplTWCq0QLU0yIRJ6o4N4=", + "pom": "sha256-gvilIoHGyLp5dKy6rESzLXbiYAgvP0u+FlwPbkuJFCo=" + }, + "org/apache/lucene#lucene-grouping/7.7.3": { + "jar": "sha256-L1vNY7JXQ9MMMTmGIk0Qf3XFKThxSVQlNRDFfT9nvrg=", + "pom": "sha256-HwStk+IETUCP2SXu4K6ktKHvjAdXe0Jme7U2BgKCImU=" + }, + "org/apache/lucene#lucene-parent/7.7.3": { + "pom": "sha256-6PrdU9XwBMQN3SNdQ4ZI5yxyVZn+4VQ+ViTV+1AQcwU=" + }, + "org/apache/lucene#lucene-queries/7.7.3": { + "jar": "sha256-PLWS2wpulWnGrMvbiKmtex2nQo28p5Ia0cWlhl1bQiY=", + "pom": "sha256-rkBsiiuw12SllERCefRiihl2vQlB551CzmTgmHxYnFA=" + }, + "org/apache/lucene#lucene-queryparser/7.7.3": { + "jar": "sha256-F3XJ/o7dlobTt6ZHd4+kTqqW8cwMSZMVCHEz4amDnoQ=", + "pom": "sha256-z2klkhWscjC5+tYKXInKDp9bm6rM7dFGlY/76Q9OsNI=" + }, + "org/apache/lucene#lucene-sandbox/7.7.3": { + "jar": "sha256-VfG38J2uKwytMhw00Vw8/FmgIRviM/Yp0EbEK/FwErc=", + "pom": "sha256-1vbdxsz1xvymRH1HD1BJ4WN6xje/HbWuDV8WaP34EiI=" + }, + "org/apache/lucene#lucene-solr-grandparent/7.7.3": { + "pom": "sha256-Oig3WAynavNq99/i3B0zT8b/XybRDySJnbd3CtfP2f4=" + }, + "org/apiguardian#apiguardian-api/1.1.2": { + "jar": "sha256-tQlEisUG1gcxnxglN/CzXXEAdYLsdBgyofER5bW3Czg=", + "module": "sha256-4IAoExN1s1fR0oc06aT7QhbahLJAZByz7358fWKCI/w=", + "pom": "sha256-MjVQgdEJCVw9XTdNWkO09MG3XVSemD71ByPidy5TAqA=" + }, + "org/glassfish#javax.json/1.0.4": { + "jar": "sha256-Dh3sQKHt6WWUElHtqWiu7gUsxPUDeLwxbMSOgVm9vrQ=", + "pom": "sha256-a6+Dg/+pi2bqls1b/B7H8teUY7uYrJgFKWSxIcIhLVQ=" + }, + "org/glassfish#json/1.0.4": { + "pom": "sha256-bXxoQjEV+SFxjZRPhZkktMaFIX7AOkn3BFWossqpcuY=" + }, + "org/hamcrest#hamcrest-core/1.3": { + "jar": "sha256-Zv3vkelzk0jfeglqo4SlaF9Oh1WEzOiThqekclHE2Ok=", + "pom": "sha256-/eOGp5BRc6GxA95quCBydYS1DQ4yKC4nl3h8IKZP+pM=" + }, + "org/hamcrest#hamcrest-parent/1.3": { + "pom": "sha256-bVNflO+2Y722gsnyelAzU5RogAlkK6epZ3UEvBvkEps=" + }, + "org/junit#junit-bom/5.8.1": { + "module": "sha256-a4LLpSoTSxPBmC8M+WIsbUhTcdQLmJJG8xJOOwpbGFQ=", + "pom": "sha256-733Ef45KFoZPR3lyjofteFOYGeT7iSdoqdprjvkD+GM=" + }, + "org/junit/jupiter#junit-jupiter-api/5.8.1": { + "jar": "sha256-zjN0p++6YF4tK2mj/vkBNAMrqz7MPthXmkhxscLEcpw=", + "module": "sha256-DWnbwja33Kq0ynNpqlYOmwqbvvf5WIgv+0hTPLunwJ0=", + "pom": "sha256-d61+1KYwutH8h0agpuZ1wj+2lAsnq2LMyzTk/Pz+Ob8=" + }, + "org/junit/jupiter#junit-jupiter-engine/5.8.1": { + "jar": "sha256-Rom8kCJVoZ/pgndoO6MjHAlNEHxUyNNfK2+cl9ImQY4=", + "module": "sha256-aHkP7DP5ew7IQM9HrEDuDHLgVvEiyg88ZkZ0M0mTdpk=", + "pom": "sha256-qjIKMYpyceMyYsSA/POZZbmobap2Zm63dTQrgOnN1F4=" + }, + "org/junit/jupiter#junit-jupiter-params/5.8.1": { + "jar": "sha256-OJuNE6jYhy/L1PDrp7LEavxihBn5obKjqfkyQaBqchg=", + "module": "sha256-Ek1gPG2AMzZtjKRxY2tEbji5zBvQEPMpVCNYGHr6hl4=", + "pom": "sha256-OrrKWfvfJTMg9yRCwQPjnOQDjcEf6MSJ28ScwjoHHws=" + }, + "org/junit/jupiter#junit-jupiter/5.8.1": { + "jar": "sha256-jxBJ7iSzShC2DNgQBICZ94HCZYzeIYHoMUlqswqYKYU=", + "module": "sha256-LjS6TIWMOM0KNlr//syTKnGWzpOF4utUBZQuWBwV/1w=", + "pom": "sha256-rssFDSMtOT9Az/EfjMMPUrZslQpB+IOSXIEULt7l9PU=" + }, + "org/junit/platform#junit-platform-commons/1.8.1": { + "jar": "sha256-+k+mjIvVTdDLScP8vpsuQvTaa+2+fnzPKgXxoeYJtZM=", + "module": "sha256-aY/QVBrLfv/GZZhI/Qx91QEKSfFfDBy6Q+U1gH+Q9ms=", + "pom": "sha256-4ZcoLlLnANEriJie3FSJh0aTUC5KqJB6zwgpgBq6bUQ=" + }, + "org/junit/platform#junit-platform-engine/1.8.1": { + "jar": "sha256-cCho7X6GubRnLt4PHhhekFusqa+rV3RqfGUL48e8oEc=", + "module": "sha256-2fQgpkU5o+32D4DfDG/XIrdQcldEx5ykD30lrlbKS6Q=", + "pom": "sha256-hqrU5ld1TkOgDfIm3VTIrsHsarZTP1ASGQfkZi3i5fI=" + }, + "org/junit/vintage#junit-vintage-engine/5.8.1": { + "jar": "sha256-F2tTzRvb+SM+lsiwx6nluGQoL7veukO1zq/e2ymkkVY=", + "module": "sha256-nOn6Lk7mp0DWEBAlMEYqcc4PqdLxQYUi5LK9tgcvZ5o=", + "pom": "sha256-Ndc3M08dvouMVnZ/oVCKwbVEsB1P5cmXl76QA+5YGxI=" + }, + "org/opentest4j#opentest4j/1.2.0": { + "jar": "sha256-WIEt5giY2Xb7ge87YtoFxmBMGP1KJJ9QRCgkefwoavI=", + "pom": "sha256-qW5nGBbB/4gDvex0ySQfAlvfsnfaXStO4CJmQFk2+ZQ=" + }, + "org/sonatype/oss#oss-parent/7": { + "pom": "sha256-tR+IZ8kranIkmVV/w6H96ne9+e9XRyL+kM5DailVlFQ=" + }, + "org/sonatype/oss#oss-parent/9": { + "pom": "sha256-+0AmX5glSCEv+C42LllzKyGH7G8NgBgohcFO8fmCgno=" + } + } +}