[arch-commits] Commit in gdk-pixbuf/repos (14 files)

Sergej Pupykin spupykin at nymeria.archlinux.org
Tue Apr 30 10:09:16 UTC 2013


    Date: Tuesday, April 30, 2013 @ 12:09:16
  Author: spupykin
Revision: 89608

archrelease: copy trunk to community-staging-i686, community-staging-x86_64

Added:
  gdk-pixbuf/repos/community-staging-i686/
  gdk-pixbuf/repos/community-staging-i686/PKGBUILD
    (from rev 89607, gdk-pixbuf/trunk/PKGBUILD)
  gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch)
  gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0-bmp_secure.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_secure.patch)
  gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0-loaders.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-loaders.patch)
  gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0.patch)
  gdk-pixbuf/repos/community-staging-i686/libpng15.patch
    (from rev 89607, gdk-pixbuf/trunk/libpng15.patch)
  gdk-pixbuf/repos/community-staging-x86_64/
  gdk-pixbuf/repos/community-staging-x86_64/PKGBUILD
    (from rev 89607, gdk-pixbuf/trunk/PKGBUILD)
  gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch)
  gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_secure.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_secure.patch)
  gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0-loaders.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-loaders.patch)
  gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0.patch
    (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0.patch)
  gdk-pixbuf/repos/community-staging-x86_64/libpng15.patch
    (from rev 89607, gdk-pixbuf/trunk/libpng15.patch)

---------------------------------------------------------------------+
 community-staging-i686/PKGBUILD                                     |   51 +++
 community-staging-i686/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch   |   48 +++
 community-staging-i686/gdk-pixbuf-0.22.0-bmp_secure.patch           |   19 +
 community-staging-i686/gdk-pixbuf-0.22.0-loaders.patch              |  134 ++++++++++
 community-staging-i686/gdk-pixbuf-0.22.0.patch                      |  129 +++++++++
 community-staging-i686/libpng15.patch                               |   30 ++
 community-staging-x86_64/PKGBUILD                                   |   51 +++
 community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch |   48 +++
 community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_secure.patch         |   19 +
 community-staging-x86_64/gdk-pixbuf-0.22.0-loaders.patch            |  134 ++++++++++
 community-staging-x86_64/gdk-pixbuf-0.22.0.patch                    |  129 +++++++++
 community-staging-x86_64/libpng15.patch                             |   30 ++
 12 files changed, 822 insertions(+)

Copied: gdk-pixbuf/repos/community-staging-i686/PKGBUILD (from rev 89607, gdk-pixbuf/trunk/PKGBUILD)
===================================================================
--- community-staging-i686/PKGBUILD	                        (rev 0)
+++ community-staging-i686/PKGBUILD	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,51 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch at gmail.com>
+# Contributor: dorphell <dorphell at archlinux.org>
+# Contributor: Judd Vinet <jvinet at zeroflux.org>
+
+pkgname=gdk-pixbuf
+pkgver=0.22.0
+pkgrel=11
+pkgdesc="Image loading and manipulation library"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL' 'LGPL')
+depends=('gtk' 'libtiff' 'libpng')
+makedepends=('libxt')
+options=('!libtool')
+source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.22/${pkgname}-${pkgver}.tar.bz2
+	gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
+	gdk-pixbuf-0.22.0-bmp_secure.patch
+	gdk-pixbuf-0.22.0-loaders.patch
+	gdk-pixbuf-0.22.0.patch
+	libpng15.patch)
+md5sums=('05fcb68ceaa338614ab650c775efc2f2'
+         'd1fb93f1ae994875158a7e0c108c36f8'
+         '5f59d5772b1482d885a180dbc581cf84'
+         '3cf31ae0509747f72ac27a9fd96109c2'
+         'e0f5f301ce958b7cea0be631ed7b8e56'
+         '16db4dc83d507ebcf15d1beb753a77bc')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  export SED=/bin/sed
+  patch -Np1 -i ${srcdir}/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
+  patch -Np0 -i ${srcdir}/gdk-pixbuf-0.22.0-bmp_secure.patch
+  patch -Np1 -i ${srcdir}/gdk-pixbuf-0.22.0-loaders.patch
+  patch -Np0 -i ${srcdir}/gdk-pixbuf-0.22.0.patch
+  patch -Np1 -i ${srcdir}/libpng15.patch
+  sed -i \
+    -e 's|AM_CONFIG_HEADER|AC_CONFIG_HEADER|' \
+    -e 's|AM_PROG_CC_STDC|AC_PROG_CC|' \
+    configure.in
+  libtoolize --force --copy --automake
+  autoreconf --force --install
+  ./configure --prefix=/usr --disable-gtk-doc
+  make
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
+  rm -rf ${pkgdir}/usr/share/gnome
+}

Copied: gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch)
===================================================================
--- community-staging-i686/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch	                        (rev 0)
+++ community-staging-i686/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,48 @@
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-bmp.c	2002-09-27 23:12:40.000000000 +0200
++++ gdk-pixbuf-0.22.0.patched/gdk-pixbuf/io-bmp.c	2005-03-30 01:33:06.000000000 +0200
+@@ -31,8 +31,6 @@
+ #include "gdk-pixbuf-private.h"
+ #include "gdk-pixbuf-io.h"
+ 
+-

+-
+ #if 0
+ /* If these structures were unpacked, they would define the two headers of the
+  * BMP file.  After them comes the palette, and then the image data.
+@@ -206,7 +204,7 @@
+ 
+ 	if (State == NULL)
+ 		return NULL;
+-
++ 	
+ 	while (feof(f) == 0) {
+ 		length = fread(membuf, 1, sizeof (membuf), f);
+ 		if (length > 0)
+@@ -245,11 +243,26 @@
+ static gboolean
+ grow_buffer (struct bmp_progressive_state *State)
+ {
+-  guchar *tmp = realloc (State->buff, State->BufferSize);
++  guchar *tmp;
++
++  if (State->BufferSize == 0) {
++#if 0
++    g_set_error (error,
++		 GDK_PIXBUF_ERROR,
++		 GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
++		 _("BMP image has bogus header data"));
++#endif
++    State->read_state = READ_STATE_ERROR;
++    return FALSE;
++  }
++
++  tmp = realloc (State->buff, State->BufferSize);
++
+   if (!tmp) {
+     State->read_state = READ_STATE_ERROR;
+     return FALSE;
+   }
++
+   State->buff = tmp;
+   return TRUE;
+ }

Copied: gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0-bmp_secure.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_secure.patch)
===================================================================
--- community-staging-i686/gdk-pixbuf-0.22.0-bmp_secure.patch	                        (rev 0)
+++ community-staging-i686/gdk-pixbuf-0.22.0-bmp_secure.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,19 @@
+Index: io-bmp.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gdk-pixbuf/io-bmp.c,v
+retrieving revision 1.41
+diff -u -p -r1.41 io-bmp.c
+--- gdk-pixbuf/io-bmp.c	13 Aug 2004 02:26:57 -0000	1.41
++++ gdk-pixbuf/io-bmp.c	20 Aug 2004 00:18:14 -0000
+@@ -876,8 +876,10 @@ DoCompressed(struct bmp_progressive_stat
+ 	guchar c;
+ 	gint idx;
+ 
+-	if (context->compr.y >= context->Header.height)
++	if (context->compr.y >= context->Header.height) {
++		context->BufferDone = 0;
+ 		return TRUE;
++	}
+ 
+ 	y = context->compr.y;
+ 

Copied: gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0-loaders.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-loaders.patch)
===================================================================
--- community-staging-i686/gdk-pixbuf-0.22.0-loaders.patch	                        (rev 0)
+++ community-staging-i686/gdk-pixbuf-0.22.0-loaders.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,134 @@
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c	2002-09-27 17:19:15.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c	2005-10-27 11:28:23.000000000 -0500
+@@ -330,6 +330,9 @@
+ 
+ 	State->HeaderSize+=I;
+ 
++ 	if (State->HeaderSize < 0)
++ 		return FALSE;
++ 
+  	if (State->HeaderSize>State->BytesInHeaderBuf) {
+ 		guchar *tmp=realloc(State->HeaderBuf,State->HeaderSize);
+ 		if (!tmp)
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c	2001-03-01 15:16:28.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c	2005-10-27 11:29:14.000000000 -0500
+@@ -243,8 +243,8 @@
+ 			break;
+ 		else {
+ 			if (numnames > 0) {
+-				space -= 1;
+-				strcat (color, " ");
++				strncat (color, " ", space);
++				space -= MIN (space, 1);
+ 			}
+ 
+ 			strncat (color, temp, space);
+@@ -281,7 +281,8 @@
+ 		/* Fall through to the xpm_read_string. */
+ 
+ 	case op_body:
+-		xpm_read_string (h->infile, &h->buffer, &h->buffer_size);
++		if(!xpm_read_string (h->infile, &h->buffer, &h->buffer_size))
++			return NULL;
+ 		return h->buffer;
+ 
+ 	default:
+@@ -317,13 +318,6 @@
+ 	return NULL;
+ }
+ 
+-/* Destroy notification function for the pixbuf */
+-static void
+-free_buffer (guchar *pixels, gpointer data)
+-{
+-	free (pixels);
+-}
+-
+ static gboolean
+ xpm_color_parse (const char *spec, XColor *color)
+ {
+@@ -342,7 +336,8 @@
+ 	gchar pixel_str[32];
+ 	GHashTable *color_hash;
+ 	_XPMColor *colors, *color, *fallbackcolor;
+-	guchar *pixels, *pixtmp;
++	guchar *pixtmp;
++	GdkPixbuf* pixbuf;
+ 
+ 	fallbackcolor = NULL;
+ 
+@@ -352,16 +347,33 @@
+ 		return NULL;
+ 	}
+ 	sscanf (buffer, "%d %d %d %d", &w, &h, &n_col, &cpp);
+-	if (cpp >= 32) {
+-		g_warning ("XPM has more than 31 chars per pixel.");
++	if (cpp <= 0 || cpp >= 32) {
++		g_warning ("XPM has invalid number of chars per pixel.");
+ 		return NULL;
+ 	}
++	if (n_col <= 0 ||
++	    n_col >= G_MAXINT / (cpp + 1) ||
++	    n_col >= G_MAXINT / sizeof (_XPMColor)) {
++		g_warning ("XPM file has invalid number of colors");
++  		return NULL;
++  	}
+ 
+ 	/* The hash is used for fast lookups of color from chars */
+ 	color_hash = g_hash_table_new (g_str_hash, g_str_equal);
+ 
+-	name_buf = g_new (gchar, n_col * (cpp + 1));
+-	colors = g_new (_XPMColor, n_col);
++ 	name_buf = g_new (gchar, n_col * (cpp + 1));
++ 	if (!name_buf) {
++		g_warning ("Cannot allocate memory for loading XPM image");
++ 		g_hash_table_destroy (color_hash);
++ 		return NULL;
++ 	}
++ 	colors = g_new (_XPMColor, n_col);
++ 	if (!colors) {
++		g_warning ("Cannot allocate memory for loading XPM image");
++ 		g_hash_table_destroy (color_hash);
++ 		g_free (name_buf);
++ 		return NULL;
++ 	}
+ 
+ 	for (cnt = 0; cnt < n_col; cnt++) {
+ 		gchar *color_name;
+@@ -397,12 +409,8 @@
+ 			fallbackcolor = color;
+ 	}
+ 
+-	if (is_trans)
+-		pixels = malloc (w * h * 4);
+-	else
+-		pixels = malloc (w * h * 3);
+-
+-	if (!pixels) {
++	pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, is_trans, 8, w, h);
++	if (!pixbuf) {
+ 		g_hash_table_destroy (color_hash);
+ 		g_free (colors);
+ 		g_free (name_buf);
+@@ -410,7 +418,7 @@
+ 	}
+ 
+ 	wbytes = w * cpp;
+-	pixtmp = pixels;
++	pixtmp = pixbuf->pixels;
+ 
+ 	for (ycnt = 0; ycnt < h; ycnt++) {
+ 		buffer = (*get_buf) (op_body, handle);
+@@ -443,9 +451,7 @@
+ 	g_free (colors);
+ 	g_free (name_buf);
+ 
+-	return gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, is_trans, 8,
+-					 w, h, is_trans ? (w * 4) : (w * 3),
+-					 free_buffer, NULL);
++	return pixbuf;
+ }
+ 
+ /* Shared library entry point for file loading */

Copied: gdk-pixbuf/repos/community-staging-i686/gdk-pixbuf-0.22.0.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0.patch)
===================================================================
--- community-staging-i686/gdk-pixbuf-0.22.0.patch	                        (rev 0)
+++ community-staging-i686/gdk-pixbuf-0.22.0.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,129 @@
+--- configure.in
++++ configure.in
+@@ -21,6 +21,7 @@
+ AC_PROG_CC
+ AC_ISC_POSIX
+ AM_PROG_CC_STDC
++AM_PROG_AS
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+@@ -147,18 +148,18 @@
+ dnl Test for libtiff
+   if test -z "$LIBTIFF"; then
+     AC_CHECK_LIB(tiff, TIFFReadScanline,
+-      AC_CHECK_HEADER(tiffio.h,
++      [AC_CHECK_HEADER(tiffio.h,
+         TIFF='tiff'; LIBTIFF='-ltiff',
+-        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+-      AC_CHECK_LIB(tiff, TIFFWriteScanline,
+-        AC_CHECK_HEADER(tiffio.h,
++        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
++        [AC_CHECK_HEADER(tiffio.h,
+           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
+-          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+-        AC_CHECK_LIB(tiff34, TIFFFlushData,
+-          AC_CHECK_HEADER(tiffio.h,
++          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++        [AC_CHECK_LIB(tiff34, TIFFFlushData,
++          [AC_CHECK_HEADER(tiffio.h,
+             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
+-            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+-        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm), -ljpeg -lz -lm), -lm)
++            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
+   fi
+ 
+ dnl Test for libjpeg
+@@ -191,9 +192,9 @@
+ dnl Test for libpng
+   if test -z "$LIBPNG"; then
+     AC_CHECK_LIB(png, png_read_info,
+-      AC_CHECK_HEADER(png.h,
++      [AC_CHECK_HEADER(png.h,
+         png_ok=yes,
+-        png_ok=no),
++        png_ok=no)],
+       AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
+     if test "$png_ok" = yes; then
+       AC_MSG_CHECKING([for png_structp in png.h])
+--- doc/Makefile.am
++++ doc/Makefile.am
+@@ -156,7 +156,7 @@
+ 	  done; \
+ 	fi)
+ #	  echo '-- Installing $(srcdir)/html/index.sgml' ; \
+-#	  $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
++#	  $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR);
+ 
+ #
+ # Require gtk-doc when making dist
+--- gdk-pixbuf.m4
++++ gdk-pixbuf.m4
+@@ -9,7 +9,7 @@
+ dnl AM_PATH_GDK_PIXBUF([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+ dnl Test for GDK_PIXBUF, and define GDK_PIXBUF_CFLAGS and GDK_PIXBUF_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_GDK_PIXBUF,
++AC_DEFUN([AM_PATH_GDK_PIXBUF],
+ [dnl 
+ dnl Get the cflags and libraries from the gdk-pixbuf-config script
+ dnl
+--- gdk-pixbuf/Makefile.am
++++ gdk-pixbuf/Makefile.am
+@@ -18,7 +18,7 @@
+ 
+ libgnomecanvaspixbuf_la_LDFLAGS = -version-info 1:0:0 $(EXTRA_GNOME_LIBS)
+ 
+-libexecdir = $(libdir)/gdk-pixbuf/loaders
++loaderdir = $(libdir)/gdk-pixbuf/loaders
+ 
+ #
+ # The PNG plugin.
+@@ -118,7 +118,7 @@
+ 
+ if BUILD_DYNAMIC_MODULES
+ 
+-libexec_LTLIBRARIES = 	\
++loader_LTLIBRARIES = 	\
+ 	$(PNG_LIB)	\
+ 	$(JPEG_LIB)	\
+ 	$(GIF_LIB)	\
+@@ -134,7 +134,7 @@
+ extra_sources = 
+ 
+ else
+-libexec_LTLIBRARIES = 
++loader_LTLIBRARIES = 
+ 
+ extra_sources = $(libpixbufloader_png_la_SOURCES) 	\
+ 		$(libpixbufloader_jpeg_la_SOURCES) 	\
+@@ -159,7 +159,7 @@
+ 	-I$(top_builddir)/gdk-pixbuf \
+ 	$(X11_CFLAGS) $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GNOME_CFLAGS)
+ 
+-AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(libexecdir)\""
++AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(loaderdir)\""
+ 
+ LDADDS = libgdk_pixbuf.la $(GLIB_LIBS) $(GTK_LIBS) $(STATIC_LIB_DEPS)
+ 
+@@ -211,7 +211,7 @@
+ 	gdk-pixbuf-parse-color.c	\
+ 	$(extra_sources)
+ 
+-libgdk_pixbuf_xlib_la_LDFLAGS = -version-info 2:0:0 -export-dynamic $(GLIB_LIBS) $(X11_LIBS)
++libgdk_pixbuf_xlib_la_LDFLAGS = -version-info 2:0:0 -export-dynamic $(GLIB_LIBS)
+ libgdk_pixbuf_xlib_la_LIBADD = pixops/libpixops.la libgdk_pixbuf.la $(GTK_LIBS)
+ 
+ 
+--- gdk-pixbuf/io-bmp.c
++++ gdk-pixbuf/io-bmp.c
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
++#include <stdlib.h>
+ #include "gdk-pixbuf-private.h"
+ #include "gdk-pixbuf-io.h"
+ 

Copied: gdk-pixbuf/repos/community-staging-i686/libpng15.patch (from rev 89607, gdk-pixbuf/trunk/libpng15.patch)
===================================================================
--- community-staging-i686/libpng15.patch	                        (rev 0)
+++ community-staging-i686/libpng15.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,30 @@
+diff -wbBur gdk-pixbuf-0.22.0/gdk-pixbuf/io-png.c gdk-pixbuf-0.22.0.my/gdk-pixbuf/io-png.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-png.c	2001-01-24 23:59:23.000000000 +0300
++++ gdk-pixbuf-0.22.0.my/gdk-pixbuf/io-png.c	2012-01-23 13:33:08.000000000 +0400
+@@ -175,7 +175,7 @@
+ 		return NULL;
+ 	}
+ 
+-	if (setjmp (png_ptr->jmpbuf)) {
++	if (setjmp (png_jmpbuf(png_ptr))) {
+ 		png_destroy_read_struct (&png_ptr, &info_ptr, &end_info);
+ 		return NULL;
+ 	}
+@@ -311,7 +311,7 @@
+                 return NULL;
+         }
+ 
+-	if (setjmp (lc->png_read_ptr->jmpbuf)) {
++	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
+ 		if (lc->png_info_ptr)
+ 			png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
+                 g_free(lc);
+@@ -366,7 +366,7 @@
+         lc->max_row_seen_in_chunk = -1;
+         
+         /* Invokes our callbacks as needed */
+-	if (setjmp (lc->png_read_ptr->jmpbuf)) {
++	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
+ 		return FALSE;
+ 	} else {
+ 		png_process_data(lc->png_read_ptr, lc->png_info_ptr, buf, size);

Copied: gdk-pixbuf/repos/community-staging-x86_64/PKGBUILD (from rev 89607, gdk-pixbuf/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD	                        (rev 0)
+++ community-staging-x86_64/PKGBUILD	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,51 @@
+# $Id$
+# Maintainer: Sergej Pupykin <pupykin.s+arch at gmail.com>
+# Contributor: dorphell <dorphell at archlinux.org>
+# Contributor: Judd Vinet <jvinet at zeroflux.org>
+
+pkgname=gdk-pixbuf
+pkgver=0.22.0
+pkgrel=11
+pkgdesc="Image loading and manipulation library"
+arch=('i686' 'x86_64')
+url="http://www.gtk.org/"
+license=('GPL' 'LGPL')
+depends=('gtk' 'libtiff' 'libpng')
+makedepends=('libxt')
+options=('!libtool')
+source=(ftp://ftp.gnome.org/pub/gnome/sources/${pkgname}/0.22/${pkgname}-${pkgver}.tar.bz2
+	gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
+	gdk-pixbuf-0.22.0-bmp_secure.patch
+	gdk-pixbuf-0.22.0-loaders.patch
+	gdk-pixbuf-0.22.0.patch
+	libpng15.patch)
+md5sums=('05fcb68ceaa338614ab650c775efc2f2'
+         'd1fb93f1ae994875158a7e0c108c36f8'
+         '5f59d5772b1482d885a180dbc581cf84'
+         '3cf31ae0509747f72ac27a9fd96109c2'
+         'e0f5f301ce958b7cea0be631ed7b8e56'
+         '16db4dc83d507ebcf15d1beb753a77bc')
+
+build() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  export SED=/bin/sed
+  patch -Np1 -i ${srcdir}/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
+  patch -Np0 -i ${srcdir}/gdk-pixbuf-0.22.0-bmp_secure.patch
+  patch -Np1 -i ${srcdir}/gdk-pixbuf-0.22.0-loaders.patch
+  patch -Np0 -i ${srcdir}/gdk-pixbuf-0.22.0.patch
+  patch -Np1 -i ${srcdir}/libpng15.patch
+  sed -i \
+    -e 's|AM_CONFIG_HEADER|AC_CONFIG_HEADER|' \
+    -e 's|AM_PROG_CC_STDC|AC_PROG_CC|' \
+    configure.in
+  libtoolize --force --copy --automake
+  autoreconf --force --install
+  ./configure --prefix=/usr --disable-gtk-doc
+  make
+}
+
+package() {
+  cd ${srcdir}/${pkgname}-${pkgver}
+  make DESTDIR=${pkgdir} install
+  rm -rf ${pkgdir}/usr/share/gnome
+}

Copied: gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch)
===================================================================
--- community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch	                        (rev 0)
+++ community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,48 @@
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-bmp.c	2002-09-27 23:12:40.000000000 +0200
++++ gdk-pixbuf-0.22.0.patched/gdk-pixbuf/io-bmp.c	2005-03-30 01:33:06.000000000 +0200
+@@ -31,8 +31,6 @@
+ #include "gdk-pixbuf-private.h"
+ #include "gdk-pixbuf-io.h"
+ 
+-

+-
+ #if 0
+ /* If these structures were unpacked, they would define the two headers of the
+  * BMP file.  After them comes the palette, and then the image data.
+@@ -206,7 +204,7 @@
+ 
+ 	if (State == NULL)
+ 		return NULL;
+-
++ 	
+ 	while (feof(f) == 0) {
+ 		length = fread(membuf, 1, sizeof (membuf), f);
+ 		if (length > 0)
+@@ -245,11 +243,26 @@
+ static gboolean
+ grow_buffer (struct bmp_progressive_state *State)
+ {
+-  guchar *tmp = realloc (State->buff, State->BufferSize);
++  guchar *tmp;
++
++  if (State->BufferSize == 0) {
++#if 0
++    g_set_error (error,
++		 GDK_PIXBUF_ERROR,
++		 GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
++		 _("BMP image has bogus header data"));
++#endif
++    State->read_state = READ_STATE_ERROR;
++    return FALSE;
++  }
++
++  tmp = realloc (State->buff, State->BufferSize);
++
+   if (!tmp) {
+     State->read_state = READ_STATE_ERROR;
+     return FALSE;
+   }
++
+   State->buff = tmp;
+   return TRUE;
+ }

Copied: gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_secure.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-bmp_secure.patch)
===================================================================
--- community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_secure.patch	                        (rev 0)
+++ community-staging-x86_64/gdk-pixbuf-0.22.0-bmp_secure.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,19 @@
+Index: io-bmp.c
+===================================================================
+RCS file: /cvs/gnome/gtk+/gdk-pixbuf/io-bmp.c,v
+retrieving revision 1.41
+diff -u -p -r1.41 io-bmp.c
+--- gdk-pixbuf/io-bmp.c	13 Aug 2004 02:26:57 -0000	1.41
++++ gdk-pixbuf/io-bmp.c	20 Aug 2004 00:18:14 -0000
+@@ -876,8 +876,10 @@ DoCompressed(struct bmp_progressive_stat
+ 	guchar c;
+ 	gint idx;
+ 
+-	if (context->compr.y >= context->Header.height)
++	if (context->compr.y >= context->Header.height) {
++		context->BufferDone = 0;
+ 		return TRUE;
++	}
+ 
+ 	y = context->compr.y;
+ 

Copied: gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0-loaders.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0-loaders.patch)
===================================================================
--- community-staging-x86_64/gdk-pixbuf-0.22.0-loaders.patch	                        (rev 0)
+++ community-staging-x86_64/gdk-pixbuf-0.22.0-loaders.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,134 @@
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c	2002-09-27 17:19:15.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c	2005-10-27 11:28:23.000000000 -0500
+@@ -330,6 +330,9 @@
+ 
+ 	State->HeaderSize+=I;
+ 
++ 	if (State->HeaderSize < 0)
++ 		return FALSE;
++ 
+  	if (State->HeaderSize>State->BytesInHeaderBuf) {
+ 		guchar *tmp=realloc(State->HeaderBuf,State->HeaderSize);
+ 		if (!tmp)
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c	2001-03-01 15:16:28.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c	2005-10-27 11:29:14.000000000 -0500
+@@ -243,8 +243,8 @@
+ 			break;
+ 		else {
+ 			if (numnames > 0) {
+-				space -= 1;
+-				strcat (color, " ");
++				strncat (color, " ", space);
++				space -= MIN (space, 1);
+ 			}
+ 
+ 			strncat (color, temp, space);
+@@ -281,7 +281,8 @@
+ 		/* Fall through to the xpm_read_string. */
+ 
+ 	case op_body:
+-		xpm_read_string (h->infile, &h->buffer, &h->buffer_size);
++		if(!xpm_read_string (h->infile, &h->buffer, &h->buffer_size))
++			return NULL;
+ 		return h->buffer;
+ 
+ 	default:
+@@ -317,13 +318,6 @@
+ 	return NULL;
+ }
+ 
+-/* Destroy notification function for the pixbuf */
+-static void
+-free_buffer (guchar *pixels, gpointer data)
+-{
+-	free (pixels);
+-}
+-
+ static gboolean
+ xpm_color_parse (const char *spec, XColor *color)
+ {
+@@ -342,7 +336,8 @@
+ 	gchar pixel_str[32];
+ 	GHashTable *color_hash;
+ 	_XPMColor *colors, *color, *fallbackcolor;
+-	guchar *pixels, *pixtmp;
++	guchar *pixtmp;
++	GdkPixbuf* pixbuf;
+ 
+ 	fallbackcolor = NULL;
+ 
+@@ -352,16 +347,33 @@
+ 		return NULL;
+ 	}
+ 	sscanf (buffer, "%d %d %d %d", &w, &h, &n_col, &cpp);
+-	if (cpp >= 32) {
+-		g_warning ("XPM has more than 31 chars per pixel.");
++	if (cpp <= 0 || cpp >= 32) {
++		g_warning ("XPM has invalid number of chars per pixel.");
+ 		return NULL;
+ 	}
++	if (n_col <= 0 ||
++	    n_col >= G_MAXINT / (cpp + 1) ||
++	    n_col >= G_MAXINT / sizeof (_XPMColor)) {
++		g_warning ("XPM file has invalid number of colors");
++  		return NULL;
++  	}
+ 
+ 	/* The hash is used for fast lookups of color from chars */
+ 	color_hash = g_hash_table_new (g_str_hash, g_str_equal);
+ 
+-	name_buf = g_new (gchar, n_col * (cpp + 1));
+-	colors = g_new (_XPMColor, n_col);
++ 	name_buf = g_new (gchar, n_col * (cpp + 1));
++ 	if (!name_buf) {
++		g_warning ("Cannot allocate memory for loading XPM image");
++ 		g_hash_table_destroy (color_hash);
++ 		return NULL;
++ 	}
++ 	colors = g_new (_XPMColor, n_col);
++ 	if (!colors) {
++		g_warning ("Cannot allocate memory for loading XPM image");
++ 		g_hash_table_destroy (color_hash);
++ 		g_free (name_buf);
++ 		return NULL;
++ 	}
+ 
+ 	for (cnt = 0; cnt < n_col; cnt++) {
+ 		gchar *color_name;
+@@ -397,12 +409,8 @@
+ 			fallbackcolor = color;
+ 	}
+ 
+-	if (is_trans)
+-		pixels = malloc (w * h * 4);
+-	else
+-		pixels = malloc (w * h * 3);
+-
+-	if (!pixels) {
++	pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, is_trans, 8, w, h);
++	if (!pixbuf) {
+ 		g_hash_table_destroy (color_hash);
+ 		g_free (colors);
+ 		g_free (name_buf);
+@@ -410,7 +418,7 @@
+ 	}
+ 
+ 	wbytes = w * cpp;
+-	pixtmp = pixels;
++	pixtmp = pixbuf->pixels;
+ 
+ 	for (ycnt = 0; ycnt < h; ycnt++) {
+ 		buffer = (*get_buf) (op_body, handle);
+@@ -443,9 +451,7 @@
+ 	g_free (colors);
+ 	g_free (name_buf);
+ 
+-	return gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, is_trans, 8,
+-					 w, h, is_trans ? (w * 4) : (w * 3),
+-					 free_buffer, NULL);
++	return pixbuf;
+ }
+ 
+ /* Shared library entry point for file loading */

Copied: gdk-pixbuf/repos/community-staging-x86_64/gdk-pixbuf-0.22.0.patch (from rev 89607, gdk-pixbuf/trunk/gdk-pixbuf-0.22.0.patch)
===================================================================
--- community-staging-x86_64/gdk-pixbuf-0.22.0.patch	                        (rev 0)
+++ community-staging-x86_64/gdk-pixbuf-0.22.0.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,129 @@
+--- configure.in
++++ configure.in
+@@ -21,6 +21,7 @@
+ AC_PROG_CC
+ AC_ISC_POSIX
+ AM_PROG_CC_STDC
++AM_PROG_AS
+ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+@@ -147,18 +148,18 @@
+ dnl Test for libtiff
+   if test -z "$LIBTIFF"; then
+     AC_CHECK_LIB(tiff, TIFFReadScanline,
+-      AC_CHECK_HEADER(tiffio.h,
++      [AC_CHECK_HEADER(tiffio.h,
+         TIFF='tiff'; LIBTIFF='-ltiff',
+-        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+-      AC_CHECK_LIB(tiff, TIFFWriteScanline,
+-        AC_CHECK_HEADER(tiffio.h,
++        AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++      [AC_CHECK_LIB(tiff, TIFFWriteScanline,
++        [AC_CHECK_HEADER(tiffio.h,
+           TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz',
+-          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+-        AC_CHECK_LIB(tiff34, TIFFFlushData,
+-          AC_CHECK_HEADER(tiffio.h,
++          AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++        [AC_CHECK_LIB(tiff34, TIFFFlushData,
++          [AC_CHECK_HEADER(tiffio.h,
+             TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz',
+-            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)),
+-        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm), -ljpeg -lz -lm), -lm)
++            AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))],
++        AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm)
+   fi
+ 
+ dnl Test for libjpeg
+@@ -191,9 +192,9 @@
+ dnl Test for libpng
+   if test -z "$LIBPNG"; then
+     AC_CHECK_LIB(png, png_read_info,
+-      AC_CHECK_HEADER(png.h,
++      [AC_CHECK_HEADER(png.h,
+         png_ok=yes,
+-        png_ok=no),
++        png_ok=no)],
+       AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm)
+     if test "$png_ok" = yes; then
+       AC_MSG_CHECKING([for png_structp in png.h])
+--- doc/Makefile.am
++++ doc/Makefile.am
+@@ -156,7 +156,7 @@
+ 	  done; \
+ 	fi)
+ #	  echo '-- Installing $(srcdir)/html/index.sgml' ; \
+-#	  $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR); \
++#	  $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR);
+ 
+ #
+ # Require gtk-doc when making dist
+--- gdk-pixbuf.m4
++++ gdk-pixbuf.m4
+@@ -9,7 +9,7 @@
+ dnl AM_PATH_GDK_PIXBUF([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
+ dnl Test for GDK_PIXBUF, and define GDK_PIXBUF_CFLAGS and GDK_PIXBUF_LIBS
+ dnl
+-AC_DEFUN(AM_PATH_GDK_PIXBUF,
++AC_DEFUN([AM_PATH_GDK_PIXBUF],
+ [dnl 
+ dnl Get the cflags and libraries from the gdk-pixbuf-config script
+ dnl
+--- gdk-pixbuf/Makefile.am
++++ gdk-pixbuf/Makefile.am
+@@ -18,7 +18,7 @@
+ 
+ libgnomecanvaspixbuf_la_LDFLAGS = -version-info 1:0:0 $(EXTRA_GNOME_LIBS)
+ 
+-libexecdir = $(libdir)/gdk-pixbuf/loaders
++loaderdir = $(libdir)/gdk-pixbuf/loaders
+ 
+ #
+ # The PNG plugin.
+@@ -118,7 +118,7 @@
+ 
+ if BUILD_DYNAMIC_MODULES
+ 
+-libexec_LTLIBRARIES = 	\
++loader_LTLIBRARIES = 	\
+ 	$(PNG_LIB)	\
+ 	$(JPEG_LIB)	\
+ 	$(GIF_LIB)	\
+@@ -134,7 +134,7 @@
+ extra_sources = 
+ 
+ else
+-libexec_LTLIBRARIES = 
++loader_LTLIBRARIES = 
+ 
+ extra_sources = $(libpixbufloader_png_la_SOURCES) 	\
+ 		$(libpixbufloader_jpeg_la_SOURCES) 	\
+@@ -159,7 +159,7 @@
+ 	-I$(top_builddir)/gdk-pixbuf \
+ 	$(X11_CFLAGS) $(GLIB_CFLAGS) $(GTK_CFLAGS) $(GNOME_CFLAGS)
+ 
+-AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(libexecdir)\""
++AM_CPPFLAGS = "-DPIXBUF_LIBDIR=\"$(loaderdir)\""
+ 
+ LDADDS = libgdk_pixbuf.la $(GLIB_LIBS) $(GTK_LIBS) $(STATIC_LIB_DEPS)
+ 
+@@ -211,7 +211,7 @@
+ 	gdk-pixbuf-parse-color.c	\
+ 	$(extra_sources)
+ 
+-libgdk_pixbuf_xlib_la_LDFLAGS = -version-info 2:0:0 -export-dynamic $(GLIB_LIBS) $(X11_LIBS)
++libgdk_pixbuf_xlib_la_LDFLAGS = -version-info 2:0:0 -export-dynamic $(GLIB_LIBS)
+ libgdk_pixbuf_xlib_la_LIBADD = pixops/libpixops.la libgdk_pixbuf.la $(GTK_LIBS)
+ 
+ 
+--- gdk-pixbuf/io-bmp.c
++++ gdk-pixbuf/io-bmp.c
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
++#include <stdlib.h>
+ #include "gdk-pixbuf-private.h"
+ #include "gdk-pixbuf-io.h"
+ 

Copied: gdk-pixbuf/repos/community-staging-x86_64/libpng15.patch (from rev 89607, gdk-pixbuf/trunk/libpng15.patch)
===================================================================
--- community-staging-x86_64/libpng15.patch	                        (rev 0)
+++ community-staging-x86_64/libpng15.patch	2013-04-30 10:09:16 UTC (rev 89608)
@@ -0,0 +1,30 @@
+diff -wbBur gdk-pixbuf-0.22.0/gdk-pixbuf/io-png.c gdk-pixbuf-0.22.0.my/gdk-pixbuf/io-png.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-png.c	2001-01-24 23:59:23.000000000 +0300
++++ gdk-pixbuf-0.22.0.my/gdk-pixbuf/io-png.c	2012-01-23 13:33:08.000000000 +0400
+@@ -175,7 +175,7 @@
+ 		return NULL;
+ 	}
+ 
+-	if (setjmp (png_ptr->jmpbuf)) {
++	if (setjmp (png_jmpbuf(png_ptr))) {
+ 		png_destroy_read_struct (&png_ptr, &info_ptr, &end_info);
+ 		return NULL;
+ 	}
+@@ -311,7 +311,7 @@
+                 return NULL;
+         }
+ 
+-	if (setjmp (lc->png_read_ptr->jmpbuf)) {
++	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
+ 		if (lc->png_info_ptr)
+ 			png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
+                 g_free(lc);
+@@ -366,7 +366,7 @@
+         lc->max_row_seen_in_chunk = -1;
+         
+         /* Invokes our callbacks as needed */
+-	if (setjmp (lc->png_read_ptr->jmpbuf)) {
++	if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
+ 		return FALSE;
+ 	} else {
+ 		png_process_data(lc->png_read_ptr, lc->png_info_ptr, buf, size);




More information about the arch-commits mailing list