diff --git a/openjdk8-openjfx/.footprint b/openjdk8-openjfx/.footprint new file mode 100644 index 0000000..ac45d79 --- /dev/null +++ b/openjdk8-openjfx/.footprint @@ -0,0 +1,37 @@ +drwxr-xr-x root/root etc/ +drwxr-xr-x root/root etc/ld.so.conf.d/ +-rw-r--r-- root/root etc/ld.so.conf.d/openjfx.conf +drwxr-xr-x root/root usr/ +drwxr-xr-x root/root usr/lib/ +drwxr-xr-x root/root usr/lib/java/ +drwxr-xr-x root/root usr/lib/java/openjdk8/ +drwxr-xr-x root/root usr/lib/java/openjdk8/bin/ +-rwxr-xr-x root/root usr/lib/java/openjdk8/bin/javafxpackager +-rwxr-xr-x root/root usr/lib/java/openjdk8/bin/javapackager +drwxr-xr-x root/root usr/lib/java/openjdk8/jre/ +drwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/ +drwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/ +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libavplugin.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libdecora_sse.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libfxplugins.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libglass.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libglassgtk2.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libglassgtk3.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libglib-lite.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libgstreamer-lite.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libjavafx_font.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libjavafx_font_freetype.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libjavafx_font_pango.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libjavafx_iio.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libjfxmedia.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libprism_common.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libprism_es2.so +-rwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/amd64/libprism_sw.so +drwxr-xr-x root/root usr/lib/java/openjdk8/jre/lib/ext/ +-rw-r--r-- root/root usr/lib/java/openjdk8/jre/lib/ext/jfxrt.jar +-rw-r--r-- root/root usr/lib/java/openjdk8/jre/lib/javafx.properties +-rw-r--r-- root/root usr/lib/java/openjdk8/jre/lib/jfxswt.jar +drwxr-xr-x root/root usr/lib/java/openjdk8/lib/ +-rw-r--r-- root/root usr/lib/java/openjdk8/lib/ant-javafx.jar +-rw-r--r-- root/root usr/lib/java/openjdk8/lib/javafx-mx.jar +-rw-r--r-- root/root usr/lib/java/openjdk8/lib/packager.jar diff --git a/openjdk8-openjfx/0000-Fix-wait-call-in-PosixPlatform.patch b/openjdk8-openjfx/0000-Fix-wait-call-in-PosixPlatform.patch new file mode 100644 index 0000000..fee211f --- /dev/null +++ b/openjdk8-openjfx/0000-Fix-wait-call-in-PosixPlatform.patch @@ -0,0 +1,14 @@ +--- rt-8u202-b02/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp 2018-10-29 16:26:04.000000000 +0100 ++++ rt-8u202-b02-patched/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp 2018-11-27 15:34:52.170181958 +0100 +@@ -232,10 +232,7 @@ + pid_t wpid = 0; + + //TODO Use waitpid instead of wait +-#ifdef LINUX +- wait(&status); +-#endif +-#ifdef MAC ++#if defined(LINUX) || defined(MAC) + wpid = wait(&status); + #endif + diff --git a/openjdk8-openjfx/0001-Change-Lucene.patch b/openjdk8-openjfx/0001-Change-Lucene.patch new file mode 100644 index 0000000..58d0c80 --- /dev/null +++ b/openjdk8-openjfx/0001-Change-Lucene.patch @@ -0,0 +1,79 @@ +--- rt-8u202-b02/build.gradle ++++ rt-8u202-b02-patched/build.gradle +@@ -3268,38 +3268,38 @@ + // The apps build is Ant based, and gradle lets us "import" ant build.xml + // into our configuration. + +- ant.importBuild 'build.xml' ++ //ant.importBuild 'build.xml' + + // Download the Lucene libraries needed for the Ensemble8 app +- def luceneVersion = "7.4.0" +- getConfigurations().create("lucene"); +- dependencies { +- lucene group: "org.apache.lucene", name: "lucene-core", version: luceneVersion +- lucene group: "org.apache.lucene", name: "lucene-grouping", version: luceneVersion +- lucene group: "org.apache.lucene", name: "lucene-queryparser", version: luceneVersion +- } ++ //def luceneVersion = "7.4.0" ++ //getConfigurations().create("lucene"); ++ //dependencies { ++ // lucene group: "org.apache.lucene", name: "lucene-core", version: luceneVersion ++ // lucene group: "org.apache.lucene", name: "lucene-grouping", version: luceneVersion ++ // lucene group: "org.apache.lucene", name: "lucene-queryparser", version: luceneVersion ++ //} + + // Copy Lucene libraries into the Ensemble8/lib directory +- File ensembleLibDir = rootProject.file("apps/samples/Ensemble8/lib"); +- def libNames = [ "lucene-core-${luceneVersion}.jar", +- "lucene-grouping-${luceneVersion}.jar", +- "lucene-queryparser-${luceneVersion}.jar" ] +- +- +- task getLucene(type: Copy) { +- doFirst { +- ensembleLibDir.mkdirs(); +- } +- into ensembleLibDir +- includeEmptyDirs = false +- configurations.lucene.files.each { f -> +- libNames.each { name -> +- if (name == f.getName()) { +- from f.getPath() +- } +- } +- } +- } ++ //File ensembleLibDir = rootProject.file("apps/samples/Ensemble8/lib"); ++ //def libNames = [ "lucene-core-${luceneVersion}.jar", ++ // "lucene-grouping-${luceneVersion}.jar", ++ // "lucene-queryparser-${luceneVersion}.jar" ] ++ ++ ++ //task getLucene(type: Copy) { ++ // doFirst { ++ // ensembleLibDir.mkdirs(); ++ // } ++ // into ensembleLibDir ++ // includeEmptyDirs = false ++ // configurations.lucene.files.each { f -> ++ // libNames.each { name -> ++ // if (name == f.getName()) { ++ // from f.getPath() ++ // } ++ // } ++ // } ++ //} + + compileTargets { t -> + // The apps build is Ant based, and gradle lets us "import" ant apps/build.xml +@@ -3310,7 +3310,7 @@ + def jfxrtJar = "${rootProject.buildDir}/${sdkDirName}/rt/lib/ext/jfxrt.jar" + + def appsJar = project.task("appsJar${t.capital}") { +- dependsOn(sdk, getLucene) ++ dependsOn(sdk) + doLast() { + ant.properties['targetBld'] = "$t.name" + if (!rootProject.ext[t.upper].compileSwing) { + diff --git a/openjdk8-openjfx/0003-fix-cast-between-incompatible-function-types.patch b/openjdk8-openjfx/0003-fix-cast-between-incompatible-function-types.patch new file mode 100644 index 0000000..011e952 --- /dev/null +++ b/openjdk8-openjfx/0003-fix-cast-between-incompatible-function-types.patch @@ -0,0 +1,77 @@ +From 36b952bdcdc301a600009308bff90440b6ceab5b Mon Sep 17 00:00:00 2001 +From: Mat Booth +Date: Thu, 21 Jun 2018 15:57:01 +0100 +Subject: [PATCH 4/4] fix cast between incompatible function types + +--- + modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp | 8 ++++++-- + .../src/main/native-glass/gtk/glass_window_ime.cpp | 9 +++------ + 2 files changed, 9 insertions(+), 8 deletions(-) + +diff --git a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp +index f85b1dae..3b9225f7 100644 +--- a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp +@@ -556,7 +556,7 @@ static GdkDragContext *get_drag_context() { + return ctx; + } + +-static gboolean dnd_finish_callback() { ++static gboolean dnd_finish_callback(gpointer data) { + if (dnd_window) { + dnd_set_performed_action( + translate_gdk_action_to_glass( +@@ -1079,6 +1079,10 @@ gboolean DragView::get_drag_image_offset(int* x, int* y) { + return offset_set; + } + ++static void on_pixbuf_destroy_notify(guchar *pixels, gpointer data) { ++ g_free(pixels); ++} ++ + GdkPixbuf* DragView::get_drag_image(gboolean* is_raw_image, gint* width, gint* height) { + GdkPixbuf *pixbuf = NULL; + gboolean is_raw = FALSE; +@@ -1106,7 +1110,7 @@ GdkPixbuf* DragView::get_drag_image(gboolean* is_raw_image, gint* width, gint* h + if (data) { + memcpy(data, (raw + whsz), nraw - whsz); + pixbuf = gdk_pixbuf_new_from_data(data, GDK_COLORSPACE_RGB, TRUE, 8, +- w, h, w * 4, (GdkPixbufDestroyNotify) g_free, NULL); ++ w, h, w * 4, (GdkPixbufDestroyNotify) on_pixbuf_destroy_notify, NULL); + } + } + } +diff --git a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp +index 82e54d11..51af2a6a 100644 +--- a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp +@@ -122,15 +122,12 @@ bool WindowContextBase::filterIME(GdkEvent * event) { + } + } + +-//Note: this function must return int, despite the fact it doesn't conform to XIMProc type. +-// This is required in documentation of XIM +-static int im_preedit_start(XIM im_xim, XPointer client, XPointer call) { ++static void im_preedit_start(XIM im_xim, XPointer client, XPointer call) { + (void)im_xim; + (void)call; + + mainEnv->CallVoidMethod((jobject) client, jViewNotifyPreeditMode, JNI_TRUE); +- CHECK_JNI_EXCEPTION_RET(mainEnv, -1); +- return -1; // No restrictions ++ CHECK_JNI_EXCEPTION(mainEnv); + } + + static void im_preedit_done(XIM im_xim, XPointer client, XPointer call) { +@@ -234,7 +231,7 @@ void WindowContextBase::enableOrResetIME() { + return; + } + +- XIMCallback startCallback = {(XPointer) jview, (XIMProc) im_preedit_start}; ++ XIMCallback startCallback = {(XPointer) jview, im_preedit_start}; + XIMCallback doneCallback = {(XPointer) jview, im_preedit_done}; + XIMCallback drawCallback = {(XPointer) jview, im_preedit_draw}; + XIMCallback caretCallback = {(XPointer) jview, im_preedit_caret}; +-- +2.17.1 + diff --git a/openjdk8-openjfx/0004-Fix-Compilation-Flags.patch b/openjdk8-openjfx/0004-Fix-Compilation-Flags.patch new file mode 100644 index 0000000..17c91ab --- /dev/null +++ b/openjdk8-openjfx/0004-Fix-Compilation-Flags.patch @@ -0,0 +1,23 @@ +--- rt-8u202-b07/buildSrc/linux.gradle ++++ rt-8u202-b07-patched/buildSrc/linux.gradle +@@ -54,7 +54,7 @@ + def ccFlags = [ + commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/linux", "-c", + "-ffunction-sections", "-fdata-sections", +- IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten() ++ IS_DEBUG_NATIVE ? ["-ggdb", "-DNDEBUG"] : ["-O2", "-DNDEBUG"]].flatten() + def ccFlagsGTK3 = ccFlags + //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"]) + def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags, + +--- rt-8u202-b07/buildSrc/x86egl.gradle ++++ rt-8u202-b07-patched/buildSrc/x86egl.gradle +@@ -99,7 +99,7 @@ + def ccFlags = [ + commonFlags, + "-I$JDK_HOME/include", "-I$JDK_HOME/include/${jniPlatform}", "-c", +- IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten() ++ IS_DEBUG_NATIVE ? ["-ggdb", "-DNDEBUG"] : ["-O2", "-DNDEBUG"]].flatten() + //ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"]) + def linkFlags = ["-shared", commonFlags].flatten() + diff --git a/openjdk8-openjfx/0005-don-t-include-xlocale.h.patch b/openjdk8-openjfx/0005-don-t-include-xlocale.h.patch new file mode 100644 index 0000000..883c3da --- /dev/null +++ b/openjdk8-openjfx/0005-don-t-include-xlocale.h.patch @@ -0,0 +1,25 @@ +From 597f200762be416d5a62f1efd351cba6e47c1c4c Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Thu, 30 May 2019 12:07:30 -0700 +Subject: [PATCH] don't include xlocale.h + +--- + .../gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c b/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c +index 72dc1301..32669789 100644 +--- a/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c ++++ b/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c +@@ -39,7 +39,7 @@ + + #ifdef HAVE_XLOCALE_H + /* Needed on BSD/OS X for e.g. strtod_l */ +-#include ++#include + #endif + + #ifdef G_OS_WIN32 +-- +2.21.0 + diff --git a/openjdk8-openjfx/01-gradle-set-java-versions.patch b/openjdk8-openjfx/01-gradle-set-java-versions.patch new file mode 100644 index 0000000..5b303de --- /dev/null +++ b/openjdk8-openjfx/01-gradle-set-java-versions.patch @@ -0,0 +1,41 @@ +diff --git a/build.gradle b/build.gradle +index a666689..70cddc9 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -720,33 +720,9 @@ if (!file(JAVAH).exists()) throw new Exception("Missing or incorrect path to 'ja + if (!file(JAVADOC).exists()) throw new Exception("Missing or incorrect path to 'javadoc': '$JAVADOC'. Perhaps bad JDK_HOME? $JDK_HOME") + + +-// Determine the verion of Java in JDK_HOME. It looks like this: +-// +-// $ java -version +-// java version "1.7.0_45" +-// Java(TM) SE Runtime Environment (build 1.7.0_45-b18) +-// Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) +-// +-// We need to parse the second line +-def inStream = new java.io.BufferedReader(new java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA, "-version").start().getErrorStream())); +-try { +- if (inStream.readLine() != null) { +- String v = inStream.readLine(); +- if (v != null) { +- int ib = v.indexOf(" (build "); +- if (ib != -1) { +- String ver = v.substring(ib + 8, v.size() - 1); +- +- defineProperty("jdkRuntimeVersion", ver) +- defineProperty("jdkVersion", jdkRuntimeVersion.split("-")[0]) +- defineProperty("jdkBuildNumber", jdkRuntimeVersion.substring(jdkRuntimeVersion.lastIndexOf("-b") + 2)) +- } +- } +- } +-} finally { +- inStream.close(); +-} +-if (!project.hasProperty("jdkRuntimeVersion")) throw new Exception("Unable to determine the version of Java in JDK_HOME at $JDK_HOME"); ++defineProperty("jdkRuntimeVersion", "1.8.0_151-b12") ++defineProperty("jdkVersion", "1.8.0_151") ++defineProperty("jdkBuildNumber", "12") + + + diff --git a/openjdk8-openjfx/02-jfxpanel.patch b/openjdk8-openjfx/02-jfxpanel.patch new file mode 100644 index 0000000..11e7f07 --- /dev/null +++ b/openjdk8-openjfx/02-jfxpanel.patch @@ -0,0 +1,52 @@ +# HG changeset patch +# User kcr +# Date 1455666049 28800 +# Tue Feb 16 15:40:49 2016 -0800 +# Node ID 41c09adc3b14c6ae40f2263cb91d340b2da0c05f +# Parent 151fdd3d048f54dc4852240c3be873240d8fd4b0 +8149967: Cannot compile JFXPanel with JDK 9: SurfaceData::getDefaultScale not found + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -79,6 +79,7 @@ + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; + +@@ -648,6 +649,23 @@ + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove the ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale = surfaceData.getDefaultScaleX(); ++ */ ++ double scale = 1; ++ try { ++ Method meth = SurfaceData.class.getMethod("getDefaultScaleX"); ++ scale = (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } + + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)} +@@ -689,7 +707,7 @@ + + int newScaleFactor = scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor = ((SunGraphics2D)g).surfaceData.getDefaultScale(); ++ newScaleFactor = getDefaultScale(((SunGraphics2D)g).surfaceData); + } + if (scaleFactor != newScaleFactor) { + createResizePixelBuffer(newScaleFactor); diff --git a/openjdk8-openjfx/04-fix-gcc-sentinel-warnings.patch b/openjdk8-openjfx/04-fix-gcc-sentinel-warnings.patch new file mode 100644 index 0000000..5f203cd --- /dev/null +++ b/openjdk8-openjfx/04-fix-gcc-sentinel-warnings.patch @@ -0,0 +1,86 @@ +diff --git a/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp b/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp +index c909e70..4de37d6 100644 +--- a/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp +@@ -271,7 +271,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_glass_ui_gtk_GtkApplication_staticView_1get + + static gint multi_click_time = -1; + if (multi_click_time == -1) { +- g_object_get(gtk_settings_get_default(), "gtk-double-click-time", &multi_click_time, NULL); ++ g_object_get(gtk_settings_get_default(), "gtk-double-click-time", &multi_click_time, (char*)NULL); + } + return (jlong)multi_click_time; + } +@@ -290,7 +290,7 @@ JNIEXPORT jint JNICALL Java_com_sun_glass_ui_gtk_GtkApplication_staticView_1getM + static gint multi_click_dist = -1; + + if (multi_click_dist == -1) { +- g_object_get(gtk_settings_get_default(), "gtk-double-click-distance", &multi_click_dist, NULL); ++ g_object_get(gtk_settings_get_default(), "gtk-double-click-distance", &multi_click_dist, (char*)NULL); + } + return multi_click_dist; + } +diff --git a/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp b/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp +index c53929d..5941b2c 100644 +--- a/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp +@@ -118,7 +118,7 @@ JNIEXPORT jobject JNICALL Java_com_sun_glass_ui_gtk_GtkCommonDialogs__1showFileC + GTK_RESPONSE_CANCEL, + (chooser_type == GTK_FILE_CHOOSER_ACTION_OPEN ? GTK_STOCK_OPEN : GTK_STOCK_SAVE), + GTK_RESPONSE_ACCEPT, +- NULL); ++ (char*)NULL); + + if (chooser_type == GTK_FILE_CHOOSER_ACTION_SAVE) { + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), chooser_filename); +@@ -205,7 +205,7 @@ JNIEXPORT jstring JNICALL Java_com_sun_glass_ui_gtk_GtkCommonDialogs__1showFolde + GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, + GTK_RESPONSE_ACCEPT, +- NULL); ++ (char*)NULL); + + if (chooser_folder != NULL) { + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), +diff --git a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp +index f85b1da..d523809 100644 +--- a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp +@@ -688,7 +688,7 @@ static gboolean dnd_source_set_image(GdkWindow *requestor, GdkAtom property, Gdk + mainEnv->CallVoidMethod(pixels, jPixelsAttachData, PTR_TO_JLONG(&pixbuf)); + + if (!EXCEPTION_OCCURED(mainEnv) +- && gdk_pixbuf_save_to_buffer(pixbuf, &buffer, &size, type, NULL, NULL)) { ++ && gdk_pixbuf_save_to_buffer(pixbuf, &buffer, &size, type, NULL, (char*)NULL)) { + gdk_property_change(requestor, property, target, + 8, GDK_PROP_MODE_REPLACE, (guchar *)buffer, size); + result = TRUE; +diff --git a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp +index 82e54d1..49ba05e 100644 +--- a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp +@@ -204,7 +204,7 @@ static XIMStyle get_best_supported_style(XIM im_xim) + int i; + XIMStyle result = 0; + +- if (XGetIMValues(im_xim, XNQueryInputStyle, &styles, NULL) != NULL) { // NULL means it's OK ++ if (XGetIMValues(im_xim, XNQueryInputStyle, &styles, (char*)NULL) != NULL) { // NULL means it's OK + return 0; + } + +@@ -244,13 +244,13 @@ void WindowContextBase::enableOrResetIME() { + XNPreeditDoneCallback, &doneCallback, + XNPreeditDrawCallback, &drawCallback, + XNPreeditCaretCallback, &caretCallback, +- NULL); ++ (char*)NULL); + + xim.ic = XCreateIC(xim.im, + XNInputStyle, styles, + XNClientWindow, GDK_WINDOW_XID(gdk_window), + XNPreeditAttributes, list, +- NULL); ++ (char*)NULL); + + XFree(list); + diff --git a/openjdk8-openjfx/06-disable-architecture-verification.patch b/openjdk8-openjfx/06-disable-architecture-verification.patch new file mode 100644 index 0000000..d10e628 --- /dev/null +++ b/openjdk8-openjfx/06-disable-architecture-verification.patch @@ -0,0 +1,21 @@ +Description: Disable the architecture verification which is limited to i386 and amd64 +Author: Emmanuel Bourg +Forwarded: no +--- a/build.gradle ++++ b/build.gradle +@@ -699,6 +699,7 @@ + // at present building on PI is not supported, but we would only need to make + // some changes on assumptions on what should be built (like SWT / Swing) and + // such and we could probably make it work. ++/* + if (!IS_MAC && !IS_WINDOWS && !IS_LINUX) logger.error("Unsupported build OS ${OS_NAME}") + if (IS_WINDOWS && OS_ARCH != "x86" && OS_ARCH != "amd64") { + throw new Exception("Unknown and unsupported build architecture: $OS_ARCH") +@@ -707,6 +708,7 @@ + } else if (IS_LINUX && OS_ARCH != "i386" && OS_ARCH != "amd64") { + throw new Exception("Unknown and unsupported build architecture: $OS_ARCH") + } ++*/ + + // Sanity check that we actually have a list of compile targets to execute + if (COMPILE_TARGETS == null || COMPILE_TARGETS == "") { diff --git a/openjdk8-openjfx/07-disable-assembler-on-unsupported-archs.patch b/openjdk8-openjfx/07-disable-assembler-on-unsupported-archs.patch new file mode 100644 index 0000000..551a1e8 --- /dev/null +++ b/openjdk8-openjfx/07-disable-assembler-on-unsupported-archs.patch @@ -0,0 +1,18 @@ +Description: Disable assembler in WebKit on unsupported architectures +Author: Emmanuel Bourg +Forwarded: no +--- a/modules/web/src/main/native/Source/WTF/wtf/Platform.h ++++ b/modules/web/src/main/native/Source/WTF/wtf/Platform.h +@@ -325,6 +325,12 @@ + #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 + #endif + ++#if !CPU(ARM_THUMB2) && !CPU(ARM_TRADITIONAL) && !CPU(MIPS) && !CPU(X86) && !CPU(X86_64) && !CPU(SH4) ++#define ENABLE_ASSEMBLER 0 ++#define ENABLE_JIT 0 ++#define ENABLE_YARR_JIT 0 ++#endif ++ + /* ==== OS() - underlying operating system; only to be used for mandated low-level services like + virtual memory, not to choose a GUI toolkit ==== */ + diff --git a/openjdk8-openjfx/10-javadoc-locale.patch b/openjdk8-openjfx/10-javadoc-locale.patch new file mode 100644 index 0000000..39d346a --- /dev/null +++ b/openjdk8-openjfx/10-javadoc-locale.patch @@ -0,0 +1,21 @@ +Description: Set the locale of the javadoc to make the build reproducible +Author: Emmanuel Bourg +Forwarded: no +--- a/build.gradle ++++ b/build.gradle +@@ -1218,6 +1218,7 @@ + } else { + options.links(JDK_DOCS); + } ++ options.locale("en"); + options.addBooleanOption("XDignore.symbol.file").setValue(true); + options.addBooleanOption("Xdoclint:none").setValue(!IS_DOC_LINT); + options.addBooleanOption("javafx").setValue(true); +@@ -2769,6 +2770,7 @@ + options.windowTitle("${javadocTitle}") + options.header("${javadocHeader}") + options.bottom("${javadocBottom}") ++ options.locale("en"); + if (BUILD_CLOSED) { + options.linksOffline(JDK_DOCS, JDK_DOCS_CLOSED); + } else { diff --git a/openjdk8-openjfx/99-sysdeps.patch b/openjdk8-openjfx/99-sysdeps.patch new file mode 100644 index 0000000..367d939 --- /dev/null +++ b/openjdk8-openjfx/99-sysdeps.patch @@ -0,0 +1,30 @@ +diff --git a/build.gradle b/build.gradle +index 0914d7d..6bd9e78 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1309,6 +1309,7 @@ project(":graphics") { + antlr3 group: "org.antlr", name: "antlr", version: "3.1.3" + antlr3 group: "org.antlr", name: "antlr-runtime", version: "3.1.3" + antlr3 group: "org.antlr", name: "stringtemplate", version: "3.2" ++ antlr3 group: "antlr", name: "antlr", version: "2.7.7" + } + + // Create a single "native" task which will depend on all the individual native tasks for graphics +diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle +index 25f88d1..642450d 100644 +--- a/buildSrc/build.gradle ++++ b/buildSrc/build.gradle +@@ -82,10 +82,13 @@ getConfigurations().create("antlr3"); + + dependencies { + compile group: "org.antlr", name: "antlr", version: "3.1.3" ++ compile group: "org.antlr", name: "antlr-runtime", version: "3.1.3" ++ compile group: "org.antlr", name: "stringtemplate", version: "3.2" + testCompile group: "junit", name: "junit", version: "4.8.2" + antlr3 group: "org.antlr", name: "antlr-runtime", version: "3.1.3" + antlr3 group: "org.antlr", name: "stringtemplate", version: "3.2" + antlr3 group: "org.antlr", name: "antlr", version: "3.1.3" ++ antlr3 group: "antlr", name: "antlr", version: "2.7.7" + } + + // At the moment the ASM library shipped with Gradle that is used to diff --git a/openjdk8-openjfx/Pkgfile b/openjdk8-openjfx/Pkgfile new file mode 100644 index 0000000..a3c9d52 --- /dev/null +++ b/openjdk8-openjfx/Pkgfile @@ -0,0 +1,109 @@ +# Description: client application platform for use with the JDK +# URL: https://wiki.openjdk.java.net/display/OpenJFX/Main +# Maintainer: Tim Biermann, tbier at posteo dot de +# Depends on: fdk-aac ffmpeg gnutls gtk3 lame libidn2 libtheora libva libvpx libwebp openjdk8 opus x264 x265 ruby python + +name=openjdk8-openjfx +version=8u202 +release=1 +source=(https://hg.openjdk.java.net/openjfx/8u-dev/rt/archive/${version//./}-ga.tar.bz2 + https://services.gradle.org/distributions/gradle-4.8-bin.zip + https://archive.apache.org/dist/ant/binaries/apache-ant-1.8.2-bin.tar.gz + gradle.properties + openjfx.conf + gradle.patch + 01-gradle-set-java-versions.patch + 02-jfxpanel.patch + 04-fix-gcc-sentinel-warnings.patch + java8-openjfx-flags.patch + java8-openjfx-no-xlocale.patch + # gentoo patches + 0000-Fix-wait-call-in-PosixPlatform.patch + 0001-Change-Lucene.patch + 0003-fix-cast-between-incompatible-function-types.patch + 0004-Fix-Compilation-Flags.patch + 0005-don-t-include-xlocale.h.patch + 06-disable-architecture-verification.patch + 07-disable-assembler-on-unsupported-archs.patch + 10-javadoc-locale.patch + 99-sysdeps.patch + Wno-error.patch + disable-online-repos.patch + don-t-force-msse.patch + fxpackager-don-t-include-obsolete-sys-sysctl.h.patch + respect_flags.patch) + +build() { + cd rt-${version//./}-ga + # https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/java8-openjfx + patch -Np1 -i ../java8-openjfx-flags.patch + patch -Np1 -i ../java8-openjfx-no-xlocale.patch + ## https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-java/openjfx/files/11 + patch -Np1 -i ../gradle.patch + ## https://github.com/sgerrand/alpine-pkg-java-openjfx + patch -Np1 -i ../01-gradle-set-java-versions.patch + patch -Np1 -i ../02-jfxpanel.patch + patch -Np1 -i ../04-fix-gcc-sentinel-warnings.patch + patch -Np1 -i $SRC/99-sysdeps.patch + #patch -Np1 -i $SRC/disable-online-repos.patch + patch -Np1 -i $SRC/respect_flags.patch + patch -Np1 -i $SRC/0000-Fix-wait-call-in-PosixPlatform.patch + patch -Np1 -i $SRC/0001-Change-Lucene.patch + patch -Np1 -i $SRC/0003-fix-cast-between-incompatible-function-types.patch + patch -Np1 -i $SRC/0004-Fix-Compilation-Flags.patch + #patch -Np1 -i $SRC/0005-don-t-include-xlocale.h.patch + patch -Np1 -i $SRC/06-disable-architecture-verification.patch + patch -Np1 -i $SRC/07-disable-assembler-on-unsupported-archs.patch + patch -Np1 -i $SRC/10-javadoc-locale.patch + patch -Np1 -i $SRC/Wno-error.patch + patch -Np1 -i $SRC/don-t-force-msse.patch + patch -Np1 -i $SRC/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch + echo "Checking if $PKGMK_SOURCE_DIR/gradle_user_home exists.." + if [ ! -e $PKGMK_SOURCE_DIR/gradle_user_home ]; then + mkdir $PKGMK_SOURCE_DIR/gradle_user_home + else + echo "Nothing needs to be done!" + fi + + echo "Checking if $PKGMK_SOURCE_DIR/gradle_project_home exists.." + if [ ! -e $PKGMK_SOURCE_DIR/gradle_project_home ]; then + mkdir $PKGMK_SOURCE_DIR/gradle_project_home + else + echo "Nothing needs to be done!" + fi + + export CFLAGS+=' -fcommon -fPIC' + export LDFLAGS+=' -fPIC' + unset ANT_HOME + export ANT_RESPECT_JAVA_HOME=ture + export ANT_RESPECT_JAVA_HOME=true + export GRADLE_HOME=$SRC/gradle-4.8 + export gradle="${GRADLE_HOME}/bin/gradle" + local gradle_args=( + --info + --stacktrace + --no-build-cache + --no-daemon + --offline + --gradle-user-home "${PKGMK_SOURCE_DIR}/gradle_user_home" + --project-cache-dir "${PKGMK_SOURCE_DIR}/gradle_project_cache" + ) + unset _JAVA_OPTIONS + export JAVA_HOME="/usr/lib/java/openjdk8" + export PATH="$JAVA_HOME/bin:$SRC/gradle-4.8/bin/:$SRC/apache-ant-1.8.2/bin/:${PATH}" + + ln -sf ../gradle.properties . + find -name '*.class' -delete + find -name '*.jar' -delete + #sed 's|, "-Werror"||g' -i buildSrc/linux.gradle + + #rm -rf modules/media/src/main/native/gstreamer/3rd_party/glib + #rm -rf modules/media/src/main/native/gstreamer/gstreamer-lite + #rm -rf modules/graphics/src/main/native-iio/libjpeg* + gradle + install -dm 755 "$PKG"/usr/lib/java/openjdk8/jre + cp -dr --no-preserve=ownership build/sdk/{bin,lib} "$PKG"/usr/lib/java/openjdk8/ + cp -dr --no-preserve=ownership build/sdk/rt/lib "$PKG"/usr/lib/java/openjdk8/jre/ + install -dm755 $PKG/etc/ld.so.conf.d/ + cp -R $SRC/openjfx.conf $PKG/etc/ld.so.conf.d/openjfx.conf +} diff --git a/openjdk8-openjfx/Wno-error.patch b/openjdk8-openjfx/Wno-error.patch new file mode 100644 index 0000000..2084115 --- /dev/null +++ b/openjdk8-openjfx/Wno-error.patch @@ -0,0 +1,121 @@ +From 822bf818933311327c5b73cb1b185484f22f55fb Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Sun, 26 Apr 2020 21:15:36 -0700 +Subject: [PATCH] Wno-error + +--- + buildSrc/armv5sf.gradle | 1 - + buildSrc/armv6hf.gradle | 1 - + buildSrc/armv6sf.gradle | 1 - + buildSrc/armv7hf.gradle | 1 - + buildSrc/armv7sf.gradle | 1 - + buildSrc/linux.gradle | 6 +++--- + buildSrc/x86egl.gradle | 1 - + 7 files changed, 3 insertions(+), 9 deletions(-) + +diff --git a/buildSrc/armv5sf.gradle b/buildSrc/armv5sf.gradle +index ee154182..bee6003e 100644 +--- a/buildSrc/armv5sf.gradle ++++ b/buildSrc/armv5sf.gradle +@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"] + def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten() + def monocleCFlags = [ + extraCFlags, +- "-Werror", + "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten(); + def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten() + def glassCFlags = ["-ffast-math"] +diff --git a/buildSrc/armv6hf.gradle b/buildSrc/armv6hf.gradle +index dfdff237..0f090f23 100644 +--- a/buildSrc/armv6hf.gradle ++++ b/buildSrc/armv6hf.gradle +@@ -131,7 +131,6 @@ def extraLFlags = [ + def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten() + def monocleCFlags = [ + extraCFlags, +- "-Werror", + "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten(); + def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten() + +diff --git a/buildSrc/armv6sf.gradle b/buildSrc/armv6sf.gradle +index ee6615f0..6ebbdd90 100644 +--- a/buildSrc/armv6sf.gradle ++++ b/buildSrc/armv6sf.gradle +@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"] + def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten() + def monocleCFlags = [ + extraCFlags, +- "-Werror", + "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten(); + def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten() + def glassCFlags = ["-ffast-math"] +diff --git a/buildSrc/armv7hf.gradle b/buildSrc/armv7hf.gradle +index e75bf8a9..092be817 100644 +--- a/buildSrc/armv7hf.gradle ++++ b/buildSrc/armv7hf.gradle +@@ -131,7 +131,6 @@ def extraLFlags = [ + def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten() + def monocleCFlags = [ + extraCFlags, +- "-Werror", + "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten(); + def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten() + +diff --git a/buildSrc/armv7sf.gradle b/buildSrc/armv7sf.gradle +index 0bb8a530..38e98303 100644 +--- a/buildSrc/armv7sf.gradle ++++ b/buildSrc/armv7sf.gradle +@@ -135,7 +135,6 @@ def dfbLFlags = ["-ldl"] + def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten() + def monocleCFlags = [ + extraCFlags, +- "-Werror", + "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten(); + def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten() + def glassCFlags = ["-ffast-math"] +diff --git a/buildSrc/linux.gradle b/buildSrc/linux.gradle +index f233b817..0f9d5252 100644 +--- a/buildSrc/linux.gradle ++++ b/buildSrc/linux.gradle +@@ -203,7 +203,7 @@ LINUX.glass.javahInclude = [ + "com/sun/glass/ui/gtk/*"] + LINUX.glass.glass.nativeSource = ft_gtk_launcher.getFiles() + LINUX.glass.glass.compiler = compiler +-LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten() ++LINUX.glass.glass.ccFlags = [ccFlags, gtk2CCFlags].flatten() + LINUX.glass.glass.linker = linker + LINUX.glass.glass.linkFlags = [linkFlags, "-lX11", "-ldl" ].flatten() + LINUX.glass.glass.lib = "glass" +@@ -211,7 +211,7 @@ LINUX.glass.glass.lib = "glass" + LINUX.glass.glassgtk2 = [:] + LINUX.glass.glassgtk2.nativeSource = ft_gtk.getFiles() + LINUX.glass.glassgtk2.compiler = compiler +-LINUX.glass.glassgtk2.ccFlags = [ccFlags, gtk2CCFlags, "-Werror"].flatten() ++LINUX.glass.glassgtk2.ccFlags = [ccFlags, gtk2CCFlags].flatten() + LINUX.glass.glassgtk2.linker = linker + LINUX.glass.glassgtk2.linkFlags = [linkFlags, gtk2LinkFlags ].flatten() + LINUX.glass.glassgtk2.lib = "glassgtk2" +@@ -219,7 +219,7 @@ LINUX.glass.glassgtk2.lib = "glassgtk2" + LINUX.glass.glassgtk3 = [:] + LINUX.glass.glassgtk3.nativeSource = ft_gtk.getFiles() + LINUX.glass.glassgtk3.compiler = compiler +-LINUX.glass.glassgtk3.ccFlags = [ccFlags, gtk3CCFlags, "-Werror"].flatten() ++LINUX.glass.glassgtk3.ccFlags = [ccFlags, gtk3CCFlags].flatten() + LINUX.glass.glassgtk3.linker = linker + LINUX.glass.glassgtk3.linkFlags = [linkFlags, gtk3LinkFlags ].flatten() + LINUX.glass.glassgtk3.lib = "glassgtk3" +diff --git a/buildSrc/x86egl.gradle b/buildSrc/x86egl.gradle +index 6bf6196b..ff24207d 100644 +--- a/buildSrc/x86egl.gradle ++++ b/buildSrc/x86egl.gradle +@@ -118,7 +118,6 @@ def extraLFlags = [ + def lensLFlags = [extraLFlags, "-lpthread", "-ludev", "-ldl", "-lm"].flatten() + def monocleCFlags = [ + extraCFlags, +- "-Werror", + "-I", file("modules/graphics/src/main/native-glass/monocle/")].flatten(); + def monocleLFlags = [extraLFlags, "-ldl", "-lm"].flatten() + +-- +2.26.2 + diff --git a/openjdk8-openjfx/disable-online-repos.patch b/openjdk8-openjfx/disable-online-repos.patch new file mode 100644 index 0000000..6b0afe4 --- /dev/null +++ b/openjdk8-openjfx/disable-online-repos.patch @@ -0,0 +1,54 @@ +diff --git a/build.gradle b/build.gradle +index df82f63..3f920b6 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -1135,17 +1135,17 @@ allprojects { + // "artifact" in the pattern below. Note that the closed builds use different repositories + // so if you are debugging a closed-build artifact related build issue, check out the + // closed gradle file instead. +- if (!BUILD_CLOSED) { +- repositories { +- mavenCentral() +- ivy { +- url "http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/plugins/" +- layout "pattern", { +- artifact "[artifact].[ext]" +- } +- } +- } +- } ++ // if (!BUILD_CLOSED) { ++ // repositories { ++ // mavenCentral() ++ // ivy { ++ // url "http://download.eclipse.org/eclipse/updates/4.6/R-4.6.3-201703010400/plugins/" ++ // layout "pattern", { ++ // artifact "[artifact].[ext]" ++ // } ++ // } ++ // } ++ // } + + // We want to configure all projects as java projects and use the same compile settings + // etc, except for the root project which we just want to ignore (and for now media) +@@ -1785,13 +1785,13 @@ project(":fxpackager") { + } + // fxpackager has a dependency on ant in order to build the ant jar, + // and as such needs to point to the apache binary repository +- if (!BUILD_CLOSED) { +- repositories { +- maven { +- url "https://repository.apache.org" +- } +- } +- } ++ // if (!BUILD_CLOSED) { ++ // repositories { ++ // maven { ++ // url "https://repository.apache.org" ++ // } ++ // } ++ // } + + dependencies { + compile group: "org.apache.ant", name: "ant", version: "1.8.2" diff --git a/openjdk8-openjfx/don-t-force-msse.patch b/openjdk8-openjfx/don-t-force-msse.patch new file mode 100644 index 0000000..2f5d567 --- /dev/null +++ b/openjdk8-openjfx/don-t-force-msse.patch @@ -0,0 +1,51 @@ +From 6483d73551590e8036cd5ec6d317e8114b403f36 Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Sun, 26 Apr 2020 20:57:39 -0700 +Subject: [PATCH] don't force msse + +--- + .../main/native/gstreamer/projects/linux/avplugin/Makefile | 1 - + .../native/gstreamer/projects/linux/fxplugins/Makefile | 1 - + .../media/src/main/native/jfxmedia/projects/linux/Makefile | 1 - + modules/web/src/main/native/Tools/Scripts/webkitdirs.pm | 7 ------- + 4 files changed, 10 deletions(-) + +diff --git a/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile b/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile +index df9f7f21..f82f0537 100644 +--- a/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile ++++ b/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile +@@ -28,7 +28,6 @@ CFLAGS = -fPIC \ + -Wformat-security \ + -Werror=implicit-function-declaration \ + -fstack-protector \ +- -msse2 \ + -fbuiltin \ + -DHAVE_STDINT_H \ + -DLINUX \ +diff --git a/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile b/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile +index fd3847d0..3887ac6d 100644 +--- a/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile ++++ b/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile +@@ -25,7 +25,6 @@ CFLAGS = -fPIC \ + -Wformat-security \ + -Werror=implicit-function-declaration \ + -fstack-protector \ +- -msse2 \ + -fbuiltin \ + -DHAVE_STDINT_H \ + -DLINUX \ +diff --git a/modules/media/src/main/native/jfxmedia/projects/linux/Makefile b/modules/media/src/main/native/jfxmedia/projects/linux/Makefile +index 3d089501..10fad68f 100644 +--- a/modules/media/src/main/native/jfxmedia/projects/linux/Makefile ++++ b/modules/media/src/main/native/jfxmedia/projects/linux/Makefile +@@ -44,7 +44,6 @@ ifdef HOST_COMPILE + -Wformat-security \ + -fstack-protector \ + -Werror=implicit-function-declaration \ +- -msse2 \ + -DGSTREAMER_LITE + + INCLUDES = $(BASE_INCLUDES) \ +-- +2.26.2 + diff --git a/openjdk8-openjfx/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch b/openjdk8-openjfx/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch new file mode 100644 index 0000000..a01dd05 --- /dev/null +++ b/openjdk8-openjfx/fxpackager-don-t-include-obsolete-sys-sysctl.h.patch @@ -0,0 +1,24 @@ +From 26d59b7c8cc2b40277756f55387606ba8a852b31 Mon Sep 17 00:00:00 2001 +From: Georgy Yakovlev +Date: Fri, 18 Sep 2020 21:43:57 -0700 +Subject: [PATCH] fxpackager: don't include obsolete sys/sysctl.h + +--- + .../fxpackager/src/main/native/library/common/PosixPlatform.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp b/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp +index 5ea3bc6..b5d167b 100644 +--- a/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp ++++ b/modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp +@@ -43,7 +43,6 @@ + #include + #include + #include +-#include + #include + #include + #include +-- +2.28.0 + diff --git a/openjdk8-openjfx/gradle.patch b/openjdk8-openjfx/gradle.patch new file mode 100644 index 0000000..51fde6a --- /dev/null +++ b/openjdk8-openjfx/gradle.patch @@ -0,0 +1,23 @@ +From 2f74649395f0242d08b95572b7b30246457b1d6b Mon Sep 17 00:00:00 2001 +From: Ty Young +Date: Mon, 3 Dec 2018 20:34:07 -0600 +Subject: [PATCH] Remove final from HashSet instance + +Removes final from HashSet instance at about line 107 which causes build failure +--- + .../main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy b/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy +index 10a85d62d1..13d573fe6e 100644 +--- a/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy ++++ b/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy +@@ -102,7 +102,7 @@ class NativeCompileTask extends DefaultTask { + updateFiles(); + def source = project.files(allFiles); + boolean forceCompile = false; +- final Set files = new HashSet(); ++ Set files = new HashSet(); + source.each { File file -> + final Map fileData = dependencies.get(file.toString()); + final boolean isModified = fileData == null || diff --git a/openjdk8-openjfx/gradle.properties b/openjdk8-openjfx/gradle.properties new file mode 100644 index 0000000..e92492b --- /dev/null +++ b/openjdk8-openjfx/gradle.properties @@ -0,0 +1,48 @@ +GRADLE_VERSION_CHECK = false +COMPILE_WEBKIT = false +#COMPILE_MEDIA = false +#COMPILE_WEBKIT = true +COMPILE_MEDIA = true +COMPILE_JFR = false +BUILD_JAVADOC = false +BUILD_SRC_ZIP = true +BUILD_SDK_FOR_TEST = true +#TEST_SDK = /path/to/sdk +FULL_TEST = false +#USE_ROBOT = true +#AWT_TEST = false +#RETAIN_PACKAGER_TESTS = false +#TEST_PACKAGER_DMG = false +COMPILE_TARGETS = linux + +# The JDK_HOME must either be specified or will be inferred based on the JDK / JRE used to +# execute Gradle. From the JDK_HOME are derived the JAVA, JAVAC, JAVAH, JAVADOC, and STUB_RUNTIME +# properties, although each of these may be specified individually. In addition, the LIBRARY_STUB +# property is derived from STUB_RUNTIME. Normally the gradle build +# will work based on whatever "java" is being used to run gradle. It does this by looking for +# a JDK relative to the bin/java location. However if you want to build with a different JDK than +# what is used to execute Gradle, or to fix a failed attempt by the build script to locate the +# JDK_HOME, you may want to specify it manually here. + +JDK_HOME = /usr/lib/java/openjdk8 +#JAVA = /path/to/the/jdk/bin/java +#JAVAC = /path/to/the/jdk/bin/javac +#JAVAH = /path/to/the/jdk/bin/javah +#JAVADOC = /path/to/the/jdk/bin/javadoc +#STUB_RUNTIME = /path/to/the/jdk/jre +#LIBRARY_STUB = /path/to/the/jdk/jre/xxx (different location depending on platform) +CONF = Release +#USE_DEPEND = false +#INCREMENTAL = true +#LINT = all +#JCOV = true +#NUM_COMPILE_THREADS = 12 +#systemProp.http.proxyHost=proxy.my.com +#systemProp.http.proxyPort=80 +#ANDROID_SDK = /path/to/android/sdk +#ANDROID_NDK = /path/to/android/ndk +#COMPILE_FLAGS_FILES = path/to/flags/file.gradle, path/to/flags/file2.gradle +#HUDSON_JOB_NAME = not_hudson +#HUDSON_BUILD_NUMBER = 0000 +#PROMOTED_BUILD_NUMBER = 00 +#PRODUCT_NAME = OpenJFX diff --git a/openjdk8-openjfx/java8-openjfx-flags.patch b/openjdk8-openjfx/java8-openjfx-flags.patch new file mode 100644 index 0000000..323ba43 --- /dev/null +++ b/openjdk8-openjfx/java8-openjfx-flags.patch @@ -0,0 +1,234 @@ +diff -rupN rt-8u202-ga.orig/buildSrc/linux.gradle rt-8u202-ga/buildSrc/linux.gradle +--- rt-8u202-ga.orig/buildSrc/linux.gradle 2019-06-03 15:45:22.599465670 +0200 ++++ rt-8u202-ga/buildSrc/linux.gradle 2019-06-03 15:50:59.746039363 +0200 +@@ -44,8 +44,11 @@ LINUX.library = { name -> return "lib${n + def commonFlags = [ + "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags + "-fstack-protector", ++ "-Wno-error=cast-function-type", + "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags + ++commonFlags.addAll(System.getenv("CFLAGS").trim().split(" ")) ++ + if (!IS_64) { + commonFlags += "-m32" + } +@@ -60,6 +63,9 @@ def ccFlagsGTK3 = ccFlags + def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags, + "-z", "relro", + "-Wl,--gc-sections"].flatten() ++ ++linkFlags.addAll(System.getenv("LDFLAGS").trim().split(" ")) ++ + def defaultLinkFlags = linkFlags.flatten() + + def gtk2CCFlags = [ ]; +@@ -274,7 +280,7 @@ LINUX.iio.nativeSource = [ + LINUX.iio.compiler = compiler + LINUX.iio.ccFlags = [ccFlags].flatten() + LINUX.iio.linker = linker +-LINUX.iio.linkFlags = [linkFlags].flatten() ++LINUX.iio.linkFlags = [linkFlags, "-ljpeg"].flatten() + LINUX.iio.lib = "javafx_iio" + + LINUX.prismES2 = [:] +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile 2019-06-03 15:45:28.772858454 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile 2019-06-03 15:52:15.503480874 +0200 +@@ -22,7 +22,7 @@ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin + endif + +-CFLAGS = -fPIC \ ++CFLAGS := -fPIC \ + -Wformat \ + -Wextra \ + -Wformat-security \ +@@ -35,13 +35,8 @@ CFLAGS = -fPIC \ + -DGST_DISABLE_LOADSAVE \ + -DGSTREAMER_LITE \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections +- +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + INCLUDES= -I../../../plugins \ + -I../../../plugins/av \ +@@ -51,11 +46,12 @@ INCLUDES= -I../../../plugins + -I$(GLIB_DIR)/glib \ + -I$(GLIB_DIR)/gmodule + +-LDFLAGS = -L$(BUILD_DIR) \ ++LDFLAGS := -L$(BUILD_DIR) \ + -z relro \ + -lgstreamer-lite \ + -lglib-lite \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifneq ($(strip $(LIBAV_DIR)),) + INCLUDES += -I$(LIBAV_DIR)/include +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile 2019-06-03 15:45:28.772858454 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile 2019-06-03 15:53:26.784252777 +0200 +@@ -19,7 +19,7 @@ DIRLIST = progressbuffer \ + + TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + +-CFLAGS = -fPIC \ ++CFLAGS := -fPIC \ + -Wformat \ + -Wextra \ + -Wformat-security \ +@@ -36,14 +36,8 @@ CFLAGS = -fPIC \ + -DGST_DISABLE_GST_DEBUG \ + -DGSTREAMER_LITE \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections +- +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif +- ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + INCLUDES = -I$(SRCBASE_DIR) \ + $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \ +@@ -53,9 +47,10 @@ INCLUDES = -I$(SRCBASE_DIR) \ + -I$(GLIB_DIR)/glib \ + -I$(GLIB_DIR)/gmodule + +-LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ ++LDFLAGS := -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifeq ($(ARCH), x32) + CFLAGS += -m32 +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile 2019-06-03 15:45:28.772858454 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile 2019-06-03 15:55:03.568631974 +0200 +@@ -41,7 +41,7 @@ DIRLIST = gstreamer/gst \ + + TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + +-CFLAGS =-fPIC \ ++CFLAGS :=-fPIC \ + -Wformat \ + -Wextra \ + -Wformat-security \ +@@ -56,13 +56,8 @@ CFLAGS =-fPIC \ + -DGST_DISABLE_GST_DEBUG \ + -DGST_DISABLE_LOADSAVE \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections +- +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + INCLUDES = -I$(BASE_DIR)/plugins \ + -I$(SRCBASE_DIR)/projects/build/linux/common \ +@@ -83,9 +78,10 @@ INCLUDES = -I$(BASE_DIR)/plugins + PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa) + PACKAGES_LIBS := $(shell pkg-config --libs alsa) + +-LDFLAGS = -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \ ++LDFLAGS := -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifeq ($(ARCH), x32) + CFLAGS += -m32 +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/jfxmedia/projects/linux/Makefile rt-8u202-ga/modules/media/src/main/native/jfxmedia/projects/linux/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/jfxmedia/projects/linux/Makefile 2019-06-03 15:45:28.819525570 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/jfxmedia/projects/linux/Makefile 2019-06-03 15:57:02.209910725 +0200 +@@ -17,7 +17,7 @@ DIRLIST = jni \ + + TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + +-CFLAGS = -DTARGET_OS_LINUX=1 \ ++CFLAGS := -DTARGET_OS_LINUX=1 \ + -D_GNU_SOURCE \ + -DGST_REMOVE_DEPRECATED \ + -DGST_DISABLE_GST_DEBUG \ +@@ -27,7 +27,8 @@ CFLAGS = -DTARGET_OS_LINUX=1 \ + -DJFXMEDIA_JNI_EXPORTS \ + -DLINUX \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + CPPFLAGS = -fno-rtti -ffunction-sections -fdata-sections + +@@ -57,21 +58,16 @@ ifdef HOST_COMPILE + -I$(GLIB_LITE_DIR)/glib \ + -I$(GLIB_LITE_DIR)/gmodule + +- LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ ++LDFLAGS := -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + else + CFLAGS += $(EXTRA_CFLAGS) + INCLUDES = $(BASE_INCLUDES) + LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) $(EXTRA_LDFLAGS) + endif + +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall -D_DEBUG +-endif +- + ifeq ($(ARCH), x32) + CFLAGS += -m32 + LDFLAGS += -m32 +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile 2019-06-04 07:44:53.882738260 +0000 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile 2019-06-04 07:47:36.024744987 +0000 +@@ -40,20 +40,15 @@ CFLAGS += -fPIC \ + -DMATCH_LIMIT=10000000 \ + -DMATCH_LIMIT_RECURSION=10000000 + +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif +- + INCLUDES = -I$(SRCBASE_DIR) \ + -I$(SRCBASE_DIR)/glib \ + -I$(SRCBASE_DIR)/build/linux \ + -I$(LIBFFI_DIR)/include + +-LDFLAGS = -L$(BUILD_DIR) -lffi \ ++LDFLAGS := -L$(BUILD_DIR) -lffi \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifeq ($(ARCH), x32) + CFLAGS += -m32 + diff --git a/openjdk8-openjfx/java8-openjfx-no-xlocale.patch b/openjdk8-openjfx/java8-openjfx-no-xlocale.patch new file mode 100644 index 0000000..cc0846c --- /dev/null +++ b/openjdk8-openjfx/java8-openjfx-no-xlocale.patch @@ -0,0 +1,29 @@ +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c rt-8u202-ga/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c 2019-06-03 14:24:26.400583977 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c 2019-06-03 14:25:04.844259624 +0200 +@@ -37,11 +37,6 @@ + #include + #include /* For tolower() */ + +-#ifdef HAVE_XLOCALE_H +-/* Needed on BSD/OS X for e.g. strtod_l */ +-#include +-#endif +- + #ifdef G_OS_WIN32 + #include + #endif + +--- rt-8u202-ga.orig/modules/web/src/main/native/Source/ThirdParty/libxslt/src/libxslt/xsltlocale.h ++++ rt-8u202-ga/modules/web/src/main/native/Source/ThirdParty/libxslt/src/libxslt/xsltlocale.h +@@ -25,9 +25,6 @@ + #ifdef HAVE_LOCALE_H + #include + #endif +-#ifdef HAVE_XLOCALE_H +-#include +-#endif + + typedef locale_t xsltLocale; + typedef xmlChar xsltLocaleChar; + diff --git a/openjdk8-openjfx/openjfx.conf b/openjdk8-openjfx/openjfx.conf new file mode 100644 index 0000000..fe20d65 --- /dev/null +++ b/openjdk8-openjfx/openjfx.conf @@ -0,0 +1,2 @@ +/usr/lib/java/openjdk8/jre/lib/amd64 +/usr/lib/java/openjdk8/jre/lib/amd64/server/ diff --git a/openjdk8-openjfx/patches/01-gradle-set-java-versions.patch b/openjdk8-openjfx/patches/01-gradle-set-java-versions.patch new file mode 100644 index 0000000..5b303de --- /dev/null +++ b/openjdk8-openjfx/patches/01-gradle-set-java-versions.patch @@ -0,0 +1,41 @@ +diff --git a/build.gradle b/build.gradle +index a666689..70cddc9 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -720,33 +720,9 @@ if (!file(JAVAH).exists()) throw new Exception("Missing or incorrect path to 'ja + if (!file(JAVADOC).exists()) throw new Exception("Missing or incorrect path to 'javadoc': '$JAVADOC'. Perhaps bad JDK_HOME? $JDK_HOME") + + +-// Determine the verion of Java in JDK_HOME. It looks like this: +-// +-// $ java -version +-// java version "1.7.0_45" +-// Java(TM) SE Runtime Environment (build 1.7.0_45-b18) +-// Java HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode) +-// +-// We need to parse the second line +-def inStream = new java.io.BufferedReader(new java.io.InputStreamReader(new java.lang.ProcessBuilder(JAVA, "-version").start().getErrorStream())); +-try { +- if (inStream.readLine() != null) { +- String v = inStream.readLine(); +- if (v != null) { +- int ib = v.indexOf(" (build "); +- if (ib != -1) { +- String ver = v.substring(ib + 8, v.size() - 1); +- +- defineProperty("jdkRuntimeVersion", ver) +- defineProperty("jdkVersion", jdkRuntimeVersion.split("-")[0]) +- defineProperty("jdkBuildNumber", jdkRuntimeVersion.substring(jdkRuntimeVersion.lastIndexOf("-b") + 2)) +- } +- } +- } +-} finally { +- inStream.close(); +-} +-if (!project.hasProperty("jdkRuntimeVersion")) throw new Exception("Unable to determine the version of Java in JDK_HOME at $JDK_HOME"); ++defineProperty("jdkRuntimeVersion", "1.8.0_151-b12") ++defineProperty("jdkVersion", "1.8.0_151") ++defineProperty("jdkBuildNumber", "12") + + + diff --git a/openjdk8-openjfx/patches/02-jfxpanel.patch b/openjdk8-openjfx/patches/02-jfxpanel.patch new file mode 100644 index 0000000..11e7f07 --- /dev/null +++ b/openjdk8-openjfx/patches/02-jfxpanel.patch @@ -0,0 +1,52 @@ +# HG changeset patch +# User kcr +# Date 1455666049 28800 +# Tue Feb 16 15:40:49 2016 -0800 +# Node ID 41c09adc3b14c6ae40f2263cb91d340b2da0c05f +# Parent 151fdd3d048f54dc4852240c3be873240d8fd4b0 +8149967: Cannot compile JFXPanel with JDK 9: SurfaceData::getDefaultScale not found + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -79,6 +79,7 @@ + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; + +@@ -648,6 +649,23 @@ + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove the ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale = surfaceData.getDefaultScaleX(); ++ */ ++ double scale = 1; ++ try { ++ Method meth = SurfaceData.class.getMethod("getDefaultScaleX"); ++ scale = (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } + + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)} +@@ -689,7 +707,7 @@ + + int newScaleFactor = scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor = ((SunGraphics2D)g).surfaceData.getDefaultScale(); ++ newScaleFactor = getDefaultScale(((SunGraphics2D)g).surfaceData); + } + if (scaleFactor != newScaleFactor) { + createResizePixelBuffer(newScaleFactor); diff --git a/openjdk8-openjfx/patches/04-fix-gcc-sentinel-warnings.patch b/openjdk8-openjfx/patches/04-fix-gcc-sentinel-warnings.patch new file mode 100644 index 0000000..5f203cd --- /dev/null +++ b/openjdk8-openjfx/patches/04-fix-gcc-sentinel-warnings.patch @@ -0,0 +1,86 @@ +diff --git a/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp b/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp +index c909e70..4de37d6 100644 +--- a/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/GlassApplication.cpp +@@ -271,7 +271,7 @@ JNIEXPORT jlong JNICALL Java_com_sun_glass_ui_gtk_GtkApplication_staticView_1get + + static gint multi_click_time = -1; + if (multi_click_time == -1) { +- g_object_get(gtk_settings_get_default(), "gtk-double-click-time", &multi_click_time, NULL); ++ g_object_get(gtk_settings_get_default(), "gtk-double-click-time", &multi_click_time, (char*)NULL); + } + return (jlong)multi_click_time; + } +@@ -290,7 +290,7 @@ JNIEXPORT jint JNICALL Java_com_sun_glass_ui_gtk_GtkApplication_staticView_1getM + static gint multi_click_dist = -1; + + if (multi_click_dist == -1) { +- g_object_get(gtk_settings_get_default(), "gtk-double-click-distance", &multi_click_dist, NULL); ++ g_object_get(gtk_settings_get_default(), "gtk-double-click-distance", &multi_click_dist, (char*)NULL); + } + return multi_click_dist; + } +diff --git a/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp b/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp +index c53929d..5941b2c 100644 +--- a/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/GlassCommonDialogs.cpp +@@ -118,7 +118,7 @@ JNIEXPORT jobject JNICALL Java_com_sun_glass_ui_gtk_GtkCommonDialogs__1showFileC + GTK_RESPONSE_CANCEL, + (chooser_type == GTK_FILE_CHOOSER_ACTION_OPEN ? GTK_STOCK_OPEN : GTK_STOCK_SAVE), + GTK_RESPONSE_ACCEPT, +- NULL); ++ (char*)NULL); + + if (chooser_type == GTK_FILE_CHOOSER_ACTION_SAVE) { + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(chooser), chooser_filename); +@@ -205,7 +205,7 @@ JNIEXPORT jstring JNICALL Java_com_sun_glass_ui_gtk_GtkCommonDialogs__1showFolde + GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, + GTK_RESPONSE_ACCEPT, +- NULL); ++ (char*)NULL); + + if (chooser_folder != NULL) { + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser), +diff --git a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp +index f85b1da..d523809 100644 +--- a/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/glass_dnd.cpp +@@ -688,7 +688,7 @@ static gboolean dnd_source_set_image(GdkWindow *requestor, GdkAtom property, Gdk + mainEnv->CallVoidMethod(pixels, jPixelsAttachData, PTR_TO_JLONG(&pixbuf)); + + if (!EXCEPTION_OCCURED(mainEnv) +- && gdk_pixbuf_save_to_buffer(pixbuf, &buffer, &size, type, NULL, NULL)) { ++ && gdk_pixbuf_save_to_buffer(pixbuf, &buffer, &size, type, NULL, (char*)NULL)) { + gdk_property_change(requestor, property, target, + 8, GDK_PROP_MODE_REPLACE, (guchar *)buffer, size); + result = TRUE; +diff --git a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp +index 82e54d1..49ba05e 100644 +--- a/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp ++++ b/modules/graphics/src/main/native-glass/gtk/glass_window_ime.cpp +@@ -204,7 +204,7 @@ static XIMStyle get_best_supported_style(XIM im_xim) + int i; + XIMStyle result = 0; + +- if (XGetIMValues(im_xim, XNQueryInputStyle, &styles, NULL) != NULL) { // NULL means it's OK ++ if (XGetIMValues(im_xim, XNQueryInputStyle, &styles, (char*)NULL) != NULL) { // NULL means it's OK + return 0; + } + +@@ -244,13 +244,13 @@ void WindowContextBase::enableOrResetIME() { + XNPreeditDoneCallback, &doneCallback, + XNPreeditDrawCallback, &drawCallback, + XNPreeditCaretCallback, &caretCallback, +- NULL); ++ (char*)NULL); + + xim.ic = XCreateIC(xim.im, + XNInputStyle, styles, + XNClientWindow, GDK_WINDOW_XID(gdk_window), + XNPreeditAttributes, list, +- NULL); ++ (char*)NULL); + + XFree(list); + diff --git a/openjdk8-openjfx/patches/gradle.patch b/openjdk8-openjfx/patches/gradle.patch new file mode 100644 index 0000000..51fde6a --- /dev/null +++ b/openjdk8-openjfx/patches/gradle.patch @@ -0,0 +1,23 @@ +From 2f74649395f0242d08b95572b7b30246457b1d6b Mon Sep 17 00:00:00 2001 +From: Ty Young +Date: Mon, 3 Dec 2018 20:34:07 -0600 +Subject: [PATCH] Remove final from HashSet instance + +Removes final from HashSet instance at about line 107 which causes build failure +--- + .../main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy b/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy +index 10a85d62d1..13d573fe6e 100644 +--- a/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy ++++ b/buildSrc/src/main/groovy/com/sun/javafx/gradle/NativeCompileTask.groovy +@@ -102,7 +102,7 @@ class NativeCompileTask extends DefaultTask { + updateFiles(); + def source = project.files(allFiles); + boolean forceCompile = false; +- final Set files = new HashSet(); ++ Set files = new HashSet(); + source.each { File file -> + final Map fileData = dependencies.get(file.toString()); + final boolean isModified = fileData == null || diff --git a/openjdk8-openjfx/patches/java8-openjfx-flags.patch b/openjdk8-openjfx/patches/java8-openjfx-flags.patch new file mode 100644 index 0000000..323ba43 --- /dev/null +++ b/openjdk8-openjfx/patches/java8-openjfx-flags.patch @@ -0,0 +1,234 @@ +diff -rupN rt-8u202-ga.orig/buildSrc/linux.gradle rt-8u202-ga/buildSrc/linux.gradle +--- rt-8u202-ga.orig/buildSrc/linux.gradle 2019-06-03 15:45:22.599465670 +0200 ++++ rt-8u202-ga/buildSrc/linux.gradle 2019-06-03 15:50:59.746039363 +0200 +@@ -44,8 +44,11 @@ LINUX.library = { name -> return "lib${n + def commonFlags = [ + "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags + "-fstack-protector", ++ "-Wno-error=cast-function-type", + "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags + ++commonFlags.addAll(System.getenv("CFLAGS").trim().split(" ")) ++ + if (!IS_64) { + commonFlags += "-m32" + } +@@ -60,6 +63,9 @@ def ccFlagsGTK3 = ccFlags + def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags, + "-z", "relro", + "-Wl,--gc-sections"].flatten() ++ ++linkFlags.addAll(System.getenv("LDFLAGS").trim().split(" ")) ++ + def defaultLinkFlags = linkFlags.flatten() + + def gtk2CCFlags = [ ]; +@@ -274,7 +280,7 @@ LINUX.iio.nativeSource = [ + LINUX.iio.compiler = compiler + LINUX.iio.ccFlags = [ccFlags].flatten() + LINUX.iio.linker = linker +-LINUX.iio.linkFlags = [linkFlags].flatten() ++LINUX.iio.linkFlags = [linkFlags, "-ljpeg"].flatten() + LINUX.iio.lib = "javafx_iio" + + LINUX.prismES2 = [:] +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile 2019-06-03 15:45:28.772858454 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/avplugin/Makefile 2019-06-03 15:52:15.503480874 +0200 +@@ -22,7 +22,7 @@ TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + OBJBASE_DIR = $(BUILD_DIR)/obj/plugins/avplugin + endif + +-CFLAGS = -fPIC \ ++CFLAGS := -fPIC \ + -Wformat \ + -Wextra \ + -Wformat-security \ +@@ -35,13 +35,8 @@ CFLAGS = -fPIC \ + -DGST_DISABLE_LOADSAVE \ + -DGSTREAMER_LITE \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections +- +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + INCLUDES= -I../../../plugins \ + -I../../../plugins/av \ +@@ -51,11 +46,12 @@ INCLUDES= -I../../../plugins + -I$(GLIB_DIR)/glib \ + -I$(GLIB_DIR)/gmodule + +-LDFLAGS = -L$(BUILD_DIR) \ ++LDFLAGS := -L$(BUILD_DIR) \ + -z relro \ + -lgstreamer-lite \ + -lglib-lite \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifneq ($(strip $(LIBAV_DIR)),) + INCLUDES += -I$(LIBAV_DIR)/include +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile 2019-06-03 15:45:28.772858454 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/fxplugins/Makefile 2019-06-03 15:53:26.784252777 +0200 +@@ -19,7 +19,7 @@ DIRLIST = progressbuffer \ + + TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + +-CFLAGS = -fPIC \ ++CFLAGS := -fPIC \ + -Wformat \ + -Wextra \ + -Wformat-security \ +@@ -36,14 +36,8 @@ CFLAGS = -fPIC \ + -DGST_DISABLE_GST_DEBUG \ + -DGSTREAMER_LITE \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections +- +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif +- ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + INCLUDES = -I$(SRCBASE_DIR) \ + $(addprefix -I$(SRCBASE_DIR)/,$(DIRLIST)) \ +@@ -53,9 +47,10 @@ INCLUDES = -I$(SRCBASE_DIR) \ + -I$(GLIB_DIR)/glib \ + -I$(GLIB_DIR)/gmodule + +-LDFLAGS = -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ ++LDFLAGS := -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifeq ($(ARCH), x32) + CFLAGS += -m32 +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile 2019-06-03 15:45:28.772858454 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/gstreamer-lite/Makefile 2019-06-03 15:55:03.568631974 +0200 +@@ -41,7 +41,7 @@ DIRLIST = gstreamer/gst \ + + TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + +-CFLAGS =-fPIC \ ++CFLAGS :=-fPIC \ + -Wformat \ + -Wextra \ + -Wformat-security \ +@@ -56,13 +56,8 @@ CFLAGS =-fPIC \ + -DGST_DISABLE_GST_DEBUG \ + -DGST_DISABLE_LOADSAVE \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections +- +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + INCLUDES = -I$(BASE_DIR)/plugins \ + -I$(SRCBASE_DIR)/projects/build/linux/common \ +@@ -83,9 +78,10 @@ INCLUDES = -I$(BASE_DIR)/plugins + PACKAGES_INCLUDES := $(shell pkg-config --cflags alsa) + PACKAGES_LIBS := $(shell pkg-config --libs alsa) + +-LDFLAGS = -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \ ++LDFLAGS := -L$(BUILD_DIR) -lm -lglib-lite $(PACKAGES_LIBS) \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifeq ($(ARCH), x32) + CFLAGS += -m32 +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/jfxmedia/projects/linux/Makefile rt-8u202-ga/modules/media/src/main/native/jfxmedia/projects/linux/Makefile +--- rt-8u202-ga.orig/modules/media/src/main/native/jfxmedia/projects/linux/Makefile 2019-06-03 15:45:28.819525570 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/jfxmedia/projects/linux/Makefile 2019-06-03 15:57:02.209910725 +0200 +@@ -17,7 +17,7 @@ DIRLIST = jni \ + + TARGET = $(BUILD_DIR)/lib$(BASE_NAME).so + +-CFLAGS = -DTARGET_OS_LINUX=1 \ ++CFLAGS := -DTARGET_OS_LINUX=1 \ + -D_GNU_SOURCE \ + -DGST_REMOVE_DEPRECATED \ + -DGST_DISABLE_GST_DEBUG \ +@@ -27,7 +27,8 @@ CFLAGS = -DTARGET_OS_LINUX=1 \ + -DJFXMEDIA_JNI_EXPORTS \ + -DLINUX \ + -DG_DISABLE_DEPRECATED \ +- -ffunction-sections -fdata-sections ++ -ffunction-sections -fdata-sections \ ++ ${CFLAGS} + + CPPFLAGS = -fno-rtti -ffunction-sections -fdata-sections + +@@ -57,21 +58,16 @@ ifdef HOST_COMPILE + -I$(GLIB_LITE_DIR)/glib \ + -I$(GLIB_LITE_DIR)/gmodule + +- LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ ++LDFLAGS := -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) -lgstreamer-lite -lglib-lite \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + else + CFLAGS += $(EXTRA_CFLAGS) + INCLUDES = $(BASE_INCLUDES) + LDFLAGS = -Wl,-rpath,\$$ORIGIN -L$(BUILD_DIR) $(EXTRA_LDFLAGS) + endif + +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall -D_DEBUG +-endif +- + ifeq ($(ARCH), x32) + CFLAGS += -m32 + LDFLAGS += -m32 +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile 2019-06-04 07:44:53.882738260 +0000 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/projects/linux/glib-lite/Makefile 2019-06-04 07:47:36.024744987 +0000 +@@ -40,20 +40,15 @@ CFLAGS += -fPIC \ + -DMATCH_LIMIT=10000000 \ + -DMATCH_LIMIT_RECURSION=10000000 + +-ifeq ($(BUILD_TYPE), Release) +- CFLAGS += -Os +-else +- CFLAGS += -g -Wall +-endif +- + INCLUDES = -I$(SRCBASE_DIR) \ + -I$(SRCBASE_DIR)/glib \ + -I$(SRCBASE_DIR)/build/linux \ + -I$(LIBFFI_DIR)/include + +-LDFLAGS = -L$(BUILD_DIR) -lffi \ ++LDFLAGS := -L$(BUILD_DIR) -lffi \ + -z relro \ +- -static-libgcc -static-libstdc++ -Wl,--gc-sections ++ -static-libgcc -static-libstdc++ -Wl,--gc-sections \ ++ ${LDFLAGS} + + ifeq ($(ARCH), x32) + CFLAGS += -m32 + diff --git a/openjdk8-openjfx/patches/java8-openjfx-no-xlocale.patch b/openjdk8-openjfx/patches/java8-openjfx-no-xlocale.patch new file mode 100644 index 0000000..cc0846c --- /dev/null +++ b/openjdk8-openjfx/patches/java8-openjfx-no-xlocale.patch @@ -0,0 +1,29 @@ +diff -rupN rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c rt-8u202-ga/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c +--- rt-8u202-ga.orig/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c 2019-06-03 14:24:26.400583977 +0200 ++++ rt-8u202-ga/modules/media/src/main/native/gstreamer/3rd_party/glib/glib-2.56.1/glib/gstrfuncs.c 2019-06-03 14:25:04.844259624 +0200 +@@ -37,11 +37,6 @@ + #include + #include /* For tolower() */ + +-#ifdef HAVE_XLOCALE_H +-/* Needed on BSD/OS X for e.g. strtod_l */ +-#include +-#endif +- + #ifdef G_OS_WIN32 + #include + #endif + +--- rt-8u202-ga.orig/modules/web/src/main/native/Source/ThirdParty/libxslt/src/libxslt/xsltlocale.h ++++ rt-8u202-ga/modules/web/src/main/native/Source/ThirdParty/libxslt/src/libxslt/xsltlocale.h +@@ -25,9 +25,6 @@ + #ifdef HAVE_LOCALE_H + #include + #endif +-#ifdef HAVE_XLOCALE_H +-#include +-#endif + + typedef locale_t xsltLocale; + typedef xmlChar xsltLocaleChar; + diff --git a/openjdk8-openjfx/pre-install b/openjdk8-openjfx/pre-install new file mode 100755 index 0000000..e125d87 --- /dev/null +++ b/openjdk8-openjfx/pre-install @@ -0,0 +1,24 @@ +#!/bin/sh +# openjdk8-openjfx pre-install script +# +echo "Checking if the stub library is present.." +if [ -e /usr/lib/java/openjdk8/jre/lib/ext/jfxrt.jar ]; then + mv /usr/lib/java/openjdk8/jre/lib/ext/jfxrt.jar /usr/lib/java/openjdk8/jre/lib/ext/jfxrt.jar.backup + echo "Library was present and was moved!" +else + echo "Nothing needs to be moved!" +fi + +#echo "Checking if $PKGMK_SOURCE_DIR/gradle_user_home exists.." +#if [ -e $PKGMK_SOURCE_DIR/gradle_user_home ]; then +# mkdir $PKGMK_SOURCE_DIR/gradle_user_home +#else +# echo "Nothing needs to be done!" +#fi +# +#echo "Checking if $PKGMK_SOURCE_DIR/gradle_project_home exists.." +#if [ -e $PKGMK_SOURCE_DIR/gradle_project_home ]; then +# mkdir $PKGMK_SOURCE_DIR/gradle_project_home +#else +# echo "Nothing needs to be done!" +#fi diff --git a/openjdk8-openjfx/respect_flags.patch b/openjdk8-openjfx/respect_flags.patch new file mode 100644 index 0000000..5c5dfa1 --- /dev/null +++ b/openjdk8-openjfx/respect_flags.patch @@ -0,0 +1,22 @@ +diff --git a/buildSrc/linux.gradle b/buildSrc/linux.gradle +index 022d073..8bccdd8 100644 +--- a/buildSrc/linux.gradle ++++ b/buildSrc/linux.gradle +@@ -46,6 +46,9 @@ def commonFlags = [ + "-fstack-protector", + "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags + ++ ++commonFlags.addAll(System.getenv('CFLAGS').trim().split(" ")) ++ + if (!IS_64) { + commonFlags += "-m32" + } +@@ -61,6 +64,7 @@ def linkFlags = ["-static-libgcc", "-static-libstdc++", "-shared", commonFlags, + "-z", "relro", + "-Wl,--gc-sections"].flatten() + def defaultLinkFlags = linkFlags.flatten() ++linkFlags.addAll(System.getenv('LDFLAGS').trim().split(" ")) + + def gtk2CCFlags = [ ]; + def gtk3CCFlags = [ "-Wno-deprecated-declarations" ];