diff options
author | Peter Alfredsen <loki_val@gentoo.org> | 2009-01-01 12:30:30 +0000 |
---|---|---|
committer | Peter Alfredsen <loki_val@gentoo.org> | 2009-01-01 12:30:30 +0000 |
commit | 6e4c2c73bb6b06018e25a3e6c653a8cb677d9c70 (patch) | |
tree | 86dcbf4fceffc035751b2eaa323cc17fb97b0195 /media-libs | |
parent | version bump (diff) | |
download | gentoo-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')
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 +} |