Backport fixes for bug 532506.
authorMike Gilbert <floppym@gentoo.org>
Sun, 14 Dec 2014 20:35:05 +0000 (20:35 +0000)
committerMike Gilbert <floppym@gentoo.org>
Sun, 14 Dec 2014 20:35:05 +0000 (20:35 +0000)
Package-Manager: portage-2.2.15/cvs/Linux x86_64
Manifest-Sign-Key: 0x0BBEEA1FEA4843A4

media-libs/freetype/ChangeLog
media-libs/freetype/Manifest
media-libs/freetype/files/2.5.4-0001-pcf-Fix-Savannah-bug-43774.patch [new file with mode: 0644]
media-libs/freetype/files/2.5.4-0002-src-pcf-pcfread.c-pcf_read_TOC-Improve-fix-from-2014.patch [new file with mode: 0644]
media-libs/freetype/freetype-2.5.4-r1.ebuild [moved from media-libs/freetype/freetype-2.5.4.ebuild with 96% similarity]

index 242cc958ea8596bab59d91914068f00beffb49c7..231be5166580523777cb6f4efeae379568dc179d 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for media-libs/freetype
 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/ChangeLog,v 1.410 2014/12/14 19:40:58 floppym Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/ChangeLog,v 1.411 2014/12/14 20:35:02 floppym Exp $
+
+*freetype-2.5.4-r1 (14 Dec 2014)
+
+  14 Dec 2014; Mike Gilbert <floppym@gentoo.org>
+  +files/2.5.4-0001-pcf-Fix-Savannah-bug-43774.patch,
+  +files/2.5.4-0002-src-pcf-pcfread.c-pcf_read_TOC-Improve-fix-from-2014.patch,
+  +freetype-2.5.4-r1.ebuild, -freetype-2.5.4.ebuild:
+  Backport fixes for bug 532506.
 
   14 Dec 2014; Mike Gilbert <floppym@gentoo.org> freetype-2.5.4.ebuild:
   Switch back to ${S} after sedding the ftdemos Makefile so that epatch_user
index 5d0ae773d6c849717d87d3e4fa5e2f349860e634..aca28b411d9c6e7c3f218d06a598c45e3b514f24 100644 (file)
@@ -1,6 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA256
 
+AUX 2.5.4-0001-pcf-Fix-Savannah-bug-43774.patch 4386 SHA256 e8b4f20c254fb2e6db1092456096d6abd74ba5548d3a1a77573e4a61e3a059bc SHA512 71e027d8239966b49c16ad7f9cc454fc6030aa2b281ae90e87469bc351ef1bcf2a24140cf1d52cebe9fd5ad7b57f214dbe3b4ef080874c07cc22940880a94217 WHIRLPOOL 5b2d5a0629e136b9d525fabec82b1c9908f4374048fd290fb488d02d048b517f5bcba3be9a6a675e6d3e4d46cc3168a18398057569016f7ce4148814a7832a5b
+AUX 2.5.4-0002-src-pcf-pcfread.c-pcf_read_TOC-Improve-fix-from-2014.patch 1092 SHA256 1b0e9ae3f7707ef255ed215d633c53e50ae20cde415e45fb5c0aee8e1100bacc SHA512 4d03362faba804e81ddee7d199d8bf8b352fe5710742c8e3b057a88702c1abeceae34877eff0bef5bdc7d319a5e6a1290d69f025d9019801ad4c426a45b69d51 WHIRLPOOL 337821f639c4589d136d6da7e2026a6957637f62bd01dfdabd06dbf28cf8af66af918cc6a7a29c788e89ad315e8895942cfbf68a751ff11bf1c5d2a4607ded91
 AUX freetype-2.3.2-enable-valid.patch 624 SHA256 3c26cd8b92510490b4bdbdd12b078e33a4f8607eaee64a800c3ea23097d5d43b SHA512 4dd637fa77b3386cc20fff3e68c64411fdc85a09b5bd61a75647aeff294e037c22cf0b788dae1e90f4cb12b1cb2775d0ac658c82eb998603b070af5f8242cff6 WHIRLPOOL 2c25610f0ecde1d5517c780d6db96abd00bbf04fda9343a3cb1ccaddf6b3263bfb6806d198db110566df1cfd765e1c734f6e303ab81a50e60ce7697ce506162e
 AUX freetype-2.4.11-sizeof-types.patch 1041 SHA256 b5ed7a7a8c10f3dcfd62a14998e640aeef185b45e291e5e1ce26b77b0509f77e SHA512 0774b7b769d332cbd0e674fad545d1c2b816947188725a7528d749c6311b84bbdc7f8c1a1f2cc947c405f16e8a92e394d77094aad98a6468f154fdedacec0ecc WHIRLPOOL 28db0f881d43c83cc1628f095c24a0c27e9bea322a5973de7640a35559ceed640433da8307d1692c808638b0bce34ebe3cacc46a42f8c6c66bbb6aa675dd06ee
 DIST freetype-2.5.1-infinality.patch 164325 SHA256 ff7c1760dfbc72675348810b3fd750b626f9d329b63daf7a78fb09d1ddfc4148 SHA512 d9ccc6e7143c901bc170d3d2014b7a0dae2cbc91af01795bb94fbbd56ece90dbc68cda78470e4402c89ea82d482746404d1f199acdf7b206b4129716e13ab2ef WHIRLPOOL d1550cdf2e23718e9642da7edde206b4687961c98153a3b108b1080924d3b72c23e42feffc67cf3527d9eba642c139999ec0c75e59d7ad6fd09b71f3a25b3cf5
@@ -12,13 +14,13 @@ DIST freetype-doc-2.5.4.tar.bz2 109647 SHA256 9fa6fb39a324d0b6b744d3745509c51d10
 DIST ft2demos-2.5.3.tar.bz2 186773 SHA256 e6c9d0b344b88ff5ab25f20640cf78e2ec56bb81a89d1cd1716839357f646c8a SHA512 b239d6b7c1f4c0fa4137a97ab27834f296572a1d086247f1cb8ed01c7d1b3f54137ebfce1eea6f4a209079460ae2686d743097be5ab01e5bb108cf0d55361f4d WHIRLPOOL 0ceb42eca210814286a84cf0f066483ada3c7a9f97310051c5dfb1f1f6249608444c5d16400f5ce781073a303f70299226e9e8554882bd65ceb436b2f80ece2c
 DIST ft2demos-2.5.4.tar.bz2 187225 SHA256 54621937130926235abe05ba08aeb390a983998d2d1173c5fdc9ccb5bda4d96a SHA512 8fc0dd33ce7debc40b2ca696d965df7a72797042c7963aa19a41bc82c20fbc1c1a953535c58ff804a15dddb6f4f58a5d7038abd3949c37a787288720c7712345 WHIRLPOOL 270d8ef5b8d25c7e7c6b77f303eedd85c459b23ac699961637430869f7a3d6d21ee3ce97a34aee6633b25118b1048d7fe65283a26400f2c93eda829f08202602
 EBUILD freetype-2.5.3-r1.ebuild 5324 SHA256 9238160476f32980772b6cf54004b8aa20f2f226e51faf959c04adf65223d33a SHA512 ac9d9e3048e78e59a45705b933d255fbdb52ec33bfc8e7ccc24bb6e8ec63871f50c4ecb93fe5c1dda6179375a1c0f34e2bfb3ae1fd2c97bcbd33e641aa11062e WHIRLPOOL 5e0a523f2f0e4c86db6846b9c99a24e6d250ce05f699101a2e4e6a2647b5c562e0822350f01870469f19d32e7d4122a3a9326a3fb26f57195cd711d4a3f000e3
-EBUILD freetype-2.5.4.ebuild 5403 SHA256 4cd212cd1ff37403f9237d35651f257a25c67d12489c439db8ea8ab043c00b9b SHA512 5259a10434bbf87b48ef7b5c1dd64630b363ff1bc461656e69dea9f29816378fb1ee4cbca0f93dcfcad6640192f0d62b24b408f9d01a913039fee21375661c83 WHIRLPOOL c7c1059a20c6dd1f77a102e6323502128380402efacbfa9b3969ce1a56e2bd91ef6c9d9ece3b8e71182c3dcd61ebf402ab2741bf601f64c7756c0a6dedb09736
-MISC ChangeLog 62395 SHA256 c473f380e25dc7ae8c0268a32fa9c3f8f051aaa11a5c12bd729caf7bdc266134 SHA512 6503c48d96a501febec521499b2889e86bc0b9b2cce4da600640bdf74bb6c04601cbc97c29a430fc3d06e149f20033cd5bd03d510b8d31443bae6bdeb2332de0 WHIRLPOOL c804c6b90df716545be9feee491876e7e92891e1ac81804a9be8503a6f1f6490985d0dd4d38cdb6e3b48ea60c7d26d7044291de2d68ea7bb7fee960a8757677d
+EBUILD freetype-2.5.4-r1.ebuild 5563 SHA256 c87a0b1f72f487e921f927f1fbabe16f87a7f11beb046bb83653835170547d6b SHA512 1a93b8873b5abd55cb48907c8ba667cabc592399c45d6a6939329cc4e76e7f3e593000ce76114b2734d1f7d5fd328b8a9c2281c822f1a6e33c908c30c9fd86f2 WHIRLPOOL d69dd9ba0d6af58f35fab6ca3f827d1e86b24747dcf6e9c445a5153629db22bf303d68c94ef57e970f89801e6ed064102665d0a3a98aa39f421dee21455cc34b
+MISC ChangeLog 62699 SHA256 3f3fb2cadfa95ce1eace314d7c8a9585ce635e2540aba54bbdb98bf07e44f9d6 SHA512 efc4685a7c19203ed8a1dc4777bec2837446290f27b0da5fd5f84648296b09c9f34328ac6581de8bfe8d2d5e571fc5b568ae2bfda03a08d0f9899ef9cc048f5f WHIRLPOOL e6a272967b4a44b65ba7828f8e23a0943121750a2754c62be5affa513bf89c9eb0e4567f21dda227c3b9c8dcb4be63142797d422faa02e1b894deec3ab71d0b4
 MISC metadata.xml 1400 SHA256 65a92662484be603be8adae907f727219ca78e4cb042350d2741c2fa03fde8a7 SHA512 e3052be471b660ff82261b8cf055a2ae20421d51c0ecdbc31a777aabab3708578012682e01b8b7d200cdd53bf980b4515de68196aac5711a2fd4a8799c1051a9 WHIRLPOOL 3bb9331dde6579280d3b673b62d6086f142a23210f40ab2c3a0cedfed39b067c5d2bf5eed3055f03071e650822723ce919d6a938ada5276c38d05265d71dc828
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2
 
-iF4EAREIAAYFAlSN58sACgkQC77qH+pIQ6Sz8wD+NQud3MWF3Q0+OAaANZUo0ktO
-uVDQKEGBHHlCAMsErHAA/i1DNICRhS+ly3kutZYvDiT92WWSJQme1F7VO8CowgT0
-=VVs/
+iF4EAREIAAYFAlSN9HgACgkQC77qH+pIQ6TgIwD+O1HO0x6pVjjqL+HvkWYQ42LF
+HXAuHWnN58RzUP461aAA/jo6M20YrzlOAlZMB5FidgQiaomTKMCYkKx80oPdOi1e
+=td7w
 -----END PGP SIGNATURE-----
diff --git a/media-libs/freetype/files/2.5.4-0001-pcf-Fix-Savannah-bug-43774.patch b/media-libs/freetype/files/2.5.4-0001-pcf-Fix-Savannah-bug-43774.patch
new file mode 100644 (file)
index 0000000..3c30a29
--- /dev/null
@@ -0,0 +1,127 @@
+From 9c5f73f7a978ec4b071e7bb7fef3e0f016322a68 Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl@gnu.org>
+Date: Mon, 8 Dec 2014 16:01:50 +0100
+Subject: [PATCH 1/2] [pcf] Fix Savannah bug #43774.
+
+Work around `features' of X11's `pcfWriteFont' and `pcfReadFont'
+functions.  Since the PCF format doesn't have an official
+specification, we have to exactly follow these functions' behaviour.
+
+The problem was unveiled with a patch from 2014-11-06, fixing issue #43547.
+
+* src/pcf/pcfread.c (pcf_read_TOC): Don't check table size for last
+element.  Instead, assign real size.
+
+Conflicts:
+       ChangeLog
+---
+ src/pcf/pcfread.c | 54 +++++++++++++++++++++++++++++++++++++++++++-----------
+ 1 file changed, 43 insertions(+), 11 deletions(-)
+
+diff --git a/src/pcf/pcfread.c b/src/pcf/pcfread.c
+index 998cbed..e3caf82 100644
+--- a/src/pcf/pcfread.c
++++ b/src/pcf/pcfread.c
+@@ -2,7 +2,7 @@
+ 
+     FreeType font driver for pcf fonts
+ 
+-  Copyright 2000-2010, 2012, 2013 by
++  Copyright 2000-2010, 2012-2014 by
+   Francesco Zappa Nardelli
+ 
+ Permission is hereby granted, free of charge, to any person obtaining a copy
+@@ -78,7 +78,7 @@ THE SOFTWARE.
+     FT_FRAME_START( 16  ),
+       FT_FRAME_ULONG_LE( type ),
+       FT_FRAME_ULONG_LE( format ),
+-      FT_FRAME_ULONG_LE( size ),
++      FT_FRAME_ULONG_LE( size ),   /* rounded up to a multiple of 4 */
+       FT_FRAME_ULONG_LE( offset ),
+     FT_FRAME_END
+   };
+@@ -95,9 +95,11 @@ THE SOFTWARE.
+     FT_Memory  memory = FT_FACE( face )->memory;
+     FT_UInt    n;
+ 
++    FT_ULong   size;
+ 
+-    if ( FT_STREAM_SEEK ( 0 )                          ||
+-         FT_STREAM_READ_FIELDS ( pcf_toc_header, toc ) )
++
++    if ( FT_STREAM_SEEK( 0 )                          ||
++         FT_STREAM_READ_FIELDS( pcf_toc_header, toc ) )
+       return FT_THROW( Cannot_Open_Resource );
+ 
+     if ( toc->version != PCF_FILE_VERSION                 ||
+@@ -154,14 +156,35 @@ THE SOFTWARE.
+         break;
+     }
+ 
+-    /* we now check whether the `size' and `offset' values are reasonable: */
+-    /* `offset' + `size' must not exceed the stream size                   */
++    /*
++     *  We now check whether the `size' and `offset' values are reasonable:
++     *  `offset' + `size' must not exceed the stream size.
++     *
++     *  Note, however, that X11's `pcfWriteFont' routine (used by the
++     *  `bdftopcf' program to create PDF font files) has two special
++     *  features.
++     *
++     *  - It always assigns the accelerator table a size of 100 bytes in the
++     *    TOC, regardless of its real size, which can vary between 34 and 72
++     *    bytes.
++     *
++     *  - Due to the way the routine is designed, it ships out the last font
++     *    table with its real size, ignoring the TOC's size value.  Since
++     *    the TOC size values are always rounded up to a multiple of 4, the
++     *    difference can be up to three bytes for all tables except the
++     *    accelerator table, for which the difference can be as large as 66
++     *    bytes.
++     *
++     */
++
+     tables = face->toc.tables;
+-    for ( n = 0; n < toc->count; n++ )
++    size   = stream->size;
++
++    for ( n = 0; n < toc->count - 1; n++ )
+     {
+       /* we need two checks to avoid overflow */
+-      if ( ( tables->size   > stream->size                ) ||
+-           ( tables->offset > stream->size - tables->size ) )
++      if ( ( tables->size   > size                ) ||
++           ( tables->offset > size - tables->size ) )
+       {
+         error = FT_THROW( Invalid_Table );
+         goto Exit;
+@@ -169,6 +192,15 @@ THE SOFTWARE.
+       tables++;
+     }
+ 
++    /* no check of `tables->size' for last table element ... */
++    if ( ( tables->offset > size ) )
++    {
++      error = FT_THROW( Invalid_Table );
++      goto Exit;
++    }
++    /* ... instead, we adjust `tables->size' to the real value */
++    tables->size = size - tables->offset;
++
+ #ifdef FT_DEBUG_LEVEL_TRACE
+ 
+     {
+@@ -733,8 +765,8 @@ THE SOFTWARE.
+ 
+     FT_TRACE4(( "  number of bitmaps: %d\n", nbitmaps ));
+ 
+-    /* XXX: PCF_Face->nmetrics is singed FT_Long, see pcf.h */
+-    if ( face->nmetrics < 0 || nbitmaps != ( FT_ULong )face->nmetrics )
++    /* XXX: PCF_Face->nmetrics is signed FT_Long, see pcf.h */
++    if ( face->nmetrics < 0 || nbitmaps != (FT_ULong)face->nmetrics )
+       return FT_THROW( Invalid_File_Format );
+ 
+     if ( FT_NEW_ARRAY( offsets, nbitmaps ) )
+-- 
+2.2.0
+
diff --git a/media-libs/freetype/files/2.5.4-0002-src-pcf-pcfread.c-pcf_read_TOC-Improve-fix-from-2014.patch b/media-libs/freetype/files/2.5.4-0002-src-pcf-pcfread.c-pcf_read_TOC-Improve-fix-from-2014.patch
new file mode 100644 (file)
index 0000000..fb738f9
--- /dev/null
@@ -0,0 +1,38 @@
+From 8d62e1a4b393c8b1f1aed189582894216cd879d8 Mon Sep 17 00:00:00 2001
+From: Werner Lemberg <wl@gnu.org>
+Date: Sat, 13 Dec 2014 07:42:51 +0100
+Subject: [PATCH 2/2] * src/pcf/pcfread.c (pcf_read_TOC): Improve fix from
+ 2014-12-08.
+
+Conflicts:
+       ChangeLog
+---
+ src/pcf/pcfread.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/src/pcf/pcfread.c b/src/pcf/pcfread.c
+index e3caf82..a29a9e3 100644
+--- a/src/pcf/pcfread.c
++++ b/src/pcf/pcfread.c
+@@ -192,14 +192,15 @@ THE SOFTWARE.
+       tables++;
+     }
+ 
+-    /* no check of `tables->size' for last table element ... */
++    /* only check `tables->offset' for last table element ... */
+     if ( ( tables->offset > size ) )
+     {
+       error = FT_THROW( Invalid_Table );
+       goto Exit;
+     }
+-    /* ... instead, we adjust `tables->size' to the real value */
+-    tables->size = size - tables->offset;
++    /* ... and adjust `tables->size' to the real value if necessary */
++    if ( tables->size > size - tables->offset )
++      tables->size = size - tables->offset;
+ 
+ #ifdef FT_DEBUG_LEVEL_TRACE
+ 
+-- 
+2.2.0
+
similarity index 96%
rename from media-libs/freetype/freetype-2.5.4.ebuild
rename to media-libs/freetype/freetype-2.5.4-r1.ebuild
index 14a639d40b0525754e91ffd34e794b5fc00e4c18..923b59e63343e990cd418f536110e978152d6413 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2014 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/freetype-2.5.4.ebuild,v 1.3 2014/12/14 19:40:58 floppym Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/freetype/freetype-2.5.4-r1.ebuild,v 1.1 2014/12/14 20:35:02 floppym Exp $
 
 EAPI=5
 inherit autotools-multilib flag-o-matic multilib toolchain-funcs
@@ -36,6 +36,11 @@ RDEPEND="${CDEPEND}
        abi_x86_32? ( utils? ( !app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)] ) )"
 PDEPEND="infinality? ( media-libs/fontconfig-infinality )"
 
+PATCHES=(
+       "${FILESDIR}/2.5.4-0001-pcf-Fix-Savannah-bug-43774.patch"
+       "${FILESDIR}/2.5.4-0002-src-pcf-pcfread.c-pcf_read_TOC-Improve-fix-from-2014.patch"
+)
+
 src_prepare() {
        enable_option() {
                sed -i -e "/#define $1/a #define $1" \