Update to 1.12.16

This commit is contained in:
Erik van Pienbroek 2013-09-07 17:56:31 +02:00
parent 4b0faa4c53
commit 04c8fa36f1
7 changed files with 8 additions and 169 deletions

1
.gitignore vendored
View File

@ -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

View File

@ -1,37 +0,0 @@
From 4b69464dde07f2d5c23664499cb61ac984344e66 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>
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

View File

@ -1,31 +0,0 @@
From 9fcd092ce1d59a19a74f48cdbdfbe71bd5f18f9e Mon Sep 17 00:00:00 2001
From: Michael Henning <drawoc@darkrefraction.com>
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

View File

@ -1,41 +0,0 @@
From 3fcaddfefa2024e04217e302e72e15dd22014df0 Mon Sep 17 00:00:00 2001
From: Chris Wilson <chris@chris-wilson.co.uk>
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 <chris@chris-wilson.co.uk>
---
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

View File

@ -1,48 +0,0 @@
From 9f65974bdaafe700930c6cd7de85915a5450b431 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>
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

View File

@ -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 <epienbro@fedoraproject.org> - 1.12.16-1
- Update to 1.12.16
* Sun Aug 4 2013 Erik van Pienbroek <epienbro@fedoraproject.org> - 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 <epienbro@fedoraproject.org> - 1.10.2-6
* Tue Jan 24 2012 Erik van Pienbroek <epienbro@fedoraproject.org> - 1.10.2-6
- Rebuild against libpng 1.5
- Dropped .la files
- Dropped unneeded RPM tags

View File

@ -1 +1 @@
27b634113d0f52152d60ae8e2ec7daa7 cairo-1.12.14.tar.xz
a1304edcdc99282f478b995ee5f8f854 cairo-1.12.16.tar.xz