openjfx{11,17,19,20,21,22}: fix build when withWebKit is enabled

This commit is contained in:
TomaSajt 2024-04-01 00:01:54 +02:00
parent ab279344c5
commit d1daaeb128
No known key found for this signature in database
GPG Key ID: F011163C050122A1
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 { 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 , openjdk11-bootstrap
, withMedia ? true , withMedia ? true
, withWebKit ? false , withWebKit ? false
@ -14,6 +14,16 @@ let
java = openjdk11-bootstrap; 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 ({ makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}-${build}"; version = "${major}${update}-${build}";
@ -24,7 +34,7 @@ let
sha256 = "sha256-46DjIzcBHkmp5vnhYnLu78CG72bIBRM4A6mgk2OLOko="; 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 ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;
@ -32,6 +42,11 @@ let
postPatch = '' postPatch = ''
substituteInPlace buildSrc/linux.gradle \ substituteInPlace buildSrc/linux.gradle \
--replace ', "-Werror=implicit-function-declaration"' "" --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" ('' config = writeText "gradle.properties" (''
@ -46,7 +61,7 @@ let
export GRADLE_USER_HOME=$(mktemp -d) export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" 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 runHook postBuild
''; '';
@ -77,6 +92,7 @@ in makePackage {
gradleProperties = '' gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit} COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
''; '';
preBuild = '' preBuild = ''

View File

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

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless { stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst , 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 , withMedia ? true
, withWebKit ? false , withWebKit ? false
}: }:
@ -15,6 +15,16 @@ let
java = openjdk17_headless; 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 ({ makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}"; 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 ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;
@ -55,7 +72,7 @@ let
export GRADLE_USER_HOME=$(mktemp -d) export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" 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 runHook postBuild
''; '';
@ -89,6 +106,7 @@ in makePackage {
gradleProperties = '' gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit} COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
''; '';
preBuild = '' preBuild = ''

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless { stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst , 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 , withMedia ? true
, withWebKit ? false , withWebKit ? false
}: }:
@ -15,6 +15,16 @@ let
java = openjdk17_headless; 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 ({ makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}"; version = "${major}${update}${build}";
@ -25,11 +35,18 @@ let
hash = "sha256-QPPJyl6+XU+m5xqYOFtQKJNNrovqy7ngNE/e7kiEJVU="; 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 ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true; 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" ('' config = writeText "gradle.properties" (''
CONF = Release CONF = Release
JDK_HOME = ${openjdk19_headless.home} JDK_HOME = ${openjdk19_headless.home}
@ -42,7 +59,7 @@ let
export GRADLE_USER_HOME=$(mktemp -d) export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" 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 runHook postBuild
''; '';
@ -76,6 +93,7 @@ in makePackage {
gradleProperties = '' gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit} COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
''; '';
preBuild = '' preBuild = ''

View File

@ -1,6 +1,6 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless { stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst , 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 , withMedia ? true
, withWebKit ? false , withWebKit ? false
}: }:
@ -15,6 +15,16 @@ let
java = openjdk17_headless; 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 ({ makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}"; version = "${major}${update}${build}";
@ -25,11 +35,18 @@ let
hash = "sha256-deNAGfnA6gwcAa64l0AWdkX+vJd3ZOfIgAifSl+/m+s="; 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 ]; nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true; 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" ('' config = writeText "gradle.properties" (''
CONF = Release CONF = Release
JDK_HOME = ${openjdk19_headless.home} JDK_HOME = ${openjdk19_headless.home}
@ -42,7 +59,7 @@ let
export GRADLE_USER_HOME=$(mktemp -d) export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" 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 runHook postBuild
''; '';
@ -76,6 +93,7 @@ in makePackage {
gradleProperties = '' gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit} COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
''; '';
preBuild = '' preBuild = ''

View File

@ -2,6 +2,8 @@
, lib , lib
, fetchFromGitHub , fetchFromGitHub
, fetchpatch , fetchpatch
, fetchurl
, runCommand
, writeText , writeText
, openjdk21_headless , openjdk21_headless
, gradle , gradle
@ -18,7 +20,6 @@
, ffmpeg_4 , ffmpeg_4
, python3 , python3
, ruby , ruby
, icu68
, withMedia ? true , withMedia ? true
, withWebKit ? false , withWebKit ? false
}: }:
@ -29,6 +30,16 @@ let
build = "+30"; build = "+30";
repover = "${major}${update}${build}"; 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 ({ makePackage = args: stdenv.mkDerivation ({
version = "${major}${update}${build}"; version = "${major}${update}${build}";
@ -39,7 +50,7 @@ let
hash = "sha256-sZF7ZPC0kgTTxWgtkxmGtOlfroGPGVZcMw0/wSTJUxQ="; 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 ]; nativeBuildInputs = [ gradle perl pkg-config cmake gperf python3 ruby ];
dontUseCmakeConfigure = true; dontUseCmakeConfigure = true;
@ -56,7 +67,7 @@ let
export GRADLE_USER_HOME=$(mktemp -d) export GRADLE_USER_HOME=$(mktemp -d)
ln -s $config gradle.properties ln -s $config gradle.properties
export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE" 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 runHook postBuild
''; '';
@ -88,6 +99,7 @@ makePackage {
gradleProperties = '' gradleProperties = ''
COMPILE_MEDIA = ${lib.boolToString withMedia} COMPILE_MEDIA = ${lib.boolToString withMedia}
COMPILE_WEBKIT = ${lib.boolToString withWebKit} COMPILE_WEBKIT = ${lib.boolToString withWebKit}
${lib.optionalString withWebKit "icuRepositoryURL = file://${icuFakeRepository}"}
''; '';
preBuild = '' preBuild = ''