summaryrefslogtreecommitdiffstats
path: root/media-libs/gdk-pixbuf
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/gdk-pixbuf')
-rw-r--r--media-libs/gdk-pixbuf/Manifest9
-rw-r--r--media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch48
-rw-r--r--media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_secure.patch19
-rw-r--r--media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-loaders.patch134
-rw-r--r--media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-m4.patch9
-rw-r--r--media-libs/gdk-pixbuf/files/gdk-pixbuf-ds-png.diff47
-rw-r--r--media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild70
-rw-r--r--media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r6.ebuild73
-rw-r--r--media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r7.ebuild73
9 files changed, 482 insertions, 0 deletions
diff --git a/media-libs/gdk-pixbuf/Manifest b/media-libs/gdk-pixbuf/Manifest
new file mode 100644
index 0000000..d9c5120
--- /dev/null
+++ b/media-libs/gdk-pixbuf/Manifest
@@ -0,0 +1,9 @@
+AUX gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch 1157 SHA256 d3196c1666f560997bc5cd5be4787156c64f92dc0fd8dada8ad3c16793b90970 SHA512 e4aa5edc91ae1319f062a518612f6776bc03beb6db5a6a0e7b9c22b94d5f6433b26040b6a2c27fcb91b4094da45dcf1fddb7cb702bac64952ee0899b5b005a6c WHIRLPOOL 255040e3941fdc0dc16d57ef2802d1c3b8610f7eec26d4d828d120121402731f53a4427430060b1d61aef5ff007ee5c16de50877c6111e58a489c40f2bb9bdac
+AUX gdk-pixbuf-0.22.0-bmp_secure.patch 557 SHA256 1bb9330c75e8ceb927620f03717d442185b84602b9ec67bb6940518aabdff5f8 SHA512 5d9ceab886f606bb9983ed6ab21a58edbade392ac7cb57ee77ad3a1e5e2fd192739d3a0ea3f30981d637a21fdda2de3747c9fd805335072516afa727ec6e32d3 WHIRLPOOL 14f6c01d013a78de367a66223ff264d0c369eff88138e4a88f8e2ed779e69994ea6bec8015fbdd7570a06c8d19318e80791b8c98a8c692fcf09d89d6ea8f1739
+AUX gdk-pixbuf-0.22.0-loaders.patch 3589 SHA256 310824874429c26b277c985b218e133ded4e94c51de389979875de38ddb57400 SHA512 ce20cc96c7e4d540eec9f2b53c424ed8e0aaf51ae4f58f4c521380b357bf69ccff89b0865fac8b792cca9a42892602af651ab5965edb569cad7b5ecee1ea36ae WHIRLPOOL cbcf25a12b614f276b350b042f3471aefcc09cd517e4710157fe9b707ecc37ff32c0468b5d51c1d594c9343e82d5568e966a544d751d3ef9d5bd734ad484f72c
+AUX gdk-pixbuf-0.22.0-m4.patch 276 SHA256 4a62476624319a09c000d01d45689167ea5cf1665e4c7e988032ffff11920132 SHA512 b22c73982d13a0a6200e48f436cdf1a34fe8882c70da8ce0bb86a0cc1e0f7887e25ceeb6affb57222a7158d05112fb711a8f1d34c05085b47750eed04a094901 WHIRLPOOL ad974a9ba450c62f00bbd84dff3c469b2033109adb0ca09f5e5c9eb5bff3ef7487bf555363bfab691079ba6528bf1c2eff13c5f05349214938099c0bacffa7d3
+AUX gdk-pixbuf-ds-png.diff 1309 SHA256 db45815b76f01f888581e4dfe5affb45febf370ec85e0a59e4ae079adff29137 SHA512 bfd483dd030de81a3ecb1de16a9ce0d666a9dcafee0243e4bcc9b68a632d4e4739d9b9a0ce4bc61ae5615f6c2b309f22c0d9132c3e5e85ce0768e3f9c15bbce8 WHIRLPOOL a29bc0eb96c8b5326e51a4b2984f03860f2090ff27936710d683ca8a16f3d49372777d1d42d57c9665e95d22cf6a539ab25ee86d5079112de603db2fabcff6ed
+DIST gdk-pixbuf-0.22.0.tar.bz2 398208 SHA256 411f2a1c27c3afadc5d034f2213d9f6c3a37f564eb5989cf6e8a53729280ae22 SHA512 69ebc3030f978283a3014dc6037304dd67daf912e6a1eda8d6853aa2ad10a226b310c82049ce78de3665dda363083b08eb3c7942f77a7cd0fc76282d8cfc5a95 WHIRLPOOL 403d1fe50d97683f86aacb0fcb3a9cf7bb7e22568bff04dc511da22c854e3edb615bd0c8ab95d3cef06541a3ae83de6f7f15b01d7b1274fc46626264fa2218ec
+EBUILD gdk-pixbuf-0.22.0-r5.ebuild 1779 SHA256 da124f65e28024d47ee693071b14ecdd4b86cd7b1f44dfa8b5c18014bf7a4859 SHA512 f8de7c177412af76aac602d4fca180414872a759af597365b5d3d90b104930e1748b293ddf69d0627f717e4d58e8c22a1190a4622cb4014ecdd4aea58015e08b WHIRLPOOL 178d1294600757d5ba3c9fcfe7f4c56b6bc5bec3f9ea347d2451f39bd9ebc5883233d708398e8f527b385d640c7dc176485788c767773aef168206f3f3465249
+EBUILD gdk-pixbuf-0.22.0-r6.ebuild 1835 SHA256 310b5d95375290f4b0b989f884decb38d147ed431bd4b2ffd4d6660e1d9e524f SHA512 77230088acb6c2bfc1f2f3c0ca457cf7a7813949441fb15b3b0b59c1dfb1fad4d78a2080d8cb0986a095458f8f9bde8b7f6c023e75e8b89f1d5dd2176e5724d9 WHIRLPOOL 38e05d2207138451733bc7027ffc08eeccc799c4f4a0b06a2d440825ce6021a40a6ea41b583cd466181a49167e6ae232df1dda9470a211f91259fc21c321bf6f
+EBUILD gdk-pixbuf-0.22.0-r7.ebuild 1834 SHA256 ef6eed63155a9dc0754f2443d96aa64dcda56fd64a9559db9988f92e2296bc92 SHA512 e49f66688f766566483fdf8d13ec15e746ac1b2c5d440357a6f7960d20265d7c6c34f37213a1743f5217d135b071066183fb54720f2f7b65f5dc0e96fd1e47a4 WHIRLPOOL 7cd04d85aeb782b47a3a926a2523fbbed5610f1048520fe0fd467f604cc018f2b847508f0591758bb64078e3f5bf46c0302d94698b71646894935edc69434df6
diff --git a/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
new file mode 100644
index 0000000..ffb4378
--- /dev/null
+++ b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch
@@ -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;
+ }
diff --git a/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_secure.patch b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_secure.patch
new file mode 100644
index 0000000..29471f1
--- /dev/null
+++ b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-bmp_secure.patch
@@ -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;
+
diff --git a/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-loaders.patch b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-loaders.patch
new file mode 100644
index 0000000..0686538
--- /dev/null
+++ b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-loaders.patch
@@ -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 */
diff --git a/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-m4.patch b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-m4.patch
new file mode 100644
index 0000000..032976d
--- /dev/null
+++ b/media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-m4.patch
@@ -0,0 +1,9 @@
+Fix aclocal warning:
+/usr/share/aclocal/gdk-pixbuf.m4:12: warning: underquoted definition of AM_PATH_GDK_PIXBUF
+--- gdk-pixbuf-0.22.0/gdk-pixbuf.m4
++++ gdk-pixbuf-0.22.0/gdk-pixbuf.m4
+@@ -11,3 +11,3 @@
+ dnl
+-AC_DEFUN(AM_PATH_GDK_PIXBUF,
++AC_DEFUN([AM_PATH_GDK_PIXBUF],
+ [dnl
diff --git a/media-libs/gdk-pixbuf/files/gdk-pixbuf-ds-png.diff b/media-libs/gdk-pixbuf/files/gdk-pixbuf-ds-png.diff
new file mode 100644
index 0000000..39b4cb6
--- /dev/null
+++ b/media-libs/gdk-pixbuf/files/gdk-pixbuf-ds-png.diff
@@ -0,0 +1,47 @@
+diff -dPNur gdk-pixbuf-0.22.0/gdk-pixbuf/io-png.c gdk-pixbuf-0.22.0-png15/gdk-pixbuf/io-png.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-png.c 2001-01-24 21:59:23.000000000 +0100
++++ gdk-pixbuf-0.22.0-png15/gdk-pixbuf/io-png.c 2012-11-16 14:32:15.000000000 +0100
+@@ -174,11 +174,12 @@
+ png_destroy_read_struct (&png_ptr, &info_ptr, NULL);
+ return NULL;
+ }
+-
++/*
+ if (setjmp (png_ptr->jmpbuf)) {
+ png_destroy_read_struct (&png_ptr, &info_ptr, &end_info);
+ return NULL;
+ }
++*/
+
+ png_init_io (png_ptr, f);
+ png_read_info (png_ptr, info_ptr);
+@@ -311,12 +312,12 @@
+ return NULL;
+ }
+
+- if (setjmp (lc->png_read_ptr->jmpbuf)) {
++/* if (setjmp (lc->png_read_ptr->jmpbuf)) {
+ if (lc->png_info_ptr)
+ png_destroy_read_struct(&lc->png_read_ptr, NULL, NULL);
+ g_free(lc);
+ return NULL;
+- }
++ }*/
+
+ /* Create the auxiliary context struct */
+
+@@ -366,11 +367,11 @@
+ lc->max_row_seen_in_chunk = -1;
+
+ /* Invokes our callbacks as needed */
+- if (setjmp (lc->png_read_ptr->jmpbuf)) {
++/* if (setjmp (lc->png_read_ptr->jmpbuf)) {
+ return FALSE;
+- } else {
++ } else {*/
+ png_process_data(lc->png_read_ptr, lc->png_info_ptr, buf, size);
+- }
++/* }*/
+
+ if (lc->fatal_error_occurred)
+ return FALSE;
diff --git a/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild
new file mode 100644
index 0000000..d488cb0
--- /dev/null
+++ b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild,v 1.3 2005/11/20 06:36:49 hardave Exp $
+
+#For the sake of virtualx compatibility (DS)
+EAPI=2
+
+inherit virtualx libtool gnome.org eutils
+
+DESCRIPTION="GNOME Image Library"
+HOMEPAGE="http://www.gtk.org/"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86"
+IUSE="doc mmx"
+
+RDEPEND="media-libs/jpeg
+ media-libs/tiff
+ =x11-libs/gtk+-1.2*
+ <media-libs/libpng-1.5
+ amd64? ( sys-libs/db )
+ !amd64? ( <sys-libs/db-2 )
+ >=gnome-base/gnome-libs-1.4.1.2-r1"
+# We need gnome-libs here, else gnome support do not get compiled into
+# gdk-pixbuf (the GnomeCanvasPixbuf library )
+DEPEND="${RDEPEND}
+ doc? ( dev-util/gtk-doc )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${P}-m4.patch
+ # security fix (#64230)
+ epatch "${FILESDIR}"/${P}-bmp_secure.patch
+ epatch "${FILESDIR}"/${P}-loaders.patch
+ # reject corrupt bmps (#64230)
+ epatch "${FILESDIR}"/${P}-bmp_reject_corrupt.patch
+
+ #update libtool, else we get the "relink bug"
+ elibtoolize
+}
+
+src_compile() {
+ local myconf=""
+ use mmx || myconf="${myconf} --disable-mmx"
+ econf \
+ --sysconfdir=/etc/X11/gdk-pixbuf \
+ $(use_enable doc gtk-doc) \
+ ${myconf} \
+ || die
+
+ #build needs to be able to
+ #connect to an X display.
+ Xemake || die
+}
+
+src_install() {
+ einstall \
+ sysconfdir=${D}/etc/X11/gdk-pixbuf \
+ localstatedir=${D}/var/lib || die
+
+ dosed -e "s:${D}::g" /usr/bin/gdk-pixbuf-config
+ #fix permissions on the loaders
+ chmod a+rx ${D}/usr/$(get_libdir)/gdk-pixbuf/loaders
+ chmod a+r ${D}/usr/$(get_libdir)/gdk-pixbuf/loaders/*
+
+ dodoc AUTHORS ChangeLog INSTALL README NEWS TODO
+}
diff --git a/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r6.ebuild b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r6.ebuild
new file mode 100644
index 0000000..09a4598
--- /dev/null
+++ b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r6.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild,v 1.3 2005/11/20 06:36:49 hardave Exp $
+
+#For the sake of virtualx compatibility (DS)
+EAPI=2
+
+inherit virtualx libtool gnome.org eutils
+
+DESCRIPTION="GNOME Image Library"
+HOMEPAGE="http://www.gtk.org/"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86"
+IUSE="doc mmx"
+
+RDEPEND="media-libs/jpeg
+ media-libs/tiff
+ =x11-libs/gtk+-1.2*
+ >=media-libs/libpng-1.5
+ amd64? ( sys-libs/db )
+ !amd64? ( <sys-libs/db-2 )
+ >=gnome-base/gnome-libs-1.4.1.2-r1"
+# We need gnome-libs here, else gnome support do not get compiled into
+# gdk-pixbuf (the GnomeCanvasPixbuf library )
+DEPEND="${RDEPEND}
+ doc? ( dev-util/gtk-doc )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${P}-m4.patch
+ # security fix (#64230)
+ epatch "${FILESDIR}"/${P}-bmp_secure.patch
+ epatch "${FILESDIR}"/${P}-loaders.patch
+ # reject corrupt bmps (#64230)
+ epatch "${FILESDIR}"/${P}-bmp_reject_corrupt.patch
+#SDS
+ epatch "${FILESDIR}"/gdk-pixbuf-ds-png.diff
+#EDS
+
+ #update libtool, else we get the "relink bug"
+ elibtoolize
+}
+
+src_compile() {
+ local myconf=""
+ use mmx || myconf="${myconf} --disable-mmx"
+ econf \
+ --sysconfdir=/etc/X11/gdk-pixbuf \
+ $(use_enable doc gtk-doc) \
+ ${myconf} \
+ || die
+
+ #build needs to be able to
+ #connect to an X display.
+ Xemake || die
+}
+
+src_install() {
+ einstall \
+ sysconfdir=${D}/etc/X11/gdk-pixbuf \
+ localstatedir=${D}/var/lib || die
+
+ dosed -e "s:${D}::g" /usr/bin/gdk-pixbuf-config
+ #fix permissions on the loaders
+ chmod a+rx ${D}/usr/$(get_libdir)/gdk-pixbuf/loaders
+ chmod a+r ${D}/usr/$(get_libdir)/gdk-pixbuf/loaders/*
+
+ dodoc AUTHORS ChangeLog INSTALL README NEWS TODO
+}
diff --git a/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r7.ebuild b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r7.ebuild
new file mode 100644
index 0000000..137f850
--- /dev/null
+++ b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r7.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild,v 1.3 2005/11/20 06:36:49 hardave Exp $
+
+#For the sake of virtualx compatibility (DS)
+EAPI=2
+
+inherit virtualx libtool gnome.org eutils
+
+DESCRIPTION="GNOME Image Library"
+HOMEPAGE="http://www.gtk.org/"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86"
+IUSE="doc mmx"
+
+RDEPEND="virtual/jpeg:0
+ media-libs/tiff
+ =x11-libs/gtk+-1.2*
+ >=media-libs/libpng-1.5
+ amd64? ( sys-libs/db )
+ !amd64? ( <sys-libs/db-2 )
+ >=gnome-base/gnome-libs-1.4.1.2-r1"
+# We need gnome-libs here, else gnome support do not get compiled into
+# gdk-pixbuf (the GnomeCanvasPixbuf library )
+DEPEND="${RDEPEND}
+ doc? ( dev-util/gtk-doc )"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ epatch "${FILESDIR}"/${P}-m4.patch
+ # security fix (#64230)
+ epatch "${FILESDIR}"/${P}-bmp_secure.patch
+ epatch "${FILESDIR}"/${P}-loaders.patch
+ # reject corrupt bmps (#64230)
+ epatch "${FILESDIR}"/${P}-bmp_reject_corrupt.patch
+#SDS
+ epatch "${FILESDIR}"/gdk-pixbuf-ds-png.diff
+#EDS
+
+ #update libtool, else we get the "relink bug"
+ elibtoolize
+}
+
+src_compile() {
+ local myconf=""
+ use mmx || myconf="${myconf} --disable-mmx"
+ econf \
+ --sysconfdir=/etc/X11/gdk-pixbuf \
+ $(use_enable doc gtk-doc) \
+ ${myconf} \
+ || die
+
+ #build needs to be able to
+ #connect to an X display.
+ Xemake || die
+}
+
+src_install() {
+ einstall \
+ sysconfdir=${D}/etc/X11/gdk-pixbuf \
+ localstatedir=${D}/var/lib || die
+
+ dosed -e "s:${D}::g" /usr/bin/gdk-pixbuf-config
+ #fix permissions on the loaders
+ chmod a+rx ${D}/usr/$(get_libdir)/gdk-pixbuf/loaders
+ chmod a+r ${D}/usr/$(get_libdir)/gdk-pixbuf/loaders/*
+
+ dodoc AUTHORS ChangeLog INSTALL README NEWS TODO
+}