Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=c5d428143ae13c7300ec6a07dc8a609bed5c1ccb

commit c5d428143ae13c7300ec6a07dc8a609bed5c1ccb
Author: crazy <[EMAIL PROTECTED]>
Date:   Sun Oct 14 21:58:22 2007 +0200

gdk-pixbuf-0.22.0-3-i686
* moved to gnome-extra

diff --git a/source/gnome-extra/gdk-pixbuf/FrugalBuild 
b/source/gnome-extra/gdk-pixbuf/FrugalBuild
new file mode 100644
index 0000000..ae4cc8b
--- /dev/null
+++ b/source/gnome-extra/gdk-pixbuf/FrugalBuild
@@ -0,0 +1,30 @@
+# Compiling Time: 0.30 SBU
+# Maintainer: Bence Nagy <[EMAIL PROTECTED]>
+
+pkgname=gdk-pixbuf
+pkgver=0.22.0
+pkgrel=3
+pkgdesc="Image loading and manipulation library"
+depends=('libtiff' 'libjpeg' 'gtk+' 'libpng')
+groups=('gnome-extra')
+archs=('i686' 'x86_64')
+url="http://developer.gnome.org/arch/imaging/gdkpixbuf.html";
+Finclude gnome
+source=([EMAIL PROTECTED] tons-of-patches-from-fedora.patch)
+sha1sums=('495324afb5abebc14567ffd5a6cd72333bcc7f5b' \
+         '62fca9a9ae67420f8ada40e2a842fcf5b7119f1d')
+
+build() {
+    Fcd
+    Fpatchall
+    # Need this, else we got relink errors for loader .so's
+    Facu
+    cp -a /usr/share/automake/missing ./missing || Fdie
+    libtoolize -c -f || Fdie
+    aclocal || Fdie
+    autoconf || Fdie
+    Fmake --disable-gtk-doc
+    Fmakeinstall
+}
+
+# optimization OK
diff --git a/source/gnome-extra/gdk-pixbuf/tons-of-patches-from-fedora.patch 
b/source/gnome-extra/gdk-pixbuf/tons-of-patches-from-fedora.patch
new file mode 100644
index 0000000..49c7be9
--- /dev/null
+++ b/source/gnome-extra/gdk-pixbuf/tons-of-patches-from-fedora.patch
@@ -0,0 +1,409 @@
+diff -Naur gdk-pixbuf-0.22.0.orig/configure.in gdk-pixbuf-0.22.0/configure.in
+--- gdk-pixbuf-0.22.0.orig/configure.in        2006-08-24 22:42:29.000000000 
+0200
++++ gdk-pixbuf-0.22.0/configure.in     2006-08-24 22:44:01.000000000 +0200
+@@ -48,7 +48,7 @@
+ AC_SUBST(STRIP_BEGIN)
+ AC_SUBST(STRIP_END)
+
+-AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
++AC_PATH_PROG(GNOME_CONFIG,no-gnome-config-here,no)
+ if test x$GNOME_CONFIG != xno; then
+       echo "Building the GnomeCanvasPixbuf library"
+       GNOME_LIBS=`$GNOME_CONFIG --libs gnomeui`
+@@ -129,7 +129,7 @@
+ AC_MSG_CHECKING([for location of rgb.txt database])
+
+ dnl default to this..
+-path_rgb_txt=/usr/lib/X11/rgb.txt
++path_rgb_txt=/usr/share/X11/rgb.txt
+
+ if test -r ${x_libraries}/X11/rgb.txt; then
+   path_rgb_txt="${x_libraries}/X11/rgb.txt"
+@@ -147,18 +147,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 +191,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])
+diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-bmp.c 
gdk-pixbuf-0.22.0/gdk-pixbuf/io-bmp.c
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-bmp.c 2006-08-24 22:42:29.000000000 
+0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-bmp.c      2006-08-24 22:43:43.000000000 
+0200
+@@ -129,6 +129,7 @@
+       guint depth;
+       guint Negative;         /* Negative = 1 -> top down BMP,
+                                  Negative = 0 -> bottom up BMP */
++      guint  n_colors;
+ };
+
+ /* Data needed for the "state" during decompression */
+@@ -153,8 +154,8 @@
+       guint Lines;            /* # of finished lines */
+
+       guchar *buff;
+-      gint BufferSize;
+-      gint BufferDone;
++      guint BufferSize;
++      guint BufferDone;
+
+       guchar (*Colormap)[3];
+
+@@ -245,7 +246,14 @@
+ static gboolean
+ grow_buffer (struct bmp_progressive_state *State)
+ {
+-  guchar *tmp = realloc (State->buff, State->BufferSize);
++  guchar *tmp;
++
++  if (State->BufferSize == 0) {
++    State->read_state = READ_STATE_ERROR;
++    return FALSE;
++  }
++
++  tmp = realloc (State->buff, State->BufferSize);
+   if (!tmp) {
+     State->read_state = READ_STATE_ERROR;
+     return FALSE;
+@@ -258,6 +266,8 @@
+ DecodeHeader (unsigned char *BFH, unsigned char *BIH,
+             struct bmp_progressive_state *State)
+ {
++      gint clrUsed;
++
+       g_assert (State->read_state == READ_STATE_HEADERS);
+
+         /* FIXME this is totally unrobust against bogus image data. */
+@@ -295,6 +305,23 @@
+               return FALSE;
+       }
+
++      clrUsed = (int) (BIH[35] << 24) + (BIH[34] << 16) + (BIH[33] << 8) + 
(BIH[32]);
++      if (clrUsed != 0)
++              State->Header.n_colors = clrUsed;
++      else
++            State->Header.n_colors = 1 << State->Header.depth;
++
++      if (State->Header.n_colors > 1 << State->Header.depth) {
++#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;
++      }
++
+       State->Type = State->Header.depth;      /* This may be less trivial 
someday */
+
+       /* Negative heights indicates bottom-down pixelorder */
+@@ -422,16 +449,25 @@
+               struct bmp_progressive_state *State)
+ {
+       gint i;
+-
++      gint samples;
++
+       g_assert (State->read_state == READ_STATE_PALETTE);
+
++      samples = (State->Header.size == 12 ? 3 : 4);
++      if (State->BufferSize < State->Header.n_colors * samples) {
++              State->BufferSize = State->Header.n_colors * samples;
++              if (!grow_buffer (State))
++                      return FALSE;
++              return TRUE;
++      }
++
+       State->Colormap = g_malloc ((1 << State->Header.depth) * sizeof 
(*State->Colormap));
+
+-      for (i = 0; i < (1 << State->Header.depth); i++)
++      for (i = 0; i < State->Header.n_colors; i++)
+       {
+-              State->Colormap[i][0] = buff[i * (State->Header.size == 12 ? 3 
: 4)];
+-              State->Colormap[i][1] = buff[i * (State->Header.size == 12 ? 3 
: 4) + 1];
+-              State->Colormap[i][2] = buff[i * (State->Header.size == 12 ? 3 
: 4) + 2];
++              State->Colormap[i][0] = buff[i * samples];
++              State->Colormap[i][1] = buff[i * samples + 1];
++              State->Colormap[i][2] = buff[i * samples + 2];
+       }
+
+       State->read_state = READ_STATE_DATA;
+@@ -870,8 +906,18 @@
+       guchar c;
+       gint idx;
+
+-      if (context->compr.y >= context->Header.height)
++      /* context->compr.y might be past the last line because we are
++       * on padding past the end of a valid data, or we might have hit
++       * out-of-bounds data. Either way we just eat-and-ignore the
++       * rest of the file. Doing the check only here and not when
++       * we change y below is fine since BufferSize is always 2 here
++       * and the BMP file format always starts new data on 16-bit
++       * boundaries.
++       */
++      if (context->compr.y >= context->Header.height) {
++              context->BufferDone = 0;
+               return TRUE;
++      }
+
+       y = context->compr.y;
+
+diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-ico.c 
gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-ico.c 2006-08-24 22:42:29.000000000 
+0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c      2006-08-24 22:43:53.000000000 
+0200
+@@ -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)
+@@ -360,7 +363,7 @@
+       else if (State->Type == 24)
+               State->LineWidth = State->Header.width * 3;
+       else if (State->Type == 16)
+-              State->LineWidth = State->Header.height * 2;
++              State->LineWidth = State->Header.width * 2;
+       else if (State->Type == 8)
+               State->LineWidth = State->Header.width * 1;
+       else if (State->Type == 4)
+diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-xpm.c 
gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-xpm.c 2006-08-24 22:42:29.000000000 
+0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c      2006-08-24 22:44:14.000000000 
+0200
+@@ -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 = malloc (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 = (_XPMColor *) malloc (sizeof (_XPMColor) * n_col);
++      if (!colors) {
++              g_warning ("Cannot allocate memory for loading XPM image");
++              g_hash_table_destroy (color_hash);
++              free (name_buf);
++              return NULL;
++      }
+
+       for (cnt = 0; cnt < n_col; cnt++) {
+               gchar *color_name;
+@@ -397,20 +409,16 @@
+                       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);
++              free (colors);
++              free (name_buf);
+               return NULL;
+       }
+
+       wbytes = w * cpp;
+-      pixtmp = pixels;
++      pixtmp = pixbuf->pixels;
+
+       for (ycnt = 0; ycnt < h; ycnt++) {
+               buffer = (*get_buf) (op_body, handle);
+@@ -440,12 +448,10 @@
+       }
+
+       g_hash_table_destroy (color_hash);
+-      g_free (colors);
+-      g_free (name_buf);
++      free (colors);
++      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 */
+diff -Naur 
gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S       
2006-08-24 22:42:29.000000000 +0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S    
2006-08-24 22:44:29.000000000 +0200
+@@ -3,6 +3,12 @@
+ gcc2_compiled.:
+ .text
+       .align 16
++
++/* Magic indicating no need for an executable stack */
++#if !defined __powerpc64__ && !defined __ia64__
++.section .note.GNU-stack;  .previous
++#endif
++
+ .globl pixops_composite_line_22_4a4_mmx
+       .type    pixops_composite_line_22_4a4_mmx,@function
+ /*
+diff -Naur 
gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S 
2006-08-24 22:42:29.000000000 +0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S      
2006-08-24 22:44:29.000000000 +0200
+@@ -3,6 +3,12 @@
+ gcc2_compiled.:
+ .text
+       .align 16
++
++/* Magic indicating no need for an executable stack */
++#if !defined __powerpc64__ && !defined __ia64__
++.section .note.GNU-stack;  .previous
++#endif
++
+ .globl pixops_composite_line_color_22_4a4_mmx
+       .type    pixops_composite_line_color_22_4a4_mmx,@function
+ /*
+diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/have_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/have_mmx.S
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/have_mmx.S        2006-08-24 
22:42:29.000000000 +0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/have_mmx.S     2006-08-24 
22:44:29.000000000 +0200
+@@ -3,6 +3,12 @@
+ gcc2_compiled.:
+ .text
+       .align 16
++
++/* Magic indicating no need for an executable stack */
++#if !defined __powerpc64__ && !defined __ia64__
++.section .note.GNU-stack;  .previous
++ #endif
++
+ .globl pixops_have_mmx
+       .type    pixops_have_mmx,@function
+
+diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/scale_line_22_33_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/scale_line_22_33_mmx.S
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/scale_line_22_33_mmx.S    
2006-08-24 22:42:29.000000000 +0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/scale_line_22_33_mmx.S 2006-08-24 
22:44:29.000000000 +0200
+@@ -3,6 +3,12 @@
+ gcc2_compiled.:
+ .text
+       .align 16
++
++/* Magic indicating no need for an executable stack */
++#if !defined __powerpc64__ && !defined __ia64__
++.section .note.GNU-stack;  .previous
++#endif
++
+ .globl pixops_scale_line_22_33_mmx
+       .type    pixops_scale_line_22_33_mmx,@function
+ /*
+diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf.m4 gdk-pixbuf-0.22.0/gdk-pixbuf.m4
+--- gdk-pixbuf-0.22.0.orig/gdk-pixbuf.m4       2006-08-24 22:42:29.000000000 
+0200
++++ gdk-pixbuf-0.22.0/gdk-pixbuf.m4    2006-08-24 22:44:19.000000000 +0200
+@@ -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
diff --git a/source/gnome/gdk-pixbuf/FrugalBuild 
b/source/gnome/gdk-pixbuf/FrugalBuild
deleted file mode 100644
index fe37c42..0000000
--- a/source/gnome/gdk-pixbuf/FrugalBuild
+++ /dev/null
@@ -1,30 +0,0 @@
-# Compiling Time: 0.30 SBU
-# Maintainer: Bence Nagy <[EMAIL PROTECTED]>
-
-pkgname=gdk-pixbuf
-pkgver=0.22.0
-pkgrel=3
-pkgdesc="Image loading and manipulation library"
-depends=('libtiff' 'libjpeg' 'gtk+' 'libpng')
-groups=('gnome')
-archs=('i686' 'x86_64')
-url="http://developer.gnome.org/arch/imaging/gdkpixbuf.html";
-Finclude gnome
-source=([EMAIL PROTECTED] tons-of-patches-from-fedora.patch)
-sha1sums=('495324afb5abebc14567ffd5a6cd72333bcc7f5b' \
-         '62fca9a9ae67420f8ada40e2a842fcf5b7119f1d')
-
-build() {
-    Fcd
-    Fpatchall
-    # Need this, else we got relink errors for loader .so's
-    Facu
-    cp -a /usr/share/automake/missing ./missing || Fdie
-    libtoolize -c -f || Fdie
-    aclocal || Fdie
-    autoconf || Fdie
-    Fmake --disable-gtk-doc
-    Fmakeinstall
-}
-
-# optimization OK
diff --git a/source/gnome/gdk-pixbuf/tons-of-patches-from-fedora.patch 
b/source/gnome/gdk-pixbuf/tons-of-patches-from-fedora.patch
deleted file mode 100644
index 49c7be9..0000000
--- a/source/gnome/gdk-pixbuf/tons-of-patches-from-fedora.patch
+++ /dev/null
@@ -1,409 +0,0 @@
-diff -Naur gdk-pixbuf-0.22.0.orig/configure.in gdk-pixbuf-0.22.0/configure.in
---- gdk-pixbuf-0.22.0.orig/configure.in        2006-08-24 22:42:29.000000000 
+0200
-+++ gdk-pixbuf-0.22.0/configure.in     2006-08-24 22:44:01.000000000 +0200
-@@ -48,7 +48,7 @@
- AC_SUBST(STRIP_BEGIN)
- AC_SUBST(STRIP_END)
-
--AC_PATH_PROG(GNOME_CONFIG,gnome-config,no)
-+AC_PATH_PROG(GNOME_CONFIG,no-gnome-config-here,no)
- if test x$GNOME_CONFIG != xno; then
-       echo "Building the GnomeCanvasPixbuf library"
-       GNOME_LIBS=`$GNOME_CONFIG --libs gnomeui`
-@@ -129,7 +129,7 @@
- AC_MSG_CHECKING([for location of rgb.txt database])
-
- dnl default to this..
--path_rgb_txt=/usr/lib/X11/rgb.txt
-+path_rgb_txt=/usr/share/X11/rgb.txt
-
- if test -r ${x_libraries}/X11/rgb.txt; then
-   path_rgb_txt="${x_libraries}/X11/rgb.txt"
-@@ -147,18 +147,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 +191,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])
-diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-bmp.c 
gdk-pixbuf-0.22.0/gdk-pixbuf/io-bmp.c
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-bmp.c 2006-08-24 22:42:29.000000000 
+0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-bmp.c      2006-08-24 22:43:43.000000000 
+0200
-@@ -129,6 +129,7 @@
-       guint depth;
-       guint Negative;         /* Negative = 1 -> top down BMP,
-                                  Negative = 0 -> bottom up BMP */
-+      guint  n_colors;
- };
-
- /* Data needed for the "state" during decompression */
-@@ -153,8 +154,8 @@
-       guint Lines;            /* # of finished lines */
-
-       guchar *buff;
--      gint BufferSize;
--      gint BufferDone;
-+      guint BufferSize;
-+      guint BufferDone;
-
-       guchar (*Colormap)[3];
-
-@@ -245,7 +246,14 @@
- static gboolean
- grow_buffer (struct bmp_progressive_state *State)
- {
--  guchar *tmp = realloc (State->buff, State->BufferSize);
-+  guchar *tmp;
-+
-+  if (State->BufferSize == 0) {
-+    State->read_state = READ_STATE_ERROR;
-+    return FALSE;
-+  }
-+
-+  tmp = realloc (State->buff, State->BufferSize);
-   if (!tmp) {
-     State->read_state = READ_STATE_ERROR;
-     return FALSE;
-@@ -258,6 +266,8 @@
- DecodeHeader (unsigned char *BFH, unsigned char *BIH,
-             struct bmp_progressive_state *State)
- {
-+      gint clrUsed;
-+
-       g_assert (State->read_state == READ_STATE_HEADERS);
-
-         /* FIXME this is totally unrobust against bogus image data. */
-@@ -295,6 +305,23 @@
-               return FALSE;
-       }
-
-+      clrUsed = (int) (BIH[35] << 24) + (BIH[34] << 16) + (BIH[33] << 8) + 
(BIH[32]);
-+      if (clrUsed != 0)
-+              State->Header.n_colors = clrUsed;
-+      else
-+            State->Header.n_colors = 1 << State->Header.depth;
-+
-+      if (State->Header.n_colors > 1 << State->Header.depth) {
-+#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;
-+      }
-+
-       State->Type = State->Header.depth;      /* This may be less trivial 
someday */
-
-       /* Negative heights indicates bottom-down pixelorder */
-@@ -422,16 +449,25 @@
-               struct bmp_progressive_state *State)
- {
-       gint i;
--
-+      gint samples;
-+
-       g_assert (State->read_state == READ_STATE_PALETTE);
-
-+      samples = (State->Header.size == 12 ? 3 : 4);
-+      if (State->BufferSize < State->Header.n_colors * samples) {
-+              State->BufferSize = State->Header.n_colors * samples;
-+              if (!grow_buffer (State))
-+                      return FALSE;
-+              return TRUE;
-+      }
-+
-       State->Colormap = g_malloc ((1 << State->Header.depth) * sizeof 
(*State->Colormap));
-
--      for (i = 0; i < (1 << State->Header.depth); i++)
-+      for (i = 0; i < State->Header.n_colors; i++)
-       {
--              State->Colormap[i][0] = buff[i * (State->Header.size == 12 ? 3 
: 4)];
--              State->Colormap[i][1] = buff[i * (State->Header.size == 12 ? 3 
: 4) + 1];
--              State->Colormap[i][2] = buff[i * (State->Header.size == 12 ? 3 
: 4) + 2];
-+              State->Colormap[i][0] = buff[i * samples];
-+              State->Colormap[i][1] = buff[i * samples + 1];
-+              State->Colormap[i][2] = buff[i * samples + 2];
-       }
-
-       State->read_state = READ_STATE_DATA;
-@@ -870,8 +906,18 @@
-       guchar c;
-       gint idx;
-
--      if (context->compr.y >= context->Header.height)
-+      /* context->compr.y might be past the last line because we are
-+       * on padding past the end of a valid data, or we might have hit
-+       * out-of-bounds data. Either way we just eat-and-ignore the
-+       * rest of the file. Doing the check only here and not when
-+       * we change y below is fine since BufferSize is always 2 here
-+       * and the BMP file format always starts new data on 16-bit
-+       * boundaries.
-+       */
-+      if (context->compr.y >= context->Header.height) {
-+              context->BufferDone = 0;
-               return TRUE;
-+      }
-
-       y = context->compr.y;
-
-diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-ico.c 
gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-ico.c 2006-08-24 22:42:29.000000000 
+0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c      2006-08-24 22:43:53.000000000 
+0200
-@@ -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)
-@@ -360,7 +363,7 @@
-       else if (State->Type == 24)
-               State->LineWidth = State->Header.width * 3;
-       else if (State->Type == 16)
--              State->LineWidth = State->Header.height * 2;
-+              State->LineWidth = State->Header.width * 2;
-       else if (State->Type == 8)
-               State->LineWidth = State->Header.width * 1;
-       else if (State->Type == 4)
-diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-xpm.c 
gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/io-xpm.c 2006-08-24 22:42:29.000000000 
+0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c      2006-08-24 22:44:14.000000000 
+0200
-@@ -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 = malloc (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 = (_XPMColor *) malloc (sizeof (_XPMColor) * n_col);
-+      if (!colors) {
-+              g_warning ("Cannot allocate memory for loading XPM image");
-+              g_hash_table_destroy (color_hash);
-+              free (name_buf);
-+              return NULL;
-+      }
-
-       for (cnt = 0; cnt < n_col; cnt++) {
-               gchar *color_name;
-@@ -397,20 +409,16 @@
-                       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);
-+              free (colors);
-+              free (name_buf);
-               return NULL;
-       }
-
-       wbytes = w * cpp;
--      pixtmp = pixels;
-+      pixtmp = pixbuf->pixels;
-
-       for (ycnt = 0; ycnt < h; ycnt++) {
-               buffer = (*get_buf) (op_body, handle);
-@@ -440,12 +448,10 @@
-       }
-
-       g_hash_table_destroy (color_hash);
--      g_free (colors);
--      g_free (name_buf);
-+      free (colors);
-+      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 */
-diff -Naur 
gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S       
2006-08-24 22:42:29.000000000 +0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_22_4a4_mmx.S    
2006-08-24 22:44:29.000000000 +0200
-@@ -3,6 +3,12 @@
- gcc2_compiled.:
- .text
-       .align 16
-+
-+/* Magic indicating no need for an executable stack */
-+#if !defined __powerpc64__ && !defined __ia64__
-+.section .note.GNU-stack;  .previous
-+#endif
-+
- .globl pixops_composite_line_22_4a4_mmx
-       .type    pixops_composite_line_22_4a4_mmx,@function
- /*
-diff -Naur 
gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S 
2006-08-24 22:42:29.000000000 +0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/composite_line_color_22_4a4_mmx.S      
2006-08-24 22:44:29.000000000 +0200
-@@ -3,6 +3,12 @@
- gcc2_compiled.:
- .text
-       .align 16
-+
-+/* Magic indicating no need for an executable stack */
-+#if !defined __powerpc64__ && !defined __ia64__
-+.section .note.GNU-stack;  .previous
-+#endif
-+
- .globl pixops_composite_line_color_22_4a4_mmx
-       .type    pixops_composite_line_color_22_4a4_mmx,@function
- /*
-diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/have_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/have_mmx.S
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/have_mmx.S        2006-08-24 
22:42:29.000000000 +0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/have_mmx.S     2006-08-24 
22:44:29.000000000 +0200
-@@ -3,6 +3,12 @@
- gcc2_compiled.:
- .text
-       .align 16
-+
-+/* Magic indicating no need for an executable stack */
-+#if !defined __powerpc64__ && !defined __ia64__
-+.section .note.GNU-stack;  .previous
-+ #endif
-+
- .globl pixops_have_mmx
-       .type    pixops_have_mmx,@function
-
-diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/scale_line_22_33_mmx.S 
gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/scale_line_22_33_mmx.S
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf/pixops/scale_line_22_33_mmx.S    
2006-08-24 22:42:29.000000000 +0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/pixops/scale_line_22_33_mmx.S 2006-08-24 
22:44:29.000000000 +0200
-@@ -3,6 +3,12 @@
- gcc2_compiled.:
- .text
-       .align 16
-+
-+/* Magic indicating no need for an executable stack */
-+#if !defined __powerpc64__ && !defined __ia64__
-+.section .note.GNU-stack;  .previous
-+#endif
-+
- .globl pixops_scale_line_22_33_mmx
-       .type    pixops_scale_line_22_33_mmx,@function
- /*
-diff -Naur gdk-pixbuf-0.22.0.orig/gdk-pixbuf.m4 gdk-pixbuf-0.22.0/gdk-pixbuf.m4
---- gdk-pixbuf-0.22.0.orig/gdk-pixbuf.m4       2006-08-24 22:42:29.000000000 
+0200
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf.m4    2006-08-24 22:44:19.000000000 +0200
-@@ -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
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to