aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2013-12-18 17:53:12 -0500
committerAnthony G. Basile <blueness@gentoo.org>2013-12-18 17:53:12 -0500
commit018cda2698a1bb4de7e4b1edf897585ce3eadc8e (patch)
tree03d0c24ab001e7cdeca409fb58bbeb856f2f7c27
parentStable x86 (diff)
downloadhardened-dev-018cda2698a1bb4de7e4b1edf897585ce3eadc8e.tar.gz
hardened-dev-018cda2698a1bb4de7e4b1edf897585ce3eadc8e.tar.bz2
hardened-dev-018cda2698a1bb4de7e4b1edf897585ce3eadc8e.zip
net-libs/webkit-gtk: remove nonstandard isnan
Package-Manager: portage-2.2.7 RepoMan-Options: --force Manifest-Sign-Key: 0xF52D4BBA
-rw-r--r--net-libs/webkit-gtk/Manifest29
-rwxr-xr-xnet-libs/webkit-gtk/files/gir-paxctl-lt-wrapper33
-rw-r--r--net-libs/webkit-gtk/files/webkit-gtk-1.11.90-gtk-docize-fix.patch10
-rw-r--r--net-libs/webkit-gtk/files/webkit-gtk-1.6.1-darwin-quartz.patch67
-rw-r--r--net-libs/webkit-gtk/files/webkit-gtk-1.6.3-paxctl-introspection.patch21
-rw-r--r--net-libs/webkit-gtk/files/webkit-gtk-1.7.90-test_garbage_collection.patch18
-rw-r--r--net-libs/webkit-gtk/files/webkit-gtk-2.0.4-remove-nonstandard-isnan.patch12
-rw-r--r--net-libs/webkit-gtk/metadata.xml12
-rw-r--r--net-libs/webkit-gtk/webkit-gtk-2.0.4-r99.ebuild278
9 files changed, 480 insertions, 0 deletions
diff --git a/net-libs/webkit-gtk/Manifest b/net-libs/webkit-gtk/Manifest
new file mode 100644
index 00000000..26f80f90
--- /dev/null
+++ b/net-libs/webkit-gtk/Manifest
@@ -0,0 +1,29 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
+AUX gir-paxctl-lt-wrapper 1015 SHA256 cb11d91ed69c0fcce2ca6502b715d0f846dd6b062ce98441a70a5b2d2f1e042a SHA512 8a0e5ae51ab38f1e27e18cc7a7166267bdb8d9ea814874ddbfc97c5022c555d23cffce496219f0827f9eac32a55d5d95ac353eb56b4439f915a8c34683a1989d WHIRLPOOL 937e28e599f50535f6c8461acc10982719856c5b760d5d592d86819601bca5c032b405f215ff525c0278ce6563704c385cb942e3e21093112dce33d0b280a72c
+AUX webkit-gtk-1.11.90-gtk-docize-fix.patch 422 SHA256 4ee4f54be107bf947b39266c868671670cf759ca52879382dddcef66168b841c SHA512 bb56020948d255f1e9de06528cebd921820862593b865cc6a2ba9e1c0e734dc7bb9bcbd5c6e8a735e4ee3afd906b0d17bc43a4a262a98f28a467c649d9d15a3c WHIRLPOOL 5793470581e9971eb699f464e15153b9080225d6e44011c5af14dd379da4d3f8c614a1029f9b98bcaa5d5ba649d0b542e8796fc564baf31cddafe675df317818
+AUX webkit-gtk-1.6.1-darwin-quartz.patch 1516 SHA256 34ad751c33e868d85b41e06ecbd085b61a81c42bd52063bada52bc59b9e05a23 SHA512 ca8c80d06aa93c07d658ebf3433f5fdee9225616740a075f5606df87e3b90a83b2c492777a8e30255cdd4f11f889be789544ac1fc4a39056e1929a72720347ea WHIRLPOOL 558250f3cf6de4d511a26afb0aeacc04b7049b3d0499362d320c035acac20932d7c16f6ff99d83833498296e3a21b5e2bab985b1ee5fca709754b582195a0fd1
+AUX webkit-gtk-1.6.3-paxctl-introspection.patch 929 SHA256 96efa5fcd823eca76f24c4d975dda0f7d9cfc439c71807941e895a70d0aea377 SHA512 5822a3a4044bba43e536c793237e8fa3141d6bb68d02f165222b8bd95e8f43e6b5c5ee5539fb980dcb55709c6b14526e14ed2c87e6c258d23fd54d40c6e0da13 WHIRLPOOL e7a0552801c26caca6a46ef64151111bc4d9a0569df53ab3ac0a21c81c1dd538d53ed15f9780fee32e122ec7a8d7903e9ace78983e67e8f4926bb8afc447804e
+AUX webkit-gtk-1.7.90-test_garbage_collection.patch 597 SHA256 f2ca641430a0ff09001391d649aaf135c151177ce879a29136c78a68f2dfc4d0 SHA512 5d6cbe8977918ef75d9d9d2b3c31815981e85ebe2ddf467577a3de5854aa123b884158fb4c3142ab69e028f32e3715f8d9ace56545236b6bf470af8a3dff42ec WHIRLPOOL c905f847ea9c75eca9f1ba127ab0a46d3c993bef23d5c40b75bfe4fa109bb01d8f3f181c933ac7440308d112bffc5c50f20af735d24b7781b43f742be5e9e888
+AUX webkit-gtk-2.0.4-remove-nonstandard-isnan.patch 762 SHA256 09b2fd00b8edbd179382538594e8559a9eb8e5d7606a693d6e940fbe7476d4e4 SHA512 05785fe80d0312fc2400cbbd966d9b781bf34c505b0d3da8aee801334f901db24db5db4a908b81e3150804a8ba97f2d7c4fd429b243531db235ad3361157e057 WHIRLPOOL a3b690844f51472084888cff4b6e109707e1be67c6958ac0da576a625b8abc0633ae200ad18e20b3abe3220dbe736e3b80e2bab12c2967cfec7ad8250c74b5c1
+DIST webkitgtk-2.0.4.tar.xz 9849620 SHA256 bd1550b7f6e1a55f803efe7d64438163ff6c04f02186002cb81d0c090aac734f SHA512 d5fd825d01f700df8eb7d9021673a2a551cb6b4ba9e35ad0038e3d4e76322c0e751e1cd4cd7293a3388d58b8cc18169fec75044412a428c886376609d52fc3ce WHIRLPOOL ce42703d535b97e9e65bc05eacf462292ddf0434da3f056698fabaab007e53a5ded8c02a31ce9c289e22dcf73308daad4b3ca54ef1be7904035e2482abea6ce1
+EBUILD webkit-gtk-2.0.4-r99.ebuild 8886 SHA256 b103889b6c42eabea81d7c8b374353263bd5968f193a097658eb8d859d68ebda SHA512 a370bb9b0798211b000f9cbfc6952a2d44a6c8d3fedbfaa06d9b1db9e1df38b6047b8657671574a4d56ef41e47cf4677a5bf4caab8c227d5a6e746fe8d5d8f58 WHIRLPOOL f721f8ae9a59364ef9298093c2f8b31b3906856c88a46a96e31d06e11eab24ef6754e59e862a016a078c04545cd615ca2aba29446f8050a2c7b646fec2e2a514
+MISC metadata.xml 633 SHA256 99b9115b4d9711d65a7fd50cc777c4b8b49147104bfa23a23a46eb478742d338 SHA512 bf0a77250072f9c44a142030574cdb223de5f17c0fe168c1e848065043daddcb9e38eaddd8bd85dfa925bfd22cf37386a1532c4fe272a1aea4d22d5e46981510 WHIRLPOOL 8bdb0cc7b4659e177ceedca853cdc5b5bec4daa4d9144d32410ba584cbfa6ee2dd09a75211c5ea3f1ea2f5c180e10b3cf6e3e8583c0a14bd2095c604fbbc4b60
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.22 (GNU/Linux)
+
+iQIcBAEBCAAGBQJSsidYAAoJEJOE+m71LUu6+hMP/iLAMR+eR1ctm9M7hFBnGb/0
+bFtFc1nJIv5svsX6FaMCQfwVAyC/3sQvnqiog5zRMAhEKIKYxtJP4MpTwhuhyITg
+DiIwSc46LWDfulzBZHQpjejKJF0QWDjoZE8EmEYWPzW17B+FCm8xur95MklO/7n1
+M2s+b1JeH8MjLO4bbN8Qy8wcK2R5zD0J/CHcC0ptxzEoFaSjdHUvFsM0wpuG8A/0
+/rA3bR/CwNBhDv3USI+Dgo0VzAE4UpbNkWkUWjtkvQwSRWArZL3xfIZPUSLnRgab
+HCM2RxP6eNh1HjHm4OKTSlexh6idOX7cb//eZwASg3S1QJtt7xk17mMUT+ypd45X
+jIuuRjJuAsz97Y2MEaAkeuFDAG4PElUcLGEvwVUo0LsSeVDyejtRsa3+0Mtg8Gf/
+gjdDK7E0E0FtYaR0Ea1ICb5LL2uBE6nzxxzk8a+ce79vcKl8vVzUxHHJwiCC797l
+xzREphK2RE8QUdxMDdFxyGojhIpvvBEfbvff99HY3JjBzdAeaaKPnYm7Fx2MNFTK
+BKaKFFah4ZosnoaQVKz4Pue31hyXwB315yHvw2vuc8DkeaxXf4Al8OmMh5JA2A5r
+Tsba2x63TycfnJmtA/pcikq9QfQzMltbz5MAjLqnfFsMMKmc4zOmWQmp5CdrYwpS
+q9cd5KxhwbD31cdNDs/G
+=vC3h
+-----END PGP SIGNATURE-----
diff --git a/net-libs/webkit-gtk/files/gir-paxctl-lt-wrapper b/net-libs/webkit-gtk/files/gir-paxctl-lt-wrapper
new file mode 100755
index 00000000..d4f270c2
--- /dev/null
+++ b/net-libs/webkit-gtk/files/gir-paxctl-lt-wrapper
@@ -0,0 +1,33 @@
+#!/bin/bash
+# Wrapper for $(LIBTOOL) that performs PaX marking on the dumper binary
+# generated by g-ir-scanner.
+# PaX marking code stolen from pax-utils.eclass
+
+flags=${1//-}; shift
+
+echo ${LIBTOOL} "$@"
+${LIBTOOL} "$@"
+
+retval=$?
+
+files=$(find . -path "*tmp-introspect*/.libs/*")
+
+if type -p paxctl > /dev/null; then
+ echo "PT PaX marking -${flags} ${files}"
+ for f in ${files}; do
+ # First, try modifying the existing PAX_FLAGS header
+ paxctl -q${flags} "${f}" && continue
+ # Second, try stealing the (unused under PaX) PT_GNU_STACK header
+ paxctl -qc${flags} "${f}" && continue
+ # Third, try pulling the base down a page, to create space and
+ # insert a PT_GNU_STACK header (works on ET_EXEC)
+ paxctl -qC${flags} "${f}" && continue
+ done
+elif type -p scanelf > /dev/null; then
+ # Try scanelf, the Gentoo swiss-army knife ELF utility
+ # Currently this sets PT if it can, no option to control what it does.
+ echo "Fallback PaX marking -${flags} ${files}"
+ scanelf -Xxz ${flags} ${files}
+fi
+
+exit ${retval}
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.11.90-gtk-docize-fix.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.11.90-gtk-docize-fix.patch
new file mode 100644
index 00000000..8f56ab22
--- /dev/null
+++ b/net-libs/webkit-gtk/files/webkit-gtk-1.11.90-gtk-docize-fix.patch
@@ -0,0 +1,10 @@
+--- configure.ac.old 2013-03-02 09:22:53.791750644 +0200
++++ configure.ac 2013-03-02 09:24:56.725213764 +0200
+@@ -24,6 +24,7 @@
+ m4_include([Source/autotools/SetupLibtool.m4])
+ m4_include([Source/autotools/ReadCommandLineArguments.m4])
+ m4_include([Source/autotools/FindDependencies.m4])
++GTK_DOC_CHECK([1.10])
+ m4_include([Source/autotools/SetupCompilerFlags.m4])
+ m4_include([Source/autotools/SetupAutoconfHeader.m4])
+
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.6.1-darwin-quartz.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.6.1-darwin-quartz.patch
new file mode 100644
index 00000000..5ad357e9
--- /dev/null
+++ b/net-libs/webkit-gtk/files/webkit-gtk-1.6.1-darwin-quartz.patch
@@ -0,0 +1,67 @@
+Original from:
+http://trac.macports.org/browser/trunk/dports/www/webkit-gtk/files/patch-quartz-WebCore-plugins-gtk-gtkxtbin.c.diff?format=txt
+http://trac.macports.org/browser/trunk/dports/www/webkit-gtk/files/patch-quartz-WebCore-plugins-gtk-PluginViewGtk.cpp.diff?format=txt
+
+Adapted for 1.6.1
+
+--- Source/WebCore/plugins/gtk/PluginViewGtk.cpp
++++ Source/WebCore/plugins/gtk/PluginViewGtk.cpp
+@@ -70,6 +70,8 @@
+ #endif
+ #include <gtk/gtk.h>
+
++#undef XP_UNIX
++
+ #if defined(XP_UNIX)
+ #include "RefPtrCairo.h"
+ #include "gtk2xtbin.h"
+@@ -439,9 +441,9 @@
+ event->setDefaultHandled();
+ }
+
+-#if defined(XP_UNIX)
+ void PluginView::handleFocusInEvent()
+ {
++#if defined(XP_UNIX)
+ if (!m_isStarted || m_status != PluginStatusLoadedSuccessfully)
+ return;
+
+@@ -454,10 +456,12 @@
+ event.detail = NotifyDetailNone;
+
+ dispatchNPEvent(npEvent);
++#endif
+ }
+
+ void PluginView::handleFocusOutEvent()
+ {
++#if defined(XP_UNIX)
+ if (!m_isStarted || m_status != PluginStatusLoadedSuccessfully)
+ return;
+
+@@ -470,8 +474,8 @@
+ event.detail = NotifyDetailNone;
+
+ dispatchNPEvent(npEvent);
+-}
+ #endif
++}
+
+ void PluginView::setParent(ScrollView* parent)
+ {
+--- Source/WebCore/plugins/gtk/gtk2xtbin.c
++++ Source/WebCore/plugins/gtk/gtk2xtbin.c
+@@ -41,7 +41,7 @@
+ * The GtkXtBin widget allows for Xt toolkit code to be used
+ * inside a GTK application.
+ */
+-
++#if 0
+ #include "GtkVersioning.h"
+ #include "xembed.h"
+ #include "gtk2xtbin.h"
+@@ -966,3 +966,4 @@
+
+ return;
+ }
++#endif
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.6.3-paxctl-introspection.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.6.3-paxctl-introspection.patch
new file mode 100644
index 00000000..c34cc402
--- /dev/null
+++ b/net-libs/webkit-gtk/files/webkit-gtk-1.6.3-paxctl-introspection.patch
@@ -0,0 +1,21 @@
+diff -ru a/Source/WebKit/gtk/GNUmakefile.am b/Source/WebKit/gtk/GNUmakefile.am
+--- a/Source/WebKit/gtk/GNUmakefile.am
++++ b/Source/WebKit/gtk/GNUmakefile.am
+@@ -269,7 +269,7 @@
+ WEBKIT_GIRSOURCES += WebKit-@WEBKITGTK_API_VERSION@.gir
+
+ $(WEBKIT_GIRSOURCES): $(G_IR_SCANNER) $(JSCORE_GIRSOURCES) libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la
+- $(AM_V_GEN)$(G_IR_SCANNER) -v --warn-all \
++ $(AM_V_GEN)LIBTOOL="$(LIBTOOL)" $(G_IR_SCANNER) -v --warn-all \
+ --symbol-prefix=webkit \
+ --identifier-prefix=WebKit \
+ --namespace=WebKit \
+@@ -280,7 +280,7 @@
+ --include=Soup-2.4 \
+ --library=webkitgtk-@WEBKITGTK_API_VERSION@ \
+ --library=javascriptcoregtk-@WEBKITGTK_API_VERSION@ \
+- --libtool="$(LIBTOOL)" \
++ --libtool="bash $(top_srcdir)/gir-paxctl-lt-wrapper m" \
+ --pkg=gobject-2.0 \
+ --pkg=gtk+-@GTK_API_VERSION@ \
+ --pkg=libsoup-2.4 \
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.7.90-test_garbage_collection.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.7.90-test_garbage_collection.patch
new file mode 100644
index 00000000..577c249e
--- /dev/null
+++ b/net-libs/webkit-gtk/files/webkit-gtk-1.7.90-test_garbage_collection.patch
@@ -0,0 +1,18 @@
+Garbage collection test fails intermittently if icedtea browser plugin is
+installed.
+
+--- a/Source/WebKit/gtk/tests/testdomdocument.c
++++ b/Source/WebKit/gtk/tests/testdomdocument.c
+@@ -353,12 +353,6 @@
+ test_dom_document_get_links,
+ dom_document_fixture_teardown);
+
+- g_test_add("/webkit/domdocument/test_garbage_collection",
+- DomDocumentFixture, HTML_DOCUMENT_LINKS,
+- dom_document_fixture_setup,
+- test_dom_document_garbage_collection,
+- dom_document_fixture_teardown);
+-
+ return g_test_run();
+ }
+
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-2.0.4-remove-nonstandard-isnan.patch b/net-libs/webkit-gtk/files/webkit-gtk-2.0.4-remove-nonstandard-isnan.patch
new file mode 100644
index 00000000..3941faf6
--- /dev/null
+++ b/net-libs/webkit-gtk/files/webkit-gtk-2.0.4-remove-nonstandard-isnan.patch
@@ -0,0 +1,12 @@
+diff -Naur webkitgtk-2.0.4.orig/Source/JavaScriptCore/offlineasm/cloop.rb webkitgtk-2.0.4/Source/JavaScriptCore/offlineasm/cloop.rb
+--- webkitgtk-2.0.4.orig/Source/JavaScriptCore/offlineasm/cloop.rb 2013-07-19 07:03:48.000000000 +0000
++++ webkitgtk-2.0.4/Source/JavaScriptCore/offlineasm/cloop.rb 2013-12-18 22:45:01.710757198 +0000
+@@ -398,7 +398,7 @@
+ end
+
+ def cloopEmitCompareDoubleWithNaNCheckAndBranch(operands, condition)
+- $asm.putc "if (std::isnan(#{operands[0].clValue(:double)}) || isnan(#{operands[1].clValue(:double)})"
++ $asm.putc "if (std::isnan(#{operands[0].clValue(:double)}) )"
+ $asm.putc " || (#{operands[0].clValue(:double)} #{condition} #{operands[1].clValue(:double)}))"
+ $asm.putc " goto #{operands[2].cLabel};"
+ end
diff --git a/net-libs/webkit-gtk/metadata.xml b/net-libs/webkit-gtk/metadata.xml
new file mode 100644
index 00000000..caf7f409
--- /dev/null
+++ b/net-libs/webkit-gtk/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>gnome</herd>
+ <use>
+ <flag name="coverage">Enable code coverage support</flag>
+ <flag name="geoloc">Enable geolocation support through <pkg>app-misc/geoclue</pkg></flag>
+ <flag name="libsecret">Enable libsecret support to store login credentials</flag>
+ <flag name="webgl">Build support for the WebGL HTML API using <pkg>virtual/opengl</pkg></flag>
+ <flag name="webkit2">Enable WebKit2 API that splits web content rendering and application UI into separate processes</flag>
+ </use>
+</pkgmetadata>
diff --git a/net-libs/webkit-gtk/webkit-gtk-2.0.4-r99.ebuild b/net-libs/webkit-gtk/webkit-gtk-2.0.4-r99.ebuild
new file mode 100644
index 00000000..ec3021b7
--- /dev/null
+++ b/net-libs/webkit-gtk/webkit-gtk-2.0.4-r99.ebuild
@@ -0,0 +1,278 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-libs/webkit-gtk/webkit-gtk-2.0.4.ebuild,v 1.8 2013/12/08 19:28:27 pacho Exp $
+
+EAPI="5"
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+inherit autotools check-reqs eutils flag-o-matic gnome2-utils pax-utils python-any-r1 toolchain-funcs versionator virtualx
+
+MY_P="webkitgtk-${PV}"
+DESCRIPTION="Open source web browser engine"
+HOMEPAGE="http://www.webkitgtk.org/"
+SRC_URI="http://www.webkitgtk.org/releases/${MY_P}.tar.xz"
+
+LICENSE="LGPL-2+ BSD"
+SLOT="3/25" # soname version
+KEYWORDS="amd64"
+IUSE="aqua coverage debug +geoloc +gstreamer libsecret +introspection +jit spell uclibc +webgl"
+# bugs 372493, 416331
+REQUIRED_USE="
+ geoloc? ( introspection )
+ introspection? ( gstreamer )
+"
+
+# use sqlite, svg by default
+# Aqua support in gtk3 is untested
+# gtk2 is needed for plugin process support
+# TODO: There's 3 acceleration backends: opengl, egl and gles2
+RDEPEND="
+ dev-libs/libxml2:2
+ dev-libs/libxslt
+ media-libs/harfbuzz:=[icu(+)]
+ media-libs/libwebp
+ virtual/jpeg:0=
+ >=media-libs/libpng-1.4:0=
+ >=x11-libs/cairo-1.10:=[X]
+ >=dev-libs/glib-2.36.0:2
+ >=x11-libs/gtk+-3.6.0:3[aqua=,introspection?]
+ >=dev-libs/icu-3.8.1-r1:=
+ >=net-libs/libsoup-2.42.0:2.4[introspection?]
+ dev-db/sqlite:3=
+ >=x11-libs/pango-1.30.0.0
+ x11-libs/libXrender
+ >=x11-libs/gtk+-2.24.10:2
+
+ geoloc? ( app-misc/geoclue )
+ gstreamer? (
+ >=media-libs/gstreamer-1.0.3:1.0
+ >=media-libs/gst-plugins-base-1.0.3:1.0 )
+ introspection? ( >=dev-libs/gobject-introspection-1.32.0 )
+ libsecret? ( app-crypt/libsecret )
+ spell? ( >=app-text/enchant-0.22:= )
+ webgl? (
+ virtual/opengl
+ x11-libs/libXcomposite
+ x11-libs/libXdamage )
+"
+
+# paxctl needed for bug #407085
+# Need real bison, not yacc
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ || (
+ virtual/rubygems[ruby_targets_ruby20]
+ virtual/rubygems[ruby_targets_ruby19]
+ virtual/rubygems[ruby_targets_ruby18] )
+ >=app-accessibility/at-spi2-core-2.5.3
+ >=dev-util/gtk-doc-am-1.10
+ dev-util/gperf
+ sys-devel/bison
+ >=sys-devel/flex-2.5.33
+ || ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.0 )
+ sys-devel/gettext
+ >=sys-devel/make-3.82-r4
+ virtual/pkgconfig
+
+ introspection? ( jit? ( sys-apps/paxctl ) )
+ test? (
+ dev-lang/python:2.7
+ dev-python/pygobject:3[python_targets_python2_7]
+ x11-themes/hicolor-icon-theme
+ jit? ( sys-apps/paxctl ) )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+CHECKREQS_DISK_BUILD="18G" # and even this might not be enough, bug #417307
+
+pkg_pretend() {
+ nvidia_check || die #463960
+
+ if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
+ einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS"
+ check-reqs_pkg_pretend
+ fi
+
+ if ! test-flag-CXX -std=c++11; then
+ die "You need at least GCC 4.7.x or Clang >= 3.0 for C++11-specific compiler flags"
+ fi
+}
+
+pkg_setup() {
+ nvidia_check || die #463960
+
+ # Check whether any of the debugging flags is enabled
+ if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
+ if is-flagq "-ggdb" && [[ ${WEBKIT_GTK_GGDB} != "yes" ]]; then
+ replace-flags -ggdb -g
+ ewarn "Replacing \"-ggdb\" with \"-g\" in your CFLAGS."
+ ewarn "Building ${PN} with \"-ggdb\" produces binaries which are too"
+ ewarn "large for current binutils releases (bug #432784) and has very"
+ ewarn "high temporary build space and memory requirements."
+ ewarn "If you really want to build ${PN} with \"-ggdb\", add"
+ ewarn "WEBKIT_GTK_GGDB=yes"
+ ewarn "to your make.conf file."
+ fi
+ einfo "You need to have at least 18GB of temporary build space available"
+ einfo "to build ${PN} with debugging CFLAGS. Note that it might still"
+ einfo "not be enough, as the total space requirements depend on the flags"
+ einfo "(-ggdb vs -g1) and enabled features."
+ check-reqs_pkg_setup
+ fi
+
+ [[ ${MERGE_TYPE} = "binary" ]] || python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ DOCS="ChangeLog NEWS" # other ChangeLog files handled by src_install
+
+ use uclibc && epatch "${FILESDIR}"/${P}-remove-nonstandard-isnan.patch
+
+ # intermediate MacPorts hack while upstream bug is not fixed properly
+ # https://bugs.webkit.org/show_bug.cgi?id=28727
+ use aqua && epatch "${FILESDIR}"/${PN}-1.6.1-darwin-quartz.patch
+
+ # Don't force -O2
+ sed -i 's/-O2//g' "${S}"/Source/autotools/SetupCompilerFlags.m4 || die
+
+ # Build-time segfaults under PaX with USE="introspection jit", bug #404215
+ if use introspection && use jit; then
+ epatch "${FILESDIR}/${PN}-1.6.3-paxctl-introspection.patch"
+ cp "${FILESDIR}/gir-paxctl-lt-wrapper" "${S}/" || die
+ fi
+
+ # We need to reset some variables to prevent permissions problems and failures
+ # like https://bugs.webkit.org/show_bug.cgi?id=35471 and bug #323669
+ gnome2_environment_reset
+
+ # Failing tests
+ # * webinspector -> https://bugs.webkit.org/show_bug.cgi?id=50744
+ # * keyevents is interactive
+ # * mimehandling test sometimes fails under Xvfb (works fine manually), bug #????
+ # * webdatasource test needs a network connection and intermittently fails with icedtea-web
+ # * webplugindatabase intermittently fails with icedtea-web, bug #????
+ sed -e '/Programs\/unittests\/testwebinspector/ d' \
+ -e '/Programs\/unittests\/testkeyevents/ d' \
+ -e '/Programs\/unittests\/testmimehandling/ d' \
+ -e '/Programs\/unittests\/testwebdatasource/ d' \
+ -e '/Programs\/unittests\/testwebplugindatabase/ d' \
+ -i Source/WebKit/gtk/GNUmakefile.am || die
+
+ if ! use gstreamer; then
+ # webkit2's TestWebKitWebView requires <video> support, bug #????
+ sed -e '/Programs\/WebKit2APITests\/TestWebKitWebView/ d' \
+ -i Source/WebKit2/UIProcess/API/gtk/tests/GNUmakefile.am || die
+ fi
+ # garbage collection test fails intermittently if icedtea-web is installed, bug #????
+ epatch "${FILESDIR}/${PN}-1.7.90-test_garbage_collection.patch"
+
+ # Respect CC, otherwise fails on prefix #395875
+ tc-export CC
+
+ # bug #459978, upstream bug #113397
+ epatch "${FILESDIR}/${PN}-1.11.90-gtk-docize-fix.patch"
+
+ # Prevent maintainer mode from being triggered during make
+ AT_M4DIR=Source/autotools eautoreconf
+}
+
+src_configure() {
+ # It doesn't compile on alpha without this in LDFLAGS, bug #????
+ use alpha && append-ldflags "-Wl,--no-relax"
+
+ # Sigbuses on SPARC with mcpu and co., bug #????
+ use sparc && filter-flags "-mvis"
+
+ # https://bugs.webkit.org/show_bug.cgi?id=42070 , #301634
+ use ppc64 && append-flags "-mminimal-toc"
+
+ # Try to use less memory, bug #469942
+ append-ldflags "-Wl,--no-keep-memory"
+
+ local myconf
+ # TODO: Check Web Audio support
+ # TODO: There's 3 acceleration backends: opengl, egl and gles2
+ # should somehow let user select between them?
+ #
+ # * dependency-tracking is required so parallel builds won't fail
+ myconf="
+ $(use_enable coverage)
+ $(use_enable debug)
+ $(use_enable geoloc geolocation)
+ $(use_enable spell spellcheck)
+ $(use_enable introspection)
+ $(use_enable gstreamer video)
+ $(use_enable jit)
+ $(use_enable libsecret credential_storage)
+ $(use_enable webgl)
+ --disable-egl
+ --disable-gles2
+ --with-gtk=3.0
+ --enable-accelerated-compositing
+ --enable-dependency-tracking
+ --disable-gtk-doc
+ "$(usex aqua "--with-font-backend=pango --with-target=quartz" "")
+ # Aqua support in gtk3 is untested
+
+ if has_version "virtual/rubygems[ruby_targets_ruby20]"; then
+ myconf="${myconf} RUBY=$(type -P ruby20)"
+ elif has_version "virtual/rubygems[ruby_targets_ruby19]"; then
+ myconf="${myconf} RUBY=$(type -P ruby19)"
+ else
+ myconf="${myconf} RUBY=$(type -P ruby18)"
+ fi
+
+ econf ${myconf}
+}
+
+#src_compile() {
+ # Avoid parallel make failure with -j9, bug #????
+# emake DerivedSources/WebCore/JSNode.h
+# default
+#}
+
+src_test() {
+ # Tests expect an out-of-source build in WebKitBuild
+ ln -s . WebKitBuild || die "ln failed"
+
+ # Prevents test failures on PaX systems
+ use jit && pax-mark m $(list-paxables Programs/*[Tt]ests/*) \
+ Programs/unittests/.libs/test*
+ unset DISPLAY
+ # Tests need virtualx, bug #294691, bug #310695
+ # Parallel tests sometimes fail
+ Xemake -j1 check
+}
+
+src_install() {
+ default
+
+ newdoc Source/WebKit/gtk/ChangeLog ChangeLog.gtk
+ newdoc Source/JavaScriptCore/ChangeLog ChangeLog.JavaScriptCore
+ newdoc Source/WebCore/ChangeLog ChangeLog.WebCore
+
+ prune_libtool_files
+
+ # Prevents crashes on PaX systems
+ use jit && pax-mark m "${ED}usr/bin/jsc-3"
+}
+
+nvidia_check() {
+ if [[ ${MERGE_TYPE} != "binary" ]] &&
+ use introspection &&
+ has_version '=x11-drivers/nvidia-drivers-325*' &&
+ [[ $(eselect opengl show 2> /dev/null) = "nvidia" ]]
+ then
+ eerror "${PN} freezes while compiling if x11-drivers/nvidia-drivers-325.* is"
+ eerror "used as the system OpenGL library."
+ eerror "You can either update to >=nvidia-drivers-331.13, or temporarily select"
+ eerror "Mesa as the system OpenGL library:"
+ eerror " # eselect opengl set xorg-x11"
+ eerror "See https://bugs.gentoo.org/463960 for more details."
+ eerror
+ return 1
+ fi
+}