Merge pull request #300573 from TomaSajt/openjfx

openjfx{11,17,19,20,21,22}: fix build when withWebKit is enabled
This commit is contained in:
Thiago Kenji Okada 2024-04-23 20:52:50 +01:00 committed by GitHub
commit 83cbc65da6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 107 additions and 27 deletions

View File

@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, writeText, gradle_7, pkg-config, perl, cmake
, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python3, ruby, icu68
, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand
, openjdk11-bootstrap
, withMedia ? true
, withWebKit ? false
@ -14,6 +14,16 @@ let
java = openjdk11-bootstrap;
});
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}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}-${build}";
@ -24,7 +34,7 @@ let
sha256 = "sha256-46DjIzcBHkmp5vnhYnLu78CG72bIBRM4A6mgk2OLOko=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless icu68 ];
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
@ -32,6 +42,11 @@ let
postPatch = ''
substituteInPlace buildSrc/linux.gradle \
--replace ', "-Werror=implicit-function-declaration"' ""
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
'';
config = writeText "gradle.properties" (''
@ -46,7 +61,7 @@ let
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
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
@ -77,6 +92,7 @@ in makePackage {
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, writeText, openjdk17_headless, gradle_7
, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst, libXxf86vm, glib, alsa-lib
, ffmpeg_4-headless, python3, ruby, icu71, fetchurl, runCommand
, ffmpeg_4-headless, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
@ -14,16 +14,14 @@ let
java = openjdk17_headless;
});
dashed-icu-version = lib.concatStringsSep "-" (lib.splitVersion (lib.getVersion icu71));
underscored-icu-version = lib.concatStringsSep "_" (lib.splitVersion (lib.getVersion icu71));
icu-data = fetchurl {
url = "https://github.com/unicode-org/icu/releases/download/release-${dashed-icu-version}/icu4c-${underscored-icu-version}-data-bin-l.zip";
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=";
};
fakeRepository = runCommand "icu-data-repository" {} ''
mkdir -p $out/download/release-${dashed-icu-version}
cp ${icu-data} $out/download/release-${dashed-icu-version}/icu4c-${underscored-icu-version}-data-bin-l.zip
icuFakeRepository = runCommand "icu-data-repository" {} ''
install -Dm644 ${icuData} $out/${icuPath}
'';
makePackage = args: stdenv.mkDerivation ({
@ -36,7 +34,7 @@ let
sha256 = "sha256-9VfXk2EfMebMyVKPohPRP2QXRFf8XemUtfY0JtBCHyw=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless icu71 ];
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4-headless ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
@ -60,7 +58,7 @@ let
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
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
@ -91,7 +89,7 @@ in makePackage {
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${fakeRepository}"}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, icu68
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
@ -15,6 +15,16 @@ let
java = openjdk17_headless;
});
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}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
@ -38,7 +48,14 @@ let
})
];
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ];
postPatch = ''
# Add missing includes for gcc-13 for webkit build:
sed -e '1i #include <cstdio>' \
-i modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/Heap.cpp \
modules/javafx.web/src/main/native/Source/bmalloc/bmalloc/IsoSharedPageInlines.h
'';
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
@ -55,7 +72,7 @@ let
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
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
@ -89,6 +106,7 @@ in makePackage {
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, icu68
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
@ -15,6 +15,16 @@ let
java = openjdk17_headless;
});
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}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
@ -25,11 +35,18 @@ let
hash = "sha256-QPPJyl6+XU+m5xqYOFtQKJNNrovqy7ngNE/e7kiEJVU=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ];
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 <cstdio>' \
-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 = ${openjdk19_headless.home}
@ -42,7 +59,7 @@ let
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
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
@ -76,6 +93,7 @@ in makePackage {
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, icu68
, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, fetchurl, runCommand
, withMedia ? true
, withWebKit ? false
}:
@ -15,6 +15,16 @@ let
java = openjdk17_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}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
@ -25,11 +35,18 @@ let
hash = "sha256-deNAGfnA6gwcAa64l0AWdkX+vJd3ZOfIgAifSl+/m+s=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ];
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 <cstdio>' \
-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 = ${openjdk19_headless.home}
@ -42,7 +59,7 @@ let
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
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
@ -76,6 +93,7 @@ in makePackage {
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''

View File

@ -2,6 +2,8 @@
, lib
, fetchFromGitHub
, fetchpatch
, fetchurl
, runCommand
, writeText
, openjdk21_headless
, gradle
@ -18,7 +20,6 @@
, ffmpeg_4
, python3
, ruby
, icu68
, withMedia ? true
, withWebKit ? false
}:
@ -29,6 +30,16 @@ let
build = "+30";
repover = "${major}${update}${build}";
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}
'';
makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}";
@ -39,7 +50,7 @@ let
hash = "sha256-sZF7ZPC0kgTTxWgtkxmGtOlfroGPGVZcMw0/wSTJUxQ=";
};
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ];
buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 ];
nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true;
@ -56,7 +67,7 @@ let
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
gradle --no-daemon --console=plain $gradleFlags sdk
runHook postBuild
'';
@ -88,6 +99,7 @@ makePackage {
gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
'';
preBuild = ''