Tue Sep 16 21:22:34 2008 UTC ()
Add two patches from GIT:

- Fix bug in pixman_image_is_opaque().
- Fix for bug 17477 (see patch-ag).

While here, add missing .PHONY attribute for gen-symfile target.

PKGREVISION++, but no recursive dependency bump necessary.


(bjs)
diff -r1.19 -r1.20 pkgsrc/x11/pixman/Makefile
diff -r1.19 -r1.20 pkgsrc/x11/pixman/distinfo
diff -r0 -r1.4 pkgsrc/x11/pixman/patches/patch-af
diff -r0 -r1.1 pkgsrc/x11/pixman/patches/patch-ag

cvs diff -r1.19 -r1.20 pkgsrc/x11/pixman/Makefile (expand / switch to context diff)
--- pkgsrc/x11/pixman/Makefile 2008/09/06 20:13:13 1.19
+++ pkgsrc/x11/pixman/Makefile 2008/09/16 21:22:34 1.20
@@ -1,7 +1,8 @@
-# $NetBSD: Makefile,v 1.19 2008/09/06 20:13:13 bjs Exp $
+# $NetBSD: Makefile,v 1.20 2008/09/16 21:22:34 bjs Exp $
 #
 
 DISTNAME=	pixman-0.11.10
+PKGREVISION=	1
 CATEGORIES=	x11
 MASTER_SITES=	${MASTER_SITE_XORG:=lib/}
 EXTRACT_SUFX=	.tar.bz2
@@ -14,7 +15,7 @@
 
 GNU_CONFIGURE=	yes
 USE_LIBTOOL=	yes
-USE_TOOLS+=	pkg-config perl diff awk
+USE_TOOLS+=	pkg-config perl diff
 ###
 ### XXX Quiet, please!
 ###
@@ -45,6 +46,7 @@
 	${CP} ${FILESDIR}/pixman.sym ${WRKDIR}
 
 .if defined(NM) && defined(PKG_DEVELOPER)
+.PHONY: gen-symfile
 gen-symfile: build
 	${NM} -DP ${WRKSRC}/pixman/.libs/libpixman-1.so | 	\
 	${AWK} '/^pixman/ { print $$1 }' | 			\

cvs diff -r1.19 -r1.20 pkgsrc/x11/pixman/distinfo (expand / switch to context diff)
--- pkgsrc/x11/pixman/distinfo 2008/09/06 20:09:15 1.19
+++ pkgsrc/x11/pixman/distinfo 2008/09/16 21:22:34 1.20
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.19 2008/09/06 20:09:15 bjs Exp $
+$NetBSD: distinfo,v 1.20 2008/09/16 21:22:34 bjs Exp $
 
 SHA1 (pixman-0.11.10.tar.bz2) = d4468ac46056185b2d0a0fe94bc9a2e496d44365
 RMD160 (pixman-0.11.10.tar.bz2) = 8d7350e8d9e995a1f977e03e7a66cdd19e851cb0
@@ -8,3 +8,5 @@
 SHA1 (patch-ac) = c798e52ecd8fc2a5788552df0a0842f524705126
 SHA1 (patch-ad) = b2fa221652bc5f8bec000e071417b0180816a451
 SHA1 (patch-ae) = 5690db2799e3750d54cf1cb20bd5734a245f8eb8
+SHA1 (patch-af) = cbd2be6b3f5ae398c38255b974542ab2e4546f52
+SHA1 (patch-ag) = 61b5714db4e849fa7d40279f606e86e261270975

File Added: pkgsrc/x11/pixman/patches/Attic/patch-af
$NetBSD: patch-af,v 1.4 2008/09/16 21:22:34 bjs Exp $

git ref:00f3d6ef22b5a062323208fd540a17ca65dca42b (to vers 0.11.10)
 
Fix bug in pixman_image_is_opaque().

--- pixman/pixman-image.c.orig	2008-06-13 15:51:00.000000000 -0400
+++ pixman/pixman-image.c
@@ -818,6 +818,10 @@ pixman_image_is_opaque(pixman_image_t *i
 
         if (image->common.transform)
             return FALSE;
+
+	/* Gradients do not necessarily cover the entire compositing area */
+	if (image->type == LINEAR || image->type == CONICAL || image->type == RADIAL)
+	    return FALSE;
     }
 
      return TRUE;

File Added: pkgsrc/x11/pixman/patches/Attic/patch-ag
$NetBSD: patch-ag,v 1.1 2008/09/16 21:22:34 bjs Exp $

Fix for bug 17477.

over_2x128 was changing the alphaLo and alphaHi arguments, causing
stripes.

--- pixman/pixman-sse2.c.orig	2008-09-03 19:29:40.000000000 -0400
+++ pixman/pixman-sse2.c
@@ -244,9 +244,11 @@ invertColors_2x128 (__m128i dataLo, __m1
 static inline void
 over_2x128 (__m128i* srcLo, __m128i* srcHi, __m128i* alphaLo, __m128i* alphaHi, __m128i* dstLo, __m128i* dstHi)
 {
-    negate_2x128 (*alphaLo, *alphaHi, alphaLo, alphaHi);
+    __m128i t1, t2;
 
-    pixMultiply_2x128 (dstLo, dstHi, alphaLo, alphaHi, dstLo, dstHi);
+    negate_2x128 (*alphaLo, *alphaHi, &t1, &t2);
+
+    pixMultiply_2x128 (dstLo, dstHi, &t1, &t2, dstLo, dstHi);
 
     *dstLo = _mm_adds_epu8 (*srcLo, *dstLo);
     *dstHi = _mm_adds_epu8 (*srcHi, *dstHi);