[arch-commits] Commit in lib32-librsvg/trunk (PKGBUILD bgo759084.patch)

Felix Yan fyan at archlinux.org
Wed Feb 3 16:16:48 UTC 2016


    Date: Wednesday, February 3, 2016 @ 17:16:48
  Author: fyan
Revision: 160090

upgpkg: lib32-librsvg 2.40.13-1

Added:
  lib32-librsvg/trunk/bgo759084.patch
Modified:
  lib32-librsvg/trunk/PKGBUILD

-----------------+
 PKGBUILD        |   21 ++++++++++++++++++---
 bgo759084.patch |   53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 71 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-02-03 16:09:11 UTC (rev 160089)
+++ PKGBUILD	2016-02-03 16:16:48 UTC (rev 160090)
@@ -4,7 +4,7 @@
 # Contributor: Jan de Groot <jgc at archlinux.org>
 
 pkgname=lib32-librsvg
-pkgver=2.40.12
+pkgver=2.40.13
 pkgrel=1
 pkgdesc='A SVG viewing library (32-bit)'
 arch=('x86_64')
@@ -13,9 +13,16 @@
 depends=('lib32-gdk-pixbuf2' 'lib32-libcroco' 'lib32-pango' 'librsvg')
 makedepends=('gcc-multilib' 'gobject-introspection' 'intltool' 'python2' 'vala')
 install='librsvg.install'
-source=("https://download.gnome.org/sources/librsvg/${pkgver:0:4}/librsvg-${pkgver}.tar.xz")
-sha256sums=('ffe40c4378bf3899f4d679a475726bab03a127a5bdccddec86404cc329ffb550')
+source=("https://download.gnome.org/sources/librsvg/${pkgver:0:4}/librsvg-${pkgver}.tar.xz"
+        bgo759084.patch)
+sha256sums=('4d6ea93ec05f5dabe7262d711d246a0a99b2311e215360dd3dcabd6afe3b9804'
+            'd6cf5b318a89fb002a520c830c0666f0cb905d4d38322b2c41296fdd36d60b93')
 
+prepare() {
+  cd librsvg-$pkgver
+  patch -Np1 -i ../bgo759084.patch
+}
+
 build() {
   cd librsvg-${pkgver}
 
@@ -28,9 +35,17 @@
     --libdir='/usr/lib32' \
     --enable-vala \
     --disable-static
+
+  sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0 /g' -e 's/    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then/      func_append compile_command " -Wl,-O1,--as-needed"\n      func_append finalize_command " -Wl,-O1,--as-needed"\n\0/' libtool
+
   make
 }
 
+check() {
+  cd librsvg-$pkgver
+  make check
+}
+
 package() {
   cd librsvg-${pkgver}
 

Added: bgo759084.patch
===================================================================
--- bgo759084.patch	                        (rev 0)
+++ bgo759084.patch	2016-02-03 16:16:48 UTC (rev 160090)
@@ -0,0 +1,53 @@
+From d937c691678803ceda6be701587d997ccd03a1da Mon Sep 17 00:00:00 2001
+From: Benjamin Otte <otte at redhat.com>
+Date: Fri, 29 Jan 2016 12:49:55 +0100
+Subject: Don't crash when filters don't exist
+
+We put a new surface on the stack if a filter existed by name but we
+didn't pop it if the name didn't resolve to a real filter.
+
+New test: crash/bug759084.svg
+
+https://bugzilla.gnome.org/show_bug.cgi?id=759084
+---
+ rsvg-cairo-draw.c                  | 6 +++---
+ tests/fixtures/crash/bug759084.svg | 9 +++++++++
+ 2 files changed, 12 insertions(+), 3 deletions(-)
+ create mode 100644 tests/fixtures/crash/bug759084.svg
+
+diff --git a/rsvg-cairo-draw.c b/rsvg-cairo-draw.c
+index 4d8fbc2..4152cb7 100644
+--- a/rsvg-cairo-draw.c
++++ b/rsvg-cairo-draw.c
+@@ -819,10 +819,10 @@ rsvg_cairo_pop_render_stack (RsvgDrawingCtx * ctx)
+         cairo_surface_t *output;
+ 
+         filter = rsvg_acquire_node (ctx, state->filter);
+-        if (filter && RSVG_NODE_TYPE (filter) == RSVG_NODE_TYPE_FILTER) {
+-            output = render->surfaces_stack->data;
+-            render->surfaces_stack = g_list_delete_link (render->surfaces_stack, render->surfaces_stack);
++        output = render->surfaces_stack->data;
++        render->surfaces_stack = g_list_delete_link (render->surfaces_stack, render->surfaces_stack);
+ 
++        if (filter && RSVG_NODE_TYPE (filter) == RSVG_NODE_TYPE_FILTER) {
+             needs_destroy = TRUE;
+             surface = rsvg_filter_render ((RsvgFilter *) filter, output, ctx, &render->bbox, "2103");
+             /* Don't destroy the output surface, it's owned by child_cr */
+diff --git a/tests/fixtures/crash/bug759084.svg b/tests/fixtures/crash/bug759084.svg
+new file mode 100644
+index 0000000..9e8f8f1
+--- /dev/null
++++ b/tests/fixtures/crash/bug759084.svg
+@@ -0,0 +1,9 @@
++<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10">
++  <defs>
++    <filter id="filter">
++    </filter>
++  </defs>
++  <g filter="url(#filter)">
++    <rect fill="red" width="10" height="10" filter="url(#doesnotexist)" />
++  </g>
++</svg>
+-- 
+cgit v0.12
+



More information about the arch-commits mailing list