diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2013-12-18 17:53:12 -0500 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2013-12-18 17:53:12 -0500 |
commit | 018cda2698a1bb4de7e4b1edf897585ce3eadc8e (patch) | |
tree | 03d0c24ab001e7cdeca409fb58bbeb856f2f7c27 | |
parent | Stable x86 (diff) | |
download | hardened-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
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 +} |