diff options
author | Pacho Ramos <pacho@gentoo.org> | 2011-03-12 18:32:04 +0000 |
---|---|---|
committer | Pacho Ramos <pacho@gentoo.org> | 2011-03-12 18:32:04 +0000 |
commit | b67fc9169ae60f084bd892bc746c3586d257bc25 (patch) | |
tree | 7d30c9b056885746b276e85577bf0f3c14c01bad /x11-libs/pango | |
parent | Version bump. (diff) | |
download | gentoo-2-b67fc9169ae60f084bd892bc746c3586d257bc25.tar.gz gentoo-2-b67fc9169ae60f084bd892bc746c3586d257bc25.tar.bz2 gentoo-2-b67fc9169ae60f084bd892bc746c3586d257bc25.zip |
Fix security issues: CVE-2011-0020 and CVE-2011-0064. Remove old.
(Portage version: 2.1.9.42/cvs/Linux x86_64)
Diffstat (limited to 'x11-libs/pango')
-rw-r--r-- | x11-libs/pango/ChangeLog | 11 | ||||
-rw-r--r-- | x11-libs/pango/files/pango-1.2.5-lib64.patch | 30 | ||||
-rw-r--r-- | x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch | 214 | ||||
-rw-r--r-- | x11-libs/pango/files/pango-1.28.3-heap-corruption.patch | 50 | ||||
-rw-r--r-- | x11-libs/pango/files/pango-1.28.3-malloc-failure.patch | 186 | ||||
-rw-r--r-- | x11-libs/pango/pango-1.24.5-r1.ebuild | 74 | ||||
-rw-r--r-- | x11-libs/pango/pango-1.28.3-r1.ebuild (renamed from x11-libs/pango/pango-1.26.2.ebuild) | 42 |
7 files changed, 268 insertions, 339 deletions
diff --git a/x11-libs/pango/ChangeLog b/x11-libs/pango/ChangeLog index 8c51271dc0a5..06c2c798ef72 100644 --- a/x11-libs/pango/ChangeLog +++ b/x11-libs/pango/ChangeLog @@ -1,6 +1,15 @@ # ChangeLog for x11-libs/pango # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/ChangeLog,v 1.303 2011/01/30 19:17:09 armin76 Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/ChangeLog,v 1.304 2011/03/12 18:32:04 pacho Exp $ + +*pango-1.28.3-r1 (12 Mar 2011) + + 12 Mar 2011; Pacho Ramos <pacho@gentoo.org> -files/pango-1.2.5-lib64.patch, + -pango-1.24.5-r1.ebuild, -files/pango-1.26.0-introspection-automagic.patch, + -pango-1.26.2.ebuild, +pango-1.28.3-r1.ebuild, + +files/pango-1.28.3-heap-corruption.patch, + +files/pango-1.28.3-malloc-failure.patch: + Fix security issues: CVE-2011-0020 and CVE-2011-0064. Remove old. 30 Jan 2011; Raúl Porcel <armin76@gentoo.org> pango-1.28.3.ebuild: alpha/arm/ia64/s390/sh/sparc stable wrt #348987 diff --git a/x11-libs/pango/files/pango-1.2.5-lib64.patch b/x11-libs/pango/files/pango-1.2.5-lib64.patch deleted file mode 100644 index c709c270eae2..000000000000 --- a/x11-libs/pango/files/pango-1.2.5-lib64.patch +++ /dev/null @@ -1,30 +0,0 @@ -#--- pango-1.2.5/pango/Makefile.am.lib64 2003-08-25 10:12:45.000000000 -0400 -#+++ pango-1.2.5/pango/Makefile.am 2003-12-08 18:43:51.000000000 -0500 -#@@ -16,6 +16,7 @@ -# -DPANGO_ENABLE_BACKEND \ -# -DPANGO_ENABLE_ENGINE \ -# -DSYSCONFDIR=\"$(sysconfdir)\" \ -#+ -DHOST=\"$(host_triplet)\" \ -# -DLIBDIR=\"$(libdir)\" \ -# -DMODULE_VERSION=\"$(PANGO_MODULE_VERSION)\" \ -# -DG_DISABLE_DEPRECATED \ ---- pango-1.2.5/pango/modules.c.lib64 2002-12-06 19:54:27.000000000 -0500 -+++ pango-1.2.5/pango/modules.c 2003-12-08 18:43:51.000000000 -0500 -@@ -353,6 +353,7 @@ - - if (!file_str) - file_str = g_build_filename (pango_get_sysconf_subdirectory (), -+ HOST, - "pango.modules", - NULL); - ---- pango-1.2.5/pango/Makefile.in.lib64 2003-12-09 10:48:24.000000000 -0500 -+++ pango-1.2.5/pango/Makefile.in 2003-12-09 10:48:32.000000000 -0500 -@@ -135,6 +135,7 @@ - -DPANGO_ENABLE_BACKEND \ - -DPANGO_ENABLE_ENGINE \ - -DSYSCONFDIR=\"$(sysconfdir)\" \ -+ -DHOST=\"$(host_triplet)\" \ - -DLIBDIR=\"$(libdir)\" \ - -DMODULE_VERSION=\"$(PANGO_MODULE_VERSION)\" \ - -DG_DISABLE_DEPRECATED \ diff --git a/x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch b/x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch deleted file mode 100644 index b699b176c094..000000000000 --- a/x11-libs/pango/files/pango-1.26.0-introspection-automagic.patch +++ /dev/null @@ -1,214 +0,0 @@ -Use the introspection.m4 macro for checking for introspection. Fixes automagic, -and keeps variable name consistency across modules. - ---- ---- configure.in -+++ configure.in -@@ -58,6 +58,7 @@ - AM_INIT_AUTOMAKE(1.9 gnits dist-bzip2 no-dist-gzip -Wno-portability) - m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) - AM_CONFIG_HEADER([config.h]) -+AC_CONFIG_MACRO_DIR([m4]) - - - PANGO_VERSION_MAJOR=pango_version_major() -@@ -493,27 +494,7 @@ - # - # Checks for GObject Introspection - # --have_introspection=false --PKG_CHECK_MODULES(INTROSPECTION, gobject-introspection-1.0 >= 0.6.4, have_introspection=true, have_introspection=false) --AM_CONDITIONAL(HAVE_INTROSPECTION, $have_introspection) -- --G_IR_SCANNER= --G_IR_COMPILER= --G_IR_GENERATE= --GIRDIR= --TYPELIBDIR= --if $have_introspection; then -- G_IR_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` -- G_IR_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` -- G_IR_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` -- GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` -- TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" --fi --AC_SUBST(G_IR_SCANNER) --AC_SUBST(G_IR_COMPILER) --AC_SUBST(G_IR_GENERATE) --AC_SUBST(GIRDIR) --AC_SUBST(TYPELIBDIR) -+GOBJECT_INTROSPECTION_CHECK(0.6.4) - - # - # Modules to build ---- m4/introspection.m4 -+++ m4/introspection.m4 -@@ -0,0 +1,92 @@ -+dnl -*- mode: autoconf -*- -+dnl Copyright 2009 Johan Dahlin -+dnl -+dnl This file is free software; the author(s) gives unlimited -+dnl permission to copy and/or distribute it, with or without -+dnl modifications, as long as this notice is preserved. -+dnl -+ -+# serial 1 -+ -+m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], -+[ -+ AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first -+ AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first -+ AC_BEFORE([LT_INIT],[$0])dnl setup libtool first -+ -+ dnl enable/disable introspection -+ m4_if([$2], [require], -+ [dnl -+ enable_introspection=yes -+ ],[dnl -+ AC_ARG_ENABLE(introspection, -+ AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], -+ [Enable introspection for this build]),, -+ [enable_introspection=auto]) -+ ])dnl -+ -+ AC_MSG_CHECKING([for gobject-introspection]) -+ -+ dnl presence/version checking -+ AS_CASE([$enable_introspection], -+ [no], [dnl -+ found_introspection="no (disabled, use --enable-introspection to enable)" -+ ],dnl -+ [yes],[dnl -+ PKG_CHECK_EXISTS([gobject-introspection-1.0],, -+ AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) -+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], -+ found_introspection=yes, -+ AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) -+ ],dnl -+ [auto],[dnl -+ PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) -+ ],dnl -+ [dnl -+ AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) -+ ])dnl -+ -+ AC_MSG_RESULT([$found_introspection]) -+ -+ INTROSPECTION_SCANNER= -+ INTROSPECTION_COMPILER= -+ INTROSPECTION_GENERATE= -+ INTROSPECTION_GIRDIR= -+ INTROSPECTION_TYPELIBDIR= -+ if test "x$found_introspection" = "xyes"; then -+ INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` -+ INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` -+ INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` -+ INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` -+ INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" -+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0` -+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0` -+ fi -+ AC_SUBST(INTROSPECTION_SCANNER) -+ AC_SUBST(INTROSPECTION_COMPILER) -+ AC_SUBST(INTROSPECTION_GENERATE) -+ AC_SUBST(INTROSPECTION_GIRDIR) -+ AC_SUBST(INTROSPECTION_TYPELIBDIR) -+ AC_SUBST(INTROSPECTION_CFLAGS) -+ AC_SUBST(INTROSPECTION_LIBS) -+ -+ AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") -+]) -+ -+ -+dnl Usage: -+dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) -+ -+AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], -+[ -+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) -+]) -+ -+dnl Usage: -+dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) -+ -+ -+AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], -+[ -+ _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) -+]) ---- Makefile.am -+++ Makefile.am -@@ -2,6 +2,8 @@ - - SUBDIRS= pango modules pango-view examples docs tools tests - -+ACLOCAL_AMFLAGS = -I m4 -I . -+ - EXTRA_DIST = \ - autogen.sh \ - pango.pc.in \ ---- pango/Makefile.am -+++ pango/Makefile.am -@@ -163,8 +163,8 @@ - Pango-1.0.gir: $(libpango_1_0_la_SOURCES) - Pango-1.0.gir: $(pango_headers) - Pango-1.0.gir: libpango-1.0.la --Pango-1.0.gir: $(G_IR_SCANNER) Makefile -- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace Pango --nsversion=1.0 \ -+Pango-1.0.gir: $(INTROSPECTION_SCANNER) Makefile -+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace Pango --nsversion=1.0 \ - --add-include-path=$(srcdir) --add-include-path=. \ - --include=GObject-2.0 \ - --include=cairo-1.0 \ -@@ -278,8 +278,8 @@ - PangoFT2-1.0.gir: $(pangoft2_headers) - PangoFT2-1.0.gir: $(libpangoft2_1_0_la_SOURCES) - PangoFT2-1.0.gir: libpangoft2-1.0.la --PangoFT2-1.0.gir: Pango-1.0.gir $(G_IR_SCANNER) Makefile -- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace PangoFT2 --nsversion=1.0 \ -+PangoFT2-1.0.gir: Pango-1.0.gir $(INTROSPECTION_SCANNER) Makefile -+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace PangoFT2 --nsversion=1.0 \ - --add-include-path=$(srcdir) --add-include-path=. \ - --include=GObject-2.0 \ - --include=Pango-1.0 \ -@@ -335,8 +335,8 @@ - PangoXft-1.0.gir: $(pangoxft_headers) - PangoXft-1.0.gir: $(libpangoxft_1_0_la_SOURCES) - PangoXft-1.0.gir: libpangoxft-1.0.la --PangoXft-1.0.gir: Pango-1.0.gir PangoFT2-1.0.gir $(G_IR_SCANNER) Makefile -- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace PangoXft --nsversion=1.0 \ -+PangoXft-1.0.gir: Pango-1.0.gir PangoFT2-1.0.gir $(INTROSPECTION_SCANNER) Makefile -+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace PangoXft --nsversion=1.0 \ - --add-include-path=$(srcdir) --add-include-path=. \ - --include=GObject-2.0 \ - --include=xft-2.0 \ -@@ -424,8 +424,8 @@ - PangoCairo-1.0.gir: $(libpangocairo_1_0_la_SOURCES) - PangoCairo-1.0.gir: $(pangocairo_headers) - PangoCairo-1.0.gir: libpangocairo-1.0.la --PangoCairo-1.0.gir: Pango-1.0.gir $(PANGOCAIRO_FONT_BACKEND_GI_MODULE).gir $(G_IR_SCANNER) Makefile -- $(AM_V_GEN) $(G_IR_SCANNER) -v --namespace PangoCairo --nsversion=1.0 \ -+PangoCairo-1.0.gir: Pango-1.0.gir $(PANGOCAIRO_FONT_BACKEND_GI_MODULE).gir $(INTROSPECTION_SCANNER) Makefile -+ $(AM_V_GEN) $(INTROSPECTION_SCANNER) -v --namespace PangoCairo --nsversion=1.0 \ - --add-include-path=$(srcdir) --add-include-path=. \ - --include=GObject-2.0 \ - --include=cairo-1.0 \ -@@ -551,14 +551,14 @@ - - if HAVE_INTROSPECTION - --girdir = $(GIRDIR) -+girdir = $(INTROSPECTION_GIRDIR) - gir_DATA = $(BUILT_GIRSOURCES) - --typelibsdir = $(TYPELIBDIR) -+typelibsdir = $(INTROSPECTION_TYPELIBDIR) - typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib) - --%.typelib: %.gir $(G_IR_COMPILER) -- $(AM_V_GEN) LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(G_IR_COMPILER) --includedir=$(srcdir) --includedir=. $(G_IR_COMPILER_OPTS) $< -o $(builddir)/$(@F) -+%.typelib: %.gir $(INTROSPECTION_COMPILER) -+ $(AM_V_GEN) LD_LIBRARY_PATH=$${LD_LIBRARY_PATH:+$$LD_LIBRARY_PATH:}. $(INTROSPECTION_COMPILER) --includedir=$(srcdir) --includedir=. $(INTROSPECTION_COMPILER_OPTS) $< -o $(builddir)/$(@F) - - endif # HAVE_INTROSPECTION - diff --git a/x11-libs/pango/files/pango-1.28.3-heap-corruption.patch b/x11-libs/pango/files/pango-1.28.3-heap-corruption.patch new file mode 100644 index 000000000000..692f69867eda --- /dev/null +++ b/x11-libs/pango/files/pango-1.28.3-heap-corruption.patch @@ -0,0 +1,50 @@ +From 4e6248d76f55c6184f28afe614d7d76b6fa3d455 Mon Sep 17 00:00:00 2001 +From: Behdad Esfahbod <behdad@behdad.org> +Date: Thu, 17 Feb 2011 16:19:48 +0000 +Subject: Bug 639882 - Heap corruption in font parsing with FreeType2 backend + +--- +diff --git a/pango/pangoft2-render.c b/pango/pangoft2-render.c +index bd3b7d4..42923f4 100644 +--- a/pango/pangoft2-render.c ++++ b/pango/pangoft2-render.c +@@ -121,9 +121,14 @@ pango_ft2_font_render_box_glyph (int width, + + box->bitmap.width = width; + box->bitmap.rows = height; +- box->bitmap.pitch = height; ++ box->bitmap.pitch = width; + +- box->bitmap.buffer = g_malloc0 (box->bitmap.rows * box->bitmap.pitch); ++ box->bitmap.buffer = g_malloc0_n (box->bitmap.rows, box->bitmap.pitch); ++ ++ if (G_UNLIKELY (!box->bitmap.buffer)) { ++ g_slice_free (PangoFT2RenderedGlyph, box); ++ return NULL; ++ } + + /* draw the box */ + for (j = 0; j < line_width; j++) +@@ -226,6 +231,11 @@ pango_ft2_font_render_glyph (PangoFont *font, + rendered->bitmap_left = face->glyph->bitmap_left; + rendered->bitmap_top = face->glyph->bitmap_top; + ++ if (G_UNLIKELY (!rendered->bitmap.buffer)) { ++ g_slice_free (PangoFT2RenderedGlyph, rendered); ++ return NULL; ++ } ++ + return rendered; + } + else +@@ -276,6 +286,8 @@ pango_ft2_renderer_draw_glyph (PangoRenderer *renderer, + if (rendered_glyph == NULL) + { + rendered_glyph = pango_ft2_font_render_glyph (font, glyph); ++ if (rendered_glyph == NULL) ++ return; + add_glyph_to_cache = TRUE; + } + +-- +cgit v0.8.3.4 diff --git a/x11-libs/pango/files/pango-1.28.3-malloc-failure.patch b/x11-libs/pango/files/pango-1.28.3-malloc-failure.patch new file mode 100644 index 000000000000..e82f8e6a4c7f --- /dev/null +++ b/x11-libs/pango/files/pango-1.28.3-malloc-failure.patch @@ -0,0 +1,186 @@ +From 3104961bc0ffaf847d2a1e116e6de4fdc1cd8ada Mon Sep 17 00:00:00 2001 +From: Behdad Esfahbod <behdad@behdad.org> +Date: Thu, 2 Dec 2010 16:00:46 +1300 +Subject: [PATCH] Handle realloc failure in the buffer + +Ported from http://cgit.freedesktop.org/harfbuzz/commit/?id=a6a79df5fe2e +by Karl Tomlinson <karlt+@karlt.net> +--- + pango/opentype/hb-buffer-private.h | 1 + + pango/opentype/hb-buffer.c | 70 +++++++++++++++++++++--------------- + pango/opentype/hb-buffer.h | 2 +- + 3 files changed, 43 insertions(+), 30 deletions(-) + +diff --git a/pango/opentype/hb-buffer-private.h b/pango/opentype/hb-buffer-private.h +index 45cdc4d..f194786 100644 +--- a/pango/opentype/hb-buffer-private.h ++++ b/pango/opentype/hb-buffer-private.h +@@ -72,6 +72,7 @@ struct _hb_buffer_t { + unsigned int allocated; + + hb_bool_t have_output; /* weather we have an output buffer going on */ ++ hb_bool_t in_error; /* Allocation failed */ + unsigned int in_length; + unsigned int out_length; + unsigned int in_pos; +diff --git a/pango/opentype/hb-buffer.c b/pango/opentype/hb-buffer.c +index 93b51e5..e9788ad 100644 +--- a/pango/opentype/hb-buffer.c ++++ b/pango/opentype/hb-buffer.c +@@ -52,23 +52,21 @@ static hb_buffer_t _hb_buffer_nil = { + * in_string and out_string. + */ + +-/* XXX err handling */ +- + /* Internal API */ + +-static void ++static hb_bool_t + hb_buffer_ensure_separate (hb_buffer_t *buffer, unsigned int size) + { +- hb_buffer_ensure (buffer, size); ++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, size))) return FALSE; + if (buffer->out_string == buffer->in_string) + { + assert (buffer->have_output); +- if (!buffer->positions) +- buffer->positions = calloc (buffer->allocated, sizeof (buffer->positions[0])); + + buffer->out_string = (hb_internal_glyph_info_t *) buffer->positions; + memcpy (buffer->out_string, buffer->in_string, buffer->out_length * sizeof (buffer->out_string[0])); + } ++ ++ return TRUE; + } + + /* Public API */ +@@ -114,6 +112,7 @@ void + hb_buffer_clear (hb_buffer_t *buffer) + { + buffer->have_output = FALSE; ++ buffer->in_error = FALSE; + buffer->in_length = 0; + buffer->out_length = 0; + buffer->in_pos = 0; +@@ -122,32 +121,42 @@ hb_buffer_clear (hb_buffer_t *buffer) + buffer->max_lig_id = 0; + } + +-void ++hb_bool_t + hb_buffer_ensure (hb_buffer_t *buffer, unsigned int size) + { +- unsigned int new_allocated = buffer->allocated; +- +- if (size > new_allocated) ++ if (HB_UNLIKELY (size > buffer->allocated)) + { ++ unsigned int new_allocated = buffer->allocated; ++ hb_internal_glyph_position_t *new_pos; ++ hb_internal_glyph_info_t *new_info; ++ hb_bool_t separate_out; ++ ++ if (HB_UNLIKELY (buffer->in_error)) ++ return FALSE; ++ ++ separate_out = buffer->out_string != buffer->in_string; ++ + while (size > new_allocated) + new_allocated += (new_allocated >> 1) + 8; + +- if (buffer->positions) +- buffer->positions = realloc (buffer->positions, new_allocated * sizeof (buffer->positions[0])); ++ new_pos = (hb_internal_glyph_position_t *) realloc (buffer->positions, new_allocated * sizeof (buffer->positions[0])); ++ new_info = (hb_internal_glyph_info_t *) realloc (buffer->in_string, new_allocated * sizeof (buffer->in_string[0])); + +- if (buffer->out_string != buffer->in_string) +- { +- buffer->in_string = realloc (buffer->in_string, new_allocated * sizeof (buffer->in_string[0])); +- buffer->out_string = (hb_internal_glyph_info_t *) buffer->positions; +- } +- else +- { +- buffer->in_string = realloc (buffer->in_string, new_allocated * sizeof (buffer->in_string[0])); +- buffer->out_string = buffer->in_string; +- } ++ if (HB_UNLIKELY (!new_pos || !new_info)) ++ buffer->in_error = TRUE; ++ ++ if (HB_LIKELY (new_pos)) ++ buffer->positions = new_pos; + +- buffer->allocated = new_allocated; ++ if (HB_LIKELY (new_info)) ++ buffer->in_string = new_info; ++ ++ buffer->out_string = separate_out ? (hb_internal_glyph_info_t *) buffer->positions : buffer->in_string; ++ if (HB_LIKELY (!buffer->in_error)) ++ buffer->allocated = new_allocated; + } ++ ++ return HB_LIKELY (!buffer->in_error); + } + + void +@@ -158,7 +167,7 @@ hb_buffer_add_glyph (hb_buffer_t *buffer, + { + hb_internal_glyph_info_t *glyph; + +- hb_buffer_ensure (buffer, buffer->in_length + 1); ++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, buffer->in_length + 1))) return; + + glyph = &buffer->in_string[buffer->in_length]; + glyph->codepoint = codepoint; +@@ -213,6 +222,8 @@ _hb_buffer_swap (hb_buffer_t *buffer) + + assert (buffer->have_output); + ++ if (HB_UNLIKELY (buffer->in_error)) return; ++ + if (buffer->out_string != buffer->in_string) + { + hb_internal_glyph_info_t *tmp_string; +@@ -265,7 +276,8 @@ _hb_buffer_add_output_glyphs (hb_buffer_t *buffer, + if (buffer->out_string != buffer->in_string || + buffer->out_pos + num_out > buffer->in_pos + num_in) + { +- hb_buffer_ensure_separate (buffer, buffer->out_pos + num_out); ++ if (HB_UNLIKELY (!hb_buffer_ensure_separate (buffer, buffer->out_pos + num_out))) ++ return; + } + + mask = buffer->in_string[buffer->in_pos].mask; +@@ -302,7 +314,7 @@ _hb_buffer_add_output_glyph (hb_buffer_t *buffer, + + if (buffer->out_string != buffer->in_string) + { +- hb_buffer_ensure (buffer, buffer->out_pos + 1); ++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, buffer->out_pos + 1))) return; + buffer->out_string[buffer->out_pos] = buffer->in_string[buffer->in_pos]; + } + else if (buffer->out_pos != buffer->in_pos) +@@ -332,7 +344,7 @@ _hb_buffer_next_glyph (hb_buffer_t *buffer) + + if (buffer->out_string != buffer->in_string) + { +- hb_buffer_ensure (buffer, buffer->out_pos + 1); ++ if (HB_UNLIKELY (!hb_buffer_ensure (buffer, buffer->out_pos + 1))) return; + buffer->out_string[buffer->out_pos] = buffer->in_string[buffer->in_pos]; + } + else if (buffer->out_pos != buffer->in_pos) +diff --git a/pango/opentype/hb-buffer.h b/pango/opentype/hb-buffer.h +index b030ba9..aaf6694 100644 +--- a/pango/opentype/hb-buffer.h ++++ b/pango/opentype/hb-buffer.h +@@ -94,7 +94,7 @@ hb_buffer_clear (hb_buffer_t *buffer); + void + hb_buffer_clear_positions (hb_buffer_t *buffer); + +-void ++hb_bool_t + hb_buffer_ensure (hb_buffer_t *buffer, + unsigned int size); + +-- +1.7.2.2 diff --git a/x11-libs/pango/pango-1.24.5-r1.ebuild b/x11-libs/pango/pango-1.24.5-r1.ebuild deleted file mode 100644 index 58117a2e7d62..000000000000 --- a/x11-libs/pango/pango-1.24.5-r1.ebuild +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright 1999-2009 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/pango-1.24.5-r1.ebuild,v 1.12 2009/11/28 17:39:38 remi Exp $ - -EAPI="2" -GCONF_DEBUG="yes" - -inherit eutils gnome2 multilib - -DESCRIPTION="Internationalized text layout and rendering library" -HOMEPAGE="http://www.pango.org/" - -LICENSE="LGPL-2 FTL" -SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd" -IUSE="X doc test" - -# FIXME: add gobject-introspection dependency when it is available -RDEPEND=">=dev-libs/glib-2.17.3 - >=media-libs/fontconfig-2.5.0 - media-libs/freetype:2 - >=x11-libs/cairo-1.7.6[X?] - X? ( - x11-libs/libXrender - x11-libs/libX11 - x11-libs/libXft )" -DEPEND="${RDEPEND} - >=dev-util/pkgconfig-0.9 - doc? ( >=dev-util/gtk-doc-1 - ~app-text/docbook-xml-dtd-4.1.2 - x11-libs/libXft ) - test? ( >=dev-util/gtk-doc-1 - ~app-text/docbook-xml-dtd-4.1.2 - x11-libs/libXft ) - X? ( x11-proto/xproto )" - -DOCS="AUTHORS ChangeLog* NEWS README THANKS" - -function multilib_enabled() { - has_multilib_profile || ( use x86 && [ "$(get_libdir)" = "lib32" ] ) -} - -pkg_setup() { - G2CONF="${G2CONF} $(use_with X x)" -} - -src_prepare() { - gnome2_src_prepare - - # make config file location host specific so that a 32bit and 64bit pango - # wont fight with each other on a multilib system. Fix building for - # emul-linux-x86-gtklibs - if multilib_enabled ; then - epatch "${FILESDIR}/${PN}-1.2.5-lib64.patch" - fi -} - -pkg_postinst() { - if [ "${ROOT}" = "/" ] ; then - einfo "Generating modules listing..." - - local PANGO_CONFDIR= - - if multilib_enabled ; then - PANGO_CONFDIR="/etc/pango/${CHOST}" - else - PANGO_CONFDIR="/etc/pango" - fi - - mkdir -p ${PANGO_CONFDIR} - - pango-querymodules > ${PANGO_CONFDIR}/pango.modules - fi -} diff --git a/x11-libs/pango/pango-1.26.2.ebuild b/x11-libs/pango/pango-1.28.3-r1.ebuild index 5542681cce19..52f573024c89 100644 --- a/x11-libs/pango/pango-1.26.2.ebuild +++ b/x11-libs/pango/pango-1.28.3-r1.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2010 Gentoo Foundation +# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/pango-1.26.2.ebuild,v 1.8 2010/08/18 20:51:09 maekke Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-libs/pango/pango-1.28.3-r1.ebuild,v 1.1 2011/03/12 18:32:04 pacho Exp $ -EAPI="2" +EAPI="3" GCONF_DEBUG="yes" inherit autotools eutils gnome2 multilib toolchain-funcs @@ -12,11 +12,11 @@ HOMEPAGE="http://www.pango.org/" LICENSE="LGPL-2 FTL" SLOT="0" -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ~ppc ppc64 s390 sh sparc x86 ~x86-fbsd" -IUSE="X doc test" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" +IUSE="X doc +introspection test" -RDEPEND=">=dev-libs/glib-2.17.3 - >=media-libs/fontconfig-2.5.0 +RDEPEND=">=dev-libs/glib-2.17.3:2 + >=media-libs/fontconfig-2.5.0:1.0 media-libs/freetype:2 >=x11-libs/cairo-1.7.6[X?] X? ( @@ -25,29 +25,28 @@ RDEPEND=">=dev-libs/glib-2.17.3 x11-libs/libXft )" DEPEND="${RDEPEND} >=dev-util/pkgconfig-0.9 - dev-util/gtk-doc-am + >=dev-util/gtk-doc-am-1.13 doc? ( - >=dev-util/gtk-doc-1 + >=dev-util/gtk-doc-1.13 ~app-text/docbook-xml-dtd-4.1.2 x11-libs/libXft ) + introspection? ( >=dev-libs/gobject-introspection-0.9.5 ) test? ( - >=dev-util/gtk-doc-1 + >=dev-util/gtk-doc-1.13 ~app-text/docbook-xml-dtd-4.1.2 x11-libs/libXft ) X? ( x11-proto/xproto )" -DOCS="AUTHORS ChangeLog* NEWS README THANKS" - function multilib_enabled() { has_multilib_profile || ( use x86 && [ "$(get_libdir)" = "lib32" ] ) } pkg_setup() { tc-export CXX - # XXX: DO NOT add introspection support, collides with gir-repository[pango] G2CONF="${G2CONF} - --disable-introspection + $(use_enable introspection) $(use_with X x)" + DOCS="AUTHORS ChangeLog* NEWS README THANKS" } src_prepare() { @@ -60,17 +59,20 @@ src_prepare() { epatch "${FILESDIR}/${PN}-1.26.0-lib64.patch" fi - # gtk-doc checks do not pass, upstream bug #578944 - sed -e 's:TESTS = check.docs: TESTS = :g' \ - -i docs/Makefile.am || die "sed failed" + # Fix heap corruption in font parsing with FreeType2 backend, upstream bug #639882 + epatch "${FILESDIR}/${PN}-1.28.3-heap-corruption.patch" - # Fix introspection automagic. - # https://bugzilla.gnome.org/show_bug.cgi?id=596506 - epatch "${FILESDIR}/${PN}-1.26.0-introspection-automagic.patch" + # Handle malloc failure in the buffer, upstream #644577 + epatch "${FILESDIR}/${PN}-1.28.3-malloc-failure.patch" eautoreconf } +src_install() { + gnome2_src_install + find "${ED}/usr/$(get_libdir)/pango/1.6.0/modules" -name "*.la" -delete || die +} + pkg_postinst() { if [ "${ROOT}" = "/" ] ; then einfo "Generating modules listing..." |