From 04c8fa36f1e5fa674e0de6f6c69850e7df595656 Mon Sep 17 00:00:00 2001 From: Erik van Pienbroek Date: Sat, 7 Sep 2013 17:56:31 +0200 Subject: [PATCH] Update to 1.12.16 --- .gitignore | 1 + ...-try-to-build-util-sphinx-on-Windows.patch | 37 -------------- ...win32-Fix-image-surface-freeing-loop.patch | 31 ------------ ...-win32-Free-the-fallback-upon-finish.patch | 41 ---------------- 0002-win32-fix-corrupted-drawing.patch | 48 ------------------- mingw-cairo.spec | 17 +++---- sources | 2 +- 7 files changed, 8 insertions(+), 169 deletions(-) delete mode 100644 0001-build-sys-do-not-try-to-build-util-sphinx-on-Windows.patch delete mode 100644 0001-win32-Fix-image-surface-freeing-loop.patch delete mode 100644 0001-win32-Free-the-fallback-upon-finish.patch delete mode 100644 0002-win32-fix-corrupted-drawing.patch diff --git a/.gitignore b/.gitignore index 2ab790f..ef7ac83 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ cairo-1.8.10.tar.gz /cairo-1.12.8.tar.xz /cairo-1.12.10.tar.xz /cairo-1.12.14.tar.xz +/cairo-1.12.16.tar.xz diff --git a/0001-build-sys-do-not-try-to-build-util-sphinx-on-Windows.patch b/0001-build-sys-do-not-try-to-build-util-sphinx-on-Windows.patch deleted file mode 100644 index c29a835..0000000 --- a/0001-build-sys-do-not-try-to-build-util-sphinx-on-Windows.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 4b69464dde07f2d5c23664499cb61ac984344e66 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= -Date: Tue, 2 Apr 2013 21:00:20 +0200 -Subject: [PATCH] build-sys: do not try to build util/sphinx on Windows - -glib and dlfcn exist on windows, but sphinx code uses a lot of -Unix-only API - -Fixes the following build error on mingw-fedora - - CC cairo-boilerplate-system.lo -../../../util/cairo-sphinx/sphinx.c:8:22: fatal error: sys/mman.h: No such file or directory -compilation terminated. - -https://bugs.freedesktop.org/show_bug.cgi?id=63043 - -https://bugs.freedesktop.org/show_bug.cgi?id=63044 ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 928a169..9a9be60 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -797,7 +797,7 @@ CAIRO_ENABLE(symbol_lookup, symbol-lookup, auto, [ - PKG_CHECK_MODULES(glib, glib-2.0, have_glib=yes, have_glib=no) - AC_SUBST(glib_CFLAGS) - AC_SUBST(glib_LIBS) --AM_CONDITIONAL(BUILD_SPHINX, test "x$have_glib" = "xyes") -+AM_CONDITIONAL(BUILD_SPHINX, test "x$have_glib" = "xyes" -a "x$have_windows" = "xno") - - save_LIBS="$LIBS" - AC_CHECK_LIB(rt, shm_open, shm_LIBS="-lrt") --- -1.8.1.1.439.g50a6b54 - diff --git a/0001-win32-Fix-image-surface-freeing-loop.patch b/0001-win32-Fix-image-surface-freeing-loop.patch deleted file mode 100644 index 336125c..0000000 --- a/0001-win32-Fix-image-surface-freeing-loop.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 9fcd092ce1d59a19a74f48cdbdfbe71bd5f18f9e Mon Sep 17 00:00:00 2001 -From: Michael Henning -Date: Sun, 21 Jul 2013 22:55:57 -0400 -Subject: [PATCH] win32: Fix image surface freeing loop - -Previously, _cairo_win32_display_surface_finish could attempt to destroy -its patrent while the parent was in the process of being destroyed. -This simply checks to see if the parent's refcount is zero before freeing it. - -https://bugs.freedesktop.org/show_bug.cgi?id=63787 ---- - src/win32/cairo-win32-display-surface.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c -index 0390625..f4d27bb 100644 ---- a/src/win32/cairo-win32-display-surface.c -+++ b/src/win32/cairo-win32-display-surface.c -@@ -415,7 +415,8 @@ _cairo_win32_display_surface_finish (void *abstract_surface) - { - cairo_win32_display_surface_t *surface = abstract_surface; - -- if (surface->image) { -+ if (surface->image && -+ CAIRO_REFERENCE_COUNT_HAS_REFERENCE (&surface->image->ref_count)) { - /* Unhook ourselves first to avoid the double-unref from the image */ - to_image_surface(surface->image)->parent = NULL; - cairo_surface_finish (surface->image); --- -1.8.3.3 - diff --git a/0001-win32-Free-the-fallback-upon-finish.patch b/0001-win32-Free-the-fallback-upon-finish.patch deleted file mode 100644 index e170367..0000000 --- a/0001-win32-Free-the-fallback-upon-finish.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 3fcaddfefa2024e04217e302e72e15dd22014df0 Mon Sep 17 00:00:00 2001 -From: Chris Wilson -Date: Fri, 15 Feb 2013 14:04:21 +0000 -Subject: [PATCH 1/3] win32: Free the fallback upon finish -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Zozó Teki pointed out that we leak the fallback surface upon finish in -case it was active at the time as the preceding flush would only clear -the damage and not decouple the fallback surface. - -Signed-off-by: Chris Wilson ---- - src/win32/cairo-win32-display-surface.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/win32/cairo-win32-display-surface.c b/src/win32/cairo-win32-display-surface.c -index ccd285d..0390625 100644 ---- a/src/win32/cairo-win32-display-surface.c -+++ b/src/win32/cairo-win32-display-surface.c -@@ -429,6 +429,8 @@ _cairo_win32_display_surface_finish (void *abstract_surface) - DeleteDC (surface->win32.dc); - } - -+ _cairo_win32_display_surface_discard_fallback (surface); -+ - if (surface->initial_clip_rgn) - DeleteObject (surface->initial_clip_rgn); - -@@ -758,6 +760,7 @@ _cairo_win32_display_surface_discard_fallback (cairo_win32_display_surface_t *su - TRACE ((stderr, "%s (surface=%d)\n", - __FUNCTION__, surface->win32.base.unique_id)); - -+ cairo_surface_finish (surface->fallback); - cairo_surface_destroy (surface->fallback); - surface->fallback = NULL; - } --- -1.8.1.1.439.g50a6b54 - diff --git a/0002-win32-fix-corrupted-drawing.patch b/0002-win32-fix-corrupted-drawing.patch deleted file mode 100644 index 75e1b26..0000000 --- a/0002-win32-fix-corrupted-drawing.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 9f65974bdaafe700930c6cd7de85915a5450b431 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= -Date: Tue, 2 Apr 2013 00:32:56 +0200 -Subject: [PATCH 2/3] win32: fix corrupted drawing - -Fix src bitmap coordinates, which origin is bottom-left. This is -apparently a bug in StretchDIBits(), according to some comments on -MSDN API documentation. - -The backend used to have this coordinate change in the past: - - if (!StretchDIBits (dst->dc, - /* dst x,y,w,h */ - dst_r.x, dst_r.y + dst_r.height - 1, - dst_r.width, - (int) dst_r.height, - /* src x,y,w,h */ - src_r.x, src_extents.height - src_r.y + 1, - src_r.width, - (int) src_r.height, - src_image->data, - &bi, - DIB_RGB_COLORS, - SRCCOPY)) - -https://bugs.freedesktop.org/show_bug.cgi?id=61876 ---- - src/win32/cairo-win32-gdi-compositor.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/win32/cairo-win32-gdi-compositor.c b/src/win32/cairo-win32-gdi-compositor.c -index c70b0f9..073e889 100644 ---- a/src/win32/cairo-win32-gdi-compositor.c -+++ b/src/win32/cairo-win32-gdi-compositor.c -@@ -151,10 +151,11 @@ static cairo_bool_t upload_box (cairo_box_t *box, void *closure) - int y = _cairo_fixed_integer_part (box->p1.y); - int width = _cairo_fixed_integer_part (box->p2.x - box->p1.x); - int height = _cairo_fixed_integer_part (box->p2.y - box->p1.y); -+ int src_height = -cb->bi.bmiHeader.biHeight; - - TRACE ((stderr, "%s\n", __FUNCTION__)); - return StretchDIBits (cb->dst, x, y + height - 1, width, -height, -- x + cb->tx, height - (y + cb->ty - 1), -+ x + cb->tx, src_height - (y + cb->ty - 1), - width, -height, - cb->data, &cb->bi, - DIB_RGB_COLORS, SRCCOPY); --- -1.8.1.1.439.g50a6b54 - diff --git a/mingw-cairo.spec b/mingw-cairo.spec index 9a89de6..11b1295 100644 --- a/mingw-cairo.spec +++ b/mingw-cairo.spec @@ -1,8 +1,8 @@ %?mingw_package_header Name: mingw-cairo -Version: 1.12.14 -Release: 5%{?dist} +Version: 1.12.16 +Release: 1%{?dist} Summary: MinGW Windows Cairo library License: LGPLv2 or MPLv1.1 @@ -40,13 +40,8 @@ BuildRequires: mingw-w64-tools BuildRequires: autoconf automake libtool BuildRequires: pkgconfig -# cherry-picked from upcoming 1.12.15 -Patch1: 0001-win32-Free-the-fallback-upon-finish.patch -Patch2: 0002-win32-fix-corrupted-drawing.patch # https://bugs.freedesktop.org/show_bug.cgi?id=63043 Patch3: 0003-build-sys-do-not-try-to-build-util-sphinx-on-Windows.patch -# https://bugs.freedesktop.org/show_bug.cgi?id=63787 -Patch4: 0001-win32-Fix-image-surface-freeing-loop.patch %description MinGW Windows Cairo library. @@ -95,10 +90,7 @@ Static version of the MinGW Windows Cairo library. %prep %setup -q -n cairo-%{version} -%patch1 -p1 -%patch2 -p1 %patch3 -p1 -%patch4 -p1 autoreconf -vfi @@ -223,6 +215,9 @@ find $RPM_BUILD_ROOT -name "*.la" -delete %changelog +* Sat Sep 7 2013 Erik van Pienbroek - 1.12.16-1 +- Update to 1.12.16 + * Sun Aug 4 2013 Erik van Pienbroek - 1.12.14-5 - Fix assertion failure when using the latest gtk3 (RHBZ #991829, FD BZ #63787) @@ -280,7 +275,7 @@ find $RPM_BUILD_ROOT -name "*.la" -delete - Fix A1 format win32 surfaces - Reset clip region when writing fallback results -* Tue Jan 23 2012 Erik van Pienbroek - 1.10.2-6 +* Tue Jan 24 2012 Erik van Pienbroek - 1.10.2-6 - Rebuild against libpng 1.5 - Dropped .la files - Dropped unneeded RPM tags diff --git a/sources b/sources index 38df54c..4ee8e86 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -27b634113d0f52152d60ae8e2ec7daa7 cairo-1.12.14.tar.xz +a1304edcdc99282f478b995ee5f8f854 cairo-1.12.16.tar.xz