Revision: 144206 https://trac.macports.org/changeset/144206 Author: jeremyhu@macports.org Date: 2016-01-04 13:05:11 -0800 (Mon, 04 Jan 2016) Log Message: ----------- webkit2-gtk: New port for Webkit2 Added Paths: ----------- trunk/dports/www/webkit2-gtk/ trunk/dports/www/webkit2-gtk/Portfile trunk/dports/www/webkit2-gtk/files/ trunk/dports/www/webkit2-gtk/files/PR-152640.patch trunk/dports/www/webkit2-gtk/files/PR-152641.patch Added: trunk/dports/www/webkit2-gtk/Portfile =================================================================== --- trunk/dports/www/webkit2-gtk/Portfile (rev 0) +++ trunk/dports/www/webkit2-gtk/Portfile 2016-01-04 21:05:11 UTC (rev 144206) @@ -0,0 +1,160 @@ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 +# $Id$ + +# We have an umbrella radar tracking webkit-gtk issues on OS X. Please relate +# any future issues with this tracker. +# http://bugs.webkit.org/show_bug.cgi?id=126492 + +PortSystem 1.0 +PortGroup conflicts_build 1.0 +PortGroup compiler_blacklist_versions 1.0 +PortGroup cmake 1.0 + +name webkit2-gtk +version 2.11.2 +description Apple's WebKit2 HTML rendering library for GTK+3 (with additional support for GTK+2 plugins) +long_description ${description} +maintainers jeremyhu devans +categories www gnome +platforms darwin freebsd +license LGPL-2+ BSD +homepage http://webkitgtk.org/ +master_sites http://webkitgtk.org/releases/ + +use_xz yes +distname webkitgtk-${version} + +dist_subdir webkit-gtk + +checksums rmd160 d5c1f40440de2b5441d347b849e70727135a136c \ + sha256 852314ff7f461b2f2a4ddc2c4de17dc5b7a8d44e06ba210a0b546e1ff68e38bc + +depends_build port:pkgconfig \ + port:gperf \ + port:gtk-doc \ + port:python27 \ + port:py27-simplejson + +depends_lib port:atk \ + port:at-spi2-atk \ + port:bison \ + port:cairo \ + port:flex \ + port:fontconfig \ + port:freetype \ + port:enchant \ + port:geoclue2 \ + path:lib/pkgconfig/glib-2.0.pc:glib2 \ + port:gobject-introspection \ + port:gtk3 \ + port:harfbuzz-icu \ + port:hyphen \ + port:icu \ + port:libnotify \ + port:libpng \ + port:libsecret \ + port:libsoup \ + port:libxml2 \ + port:libxslt \ + port:mesa \ + port:sqlite3 \ + port:webp \ + port:xorg-libXt \ + port:zlib + +variant llvm37 conflicts llvm38 description {Use llvm-3.7} { + depends_lib-append port:llvm-3.7 + configure.args-append -DLLVM_CONFIG_EXE=${prefix}/bin/llvm-config-mp-3.7 +} +variant llvm38 conflicts llvm37 description {Use llvm-3.8} { + depends_lib-append port:llvm-3.8 + configure.args-append -DLLVM_CONFIG_EXE=${prefix}/bin/llvm-config-mp-3.8 +} +if {![variant_isset llvm37] && ![variant_isset llvm38]} { + default_variants-append +llvm37 +} + +# PR-152640.patch: https://bugs.webkit.org/show_bug.cgi?id=152640 +# PR-152641.patch: https://bugs.webkit.org/show_bug.cgi?id=152641 +patchfiles-append \ + PR-152640.patch \ + PR-152641.patch + +conflicts_build google-test + +configure.args-append \ + -DPORT=GTK \ + -DENABLE_X11_TARGET=ON \ + -DENABLE_QUARTZ_TARGET=OFF \ + -DENABLE_PLUGIN_PROCESS_GTK2=OFF \ + -DENABLE_VIDEO=OFF + +# https://bugs.webkit.org/show_bug.cgi?id=152650 +configure.args-append -DENABLE_INTROSPECTION=OFF + +# <rdar://problem/24031030> +configure.optflags -Os + +platform darwin { + pre-configure { + if {${configure.cxx_stdlib} eq "libstdc++"} { + ui_error "${subport} is not supported for this installation of MacPorts. It requires libc++ be selected as your C++ runtime. Please use ${subport}-2.0 instead" + error "unsupported configuration" + } + } +} + +# configure checks that we're clang 3.2, gcc 4.7, or better +compiler.blacklist-append gcc-3.3 gcc-4.0 apple-gcc-4.0 gcc-4.2 apple-gcc-4.2 llvm-gcc-4.2 macports-llvm-gcc-4.2 +compiler.blacklist-append macports-gcc-4.3 macports-gcc-4.4 macports-gcc-4.5 macports-gcc-4.6 +compiler.blacklist-append {clang < 425} + +# https://trac.macports.org/ticket/41560#comment:2 +configure.cflags-append -ftemplate-depth=256 +configure.cxxflags-append -ftemplate-depth=256 + +# see bug #24622 +variant quartz { + configure.args-delete \ + -DENABLE_QUARTZ_TARGET=OFF \ + -DENABLE_X11_TARGET=ON + + configure.args-append \ + -DENABLE_QUARTZ_TARGET=ON \ + -DENABLE_X11_TARGET=OFF \ + -DENABLE_OPENGL=OFF + + # TODO: See if this will build with OpenGL.framework + configure.args-delete --enable-webgl + depends_lib-delete \ + port:mesa \ + port:xorg-libXt +} + +variant video description {Enable HTML5 video support using gstreamer} { + depends_lib-append port:gstreamer1-gst-plugins-base + configure.args-delete -DENABLE_VIDEO=OFF + configure.args-append -DENABLE_VIDEO=ON +} + +variant gtk2 description {Enable support for GTK+2 plugins} { + depends_lib-append port:gtk2 + configure.args-delete -DENABLE_PLUGIN_PROCESS_GTK2=OFF + configure.args-append -DENABLE_PLUGIN_PROCESS_GTK2=ON +} + +default_variants +video +gtk2 + +post-destroot { + # https://bugs.webkit.org/show_bug.cgi?id=152651 + xinstall -m 755 ${worksrcpath}/bin/LLIntOffsetsExtractor ${destroot}${prefix}/libexec/webkit2gtk-4.0 + xinstall -m 755 ${worksrcpath}/bin/WebKitWebProcess ${destroot}${prefix}/libexec/webkit2gtk-4.0 + xinstall -m 755 ${worksrcpath}/bin/WebKitNetworkProcess ${destroot}${prefix}/libexec/webkit2gtk-4.0 + xinstall -m 755 ${worksrcpath}/lib/libwebkit2gtk-4.0.37.12.1.dylib ${destroot}${prefix}/lib + ln -s libwebkit2gtk-4.0.37.12.1.dylib ${destroot}${prefix}/lib/libwebkit2gtk-4.0.37.dylib + ln -s libwebkit2gtk-4.0.37.12.1.dylib ${destroot}${prefix}/lib/libwebkit2gtk-4.0.dylib +} + +livecheck.type regex +livecheck.url http://webkitgtk.org/releases/ +livecheck.regex "webkitgtk-(\\d+(?:\\.\\d+)*)" Property changes on: trunk/dports/www/webkit2-gtk/Portfile ___________________________________________________________________ Added: svn:keywords + Id Added: svn:eol-style + native Added: trunk/dports/www/webkit2-gtk/files/PR-152640.patch =================================================================== --- trunk/dports/www/webkit2-gtk/files/PR-152640.patch (rev 0) +++ trunk/dports/www/webkit2-gtk/files/PR-152640.patch 2016-01-04 21:05:11 UTC (rev 144206) @@ -0,0 +1,11 @@ +--- Source/JavaScriptCore/CMakeLists.txt.orig 2015-11-19 00:29:59.000000000 -0800 ++++ Source/JavaScriptCore/CMakeLists.txt 2016-01-01 14:41:56.000000000 -0800 +@@ -964,7 +964,7 @@ if (ENABLE_FTL_JIT) + + WEBKIT_WRAP_SOURCELIST(${llvmForJSC_SOURCES}) + add_library(llvmForJSC SHARED ${llvmForJSC_SOURCES} ${DERIVED_SOURCES_JAVASCRIPTCORE_DIR}/WebKitLLVMLibraryToken.h) +- target_link_libraries(llvmForJSC ${LLVM_STATIC_LIBRARIES} ${LLVM_SYSTEM_LIBRARIES} -Wl,--version-script=${JAVASCRIPTCORE_DIR}/llvm/library/libllvmForJSC.version) ++ target_link_libraries(llvmForJSC ${LLVM_STATIC_LIBRARIES} ${LLVM_SYSTEM_LIBRARIES}) + + # Added extra items for JavaScriptCore + list(APPEND JavaScriptCore_SYSTEM_INCLUDE_DIRECTORIES Added: trunk/dports/www/webkit2-gtk/files/PR-152641.patch =================================================================== --- trunk/dports/www/webkit2-gtk/files/PR-152641.patch (rev 0) +++ trunk/dports/www/webkit2-gtk/files/PR-152641.patch 2016-01-04 21:05:11 UTC (rev 144206) @@ -0,0 +1,27 @@ +--- Source/JavaScriptCore/llvm/library/LLVMOverrides.cpp.orig 2015-10-27 03:17:11.000000000 -0700 ++++ Source/JavaScriptCore/llvm/library/LLVMOverrides.cpp 2016-01-01 14:56:49.000000000 -0800 +@@ -36,24 +36,13 @@ void (*g_llvmTrapCallback)(const char* m + + // If LLVM tries to raise signals, abort, or fail an assertion, then let + // WebKit handle it instead of trapping. +-extern "C" int raise(int signal); + extern "C" void __assert_rtn(const char* function, const char* filename, int lineNumber, const char* expression) NO_RETURN; +-extern "C" void abort(void) NO_RETURN; + +-extern "C" int raise(int signal) +-{ +- g_llvmTrapCallback("raise(%d) called.", signal); +- return 0; +-} + extern "C" void __assert_rtn(const char* function, const char* filename, int lineNumber, const char* expression) + { + if (function) + g_llvmTrapCallback("Assertion failed: (%s), function %s, file %s, line %d.", expression, function, filename, lineNumber); + g_llvmTrapCallback("Assertion failed: (%s), file %s, line %d.", expression, filename, lineNumber); + } +-extern "C" void abort(void) +-{ +- g_llvmTrapCallback("abort() called."); +-} + + #endif // HAVE(LLVM)