Unverified Commit 4058ce9d authored by Arne Keller's avatar Arne Keller Committed by GitHub
Browse files

openjfx17: build with gradle_8 (#477305)

parents 9995f8e1 e6d948c3
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@
  pkgs,

  gradle_8,
  gradle_7,
  perl,
  pkg-config,
  cmake,
@@ -23,6 +22,7 @@
  ffmpeg_7,
  ffmpeg_7-headless,

  fetchpatch2,
  writeText,

  _experimental-update-script-combinators,
@@ -54,8 +54,6 @@ let

  atLeast21 = lib.versionAtLeast featureVersion "21";
  atLeast23 = lib.versionAtLeast featureVersion "23";

  gradle_openjfx = if atLeast21 then gradle_8 else gradle_7;
in

assert lib.assertMsg (lib.pathExists sourceFile)
@@ -76,11 +74,28 @@ stdenv.mkDerivation {
      [
        ./17/patches/backport-ffmpeg-6-support-jfx11.patch
        ./17/patches/backport-ffmpeg-7-support-jfx11.patch

        # Build with Gradle 8
        (fetchpatch2 {
          # Yes, this patch taken from the jfx21u repo is intended to be
          # applied to jfx17.
          url = "https://github.com/openjdk/jfx21u/commit/7f704c24c2238f9d7bb744a20667a8c1337decc6.patch?full_index=1";
          excludes = [
            # The patch fails to apply to these files, but with the exception
            # of build.properties (which is patched in postPatch), none of them
            # matter.
            "build.properties"
            "gradle/legal/gradle.md"
            "gradle/wrapper/gradle-wrapper.properties"
            "gradlew"
          ];
          hash = "sha256-WuJtzPy0IV4xvn+i5xeDqekWO0VR2GIfsYKkEmh8KKU=";
        })
      ]
  );

  nativeBuildInputs = [
    gradle_openjfx
    gradle_8
    perl
    pkg-config
    cmake
@@ -99,7 +114,7 @@ stdenv.mkDerivation {
    (if atLeast21 then ffmpeg_7 else ffmpeg_7-headless)
  ];

  mitmCache = gradle_openjfx.fetchDeps {
  mitmCache = gradle_8.fetchDeps {
    attrPath = "openjfx${featureVersion}";
    pkg = pkgs."openjfx${featureVersion}".override { withWebKit = true; };
    data = ./. + "/${featureVersion}/deps.json";
@@ -132,6 +147,10 @@ stdenv.mkDerivation {
           modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h

    ''
    + lib.optionalString (!atLeast21) ''
      substituteInPlace build.properties \
        --replace-fail jfx.gradle.version=7.3 jfx.gradle.version=8.4
    ''
    + ''
      ln -s $config gradle.properties
    '';
@@ -156,7 +175,7 @@ stdenv.mkDerivation {

  disallowedReferences = [
    jdk-bootstrap
    gradle_openjfx.jdk
    gradle_8.jdk
  ];

  passthru.updateScript = _experimental-update-script-combinators.sequence [