mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-09 14:06:58 +02:00
Import gdk-pixbuf.
This is needed to update gtk+, which is needed for Xi2 events. Change-Id: Ieca0e1d6d09792ebca4ed46ad8d1c25a6aeb7f33 Reviewed-on: http://gerrit.chromium.org/gerrit/9763 Tested-by: Stéphane Marchesin <marcheu@chromium.org> Reviewed-by: Daniel Kurtz <djkurtz@chromium.org>
This commit is contained in:
parent
24caf3645a
commit
01bc6e703a
@ -0,0 +1,24 @@
|
||||
Adds a new configure option to remove the automagic dependency on libX11.
|
||||
|
||||
--- configure.ac
|
||||
+++ configure.ac
|
||||
@@ -929,7 +929,18 @@ GDK_PIXBUF_XLIB_PACKAGES=
|
||||
GDK_PIXBUF_XLIB_EXTRA_CFLAGS=
|
||||
GDK_PIXBUF_XLIB_EXTRA_LIBS=
|
||||
|
||||
-if $PKG_CONFIG --exists x11; then
|
||||
+AC_ARG_WITH(x11,
|
||||
+ AC_HELP_STRING([--with-x11=@<:@no/auto/yes@:>@],
|
||||
+ [build X11 support @<:@default=auto@:>@]),,
|
||||
+ [
|
||||
+ if $PKG_CONFIG --exists x11; then
|
||||
+ with_x11=yes
|
||||
+ else
|
||||
+ with_x11=no
|
||||
+ fi
|
||||
+ ])
|
||||
+
|
||||
+if test x$with_x11 = xyes; then
|
||||
AM_CONDITIONAL(USE_X11, true)
|
||||
PKG_CHECK_MODULES(GDK_PIXBUF_XLIB_DEP, x11 gobject-2.0)
|
||||
else
|
@ -0,0 +1,56 @@
|
||||
From f8569bb13e2aa1584dde61ca545144750f7a7c98 Mon Sep 17 00:00:00 2001
|
||||
From: Matthias Clasen <mclasen@redhat.com>
|
||||
Date: Fri, 24 Jun 2011 05:09:35 +0000
|
||||
Subject: GIF: Don't return a partially initialized pixbuf structure
|
||||
|
||||
It was found that gdk-pixbuf GIF image loader gdk_pixbuf__gif_image_load()
|
||||
routine did not properly handle certain return values from their subroutines.
|
||||
A remote attacker could provide a specially-crafted GIF image, which once
|
||||
opened in an application, linked against gdk-pixbuf would lead to gdk-pixbuf
|
||||
to return partially initialized pixbuf structure, possibly having huge
|
||||
width and height, leading to that particular application termination due
|
||||
excessive memory use.
|
||||
|
||||
The CVE identifier of CVE-2011-2485 has been assigned to this issue.
|
||||
---
|
||||
diff --git a/gdk-pixbuf/io-gif.c b/gdk-pixbuf/io-gif.c
|
||||
index 0b370ee..8a1fa3e 100644
|
||||
--- a/gdk-pixbuf/io-gif.c
|
||||
+++ b/gdk-pixbuf/io-gif.c
|
||||
@@ -1455,6 +1455,7 @@ gdk_pixbuf__gif_image_load (FILE *file, GError **error)
|
||||
{
|
||||
GifContext *context;
|
||||
GdkPixbuf *pixbuf;
|
||||
+ gint retval;
|
||||
|
||||
g_return_val_if_fail (file != NULL, NULL);
|
||||
|
||||
@@ -1472,19 +1473,25 @@ gdk_pixbuf__gif_image_load (FILE *file, GError **error)
|
||||
context->error = error;
|
||||
context->stop_after_first_frame = TRUE;
|
||||
|
||||
- if (gif_main_loop (context) == -1 || context->animation->frames == NULL) {
|
||||
+ retval = gif_main_loop (context);
|
||||
+ if (retval == -1 || context->animation->frames == NULL) {
|
||||
if (context->error && *(context->error) == NULL)
|
||||
g_set_error_literal (context->error,
|
||||
GDK_PIXBUF_ERROR,
|
||||
GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
|
||||
_("GIF file was missing some data (perhaps it was truncated somehow?)"));
|
||||
}
|
||||
+ else if (retval == -2) {
|
||||
+ pixbuf = NULL;
|
||||
+ goto out;
|
||||
+ }
|
||||
|
||||
pixbuf = gdk_pixbuf_animation_get_static_image (GDK_PIXBUF_ANIMATION (context->animation));
|
||||
|
||||
if (pixbuf)
|
||||
g_object_ref (pixbuf);
|
||||
|
||||
+out:
|
||||
g_object_unref (context->animation);
|
||||
|
||||
g_free (context->buf);
|
||||
--
|
||||
cgit v0.9
|
@ -0,0 +1,67 @@
|
||||
From e6a5b2472a4a5d554b587dfcb798b95035caa6fd Mon Sep 17 00:00:00 2001
|
||||
From: Maarten Bosmans <mkbosmans@gmail.com>
|
||||
Date: Mon, 24 Jan 2011 10:39:22 +0000
|
||||
Subject: Use png_jmpbuf macro
|
||||
|
||||
This makes the png loader compatible with libpng 1.5
|
||||
---
|
||||
diff --git a/gdk-pixbuf/io-png.c b/gdk-pixbuf/io-png.c
|
||||
index 79c81fd..76f3304 100644
|
||||
--- a/gdk-pixbuf/io-png.c
|
||||
+++ b/gdk-pixbuf/io-png.c
|
||||
@@ -183,7 +183,7 @@ png_simple_error_callback(png_structp png_save_ptr,
|
||||
error_msg);
|
||||
}
|
||||
|
||||
- longjmp (png_save_ptr->jmpbuf, 1);
|
||||
+ longjmp (png_jmpbuf(png_save_ptr), 1);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -287,7 +287,7 @@ gdk_pixbuf__png_image_load (FILE *f, GError **error)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- if (setjmp (png_ptr->jmpbuf)) {
|
||||
+ if (setjmp (png_jmpbuf(png_ptr))) {
|
||||
g_free (rows);
|
||||
|
||||
if (pixbuf)
|
||||
@@ -459,7 +459,7 @@ gdk_pixbuf__png_image_begin_load (GdkPixbufModuleSizeFunc size_func,
|
||||
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);
|
||||
@@ -531,7 +531,7 @@ gdk_pixbuf__png_image_load_increment(gpointer context,
|
||||
lc->error = error;
|
||||
|
||||
/* Invokes our callbacks as needed */
|
||||
- if (setjmp (lc->png_read_ptr->jmpbuf)) {
|
||||
+ if (setjmp (png_jmpbuf(lc->png_read_ptr))) {
|
||||
lc->error = NULL;
|
||||
return FALSE;
|
||||
} else {
|
||||
@@ -769,7 +769,7 @@ png_error_callback(png_structp png_read_ptr,
|
||||
error_msg);
|
||||
}
|
||||
|
||||
- longjmp (png_read_ptr->jmpbuf, 1);
|
||||
+ longjmp (png_jmpbuf(png_read_ptr), 1);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -978,7 +978,7 @@ static gboolean real_save_png (GdkPixbuf *pixbuf,
|
||||
success = FALSE;
|
||||
goto cleanup;
|
||||
}
|
||||
- if (setjmp (png_ptr->jmpbuf)) {
|
||||
+ if (setjmp (png_jmpbuf(png_ptr))) {
|
||||
success = FALSE;
|
||||
goto cleanup;
|
||||
}
|
||||
--
|
||||
cgit v0.9
|
96
sdk_container/src/third_party/portage-stable/x11-libs/gdk-pixbuf/gdk-pixbuf-2.22.1-r2.ebuild
vendored
Normal file
96
sdk_container/src/third_party/portage-stable/x11-libs/gdk-pixbuf/gdk-pixbuf-2.22.1-r2.ebuild
vendored
Normal file
@ -0,0 +1,96 @@
|
||||
# Copyright 1999-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: /var/cvsroot/gentoo-x86/x11-libs/gdk-pixbuf/gdk-pixbuf-2.22.1-r2.ebuild,v 1.8 2011/10/03 08:54:19 lxnay Exp $
|
||||
|
||||
EAPI="3"
|
||||
|
||||
inherit gnome.org multilib libtool autotools
|
||||
|
||||
DESCRIPTION="Image loading library for GTK+"
|
||||
HOMEPAGE="http://www.gtk.org/"
|
||||
|
||||
LICENSE="LGPL-2"
|
||||
SLOT="2"
|
||||
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd ~x86-freebsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
|
||||
IUSE="+X debug doc +introspection jpeg jpeg2k svg tiff test"
|
||||
|
||||
# librsvg blocker is for the new pixbuf loader API, you lose icons otherwise
|
||||
RDEPEND="
|
||||
>=dev-libs/glib-2.25.15
|
||||
>=media-libs/libpng-1.2.44
|
||||
introspection? ( >=dev-libs/gobject-introspection-0.9.3 )
|
||||
jpeg? ( virtual/jpeg )
|
||||
jpeg2k? ( media-libs/jasper )
|
||||
tiff? ( >=media-libs/tiff-3.9.2 )
|
||||
X? ( x11-libs/libX11 )
|
||||
!<gnome-base/gail-1000
|
||||
!<gnome-base/librsvg-2.31.0
|
||||
!<x11-libs/gtk+-2.21.3:2
|
||||
!<x11-libs/gtk+-2.90.4:3"
|
||||
DEPEND="${RDEPEND}
|
||||
>=dev-util/pkgconfig-0.9
|
||||
>=sys-devel/gettext-0.17
|
||||
>=dev-util/gtk-doc-am-1.11
|
||||
doc? (
|
||||
>=dev-util/gtk-doc-1.11
|
||||
~app-text/docbook-xml-dtd-4.1.2 )"
|
||||
# Needed as reported in bug #363715
|
||||
PDEPEND="svg? ( gnome-base/librsvg )"
|
||||
|
||||
src_prepare() {
|
||||
# Only build against libX11 if the user wants to do so
|
||||
epatch "${FILESDIR}"/${PN}-2.21.4-fix-automagic-x11.patch
|
||||
|
||||
# Fix libpng-1.5 compatibility, bug 354557 — taken from upstream
|
||||
epatch "${FILESDIR}/${P}-fix-libpng15.patch"
|
||||
|
||||
# GIF: Don't return a partially initialized pixbuf structure
|
||||
epatch "${FILESDIR}/${P}-CVE-2011-2485.patch"
|
||||
|
||||
elibtoolize
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# png always on to display icons (foser)
|
||||
local myconf="
|
||||
$(use_enable doc gtk-doc)
|
||||
$(use_with jpeg libjpeg)
|
||||
$(use_with jpeg2k libjasper)
|
||||
$(use_with tiff libtiff)
|
||||
$(use_enable introspection)
|
||||
$(use_with X x11)
|
||||
--with-libpng"
|
||||
|
||||
# Passing --disable-debug is not recommended for production use
|
||||
use debug && myconf="${myconf} --enable-debug=yes"
|
||||
|
||||
econf ${myconf}
|
||||
}
|
||||
|
||||
src_install() {
|
||||
emake DESTDIR="${D}" install || die
|
||||
|
||||
dodoc AUTHORS NEWS* README* || die
|
||||
|
||||
find "${ED}" -name '*.la' -exec rm -f {} +
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
# causes segfault if set, see bug 375615
|
||||
unset __GL_NO_DSO_FINALIZER
|
||||
|
||||
tmp_file=$(mktemp --suffix=gdk_pixbuf_ebuild)
|
||||
# be atomic!
|
||||
gdk-pixbuf-query-loaders > "${tmp_file}"
|
||||
if [ "${?}" = "0" ]; then
|
||||
cat "${tmp_file}" > "${EROOT}usr/$(get_libdir)/gdk-pixbuf-2.0/2.10.0/loaders.cache"
|
||||
fi
|
||||
rm "${tmp_file}"
|
||||
|
||||
if [ -e "${EROOT}"usr/lib/gtk-2.0/2.*/loaders ]; then
|
||||
elog "You need to rebuild ebuilds that installed into" "${EROOT}"usr/lib/gtk-2.0/2.*/loaders
|
||||
elog "to do that you can use qfile from portage-utils:"
|
||||
elog "emerge -va1 \$(qfile -qC ${EPREFIX}/usr/lib/gtk-2.0/2.*/loaders)"
|
||||
fi
|
||||
}
|
Loading…
Reference in New Issue
Block a user