summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Alfredsen <loki_val@gentoo.org>2009-01-01 12:30:30 +0000
committerPeter Alfredsen <loki_val@gentoo.org>2009-01-01 12:30:30 +0000
commit6e4c2c73bb6b06018e25a3e6c653a8cb677d9c70 (patch)
tree86dcbf4fceffc035751b2eaa323cc17fb97b0195 /media-libs
parentversion bump (diff)
downloadgentoo-2-6e4c2c73bb6b06018e25a3e6c653a8cb677d9c70.tar.gz
gentoo-2-6e4c2c73bb6b06018e25a3e6c653a8cb677d9c70.tar.bz2
gentoo-2-6e4c2c73bb6b06018e25a3e6c653a8cb677d9c70.zip
Fix bug 247104, segfault in cffparse.c:361, bug 253029, missing letters in certain fonts, thanks to Andreas Turriff for the patch-pointer. Also import patches for alien bugs: http://bugs.debian.org/487101, segfault when building certain fonts and http://savannah.nongnu.org/bugs/index.php?23973 , incorrect scaling of certain fonts.
(Portage version: 2.2_rc20/cvs/Linux 2.6.28-rc9 x86_64)
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/freetype/ChangeLog19
-rw-r--r--media-libs/freetype/files/freetype-2.3.7-b.g.o-247104.patch15
-rw-r--r--media-libs/freetype/files/freetype-2.3.7-b.g.o-253029.patch19
-rw-r--r--media-libs/freetype/files/freetype-2.3.7-fix-incorrect-scaling.patch21
-rw-r--r--media-libs/freetype/files/freetype-2.3.7-no-segfault-on-load_mac_face.patch51
-rw-r--r--media-libs/freetype/freetype-2.3.7-r1.ebuild123
6 files changed, 246 insertions, 2 deletions
diff --git a/media-libs/freetype/ChangeLog b/media-libs/freetype/ChangeLog
index fd131f22547d..827d3f024375 100644
--- a/media-libs/freetype/ChangeLog
+++ b/media-libs/freetype/ChangeLog
@@ -1,6 +1,21 @@
# ChangeLog for media-libs/freetype
-# Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/ChangeLog,v 1.203 2008/12/20 01:32:24 loki_val Exp $
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/ChangeLog,v 1.204 2009/01/01 12:30:30 loki_val Exp $
+
+*freetype-2.3.7-r1 (01 Jan 2009)
+
+ 01 Jan 2009; Peter Alfredsen <loki_val@gentoo.org>
+ +files/freetype-2.3.7-b.g.o-247104.patch,
+ +files/freetype-2.3.7-b.g.o-253029.patch,
+ +files/freetype-2.3.7-fix-incorrect-scaling.patch,
+ +files/freetype-2.3.7-no-segfault-on-load_mac_face.patch,
+ +freetype-2.3.7-r1.ebuild:
+ Fix bug 247104, segfault in cffparse.c:361, bug 253029, missing letters in
+ certain fonts, thanks to Andreas Turriff for the patch-pointer. Also
+ import patches for alien bugs: http://bugs.debian.org/487101, segfault
+ when building certain fonts and
+ http://savannah.nongnu.org/bugs/index.php?23973 , incorrect scaling of
+ certain fonts.
20 Dec 2008; Peter Alfredsen <loki_val@gentoo.org>
-files/freetype-1.3.1-malloc.patch,
diff --git a/media-libs/freetype/files/freetype-2.3.7-b.g.o-247104.patch b/media-libs/freetype/files/freetype-2.3.7-b.g.o-247104.patch
new file mode 100644
index 000000000000..3bebed5e1e45
--- /dev/null
+++ b/media-libs/freetype/files/freetype-2.3.7-b.g.o-247104.patch
@@ -0,0 +1,15 @@
+--- freetype-2.3.7/src/cff/cffparse.c.old 2008/08/04 15:54:24 1.43
++++ freetype-2.3.7/src/cff/cffparse.c 2008/11/27 21:55:20 1.44
+@@ -355,6 +355,12 @@
+ if ( FT_ABS( integer_length ) > 5 )
+ goto Exit;
+
++ /* Remove non-significant digits. */
++ if ( integer_length < 0 ) {
++ number /= power_tens[-integer_length];
++ fraction_length += integer_length;
++ }
++
+ /* Convert into 16.16 format. */
+ if ( fraction_length > 0 )
+ {
diff --git a/media-libs/freetype/files/freetype-2.3.7-b.g.o-253029.patch b/media-libs/freetype/files/freetype-2.3.7-b.g.o-253029.patch
new file mode 100644
index 000000000000..edacc61545c0
--- /dev/null
+++ b/media-libs/freetype/files/freetype-2.3.7-b.g.o-253029.patch
@@ -0,0 +1,19 @@
+diff -uNr freetype-2.3.7/src/cff/cffgload.c freetype-2.3.7-new/src/cff/cffgload.c
+--- freetype-2.3.7/src/cff/cffgload.c 2008-05-13 23:31:14.000000000 -0700
++++ freetype-2.3.7-new/src/cff/cffgload.c 2008-12-29 12:35:16.000000000 -0800
+@@ -2357,9 +2357,12 @@
+ if ( cff->top_font.font_dict.cid_registry != 0xFFFFU &&
+ cff->charset.cids )
+ {
+- glyph_index = cff_charset_cid_to_gindex( &cff->charset, glyph_index );
+- if ( glyph_index == 0 )
+- return CFF_Err_Invalid_Argument;
++ if ( glyph_index )
++ {
++ glyph_index = cff_charset_cid_to_gindex( &cff->charset, glyph_index );
++ if ( glyph_index == 0 )
++ return CFF_Err_Invalid_Argument;
++ }
+ }
+ else if ( glyph_index >= cff->num_glyphs )
+ return CFF_Err_Invalid_Argument;
diff --git a/media-libs/freetype/files/freetype-2.3.7-fix-incorrect-scaling.patch b/media-libs/freetype/files/freetype-2.3.7-fix-incorrect-scaling.patch
new file mode 100644
index 000000000000..ef4586766b01
--- /dev/null
+++ b/media-libs/freetype/files/freetype-2.3.7-fix-incorrect-scaling.patch
@@ -0,0 +1,21 @@
+2008-08-04 Bram Tassyns <bramt@enfocus.be>
+
+ * src/cff/cffparse.c (cff_parse_fixed_scaled): Fix thinko which
+ resulted in incorrect scaling. This fixes Savannah bug #23973.
+
+--- freetype-2.3.7/src/cff/cffparse.c.old 2008/06/10 05:58:25 1.42
++++ freetype-2.3.7/src/cff/cffparse.c 2008/08/04 15:54:24 1.43
+@@ -406,10 +406,9 @@
+ cff_parse_fixed_scaled( FT_Byte** d,
+ FT_Int scaling )
+ {
+- return **d ==
+- 30 ? cff_parse_real( d[0], d[1], scaling, NULL )
+- : (FT_Fixed)FT_MulFix( cff_parse_integer( d[0], d[1] ) << 16,
+- power_tens[scaling] );
++ return **d == 30 ? cff_parse_real( d[0], d[1], scaling, NULL )
++ : ( cff_parse_integer( d[0], d[1] ) *
++ power_tens[scaling] ) << 16;
+ }
+
+
diff --git a/media-libs/freetype/files/freetype-2.3.7-no-segfault-on-load_mac_face.patch b/media-libs/freetype/files/freetype-2.3.7-no-segfault-on-load_mac_face.patch
new file mode 100644
index 000000000000..10422a178ea2
--- /dev/null
+++ b/media-libs/freetype/files/freetype-2.3.7-no-segfault-on-load_mac_face.patch
@@ -0,0 +1,51 @@
+2008-08-19 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp>
+
+ * src/base/ftobjs.c (FT_Stream_New): Initialize *astream
+ always, even if passed library or arguments are invalid.
+ This fixes a bug that uninitialized stream is freed when
+ an invalid library handle is passed. Originally proposed
+ by Mike Fabian, 2008/08/18 on freetype-devel.
+ (FT_Open_Face): Ditto (stream).
+ (load_face_in_embedded_rfork): Ditto (stream2).
+
+Fixes Debian bug #487101.
+
+Index: freetype-2.3.7/src/base/ftobjs.c
+===================================================================
+--- freetype-2.3.7.orig/src/base/ftobjs.c
++++ freetype-2.3.7/src/base/ftobjs.c
+@@ -128,13 +128,14 @@
+ FT_Stream stream;
+
+
++ *astream = 0;
++
+ if ( !library )
+ return FT_Err_Invalid_Library_Handle;
+
+ if ( !args )
+ return FT_Err_Invalid_Argument;
+
+- *astream = 0;
+ memory = library->memory;
+
+ if ( FT_NEW( stream ) )
+@@ -1600,7 +1601,7 @@
+ FT_Error errors[FT_RACCESS_N_RULES];
+
+ FT_Open_Args args2;
+- FT_Stream stream2;
++ FT_Stream stream2 = 0;
+
+
+ FT_Raccess_Guess( library, stream,
+@@ -1713,7 +1714,7 @@
+ FT_Error error;
+ FT_Driver driver;
+ FT_Memory memory;
+- FT_Stream stream;
++ FT_Stream stream = 0;
+ FT_Face face = 0;
+ FT_ListNode node = 0;
+ FT_Bool external_stream;
+
diff --git a/media-libs/freetype/freetype-2.3.7-r1.ebuild b/media-libs/freetype/freetype-2.3.7-r1.ebuild
new file mode 100644
index 000000000000..116743dd9ce0
--- /dev/null
+++ b/media-libs/freetype/freetype-2.3.7-r1.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/freetype-2.3.7-r1.ebuild,v 1.1 2009/01/01 12:30:30 loki_val Exp $
+
+inherit eutils flag-o-matic libtool
+
+DESCRIPTION="A high-quality and portable font engine"
+HOMEPAGE="http://www.freetype.org/"
+SRC_URI="mirror://sourceforge/freetype/${P/_/}.tar.bz2
+ utils? ( mirror://sourceforge/freetype/ft2demos-${PV}.tar.bz2 )
+ doc? ( mirror://sourceforge/freetype/${PN}-doc-${PV}.tar.bz2 )"
+
+LICENSE="FTL GPL-2"
+SLOT="2"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd"
+IUSE="X bindist debug doc utils"
+
+DEPEND="X? ( x11-libs/libX11
+ x11-libs/libXau
+ x11-libs/libXdmcp )"
+
+# We also need a recent fontconfig version to prevent segfaults. #166029
+# July 3 2007 dirtyepic
+RDEPEND="${DEPEND}
+ !<media-libs/fontconfig-2.3.2-r2"
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+
+ enable_option() {
+ sed -i -e "/#define $1/a #define $1" \
+ include/freetype/config/ftoption.h \
+ || die "unable to enable option $1"
+ }
+
+ disable_option() {
+ sed -i -e "/#define $1/ { s:^:/*:; s:$:*/: }" \
+ include/freetype/config/ftoption.h \
+ || die "unable to disable option $1"
+ }
+
+ if ! use bindist; then
+ # Bytecodes and subpixel hinting supports are patented
+ # in United States; for safety, disable them while building
+ # binaries, so that no risky code is distributed.
+ # See http://freetype.org/patents.html
+
+ enable_option FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+ enable_option TT_CONFIG_OPTION_BYTECODE_INTERPRETER
+ disable_option TT_CONFIG_OPTION_UNPATENTED_HINTING
+ fi
+
+ if use debug; then
+ enable_option FT_DEBUG_LEVEL_ERROR
+ enable_option FT_DEBUG_MEMORY
+ fi
+
+ enable_option FT_CONFIG_OPTION_INCREMENTAL
+ disable_option FT_CONFIG_OPTION_OLD_INTERNALS
+
+ epatch "${FILESDIR}"/${PN}-2.3.2-enable-valid.patch
+ epatch "${FILESDIR}"/${P}-b.g.o-247104.patch
+ epatch "${FILESDIR}"/${P}-b.g.o-253029.patch
+ #Fixes Debian bug #487101.
+ epatch "${FILESDIR}"/${P}-no-segfault-on-load_mac_face.patch
+ #Fixes Savannah bug #23973.
+ epatch "${FILESDIR}"/${P}-fix-incorrect-scaling.patch
+
+ if use utils; then
+ cd "${WORKDIR}"/ft2demos-${PV}
+ sed -i -e "s:\.\.\/freetype2$:../freetype-${PV}:" Makefile
+
+ # Disable tests needing X11 when USE="-X". (bug #177597)
+ if ! use X; then
+ sed -i -e "/EXES\ +=\ ftview/ s:^:#:" Makefile
+ fi
+ fi
+
+ elibtoolize
+ epunt_cxx
+}
+
+src_compile() {
+ append-flags -fno-strict-aliasing
+
+ type -P gmake &> /dev/null && export GNUMAKE=gmake
+ econf || die "econf failed"
+ emake || die "emake failed"
+
+ if use utils; then
+ cd "${WORKDIR}"/ft2demos-${PV}
+ emake || die "ft2demos emake failed"
+ fi
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+
+ dodoc ChangeLog README
+ dodoc docs/{CHANGES,CUSTOMIZE,DEBUG,*.txt,PATENTS,TODO}
+
+ use doc && dohtml -r docs/*
+
+ if use utils; then
+ rm "${WORKDIR}"/ft2demos-${PV}/bin/README
+ for ft2demo in ../ft2demos-${PV}/bin/*; do
+ ./builds/unix/libtool --mode=install $(type -P install) -m 755 "$ft2demo" \
+ "${D}"/usr/bin
+ done
+ fi
+}
+
+pkg_postinst() {
+ echo
+ ewarn "After upgrading to freetype-2.3.5, it is necessary to rebuild"
+ ewarn "libXfont to avoid build errors in some packages."
+ echo
+ elog "The utilities and demos previously bundled with freetype are now"
+ elog "optional. Enable the utils USE flag if you would like them"
+ elog "to be installed."
+ echo
+}