diff --git a/java/openjfx8-devel/Makefile b/java/openjfx8-devel/Makefile index 8bb07f706327..6d63a45e1ece 100644 --- a/java/openjfx8-devel/Makefile +++ b/java/openjfx8-devel/Makefile @@ -1,149 +1,149 @@ # Created by: Tobias Kortkamp # $FreeBSD$ PORTNAME= openjfx8 DISTVERSION= 8u202-b07 PORTREVISION= 7 PORTEPOCH= 1 CATEGORIES= java x11-toolkits devel 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 SDK overlay for OpenJDK 8 LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE DEPRECATED= No longer maintained upstream EXPIRATION_DATE= 2020-11-30 ONLY_FOR_ARCHS= amd64 i386 BUILD_DEPENDS= apache-ant>0:devel/apache-ant \ antlr3>0:devel/antlr3 \ gradle4>=4.8:devel/gradle4 \ ${JAVALIBDIR}/junit.jar:java/junit LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 USES= gettext-runtime gl gnome jpeg localbase:ldflags pkgconfig \ sqlite xorg USE_GL= gl USE_GNOME= atk cairo gdkpixbuf2 glib20 gtk20 gtk30 pango USE_JAVA= yes JAVA_VERSION= 1.8 USE_LDCONFIG= yes USE_XORG= x11 xtst xxf86vm -CFLAGS+= -Wno-unused-command-line-argument +CFLAGS+= -fcommon -Wno-unused-command-line-argument WRKSRC= ${WRKDIR}/rt-${DISTVERSION} PLIST_SUB= ARCH=${ARCH} \ JAVA_HOME=${JAVA_HOME} OPTIONS_DEFINE= MEDIA SWT TEST WEBKIT OPTIONS_DEFAULT= MEDIA WEBKIT OPTIONS_SUB= yes MEDIA_DESC= Media module SWT_DESC= SWT support MEDIA_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \ libsndio.so:audio/sndio MEDIA_USES= gmake MEDIA_VARS= COMPILE_MEDIA=true SWT_BUILD_DEPENDS= swt>0:x11-toolkits/swt SWT_RUN_DEPENDS= swt>0:x11-toolkits/swt SWT_VARS= COMPILE_SWT=true TEST_USES= display:test TEST_VARS= AWT_TEST=true FULL_TEST=true # Gradle calls CMake during the build WEBKIT_IMPLIES= MEDIA WEBKIT_BUILD_DEPENDS= cmake:devel/cmake WEBKIT_LIB_DEPENDS= libicui18n.so:devel/icu WEBKIT_USES= bison compiler:c++14-lang gmake gperf perl5 python:2.7,build WEBKIT_USE= GNOME=libxslt,libxml2 \ PERL5=build \ RUBY=yes \ 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= CC=${WRKDIR}/bin/ccwrapper \ CXX=${WRKDIR}/bin/cxxwrapper \ GRADLE_USER_HOME=${WRKDIR}/gradle-home _GRADLE_RUN= ${SETENV} ${_GRADLE_ENV} gradle4 --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: @${MKDIR} ${WRKDIR}/bin @${PRINTF} '#!/bin/sh\nexec ${CC} ${CFLAGS} ${LDFLAGS} "$$@"\n' > ${WRKDIR}/bin/ccwrapper @${PRINTF} '#!/bin/sh\nexec ${CXX} ${CXXFLAGS} ${LDFLAGS} "$$@"\n' > ${WRKDIR}/bin/cxxwrapper @${CHMOD} +x ${WRKDIR}/bin/ccwrapper ${WRKDIR}/bin/cxxwrapper @${SED} -e 's@/linux@/freebsd@g' -e 's@-DLINUX@-DFREEBSD@g' -e 's@LINUX@BSD@g' \ -e 's@linux_@bsd_@g' -e 's@"-static-libgcc", "-static-libstdc++",@@g' \ -e 's@"gcc"@"${WRKDIR}/bin/ccwrapper"@g' -e 's@"g\+\+"@"${WRKDIR}/bin/cxxwrapper"@g' \ ${WRKSRC}/buildSrc/linux.gradle > ${WRKSRC}/buildSrc/bsd.gradle # 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.* ${FILESDIR}/sndiosink.* \ ${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 bundled libraries. We use the system's versions instead. @cd ${WRKSRC}/modules/web/src/main/native/Source/ThirdParty && \ ${RM} -r icu libxml libxslt sqlite @${RM} -r ${WRKSRC}/modules/web/src/main/native/Source/WTF/icu @cd ${WRKSRC}/modules/media/src/main/native/gstreamer/3rd_party && \ ${RM} -r glib libffi post-patch-SWT-off: @${RM} -r ${WRKSRC}/modules/graphics/src/main/java/com/sun/glass/ui/swt do-configure: @${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 @${ECHO_CMD} "${prop} = ${${prop}:Ufalse}" >> ${WRKSRC}/gradle.properties .endfor @${ECHO_CMD} "BSD.compileSWT = ${COMPILE_SWT:Ufalse};" >> ${WRKSRC}/buildSrc/bsd.gradle do-build: @cd ${WRKSRC} && ${_GRADLE_RUN} zips do-install: @${MKDIR} ${STAGEDIR}${JAVA_HOME} @${TAR} -C ${STAGEDIR}${JAVA_HOME} \ -xf ${WRKSRC}/build/bundles/javafx-sdk-overlay.zip @${FIND} ${STAGEDIR}${JAVA_HOME}/jre -name '*.so' -exec ${STRIP_CMD} \{\} \; do-test-TEST-on: @cd ${WRKSRC} && ${_GRADLE_RUN} check test .include diff --git a/java/openjfx8-devel/files/patch-git_c3cf651 b/java/openjfx8-devel/files/patch-git_c3cf651 new file mode 100644 index 000000000000..a033eeac8a01 --- /dev/null +++ b/java/openjfx8-devel/files/patch-git_c3cf651 @@ -0,0 +1,77 @@ +Partial backport of: + +From c3cf651016e4cdcb4350598d4a586821071f91bf Mon Sep 17 00:00:00 2001 +From: "cturner@igalia.com" + +Date: Thu, 30 Apr 2020 15:12:36 +0000 +Subject: [PATCH] [clang 11] fix build errors due to -WWc++11-narrowing + https://bugs.webkit.org/show_bug.cgi?id=211193 + +Reviewed by Adrian Perez de Castro. + +Fixes the following errors, + +Source/WebCore/html/MediaElementSession.cpp:1059:9: error: type 'WebCore::RenderMedia *' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing] +m_element.renderer(), +^~~~~~~~~~~~~~~~~~~~ + +Source/WebCore/style/StyleResolver.cpp:106:55: error: type 'const char [4]' cannot be narrowed to 'bool' in initializer list [-Wc++11-narrowing] +m_mediaQueryEvaluator = MediaQueryEvaluator { "all" }; + ^~~~~ +Source/WebCore/style/StyleResolver.cpp:106:55: note: insert an explicit cast to silence this issue +m_mediaQueryEvaluator = MediaQueryEvaluator { "all" }; + ^~~~~ + static_cast( ) + +* html/HTMLMediaElement.h: +(WebCore::HTMLMediaElement::hasRenderer const): +MediaElementSession was implicitly casting a pointer to a bool, +which is not allowed with modern Clang checks. Add a helper method +to encapsulate the now required static_cast. +* html/MediaElementSession.cpp: Use the new helper method to see +if the HTMLMediaElement has an associated renderer. +(WebCore::MediaElementSession::updateMediaUsageIfChanged): +* style/StyleResolver.cpp: This was calling MediaQueryEvaluator { +"all" }; and seemingly expecting to cast a const char[] to a bool, +or maybe String? It's confusing because of the MediaQueryEvaluator +API. If it was implicitly converting to bool then that could be +unintentional. Such casts are not allowed either now. The +MediaQueryEvaluator's default constructor says it returns true for +"all", which appears to be the original intent of this call, so I +replaced it with that. +(WebCore::Style::Resolver::Resolver): + + +git-svn-id: http://svn.webkit.org/repository/webkit/trunk@260951 268f45cc-cd09-0410-ab3c-d52691b4dbfc +--- + Source/WebCore/ChangeLog | 39 +++++++++++++++++++++ + Source/WebCore/html/HTMLMediaElement.h | 1 + + Source/WebCore/html/MediaElementSession.cpp | 2 +- + Source/WebCore/style/StyleResolver.cpp | 2 +- + 4 files changed, 42 insertions(+), 2 deletions(-) + +diff --git a/Source/WebCore/html/HTMLMediaElement.h b/Source/WebCore/html/HTMLMediaElement.h +index b466dfc139d7..444f349df87b 100644 +--- modules/web/src/main/native/Source/WebCore/html/HTMLMediaElement.h ++++ modules/web/src/main/native/Source/WebCore/html/HTMLMediaElement.h +@@ -155,6 +155,7 @@ class HTMLMediaElement + virtual bool isVideo() const { return false; } + bool hasVideo() const override { return false; } + bool hasAudio() const override; ++ bool hasRenderer() const { return static_cast(renderer()); } + + static HashSet& allMediaElements(); + +diff --git a/Source/WebCore/style/StyleResolver.cpp b/Source/WebCore/style/StyleResolver.cpp +index 651f8f1e2d78..9333b83913a4 100644 +--- modules/web/src/main/native/Source/WebCore/css/StyleResolver.cpp ++++ modules/web/src/main/native/Source/WebCore/css/StyleResolver.cpp +@@ -103,7 +103,7 @@ Resolver::Resolver(Document& document) + if (view) + m_mediaQueryEvaluator = MediaQueryEvaluator { view->mediaType() }; + else +- m_mediaQueryEvaluator = MediaQueryEvaluator { "all" }; ++ m_mediaQueryEvaluator = MediaQueryEvaluator { }; + + if (root) { + m_rootDefaultStyle = styleForElement(*root, m_document.renderStyle(), nullptr, RuleMatchingBehavior::MatchOnlyUserAgentRules).renderStyle;