From owner-svn-ports-all@freebsd.org Tue Oct 3 21:25:01 2017 Return-Path: Delivered-To: svn-ports-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2CD18E24FE7; Tue, 3 Oct 2017 21:25:01 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9BE35648CA; Tue, 3 Oct 2017 21:25:00 +0000 (UTC) (envelope-from tobik@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v93LOxcL048519; Tue, 3 Oct 2017 21:24:59 GMT (envelope-from tobik@FreeBSD.org) Received: (from tobik@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v93LOwdG048507; Tue, 3 Oct 2017 21:24:58 GMT (envelope-from tobik@FreeBSD.org) Message-Id: <201710032124.v93LOwdG048507@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: tobik set sender to tobik@FreeBSD.org using -f From: Tobias Kortkamp Date: Tue, 3 Oct 2017 21:24:58 +0000 (UTC) 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 X-SVN-Group: ports-head X-SVN-Commit-Author: tobik X-SVN-Commit-Paths: in head/java/openjfx8-devel: . files X-SVN-Commit-Revision: 451172 X-SVN-Commit-Repository: ports MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 03 Oct 2017 21:25:01 -0000 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 + * + * 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 ***