From d1daaeb1280c5df7b8dc1c24e6a894f8f3411a44 Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Mon, 1 Apr 2024 00:01:54 +0200 Subject: openjfx{11,17,19,20,21,22}: fix build when withWebKit is enabled --- pkgs/development/compilers/openjdk/openjfx/11.nix | 22 ++++++++++++++++++--- pkgs/development/compilers/openjdk/openjfx/17.nix | 22 ++++++++++----------- pkgs/development/compilers/openjdk/openjfx/19.nix | 24 ++++++++++++++++++++--- pkgs/development/compilers/openjdk/openjfx/20.nix | 24 ++++++++++++++++++++--- pkgs/development/compilers/openjdk/openjfx/21.nix | 24 ++++++++++++++++++++--- pkgs/development/compilers/openjdk/openjfx/22.nix | 18 ++++++++++++++--- 6 files changed, 107 insertions(+), 27 deletions(-) (limited to 'pkgs/development/compilers/openjdk') diff --git a/pkgs/development/compilers/openjdk/openjfx/11.nix b/pkgs/development/compilers/openjdk/openjfx/11.nix index 6d550538b081a..424c41ce3c783 100644 --- a/pkgs/development/compilers/openjdk/openjfx/11.nix +++ b/pkgs/development/compilers/openjdk/openjfx/11.nix @@ -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 ' \ + -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 = '' diff --git a/pkgs/development/compilers/openjdk/openjfx/17.nix b/pkgs/development/compilers/openjdk/openjfx/17.nix index 58444abd3f17a..c5d6c6aaa597e 100644 --- a/pkgs/development/compilers/openjdk/openjfx/17.nix +++ b/pkgs/development/compilers/openjdk/openjfx/17.nix @@ -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 = '' diff --git a/pkgs/development/compilers/openjdk/openjfx/19.nix b/pkgs/development/compilers/openjdk/openjfx/19.nix index 802a0eb9b457f..6f173db8327c1 100644 --- a/pkgs/development/compilers/openjdk/openjfx/19.nix +++ b/pkgs/development/compilers/openjdk/openjfx/19.nix @@ -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 ' \ + -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 = '' diff --git a/pkgs/development/compilers/openjdk/openjfx/20.nix b/pkgs/development/compilers/openjdk/openjfx/20.nix index d570db3b9aee1..794590dc7e606 100644 --- a/pkgs/development/compilers/openjdk/openjfx/20.nix +++ b/pkgs/development/compilers/openjdk/openjfx/20.nix @@ -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 ' \ + -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 = '' diff --git a/pkgs/development/compilers/openjdk/openjfx/21.nix b/pkgs/development/compilers/openjdk/openjfx/21.nix index 2f0d83f9f251a..f49dbe3b0e985 100644 --- a/pkgs/development/compilers/openjdk/openjfx/21.nix +++ b/pkgs/development/compilers/openjdk/openjfx/21.nix @@ -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 ' \ + -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 = '' diff --git a/pkgs/development/compilers/openjdk/openjfx/22.nix b/pkgs/development/compilers/openjdk/openjfx/22.nix index 89908779c9094..d585dbdf01413 100644 --- a/pkgs/development/compilers/openjdk/openjfx/22.nix +++ b/pkgs/development/compilers/openjdk/openjfx/22.nix @@ -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 = '' -- cgit 1.4.1