Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Oct 2017 21:24:58 +0000 (UTC)
From:      Tobias Kortkamp <tobik@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r451172 - in head/java/openjfx8-devel: . files
Message-ID:  <201710032124.v93LOwdG048507@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tobik
Date: Tue Oct  3 21:24:58 2017
New Revision: 451172
URL: https://svnweb.freebsd.org/changeset/ports/451172

Log:
  java/openjfx8-devel: Update to 8u172-b00
  
  - Move to the regular OpenJFX 8 repository [1], add all *BSD specific
    patches to the port, and stop using the repository at [2].  This
    should make port contributions and updates a lot easier going forward.
  - Bump PORTEPOCH and start using version numbers based on the tags from [1]
  - Prepare the port for supporting multiple audio backend options
  - Fix PREFIX/LOCALBASE confusion and get all Java dependencies from LOCALBASE
    and not from PREFIX
  - Respect CC and CXX during the WebKit build.  Clang in FreeBSD 10.3
    segfaults while building it now, so make sure we use Clang from
    devel/llvm40 via compiler:c++14-lang instead.
  
  [1] http://hg.openjdk.java.net/openjfx/8u/rt/
  [2] https://bitbucket.org/tobik/openjfx-rt

Added:
  head/java/openjfx8-devel/files/bsd.gradle   (contents, props changed)
  head/java/openjfx8-devel/files/gstsndio.c   (contents, props changed)
  head/java/openjfx8-devel/files/patch-build.properties   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_glass_ui_Platform.java   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_glass_utils_NativeLibLoader.java   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_font_PrismFontFactory.java   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_javafx_tk_Toolkit.java   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-font_fontpath__linux.c   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-font_freetype.c   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-font_pango.c   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__evloop.cpp   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__general.cpp   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-glass_gtk_glass__window.h   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_native-prism-es2_PrismES2Defs.h   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_media_src_main_native_gstreamer_projects_bsd_gstreamer-lite_Makefile   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_media_src_main_native_jfxmedia_platform_gstreamer_GstPipelineFactory.cpp   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_media_src_main_native_jfxmedia_projects_bsd_Makefile   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_JavaScriptCore_PlatformJava.cmake   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_PlatformJava.cmake   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_CMakeLists.txt   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WTF_wtf_unicode_java_UnicodeJava.h   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_WebCore_PlatformJava.cmake   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_TestRunner.cpp   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_DumpRenderTree_java_CMakeLists.txt   (contents, props changed)
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Tools_Scripts_webkitdirs.pm   (contents, props changed)
  head/java/openjfx8-devel/files/sndiosink.c   (contents, props changed)
  head/java/openjfx8-devel/files/sndiosink.h   (contents, props changed)
Deleted:
  head/java/openjfx8-devel/files/patch-icu59
Modified:
  head/java/openjfx8-devel/Makefile
  head/java/openjfx8-devel/distinfo
  head/java/openjfx8-devel/files/patch-build.gradle
  head/java/openjfx8-devel/files/patch-buildSrc_build.gradle
  head/java/openjfx8-devel/files/patch-modules_base_src_main_java_com_sun_javafx_PlatformUtil.java
  head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_prism_impl_PrismSettings.java
  head/java/openjfx8-devel/files/patch-modules_web_src_main_native_Source_cmake_OptionsJava.cmake

Modified: head/java/openjfx8-devel/Makefile
==============================================================================
--- head/java/openjfx8-devel/Makefile	Tue Oct  3 21:04:07 2017	(r451171)
+++ head/java/openjfx8-devel/Makefile	Tue Oct  3 21:24:58 2017	(r451172)
@@ -2,14 +2,15 @@
 # $FreeBSD$
 
 PORTNAME=	openjfx8
-PORTVERSION=	20170722
-PORTREVISION=	4
+DISTVERSION=	8u172-b00
+PORTEPOCH=	1
 CATEGORIES=	java x11-toolkits devel
-MASTER_SITES=	https://bitbucket.org/tobik/openjfx-rt/get/freebsd${PORTVERSION}${EXTRACT_SUFX}?dummy=/
+MASTER_SITES=	https://github.com/t6/openjfx/releases/download/release/ \
+		http://hg.openjdk.java.net/openjfx/8u/rt/archive/${DISTVERSION}${EXTRACT_SUFX}?dummy=/
 PKGNAMESUFFIX=	-devel
 
 MAINTAINER=	tobik@FreeBSD.org
-COMMENT=	JavaFX (OpenJFX) SDK overlay for OpenJDK 8
+COMMENT=	JavaFX SDK overlay for OpenJDK 8
 
 LICENSE=	GPLv2
 LICENSE_FILE=	${WRKSRC}/LICENSE
@@ -29,9 +30,9 @@ USES=		gettext-runtime jpeg sqlite
 USE_GL=		gl
 USE_GNOME=	atk cairo gdkpixbuf2 glib20 gtk20 pango
 USE_JAVA=	yes
+JAVA_VERSION=	1.8
 USE_LDCONFIG=	yes
 USE_XORG=	x11 xtst xxf86vm
-JAVA_VERSION=	1.8
 
 OPTIONS_DEFINE=	MEDIA TEST WEBKIT
 OPTIONS_DEFAULT=	MEDIA WEBKIT
@@ -51,7 +52,7 @@ TEST_VARS=	AWT_TEST=true FULL_TEST=true
 WEBKIT_BUILD_DEPENDS=	cmake:devel/cmake
 WEBKIT_IMPLIES=	MEDIA
 WEBKIT_LIB_DEPENDS=	libicui18n.so:devel/icu
-WEBKIT_USES=	bison compiler:c++11-lib gmake gperf perl5 pkgconfig \
+WEBKIT_USES=	bison compiler:c++14-lang gmake gperf perl5 pkgconfig \
 		python:2.7,build
 WEBKIT_USE=	GNOME=libxslt,libxml2 \
 		PERL5=build \
@@ -59,21 +60,44 @@ WEBKIT_USE=	GNOME=libxslt,libxml2 \
 		XORG=xcomposite,xdamage,xfixes,xrender,xt
 WEBKIT_VARS=	RUBY_NO_RUN_DEPENDS=yes COMPILE_WEBKIT=true
 
+# Move Gradle's home below ${WRKDIR} instead of using ${HOME}/.gradle
+GRADLE_ENV=	GRADLE_USER_HOME=${WRKDIR}/gradle-home \
+		CC=${CC} CXX=${CXX}
+GRADLE_RUN=	${SETENV} ${GRADLE_ENV} gradle --no-daemon
+
 PLIST_SUB=	ARCH=${ARCH} \
 		JAVA_HOME=${JAVA_HOME}
+WRKSRC=		${WRKDIR}/rt-${DISTVERSION}
 
-WRKSRC=	${WRKDIR}/tobik-openjfx-rt-9ccdaef460fa
-
-GRADLE_ENV=	GRADLE_USER_HOME=${WRKDIR}/gradle-home
-GRADLE_RUN=	${SETENV} ${GRADLE_ENV} gradle --no-daemon
-
 # NOTE: This port won't build if ${JAVA_HOME}/jre/lib/ext/jfxrt.jar
 # already exists on your system.  This is not a problem in Poudriere
 # or Synth but something to be aware of if you're trying to build this
 # port in a non-pristine environment.
 
+# The BSD Makefiles for GStreamer-lite and Jfxmedia are based on the
+# Linux versions.  Prepare the tree, so that we only see the changes
+# from Linux's Makefile in our own patches.
+pre-patch:
+	@${CP} -r ${WRKSRC}/modules/media/src/main/native/jfxmedia/projects/linux \
+		${WRKSRC}/modules/media/src/main/native/jfxmedia/projects/bsd
+	@${CP} -r ${WRKSRC}/modules/media/src/main/native/gstreamer/projects/linux \
+		${WRKSRC}/modules/media/src/main/native/gstreamer/projects/bsd
+
 post-patch:
-	@${REINPLACE_CMD} -E -e 's|%%PREFIX%%|${PREFIX}|g' \
+	@${CP} ${FILESDIR}/bsd.gradle ${WRKSRC}/buildSrc
+# Add a *BSD native audio sink to GStreamer-lite instead of using the
+# bundled ALSA sink.  Currently we add an sndio sink, but this is an extension
+# point for eventually adding an OSS backend (or others) as an option as well.
+# If you add a new one make sure it registers itself as "bsdaudiosink" as defined
+# in modules/media/src/main/native/jfxmedia/platform/gstreamer/GstPipelineFactory.cpp
+	@${MKDIR} ${WRKSRC}/modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/ext/bsdaudio
+	@${CP} ${FILESDIR}/gstsndio.c ${FILESDIR}/sndiosink.c ${FILESDIR}/sndiosink.h \
+		${WRKSRC}/modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/ext/bsdaudio
+	@cd ${WRKSRC}/modules/media/src/main/native/gstreamer/gstreamer-lite/gst-plugins-base/ext/bsdaudio && \
+		${LN} -s gstsndio.c gstbsdaudio.c && \
+		${LN} -s sndiosink.c bsdaudiosink.c
+# Pull Java dependencies from LOCALBASE
+	@${REINPLACE_CMD} 's@/usr/local@${LOCALBASE}@g' \
 		${WRKSRC}/build.gradle ${WRKSRC}/buildSrc/build.gradle
 # Remove the bundled libicu and libsqlite3.  We use the system's
 # versions instead.
@@ -81,7 +105,6 @@ post-patch:
 		${WRKSRC}/modules/web/src/main/native/Source/ThirdParty/sqlite
 
 do-configure:
-# Gradle creates ${HOME}/.gradle, pretend home is somewhere else
 	@${MKDIR} ${WRKDIR}/gradle-home
 	@${ECHO_CMD} "NUM_COMPILE_THREADS = ${MAKE_JOBS_NUMBER}" > ${WRKSRC}/gradle.properties
 .for prop in COMPILE_MEDIA COMPILE_WEBKIT AWT_TEST FULL_TEST

Modified: head/java/openjfx8-devel/distinfo
==============================================================================
--- head/java/openjfx8-devel/distinfo	Tue Oct  3 21:04:07 2017	(r451171)
+++ head/java/openjfx8-devel/distinfo	Tue Oct  3 21:24:58 2017	(r451172)
@@ -1,3 +1,3 @@
-TIMESTAMP = 1500739313
-SHA256 (openjfx8-20170722.tar.gz) = b11fb19e7a05802754505c95dc247013941eb0beb5b1221ed8477997aad1344b
-SIZE (openjfx8-20170722.tar.gz) = 109167999
+TIMESTAMP = 1506878786
+SHA256 (openjfx8-8u172-b00.tar.gz) = b6689302cb215b22b0b673d47b3738ac48a423149f2e047dbdebbc87fbefc8ac
+SIZE (openjfx8-8u172-b00.tar.gz) = 109884684

Added: head/java/openjfx8-devel/files/bsd.gradle
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/openjfx8-devel/files/bsd.gradle	Tue Oct  3 21:24:58 2017	(r451172)
@@ -0,0 +1,258 @@
+/*
+ * Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.  Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+ext.BSD = [:]
+
+// Declare whether this particular target file applies to the current system
+BSD.canBuild = IS_BSD;
+if (!BSD.canBuild) return;
+
+// All desktop related packages should be built
+BSD.compileSwing = true;
+BSD.compileSWT = true;
+BSD.compileFXPackager = true;
+
+// Libraries end up in the sdk/rt/lib/$OS_ARCH directory for freebsd
+BSD.libDest = "lib/$OS_ARCH"
+
+// Lambda for naming the generated libs
+BSD.library = { name -> return "lib${name}.so" as String }
+
+// A set of common parameters to use for both compiling and linking
+def commonFlags = [
+        "-fno-strict-aliasing", "-fPIC", "-fno-omit-frame-pointer", // optimization flags
+        "-W", "-Wall", "-Wno-unused", "-Wno-parentheses", "-Werror=implicit-function-declaration"] // warning flags
+
+if (!IS_64) {
+    commonFlags += "-m32"
+}
+
+// Specify the compilation parameters and link parameters
+def ccFlags = [
+        commonFlags, "-I$JDK_HOME/include", "-I$JDK_HOME/include/freebsd", "-c",
+        IS_DEBUG_NATIVE ? ["-ggdb", "-DVERBOSE"] : ["-O2", "-DNDEBUG"]].flatten()
+//ccFlags.addAll(["-Wnon-virtual-dtor", "-Woverloaded-virtual", "-std=c++0x"])
+def linkFlags = ["-shared", commonFlags].flatten()
+
+// Create $buildDir/bsd_tools.properties file and load props from it
+setupTools("bsd_tools",
+    { propFile ->
+        ByteArrayOutputStream results = new ByteArrayOutputStream();
+        exec {
+		commandLine("pkg-config", "--cflags", "gtk+-2.0", "gthread-2.0", "xtst");
+            setStandardOutput(results);
+        }
+        propFile << "cflags=" << results.toString().trim() << "\n";
+
+        results = new ByteArrayOutputStream();
+        exec {
+            commandLine "pkg-config", "--libs", "gtk+-2.0", "gthread-2.0", "xtst"
+            standardOutput = results
+        }
+        propFile << "libs=" << results.toString().trim();
+    },
+    { properties ->
+        ccFlags.addAll(properties.getProperty("cflags").split(" "))
+        linkFlags.addAll(properties.getProperty("libs").split(" "))
+    }
+)
+
+def pangoCCFlags = ["-D_ENABLE_PANGO"];
+def pangoLinkFlags = [];
+setupTools("bsd_pango_tools",
+    { propFile ->
+        ByteArrayOutputStream results = new ByteArrayOutputStream();
+        exec {
+            commandLine "pkg-config", "--cflags", "pangoft2"
+            standardOutput = results
+        }
+        propFile << "cflags=" << results.toString().trim() << "\n";
+
+        results = new ByteArrayOutputStream();
+        exec {
+            commandLine "pkg-config", "--libs", "pangoft2"
+            standardOutput = results
+        }
+        propFile << "libs=" << results.toString().trim();
+    },
+    { properties ->
+        pangoCCFlags.addAll(properties.getProperty("cflags").split(" "))
+        pangoLinkFlags.addAll(properties.getProperty("libs").split(" "))
+    }
+)
+
+def freetypeCCFlags = [ext.IS_COMPILE_PANGO ? "-D_ENABLE_PANGO" :
+                       ext.IS_COMPILE_HARFBUZZ ? "-D_ENABLE_HARFBUZZ" : ""]
+def freetypeLinkFlags = []
+setupTools("bsd_freetype_tools",
+    { propFile ->
+        ByteArrayOutputStream results = new ByteArrayOutputStream();
+        exec {
+            commandLine "pkg-config", "--cflags", "freetype2"
+            standardOutput = results
+        }
+        propFile << "cflags=" << results.toString().trim() << "\n";
+
+        results = new ByteArrayOutputStream();
+        exec {
+            commandLine "pkg-config", "--libs", "freetype2"
+            standardOutput = results
+        }
+        propFile << "libs=" << results.toString().trim();
+    },
+    { properties ->
+        freetypeCCFlags.addAll(properties.getProperty("cflags").split(" "))
+        freetypeLinkFlags.addAll(properties.getProperty("libs").split(" "))
+    }
+)
+
+def compiler = IS_COMPILE_PARFAIT ? "parfait-gcc" : "cc";
+def linker = IS_COMPILE_PARFAIT ? "parfait-g++" : "c++";
+
+BSD.glass = [:]
+BSD.glass.javahInclude = [
+    "com/sun/glass/events/**",
+    "com/sun/glass/ui/*",
+    "com/sun/glass/ui/gtk/*"]
+BSD.glass.nativeSource = file("modules/graphics/src/main/native-glass/gtk")
+BSD.glass.compiler = compiler
+BSD.glass.ccFlags = [ccFlags, "-Werror"].flatten()
+BSD.glass.linker = linker
+BSD.glass.linkFlags = [linkFlags].flatten()
+BSD.glass.lib = "glass"
+
+BSD.decora = [:]
+BSD.decora.compiler = compiler
+BSD.decora.ccFlags = [ccFlags, "-ffast-math"].flatten()
+BSD.decora.linker = linker
+BSD.decora.linkFlags = [linkFlags].flatten()
+BSD.decora.lib = "decora_sse"
+
+BSD.prism = [:]
+BSD.prism.javahInclude = ["com/sun/prism/impl/**/*", "com/sun/prism/PresentableState*"]
+BSD.prism.nativeSource = file("modules/graphics/src/main/native-prism")
+BSD.prism.compiler = compiler
+BSD.prism.ccFlags = [ccFlags, "-DINLINE=inline"].flatten()
+BSD.prism.linker = linker
+BSD.prism.linkFlags = [linkFlags].flatten()
+BSD.prism.lib = "prism_common"
+
+BSD.prismSW = [:]
+BSD.prismSW.javahInclude = ["com/sun/pisces/**/*"]
+BSD.prismSW.nativeSource = file("modules/graphics/src/main/native-prism-sw")
+BSD.prismSW.compiler = compiler
+BSD.prismSW.ccFlags = [ccFlags, "-DINLINE=inline"].flatten()
+BSD.prismSW.linker = linker
+BSD.prismSW.linkFlags = [linkFlags].flatten()
+BSD.prismSW.lib = "prism_sw"
+
+BSD.launcher = [:]
+BSD.launcher.compiler = compiler
+BSD.launcher.ccFlags = ["-DJAVAARCH=\"$OS_ARCH\"", "-I$JDK_HOME/include", "-I$JDK_HOME/include/freebsd", "-c"]
+BSD.launcher.linker = linker
+BSD.launcher.linkFlags = ["-ldl"]
+if (!IS_64) {
+    BSD.launcher.ccFlags += "-m32"
+    BSD.launcher.linkFlags += "-m32"
+}
+
+BSD.launcherlibrary = [:]
+BSD.launcherlibrary.compiler = compiler
+BSD.launcherlibrary.ccFlags = ["-DJAVAARCH=\"$OS_ARCH\"", "-I$JDK_HOME/include", "-I$JDK_HOME/include/freebsd", "-c", "-fPIC"]
+BSD.launcherlibrary.linker = linker
+BSD.launcherlibrary.linkFlags = ["-ldl", "-lpthread", "-shared"]
+if (!IS_64) {
+    BSD.launcherlibrary.ccFlags += "-m32"
+    BSD.launcherlibrary.linkFlags += "-m32"
+}
+
+BSD.iio = [:]
+BSD.iio.javahInclude = ["com/sun/javafx/iio/**/*"]
+BSD.iio.nativeSource = [file("modules/graphics/src/main/native-iio")]
+BSD.iio.compiler = compiler
+BSD.iio.ccFlags = [ccFlags].flatten()
+BSD.iio.linker = linker
+BSD.iio.linkFlags = [linkFlags].flatten()
+BSD.iio.linkFlags += "-ljpeg"
+BSD.iio.lib = "javafx_iio"
+
+BSD.prismES2 = [:]
+BSD.prismES2.javahInclude = ["com/sun/prism/es2/**/*"]
+BSD.prismES2.nativeSource = [
+    file("modules/graphics/src/main/native-prism-es2"),
+    file("modules/graphics/src/main/native-prism-es2/GL"),
+    file("modules/graphics/src/main/native-prism-es2/x11")
+]
+BSD.prismES2.compiler = compiler
+BSD.prismES2.ccFlags = ["-DFREEBSD", ccFlags].flatten()
+BSD.prismES2.linker = linker
+BSD.prismES2.linkFlags = [linkFlags, "-lX11", "-lXxf86vm", "-lGL"].flatten()
+BSD.prismES2.lib = "prism_es2"
+
+def closedDir = file("$projectDir/../rt-closed")
+BSD.font = [:]
+BSD.font.javahInclude = [
+     "com/sun/javafx/font/**/*",
+     "com/sun/javafx/text/**/*"]
+BSD.font.compiler = compiler
+BSD.font.nativeSource = [file("modules/graphics/src/main/native-font")]
+BSD.font.ccFlags = ["-DJFXFONT_PLUS", ccFlags].flatten()
+BSD.font.linker = linker
+BSD.font.linkFlags = [linkFlags].flatten()
+BSD.font.lib = "javafx_font"
+
+BSD.fontT2K = [:]
+BSD.fontT2K.javahInclude = ["com/sun/javafx/font/t2k/**/*"]
+BSD.fontT2K.nativeSource = [
+        file("$closedDir/javafx-font-t2k-native/src"),
+        file("$closedDir/javafx-font-t2k-native/src/layout")]
+BSD.fontT2K.compiler = compiler
+BSD.fontT2K.ccFlags = ["-DJFXFONT_PLUS", "-DLE_STANDALONE", ccFlags].flatten()
+BSD.fontT2K.linker = linker
+BSD.fontT2K.linkFlags = [linkFlags].flatten()
+BSD.fontT2K.lib = "javafx_font_t2k"
+
+BSD.fontFreetype = [:]
+BSD.fontFreetype.javahInclude = ["com/sun/javafx/font/freetype/OSFreetype.class"]
+BSD.fontFreetype.nativeSource = ["src/main/native-font/freetype.c"]
+BSD.fontFreetype.compiler = compiler
+BSD.fontFreetype.ccFlags = ["-DJFXFONT_PLUS", ccFlags, freetypeCCFlags].flatten()
+BSD.fontFreetype.linker = linker
+BSD.fontFreetype.linkFlags = [linkFlags, freetypeLinkFlags].flatten()
+BSD.fontFreetype.lib = "javafx_font_freetype"
+
+BSD.fontPango = [:]
+BSD.fontPango.javahInclude = ["com/sun/javafx/font/freetype/OSPango.class"]
+BSD.fontPango.nativeSource = ["src/main/native-font/pango.c"]
+BSD.fontPango.compiler = compiler
+BSD.fontPango.ccFlags = ["-DJFXFONT_PLUS", ccFlags, pangoCCFlags].flatten()
+BSD.fontPango.linker = linker
+BSD.fontPango.linkFlags = [linkFlags, pangoLinkFlags].flatten()
+BSD.fontPango.lib = "javafx_font_pango"
+
+BSD.media = [:]
+BSD.media.compiler = compiler
+BSD.media.linker = linker
+BSD.media.lib = "ar"

Added: head/java/openjfx8-devel/files/gstsndio.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/openjfx8-devel/files/gstsndio.c	Tue Oct  3 21:24:58 2017	(r451172)
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) <2008> Jacob Meuser <jakemsr@sdf.lonestar.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "sndiosink.h"
+
+GST_DEBUG_CATEGORY (gst_sndio_debug);
+
+gboolean
+plugin_init_alsa (GstPlugin * plugin)
+{
+  if (!gst_element_register (plugin, "bsdaudiosink", GST_RANK_PRIMARY,
+          GST_TYPE_SNDIOSINK)) {
+    return FALSE;
+  }
+
+  GST_DEBUG_CATEGORY_INIT (gst_sndio_debug, "sndio", 0, "sndio elements");
+
+#ifdef ENABLE_NLS
+  GST_DEBUG ("binding text domain %s to locale dir %s", GETTEXT_PACKAGE,
+      LOCALEDIR);
+  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+#endif /* ENABLE_NLS */
+
+  return TRUE;
+}

Modified: head/java/openjfx8-devel/files/patch-build.gradle
==============================================================================
--- head/java/openjfx8-devel/files/patch-build.gradle	Tue Oct  3 21:04:07 2017	(r451171)
+++ head/java/openjfx8-devel/files/patch-build.gradle	Tue Oct  3 21:24:58 2017	(r451172)
@@ -1,40 +1,134 @@
---- build.gradle.orig	2017-07-20 23:39:54 UTC
+--- build.gradle.orig	2017-09-08 16:56:55 UTC
 +++ build.gradle
-@@ -344,7 +344,7 @@ ext.SWT_FILE_NAME = IS_MAC ? "org.eclipse.swt.cocoa.ma
+@@ -251,6 +251,7 @@ ext.IS_64 = OS_ARCH.toLowerCase().contains("64")
+ ext.IS_MAC = OS_NAME.contains("mac") || OS_NAME.contains("darwin")
+ ext.IS_WINDOWS = OS_NAME.contains("windows")
+ ext.IS_LINUX = OS_NAME.contains("linux")
++ext.IS_BSD = OS_NAME.contains("freebsd") || OS_NAME.contains("dragonfly")
+ 
+ // Get the JDK_HOME automatically based on the version of Java used to execute gradle. Or, if specified,
+ // use a user supplied JDK_HOME, STUB_RUNTIME, JAVAC, and/or JAVAH, all of which may be specified
+@@ -311,7 +312,7 @@ defineProperty("COMPILE_MEDIA", "false")
+ ext.IS_COMPILE_MEDIA = Boolean.parseBoolean(COMPILE_MEDIA)
+ 
+ // COMPILE_PANGO specifies whether to build javafx_font_pango.
+-defineProperty("COMPILE_PANGO", "${IS_LINUX}")
++defineProperty("COMPILE_PANGO", "${IS_LINUX || IS_BSD}")
+ ext.IS_COMPILE_PANGO = Boolean.parseBoolean(COMPILE_PANGO)
+ 
+ // COMPILE_HARFBUZZ specifies whether to use Harfbuzz.
+@@ -342,7 +343,8 @@ ext.SWT_FILE_NAME = IS_MAC ? "org.eclipse.swt.cocoa.ma
+     IS_WINDOWS && IS_64 ? "org.eclipse.swt.win32.win32.x86_64_3.7.2.v3740f" :
      IS_WINDOWS && !IS_64 ? "org.eclipse.swt.win32.win32.x86_3.7.2.v3740f" :
      IS_LINUX && IS_64 ? "org.eclipse.swt.gtk.linux.x86_64_3.7.2.v3740f" :
-     IS_LINUX && !IS_64 ? "org.eclipse.swt.gtk.linux.x86_3.7.2.v3740f" :
--    IS_BSD ? "/usr/local/share/java/classes/swt-devel.jar" : ""
-+    IS_BSD ? "%%PREFIX%%/share/java/classes/swt-devel.jar" : ""
+-    IS_LINUX && !IS_64 ? "org.eclipse.swt.gtk.linux.x86_3.7.2.v3740f" : ""
++    IS_LINUX && !IS_64 ? "org.eclipse.swt.gtk.linux.x86_3.7.2.v3740f" :
++    IS_BSD ? "/usr/local/share/java/classes/swt-devel.jar" : ""
  
  // Build javadocs only if BUILD_JAVADOC=true
  defineProperty("BUILD_JAVADOC", "false")
-@@ -1163,7 +1163,8 @@ allprojects {
+@@ -402,6 +404,12 @@ if (IS_MAC) {
+     defineProperty("NUM_COMPILE_THREADS", "${Runtime.runtime.availableProcessors()}")
+ }
+ 
++if (IS_BSD) {
++    ext.MAKE_CMD = "gmake"
++} else {
++    ext.MAKE_CMD = "make"
++}
++
+ //
+ // The next three sections of properties are used to generate the
+ // VersionInfo class, and the Windows DLL manifest.
+@@ -442,7 +450,7 @@ defineProperty("RELEASE_MILESTONE", jfxReleaseMileston
+ // Check whether the COMPILE_TARGETS property has been specified (if so, it was done by
+ // the user and not by this script). If it has not been defined then default
+ // to building the normal desktop build for this machine
+-project.ext.set("defaultHostTarget", IS_MAC ? "mac" : IS_WINDOWS ? "win" : IS_LINUX ? "linux" : "");
++project.ext.set("defaultHostTarget", IS_MAC ? "mac" : IS_WINDOWS ? "win" : IS_LINUX ? "linux" : IS_BSD ? "bsd" : "");
+ defineProperty("COMPILE_TARGETS", "$defaultHostTarget")
+ 
+ // Flag indicating whether to import cross compile tools
+@@ -549,7 +557,7 @@ void fetchExternalTools(String configName, List packag
+                 def File pkgdir = file("$destdir/$basename")
+ 
+                 if (pkgname.endsWith(".tgz")) {
+-                    if (IS_LINUX || IS_MAC) {
++                    if (IS_BSD || IS_LINUX || IS_MAC) {
+                         // use native tar to support symlinks
+                         pkgdir.mkdirs()
+                         exec {
+@@ -674,7 +682,7 @@ compileTargets { t ->
+     if (!targetProperties.containsKey('includeMonocle')) targetProperties.includeMonocle = false
+     if (!targetProperties.containsKey('includeEGL')) targetProperties.includeEGL = false
+ 
+-    if (!targetProperties.containsKey('includeGTK')) targetProperties.includeGTK = IS_LINUX
++    if (!targetProperties.containsKey('includeGTK')) targetProperties.includeGTK = IS_LINUX || IS_BSD
+ 
+     // This value is used to under ./build/${sdkDirName} to allow for
+     // a common name for the hosted build (for use when building apps)
+@@ -706,7 +714,7 @@ compileTargets { t ->
+ // 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_MAC && !IS_WINDOWS && !IS_LINUX && !IS_BSD) 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")
+ } else if (IS_MAC && OS_ARCH != "x86_64") {
+@@ -1168,7 +1176,8 @@ allprojects {
      // By default all of our projects require junit for testing so we can just
      // setup this dependency here.
      dependencies {
 -        testCompile group: "junit", name: "junit", version: "4.8.2"
-+        testCompile files("%%PREFIX%%/share/java/classes/junit4.jar",
-+                          "%%PREFIX%%/share/java/classes/hamcrest.jar")
++        testCompile files("/usr/local/share/java/classes/junit4.jar",
++                          "/usr/local/share/java/classes/hamcrest.jar")
          if (BUILD_CLOSED && DO_JCOV)  {
              testCompile name: "jcov"
          }
-@@ -1306,11 +1307,10 @@ project(":graphics") {
- 	} else {
-              compile name: SWT_FILE_NAME
- 	}
+@@ -1306,12 +1315,15 @@ project(":graphics") {
+ 
+     dependencies {
+         compile project(":base"), BUILD_SRC
+-        compile name: SWT_FILE_NAME
 -        stubCompile group: "junit", name: "junit", version: "4.8.2",
-+        stubCompile files("%%PREFIX%%/share/java/classes/junit4.jar",
-+                          "%%PREFIX%%/share/java/classes/hamcrest.jar"),
++        if (IS_BSD) {
++             compile files(SWT_FILE_NAME)
++	} else {
++             compile name: SWT_FILE_NAME
++	}
++        stubCompile files("/usr/local/share/java/classes/junit4.jar",
++                          "/usr/local/share/java/classes/hamcrest.jar"),
          project(":base").sourceSets.test.output, sourceSets.main.output
 -        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 files("%%PREFIX%%/share/java/classes/antlr-3.5.2-complete.jar")
++        antlr3 files("/usr/local/share/java/classes/antlr-3.5.2-complete.jar")
      }
  
      // Create a single "native" task which will depend on all the individual native tasks for graphics
-@@ -1600,9 +1600,7 @@ project(":graphics") {
+@@ -1460,7 +1472,7 @@ project(":graphics") {
+                 workingDir = "modules/graphics"
+                 main = settings.generator
+                 classpath = configurations.compile + configurations.antlr3
+-                classpath += files("$buildDir/classes/main")
++                classpath += files("$buildDir/classes/java/main")
+                 classpath += files("$buildDir/classes/jsl-compilers/decora")
+                 args = ["-i", sourceDir, "-o", destinationDir, "-t", "-pkg", "com/sun/scenario/effect", "$settings.outputs", "$settings.fileName"]
+                 jvmArgs "-Djava.ext.dirs="
+@@ -1471,9 +1483,9 @@ project(":graphics") {
+     task generateDecoraNativeHeaders(type: JavaHeaderTask, dependsOn: compileDecoraJavaShaders) {
+         description = "Generates JNI Headers for Decora SSE Natives"
+         source file("$buildDir/classes/jsl-decora")
+-        source file("$buildDir/classes/main")
++        source file("$buildDir/classes/java/main")
+         include("com/sun/scenario/effect/impl/sw/sse/*");
+-        classpath = files("$buildDir/classes/main", "$buildDir/classes/jsl-decora")
++        classpath = files("$buildDir/classes/java/main", "$buildDir/classes/jsl-decora")
+         output = file("$buildDir/generated-src/headers/jsl-decora")
+     }
+ 
+@@ -1601,9 +1613,7 @@ project(":graphics") {
              copy {
                  into libsDir
                  from f.getParentFile()
@@ -45,20 +139,50 @@
                  includeEmptyDirs = false
              }
              // Have to rename the swt jar because it is some platform specific name but
-@@ -1789,7 +1787,7 @@ project(":fxpackager") {
+@@ -1650,7 +1660,7 @@ project(":controls") {
+             javaexec {
+                 executable = JAVA
+                 workingDir = "modules/controls"
+-                classpath files("$buildDir/classes/main",
++                classpath files("$buildDir/classes/java/main",
+                         project(":graphics").sourceSets.main.output,
+                         project(":base").sourceSets.main.output)
+                 main = "com.sun.javafx.css.parser.Css2Bin"
+@@ -1687,7 +1697,11 @@ project(":swt") {
      }
+     dependencies {
+         compile BUILD_SRC, project(":base"), project(":graphics")
+-        compile name: SWT_FILE_NAME
++        if (IS_BSD) {
++            compile files(SWT_FILE_NAME)
++        } else {
++            compile name: SWT_FILE_NAME
++        }
+     }
+ }
  
+@@ -1786,7 +1800,7 @@ project(":fxpackager") {
+     }
+ 
      dependencies {
 -        compile group: "org.apache.ant", name: "ant", version: "1.8.2"
-+        compile files("%%PREFIX%%/share/java/apache-ant/lib/ant.jar")
++        compile files("/usr/local/share/java/apache-ant/lib/ant.jar")
      }
  
      // When producing the jar, we need to relocate a few class files
-@@ -2049,21 +2047,6 @@ project(":fxpackager") {
+@@ -2037,7 +2051,7 @@ project(":fxpackager") {
+         description = "Creates the packager.jar"
+         archiveName = "packager.jar";
+         includeEmptyDirs = false
+-        from("$buildDir/classes/main");
++        from("$buildDir/classes/java/main");
+         from("$buildDir/resources/main");
+         include('jdk/packager/**')
  
+@@ -2047,21 +2061,6 @@ project(":fxpackager") {
      jar.dependsOn buildJavaPackager
      jar.dependsOn packagerJar
--
+ 
 -    classes << {
 -        // Copy all of the download libraries to libs directory for the sake of the IDEs
 -        File libsDir = rootProject.file("build/libs");
@@ -73,6 +197,261 @@
 -            }
 -        }
 -    }
- 
+-
      task packagerFakeJar(type: Jar) {
          dependsOn compileTestJava
+         from compileTestJava.destinationDir
+@@ -2240,7 +2239,7 @@ project(":media") {
+ 
+             doLast {
+                 exec {
+-                    commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/jfxmedia/projects/${projectDir}")
++                    commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/jfxmedia/projects/${projectDir}")
+                     args("JAVA_HOME=${JDK_HOME}", "GENERATED_HEADERS_DIR=${generatedHeadersDir}",
+                          "OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=jfxmedia",
+                          "COMPILE_PARFAIT=${compileParfait}")
+@@ -2250,7 +2249,7 @@ project(":media") {
+                         args(IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.jfxmediaRcFile}")
+                     } else {
+                         args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
+-                        if (t.name == "linux") {
++                        if (t.name == "linux" || t.name == "bsd") {
+                             args(IS_64 ? "ARCH=x64" : "ARCH=x32")
+                         }
+ 
+@@ -2272,7 +2271,7 @@ project(":media") {
+                 enabled = IS_COMPILE_MEDIA
+                 doLast {
+                     exec {
+-                        commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/gstreamer-lite")
++                        commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/gstreamer-lite")
+                         args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=gstreamer-lite")
+ 
+                         if (t.name == "win") {
+@@ -2280,7 +2279,7 @@ project(":media") {
+                             args(IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.gstreamerRcFile}")
+                         } else {
+                             args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
+-                            if (t.name == "linux") {
++                            if (t.name == "linux" || t.name == "bsd") {
+                                 args(IS_64 ? "ARCH=x64" : "ARCH=x32")
+                             }
+                         }
+@@ -2301,7 +2300,7 @@ project(":media") {
+ 
+                 doLast {
+                     exec {
+-                        commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/fxplugins")
++                        commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/fxplugins")
+                         args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=fxplugins",
+                              "ON2_SRCDIR=${project.ext.ON2_SRCDIR}", "ON2_LIB=${project.ext.ON2_LIB}")
+ 
+@@ -2318,7 +2317,7 @@ project(":media") {
+                             args(IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.fxpluginsRcFile}")
+                         } else {
+                             args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
+-                            if (t.name == "linux") {
++                            if (t.name == "linux" || t.name == "bsd") {
+                                 args(IS_64 ? "ARCH=x64" : "ARCH=x32")
+                             }
+                         }
+@@ -2328,7 +2327,7 @@ project(":media") {
+ 
+             buildNative.dependsOn buildPlugins
+ 
+-            if (t.name == "linux") {
++            if (t.name == "linux" || t.name == "bsd") {
+                 def buildAVPlugin = task( "buildAVPlugin", dependsOn: [buildPlugins]) {
+                     enabled = IS_COMPILE_MEDIA
+ 
+@@ -2339,7 +2338,7 @@ project(":media") {
+                                 File dir = file(libavDir)
+                                 if (dir.exists()) {
+                                     exec {
+-                                        commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
++                                        commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${t.name}/avplugin")
+                                         args("CC=${mediaProperties.compiler}", "OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
+                                              "BASE_NAME=avplugin", "VERSION=${version}", "LIBAV_DIR=${libavDir}",
+                                              "SUFFIX=", IS_64 ? "ARCH=x64" : "ARCH=x32")
+@@ -2352,7 +2351,7 @@ project(":media") {
+                                 File dir = file(libavDir)
+                                 if (dir.exists()) {
+                                     exec {
+-                                        commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
++                                        commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${t.name}/avplugin")
+                                         args("CC=${mediaProperties.compiler}", "LINKER=${mediaProperties.linker}",
+                                              "OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
+                                              "BASE_NAME=avplugin", "VERSION=${version}", "LIBAV_DIR=${libavDir}",
+@@ -2363,7 +2362,7 @@ project(":media") {
+                         } else {
+                             // Building fxavcodec plugin (libav plugin)
+                             exec {
+-                                commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
++                                commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/linux/avplugin")
+                                 args("CC=${mediaProperties.compiler}", "OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}",
+                                      "BASE_NAME=avplugin", IS_64 ? "ARCH=x64" : "ARCH=x32")
+                             }
+@@ -2411,7 +2410,7 @@ project(":media") {
+                     doLast {
+                         exec {
+                             environment(WINDOWS_NATIVE_COMPILE_ENVIRONMENT)
+-                            commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/glib-lite")
++                            commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/glib-lite")
+                             args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=glib-lite",
+                                  IS_64 ? "ARCH=x64" : "ARCH=x32", "RESOURCE=${nativeOutputDir}/${buildType}/${WIN.media.glibRcFile}")
+                         }
+@@ -2424,7 +2423,7 @@ project(":media") {
+                     enabled = IS_COMPILE_MEDIA
+                     doLast {
+                         exec {
+-                            commandLine ("make", "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/glib-lite")
++                            commandLine (MAKE_CMD, "${makeJobsFlag}", "-C", "${nativeSrcDir}/gstreamer/projects/${projectDir}/glib-lite")
+                             args("OUTPUT_DIR=${nativeOutputDir}", "BUILD_TYPE=${buildType}", "BASE_NAME=glib-lite")
+                             args ("CC=${mediaProperties.compiler}", "LINK=${mediaProperties.linker}", "LIB=${mediaProperties.lib}")
+                         }
+@@ -2477,7 +2476,7 @@ project(":web") {
+ 
+     task generateHeaders(dependsOn: compileJava) {
+         doLast {
+-            def classpath = files("$buildDir/classes/main",
++            def classpath = files("$buildDir/classes/java/main",
+                                   project(":graphics").sourceSets.main.output.classesDir)
+             def dest = file("$buildDir/generated-src/headers");
+             mkdir dest;
+@@ -2525,7 +2524,7 @@ project(":web") {
+ 
+     compileTargets { t ->
+         def targetProperties = project.rootProject.ext[t.upper]
+-        def classifier = (t.name != "linux" && t.name != "win") ? t.name :
++        def classifier = (t.name != "linux" && t.name != "bsd" && t.name != "win") ? t.name :
+                           IS_64 ? "${t.name}-amd64" : "${t.name}-i586"
+ 
+         def webkitOutputDir = cygpath("$buildDir/${t.name}")
+@@ -2586,6 +2585,9 @@ project(":web") {
+                     targetCpuBitDepthSwitch = "--32-bit"
+                 }
+ 
++                cmakeArgs += " -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON"
++                cmakeArgs += " -DCMAKE_C_COMPILER:STRING=${System.getenv("CC")}"
++                cmakeArgs += " -DCMAKE_CXX_COMPILER:STRING=${System.getenv("CXX")}"
+                 commandLine("perl", "Tools/Scripts/build-webkit",
+                     "--java", "--icu-unicode", targetCpuBitDepthSwitch,
+                     "--cmakeargs=${cmakeArgs}")
+@@ -2628,7 +2630,7 @@ project(":web") {
+     task drtJar(type: Jar, dependsOn: compileJava) {
+         archiveName = "drt.jar"
+         destinationDir = file("$buildDir/test")
+-        from "$buildDir/classes/main"
++        from "$buildDir/classes/java/main"
+         include drtClasses
+     }
+     if (IS_COMPILE_WEBKIT) {
+@@ -2880,22 +2882,22 @@ compileTargets { t ->
+         description = "Creates the jfxrt.jar for the $t.name target"
+         archiveName = "build/${sdkDirName}/rt/lib/ext/jfxrt.jar";
+         includeEmptyDirs = false
+-        from("modules/base/build/classes/main",
++        from("modules/base/build/classes/java/main",
+              "modules/base/build/resources/main",
+-             "modules/builders/build/classes/main",
+-             "modules/graphics/build/classes/main",
++             "modules/builders/build/classes/java/main",
++             "modules/graphics/build/classes/java/main",
+              "modules/graphics/build/resources/main",
+-             "modules/controls/build/classes/main",
++             "modules/controls/build/classes/java/main",
+              "modules/controls/build/resources/main",
+-             "modules/fxml/build/classes/main",
++             "modules/fxml/build/classes/java/main",
+              "modules/fxml/build/resources/main",
+              "modules/graphics/build/classes/jsl-decora",
+              "modules/graphics/build/resources/jsl-decora",
+              "modules/graphics/build/classes/jsl-prism",
+              "modules/graphics/build/resources/jsl-prism",
+-             "modules/media/build/classes/main",
++             "modules/media/build/classes/java/main",
+              "modules/media/build/resources/main")
+-        if (COMPILE_SWING) from ("modules/swing/build/classes/main", "modules/swing/build/resources/main")
++        if (COMPILE_SWING) from ("modules/swing/build/classes/java/main", "modules/swing/build/resources/main")
+ 
+         if (!IS_MAC) {
+             exclude ("modules/media/build/classes/main/com/sun/media/jfxmediaimpl/platform/osx/**",
+@@ -2960,7 +2962,7 @@ compileTargets { t ->
+                   "modules/web/build/resources/ios",
+                   "modules/extensions/build/classes/ios")
+         } else {
+-            from ("modules/web/build/classes/main", "modules/web/build/resources/main")
++            from ("modules/web/build/classes/java/main", "modules/web/build/resources/main")
+         }
+ 
+         exclude("**/javafx/embed/swt/**")
+@@ -3000,8 +3002,8 @@ compileTargets { t ->
+         description = "Creates the jfxswt.jar for the $t.name target"
+         archiveName = "build/${sdkDirName}/rt/lib/jfxswt.jar";
+         includeEmptyDirs = false
+-        from("modules/swt/build/classes/main");
+-        from("modules/builders/build/classes/main");
++        from("modules/swt/build/classes/java/main");
++        from("modules/builders/build/classes/java/main");
+         include("**/javafx/embed/swt/**")
+         exclude("**/*.java");  // Builder java files are in build/classes and should be excluded
+ 
+@@ -3022,7 +3024,7 @@ compileTargets { t ->
+         description = "Creates the javafx-mx.jar"
+         archiveName = "build/${sdkDirName}/lib/javafx-mx.jar";
+         includeEmptyDirs = false
+-        from "modules/jmx/build/classes/main"
++        from "modules/jmx/build/classes/java/main"
+         from "modules/jmx/build/resources/main"
+         dependsOn project(":jmx").assemble
+     }
+@@ -3077,7 +3079,7 @@ compileTargets { t ->
+                         // OSX media natives
+                         [ "jfxmedia_qtkit", "jfxmedia_avf", "glib-lite" ].each { name ->
+                             from ("modules/media/build/native/${t.name}/${mediaBuildType}/${library(name)}") }
+-                    } else if (t.name == "linux") {
++                    } else if (t.name == "linux" || t.name == "bsd") {
+                         from("modules/media/build/native/${t.name}/${mediaBuildType}") { include "libavplugin*.so" }
+                     } else from ("modules/media/build/native/${t.name}/${mediaBuildType}/${library("glib-lite")}")
+                 } else {
+@@ -3090,7 +3092,7 @@ compileTargets { t ->
+                         // copy libjfxmedia_{avf,qtkit}.dylib if they exist
+                         [ "jfxmedia_qtkit", "jfxmedia_avf", "glib-lite" ].each { name ->
+                             from ("$LIBRARY_STUB/${library(name)}") }
+-                    } else if (t.name == "linux") {
++                    } else if (t.name == "linux" || t.name == "bsd") {
+                         from(LIBRARY_STUB) { include "libavplugin*.so" }
+                     }
+                     else if (t.name != "android"  && t.name != "dalvik" ) {
+@@ -3155,7 +3157,7 @@ compileTargets { t ->
+             }
+ 
+             // Copy over the javapackager executable
+-            if (t.name == "win" || t.name == "linux" || t.name == "mac") {
++            if (t.name == "win" || t.name == "linux" || t.name == "bsd" || t.name == "mac") {
+                 copy {
+                     from "modules/fxpackager/build/javapackager"
+                     into "build/${sdkDirName}/bin"
+@@ -3208,10 +3210,11 @@ ext.JFXRT_CP =
+         project(":fxml").sourceSets.main.output.classesDir,
+         project(":swing").sourceSets.main.output.classesDir, //NOTE - used by 3Dviewer
+         project(":builders").sourceSets.main.output.classesDir,
+-            "modules/media/build/classes/main",
+-            "modules/web/build/classes/main",
++            "modules/media/build/classes/java/main",
++            "modules/web/build/classes/java/main",
+     )
+ 
++/*
+ project(":apps") {
+     // The apps build is Ant based, and gradle lets us "import" ant build.xml
+     // into our configuration.
+@@ -3256,7 +3259,7 @@ project(":apps") {
+         }
+         rootProject.clean.dependsOn(appsClean)
+     }
+-}
++} */
+ 
+ /******************************************************************************
+  *                                                                            *

Added: head/java/openjfx8-devel/files/patch-build.properties
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/openjfx8-devel/files/patch-build.properties	Tue Oct  3 21:24:58 2017	(r451172)
@@ -0,0 +1,17 @@
+http://hg.openjdk.java.net/openjfx/8u/rt/rev/aefb29b5a599
+
+--- build.properties.orig	2017-09-08 16:56:55 UTC
++++ build.properties
+@@ -40,10 +40,10 @@ jfx.release.milestone=ea
+ jfx.release.suffix=-ea
+ 
+ # UPDATE THE FOLLOWING VALUES FOR A NEW RELEASE
+-jfx.release.name=8u162
++jfx.release.name=8u172
+ jfx.release.major.version=8
+ jfx.release.minor.version=0
+-jfx.release.micro.version=162
++jfx.release.micro.version=172
+ 
+ ##############################################################################
+ #

Modified: head/java/openjfx8-devel/files/patch-buildSrc_build.gradle
==============================================================================
--- head/java/openjfx8-devel/files/patch-buildSrc_build.gradle	Tue Oct  3 21:04:07 2017	(r451171)
+++ head/java/openjfx8-devel/files/patch-buildSrc_build.gradle	Tue Oct  3 21:24:58 2017	(r451172)
@@ -1,4 +1,4 @@
---- buildSrc/build.gradle.orig	2017-07-20 23:39:54 UTC
+--- buildSrc/build.gradle.orig	2017-09-08 16:56:55 UTC
 +++ buildSrc/build.gradle
 @@ -81,11 +81,10 @@ sourceSets {
  getConfigurations().create("antlr3");

Modified: head/java/openjfx8-devel/files/patch-modules_base_src_main_java_com_sun_javafx_PlatformUtil.java
==============================================================================
--- head/java/openjfx8-devel/files/patch-modules_base_src_main_java_com_sun_javafx_PlatformUtil.java	Tue Oct  3 21:04:07 2017	(r451171)
+++ head/java/openjfx8-devel/files/patch-modules_base_src_main_java_com_sun_javafx_PlatformUtil.java	Tue Oct  3 21:24:58 2017	(r451172)
@@ -1,6 +1,28 @@
---- modules/base/src/main/java/com/sun/javafx/PlatformUtil.java.orig	2017-07-22 15:59:03 UTC
+--- modules/base/src/main/java/com/sun/javafx/PlatformUtil.java.orig	2017-09-08 16:56:55 UTC
 +++ modules/base/src/main/java/com/sun/javafx/PlatformUtil.java
-@@ -158,10 +158,10 @@ public class PlatformUtil {
+@@ -69,6 +69,7 @@ public class PlatformUtil {
+     private static final boolean WINDOWS_7_OR_LATER = WINDOWS && versionNumberGreaterThanOrEqualTo(6.1f);
+     private static final boolean MAC = os.startsWith("Mac");
+     private static final boolean LINUX = os.startsWith("Linux") && !ANDROID;
++    private static final boolean FREEBSD = os.startsWith("FreeBSD");
+     private static final boolean SOLARIS = os.startsWith("SunOS");
+     private static final boolean IOS = os.startsWith("iOS");
+ 
+@@ -124,6 +125,13 @@ public class PlatformUtil {
+         return LINUX;
+     }
+ 
++    /**
++     * Returns true if the operating system is a form of FreeBSD.
++     */
++    public static boolean isFreeBSD(){
++        return FREEBSD;
++    }
++
+     public static boolean useEGL() {
+         return useEGL;
+     }
+@@ -150,10 +158,10 @@ public class PlatformUtil {
      }
  
      /**

Added: head/java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/openjfx8-devel/files/patch-modules_fxpackager_src_main_native_library_common_PosixPlatform.cpp	Tue Oct  3 21:24:58 2017	(r451172)
@@ -0,0 +1,18 @@
+http://pkgs.fedoraproject.org/cgit/rpms/openjfx.git/tree/0001-Fix-wait-call-in-PosixPlatform.patch
+
+--- modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp.orig	2017-09-08 16:56:55 UTC
++++ modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
+@@ -230,13 +230,7 @@ bool PosixProcess::Wait() {
+     int status = 0;
+     pid_t wpid = 0;
+ 
+-    //TODO Use waitpid instead of wait
+-#ifdef LINUX
+-    wait();
+-#endif
+-#ifdef MAC
+     wpid = wait(&status);
+-#endif
+ 
+     if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
+         if (errno != EINTR){

Added: head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_glass_ui_Platform.java
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_glass_ui_Platform.java	Tue Oct  3 21:24:58 2017	(r451172)
@@ -0,0 +1,20 @@
+--- modules/graphics/src/main/java/com/sun/glass/ui/Platform.java.orig	2017-09-08 16:56:55 UTC
++++ modules/graphics/src/main/java/com/sun/glass/ui/Platform.java
+@@ -52,6 +52,8 @@ final class Platform {
+                    type = WINDOWS;
+                 else if (userPlatform.equals("linux"))
+                    type = GTK;
++                else if (userPlatform.equals("freebsd"))
++                    type = GTK;
+                 else if (userPlatform.equals("gtk"))
+                    type = GTK;
+                 else if (userPlatform.equals("ios"))
+@@ -68,6 +70,8 @@ final class Platform {
+             } else if (osNameLowerCase.startsWith("wind")) {
+                 type = WINDOWS;
+             } else if (osNameLowerCase.startsWith("linux")) {
++                type = GTK;
++            } else if (osNameLowerCase.startsWith("freebsd")) {
+                 type = GTK;
+             }
+         }

Added: head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_glass_utils_NativeLibLoader.java
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/java/openjfx8-devel/files/patch-modules_graphics_src_main_java_com_sun_glass_utils_NativeLibLoader.java	Tue Oct  3 21:24:58 2017	(r451172)
@@ -0,0 +1,20 @@
+--- modules/graphics/src/main/java/com/sun/glass/utils/NativeLibLoader.java.orig	2017-09-08 16:56:55 UTC
++++ modules/graphics/src/main/java/com/sun/glass/utils/NativeLibLoader.java
+@@ -173,7 +173,7 @@ public class NativeLibLoader {
+                     relativeDir = "../../bin";
+                 } else if (osName.startsWith("Mac")) {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710032124.v93LOwdG048507>