1 |
commit: 843751634fc300555c18e04451931d5018c69fc3 |
2 |
Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org> |
3 |
AuthorDate: Fri Apr 6 02:28:01 2012 +0000 |
4 |
Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com> |
5 |
CommitDate: Fri Apr 6 02:35:39 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=84375163 |
7 |
|
8 |
net-libs/webkit-gtk: 1.7.92 → 1.8.0 |
9 |
|
10 |
Enable optional webkit2 support, add patch for CVE-2011-3064, add |
11 |
workaround for paludis --disable-dependency-tracking bug (#406117, |
12 |
thanks to Maciej Piechotka). |
13 |
|
14 |
--- |
15 |
.../webkit-gtk-1.8.0-svgimagebuffer-clip.patch | 114 ++++++++++++++++++++ |
16 |
...92-r200.ebuild => webkit-gtk-1.8.0-r200.ebuild} | 9 ++- |
17 |
...92-r300.ebuild => webkit-gtk-1.8.0-r300.ebuild} | 16 +++- |
18 |
3 files changed, 135 insertions(+), 4 deletions(-) |
19 |
|
20 |
diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.8.0-svgimagebuffer-clip.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.8.0-svgimagebuffer-clip.patch |
21 |
new file mode 100644 |
22 |
index 0000000..e93059f |
23 |
--- /dev/null |
24 |
+++ b/net-libs/webkit-gtk/files/webkit-gtk-1.8.0-svgimagebuffer-clip.patch |
25 |
@@ -0,0 +1,114 @@ |
26 |
+Index: /trunk/Source/WebCore/ChangeLog |
27 |
+=================================================================== |
28 |
+--- /trunk/Source/WebCore/ChangeLog (revision 110561) |
29 |
++++ /trunk/Source/WebCore/ChangeLog (revision 110563) |
30 |
+@@ -1,2 +1,31 @@ |
31 |
++2012-03-13 Stephen Chenney <schenney@××××××××.org> |
32 |
++ |
33 |
++ Crash in WebCore::GraphicsContext::paintingDisabled |
34 |
++ https://bugs.webkit.org/show_bug.cgi?id=80669 |
35 |
++ |
36 |
++ Reviewed by Nikolas Zimmermann. |
37 |
++ |
38 |
++ The SVGImageBufferTools::clipToImageBuffer method deletes the clip |
39 |
++ image when it thinks it is not needed. However, there are cases when |
40 |
++ it is in fact still needed, particularly when the clip buffer is |
41 |
++ coming from higher up in the stack where it may be needed again. |
42 |
++ |
43 |
++ So this patch adds a flag to only allow deletion of the image buffer |
44 |
++ if it was created at the most recent call site. |
45 |
++ |
46 |
++ Tests: svg/custom/circular-clip-path-references-crash-expected.svg |
47 |
++ svg/custom/circular-clip-path-references-crash.svg |
48 |
++ |
49 |
++ * rendering/svg/RenderSVGResourceClipper.cpp: |
50 |
++ (WebCore::RenderSVGResourceClipper::applyClippingToContext): |
51 |
++ * rendering/svg/RenderSVGResourceGradient.cpp: |
52 |
++ (WebCore::clipToTextMask): |
53 |
++ * rendering/svg/RenderSVGResourceMasker.cpp: |
54 |
++ (WebCore::RenderSVGResourceMasker::applyResource): |
55 |
++ * rendering/svg/SVGImageBufferTools.cpp: |
56 |
++ (WebCore::SVGImageBufferTools::clipToImageBuffer): |
57 |
++ * rendering/svg/SVGImageBufferTools.h: |
58 |
++ (SVGImageBufferTools): |
59 |
++ |
60 |
+ 2012-03-13 Gavin Peters <gavinp@××××××××.org> |
61 |
+ |
62 |
+Index: /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp |
63 |
+=================================================================== |
64 |
+--- /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp (revision 109016) |
65 |
++++ /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp (revision 110563) |
66 |
+@@ -122,5 +122,5 @@ |
67 |
+ } |
68 |
+ |
69 |
+-void SVGImageBufferTools::clipToImageBuffer(GraphicsContext* context, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>& imageBuffer) |
70 |
++void SVGImageBufferTools::clipToImageBuffer(GraphicsContext* context, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>& imageBuffer, bool safeToClear) |
71 |
+ { |
72 |
+ ASSERT(context); |
73 |
+@@ -137,5 +137,5 @@ |
74 |
+ // When nesting resources, with objectBoundingBox as content unit types, there's no use in caching the |
75 |
+ // resulting image buffer as the parent resource already caches the result. |
76 |
+- if (!currentContentTransformation().isIdentity()) |
77 |
++ if (safeToClear && !currentContentTransformation().isIdentity()) |
78 |
+ imageBuffer.clear(); |
79 |
+ } |
80 |
+Index: /trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp |
81 |
+=================================================================== |
82 |
+--- /trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp (revision 106108) |
83 |
++++ /trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp (revision 110563) |
84 |
+@@ -99,5 +99,5 @@ |
85 |
+ |
86 |
+ targetRect = textRootBlock->repaintRectInLocalCoordinates(); |
87 |
+- SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, targetRect, imageBuffer); |
88 |
++ SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, targetRect, imageBuffer, false); |
89 |
+ |
90 |
+ AffineTransform matrix; |
91 |
+Index: /trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp |
92 |
+=================================================================== |
93 |
+--- /trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp (revision 106108) |
94 |
++++ /trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp (revision 110563) |
95 |
+@@ -87,5 +87,6 @@ |
96 |
+ ASSERT_UNUSED(resourceMode, resourceMode == ApplyToDefaultMode); |
97 |
+ |
98 |
+- if (!m_masker.contains(object)) |
99 |
++ bool missingMaskerData = !m_masker.contains(object); |
100 |
++ if (missingMaskerData) |
101 |
+ m_masker.set(object, new MaskerData); |
102 |
+ |
103 |
+@@ -117,5 +118,5 @@ |
104 |
+ return false; |
105 |
+ |
106 |
+- SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, maskerData->maskImage); |
107 |
++ SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, maskerData->maskImage, missingMaskerData); |
108 |
+ return true; |
109 |
+ } |
110 |
+Index: /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.h |
111 |
+=================================================================== |
112 |
+--- /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.h (revision 106157) |
113 |
++++ /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.h (revision 110563) |
114 |
+@@ -43,5 +43,5 @@ |
115 |
+ |
116 |
+ static void renderSubtreeToImageBuffer(ImageBuffer*, RenderObject*, const AffineTransform&); |
117 |
+- static void clipToImageBuffer(GraphicsContext*, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>&); |
118 |
++ static void clipToImageBuffer(GraphicsContext*, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>&, bool safeToClear); |
119 |
+ |
120 |
+ static void calculateTransformationToOutermostSVGCoordinateSystem(const RenderObject*, AffineTransform& absoluteTransform); |
121 |
+Index: /trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp |
122 |
+=================================================================== |
123 |
+--- /trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp (revision 109097) |
124 |
++++ /trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp (revision 110563) |
125 |
+@@ -156,5 +156,6 @@ |
126 |
+ const FloatRect& repaintRect, GraphicsContext* context) |
127 |
+ { |
128 |
+- if (!m_clipper.contains(object)) |
129 |
++ bool missingClipperData = !m_clipper.contains(object); |
130 |
++ if (missingClipperData) |
131 |
+ m_clipper.set(object, new ClipperData); |
132 |
+ |
133 |
+@@ -202,5 +203,5 @@ |
134 |
+ return false; |
135 |
+ |
136 |
+- SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, clipperData->clipMaskImage); |
137 |
++ SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, clipperData->clipMaskImage, missingClipperData); |
138 |
+ return true; |
139 |
+ } |
140 |
|
141 |
diff --git a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r200.ebuild b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r200.ebuild |
142 |
similarity index 94% |
143 |
rename from net-libs/webkit-gtk/webkit-gtk-1.7.92-r200.ebuild |
144 |
rename to net-libs/webkit-gtk/webkit-gtk-1.8.0-r200.ebuild |
145 |
index 2ba8aef..999fe29 100644 |
146 |
--- a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r200.ebuild |
147 |
+++ b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r200.ebuild |
148 |
@@ -10,7 +10,7 @@ inherit autotools eutils flag-o-matic gnome2-utils pax-utils python virtualx |
149 |
MY_P="webkit-${PV}" |
150 |
DESCRIPTION="Open source web browser engine" |
151 |
HOMEPAGE="http://www.webkitgtk.org/" |
152 |
-SRC_URI="http://www.webkitgtk.org/${MY_P}.tar.xz" |
153 |
+SRC_URI="http://www.webkitgtk.org/releases/${MY_P}.tar.xz" |
154 |
#SRC_URI="mirror://gentoo/${P}.tar.xz" |
155 |
|
156 |
LICENSE="LGPL-2 LGPL-2.1 BSD" |
157 |
@@ -82,6 +82,9 @@ src_prepare() { |
158 |
# TODO: FAILS TO APPLY! |
159 |
#use sparc && epatch "${FILESDIR}"/${PN}-1.2.3-fix-pool-sparc.patch |
160 |
|
161 |
+ # CVE-2011-3064, https://bugzilla.redhat.com/show_bug.cgi?id=807596 |
162 |
+ epatch "${FILESDIR}/${P}-svgimagebuffer-clip.patch" |
163 |
+ |
164 |
# intermediate MacPorts hack while upstream bug is not fixed properly |
165 |
# https://bugs.webkit.org/show_bug.cgi?id=28727 |
166 |
use aqua && epatch "${FILESDIR}"/${PN}-1.6.1-darwin-quartz.patch |
167 |
@@ -127,6 +130,10 @@ src_prepare() { |
168 |
|
169 |
# Prevent maintainer mode from being triggered during make |
170 |
AT_M4DIR=Source/autotools eautoreconf |
171 |
+ |
172 |
+ # Ugly hack of a workaround for paludis braindamage, bug #406117 |
173 |
+ # http://paludis.exherbo.org/trac/ticket/1230 |
174 |
+ sed -e '/ --\(en\|dis\)able-dependency-tracking/ d' -i configure || die |
175 |
} |
176 |
|
177 |
src_configure() { |
178 |
|
179 |
diff --git a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r300.ebuild b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r300.ebuild |
180 |
similarity index 92% |
181 |
rename from net-libs/webkit-gtk/webkit-gtk-1.7.92-r300.ebuild |
182 |
rename to net-libs/webkit-gtk/webkit-gtk-1.8.0-r300.ebuild |
183 |
index 743f185..7573a17 100644 |
184 |
--- a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r300.ebuild |
185 |
+++ b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r300.ebuild |
186 |
@@ -10,14 +10,14 @@ inherit autotools eutils flag-o-matic gnome2-utils pax-utils python virtualx |
187 |
MY_P="webkit-${PV}" |
188 |
DESCRIPTION="Open source web browser engine" |
189 |
HOMEPAGE="http://www.webkitgtk.org/" |
190 |
-SRC_URI="http://www.webkitgtk.org/${MY_P}.tar.xz" |
191 |
+SRC_URI="http://www.webkitgtk.org/releases/${MY_P}.tar.xz" |
192 |
#SRC_URI="mirror://gentoo/${P}.tar.xz" |
193 |
|
194 |
LICENSE="LGPL-2 LGPL-2.1 BSD" |
195 |
SLOT="3" |
196 |
KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~x86-macos" |
197 |
# geoclue |
198 |
-IUSE="aqua coverage debug doc +geoloc +gstreamer +introspection +jit spell +webgl" |
199 |
+IUSE="aqua coverage debug doc +geoloc +gstreamer +introspection +jit spell +webgl webkit2" |
200 |
# bug 372493 |
201 |
REQUIRED_USE="introspection? ( gstreamer )" |
202 |
|
203 |
@@ -50,6 +50,8 @@ RDEPEND=" |
204 |
spell? ( >=app-text/enchant-0.22 ) |
205 |
|
206 |
webgl? ( virtual/opengl ) |
207 |
+ |
208 |
+ webkit2? ( >=x11-libs/gtk+-2.13:2 ) |
209 |
" |
210 |
# paxctl needed for bug #407085 |
211 |
DEPEND="${RDEPEND} |
212 |
@@ -66,6 +68,7 @@ DEPEND="${RDEPEND} |
213 |
test? ( |
214 |
x11-themes/hicolor-icon-theme |
215 |
jit? ( sys-apps/paxctl ) ) |
216 |
+ webkit2? ( app-accessibility/at-spi2-core ) |
217 |
" |
218 |
# Need real bison, not yacc |
219 |
|
220 |
@@ -85,6 +88,9 @@ src_prepare() { |
221 |
# TODO: FAILS TO APPLY! |
222 |
#use sparc && epatch "${FILESDIR}"/${PN}-1.2.3-fix-pool-sparc.patch |
223 |
|
224 |
+ # CVE-2011-3064, https://bugzilla.redhat.com/show_bug.cgi?id=807596 |
225 |
+ epatch "${FILESDIR}/${P}-svgimagebuffer-clip.patch" |
226 |
+ |
227 |
# intermediate MacPorts hack while upstream bug is not fixed properly |
228 |
# https://bugs.webkit.org/show_bug.cgi?id=28727 |
229 |
use aqua && epatch "${FILESDIR}"/${PN}-1.6.1-darwin-quartz.patch |
230 |
@@ -130,6 +136,10 @@ src_prepare() { |
231 |
|
232 |
# Prevent maintainer mode from being triggered during make |
233 |
AT_M4DIR=Source/autotools eautoreconf |
234 |
+ |
235 |
+ # Ugly hack of a workaround for paludis braindamage, bug #406117 |
236 |
+ # http://paludis.exherbo.org/trac/ticket/1230 |
237 |
+ sed -e '/ --\(en\|dis\)able-dependency-tracking/ d' -i configure || die |
238 |
} |
239 |
|
240 |
src_configure() { |
241 |
@@ -157,9 +167,9 @@ src_configure() { |
242 |
$(use_enable gstreamer video) |
243 |
$(use_enable jit) |
244 |
$(use_enable webgl) |
245 |
+ $(use_enable webkit2) |
246 |
--enable-web-sockets |
247 |
--with-gtk=3.0 |
248 |
- --disable-webkit2 |
249 |
--enable-dependency-tracking |
250 |
$(use aqua && echo "--with-font-backend=pango --with-target=quartz")" |
251 |
# Aqua support in gtk3 is untested |