From a5da9fa17cf2f3a2b3fedcc1f7c48d709d33aa1c Mon Sep 17 00:00:00 2001 From: Jakub Bogusz Date: Sat, 30 Jun 2001 13:10:46 +0000 Subject: [PATCH] - updated to 2.0.4, removed obsolete include-nowarn patch - added patch to fix SEGV on .gsf fonts Changed files: freetype.spec -> 1.49 freetype2-gsf-segv.patch -> 1.1 freetype2-include-nowarn.patch -> 1.2 --- freetype.spec | 19 +++++---- freetype2-gsf-segv.patch | 71 ++++++++++++++++++++++++++++++++++ freetype2-include-nowarn.patch | 19 --------- 3 files changed, 82 insertions(+), 27 deletions(-) create mode 100644 freetype2-gsf-segv.patch delete mode 100644 freetype2-include-nowarn.patch diff --git a/freetype.spec b/freetype.spec index d3167b5..c45e171 100644 --- a/freetype.spec +++ b/freetype.spec @@ -1,16 +1,18 @@ Summary: Truetype font rasterizer Summary(pl): Rasteryzer fontów Truetype Name: freetype -Version: 2.0.2 -Release: 2 -License: GPL +Version: 2.0.4 +Release: 1 +License: GPL or FTL Group: Libraries Group(de): Libraries +Group(es): Bibliotecas Group(fr): Librairies Group(pl): Biblioteki -Source0: ftp://freetype.sourceforge.net/pub/freetype/%{name}2/%{name}-%{version}-test.tar.bz2 +Source0: ftp://freetype.sourceforge.net/pub/freetype/%{name}2/%{name}-%{version}.tar.bz2 +Source1: ftp://freetype.sourceforge.net/pub/freetype/%{name}2/ftdocs-%{version}.tar.bz2 Patch0: %{name}2-DESTDIR.patch -Patch1: %{name}2-include-nowarn.patch +Patch1: %{name}2-gsf-segv.patch URL: http://www.freetype.org/ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) Obsoletes: freetype2 @@ -68,7 +70,7 @@ Static freetype libraries. Biblioteki statyczne freetype. %prep -%setup -q -n freetype-%{version}-test +%setup -q -b1 %patch0 -p1 %patch1 -p1 @@ -83,7 +85,7 @@ rm -rf $RPM_BUILD_ROOT %{__make} install \ DESTDIR="$RPM_BUILD_ROOT" -gzip -9nf LICENSE.TXT +gzip -9nf docs/{CHANGES,FTL.txt,PATENTS,license.txt,todo,cache.txt} %post -p /sbin/ldconfig %postun -p /sbin/ldconfig @@ -93,11 +95,12 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc *.gz docs/*.html +%doc docs/*.gz %attr(755,root,root) %{_libdir}/lib*so.*.* %files devel %defattr(644,root,root,755) +%doc docs/*.html docs/{design,freetype2,glyphs,reference,tutorial} %attr(755,root,root) %{_bindir}/* %attr(755,root,root) %{_libdir}/lib*.so %attr(755,root,root) %{_libdir}/lib*.la diff --git a/freetype2-gsf-segv.patch b/freetype2-gsf-segv.patch new file mode 100644 index 0000000..1825211 --- /dev/null +++ b/freetype2-gsf-segv.patch @@ -0,0 +1,71 @@ +--- freetype-2.0.4/src/type1/t1load.c.orig Tue Jun 19 10:28:23 2001 ++++ freetype-2.0.4/src/type1/t1load.c Sat Jun 30 00:00:25 2001 +@@ -73,7 +73,7 @@ + + #include /* for strncmp(), strcmp() */ + #include /* for isalnum() */ +- ++#include + + /*************************************************************************/ + /* */ +@@ -1116,7 +1116,7 @@ + for ( n = 0; n < loader->num_subrs; n++ ) + { + FT_Int index, size; +- FT_Byte* base; ++ FT_Byte* base, *temp; + + + /* If the next token isn't `dup', we are also done. This */ +@@ -1150,12 +1149,18 @@ + /* */ + if ( face->type1.private_dict.lenIV >= 0 ) + { +- psaux->t1_decrypt( base, size, 4330 ); ++ /* decrypt writes to base - make temporary copy */ ++ if ( (temp=malloc( size )) == NULL ) ++ return; ++ MEM_Copy( temp, base, size ); ++ psaux->t1_decrypt( temp, size, 4330 ); + size -= face->type1.private_dict.lenIV; + base += face->type1.private_dict.lenIV; ++ error = T1_Add_Table( table, index, temp+4, size ); ++ free( temp ); + } +- ++ else + error = T1_Add_Table( table, index, base, size ); + if ( error ) + goto Fail; + } +@@ -1179,7 +1183,7 @@ + + PSAux_Interface* psaux = (PSAux_Interface*)face->psaux; + +- FT_Byte* cur; ++ FT_Byte* cur, *temp; + FT_Byte* limit = parser->root.limit; + FT_Int n; + FT_UInt notdef_index = 0; +@@ -1282,12 +1286,18 @@ + + if ( face->type1.private_dict.lenIV >= 0 ) + { +- psaux->t1_decrypt( base, size, 4330 ); ++ /* decrypt writes to base - make temporary copy */ ++ if ( (temp = malloc( size )) == NULL ) ++ return; ++ MEM_Copy( temp, base, size ); ++ psaux->t1_decrypt( temp, size, 4330 ); + size -= face->type1.private_dict.lenIV; + base += face->type1.private_dict.lenIV; ++ error = T1_Add_Table( code_table, n, temp+4, size ); ++ free( temp ); + } +- ++ else + error = T1_Add_Table( code_table, n, base, size ); + if ( error ) + goto Fail; + diff --git a/freetype2-include-nowarn.patch b/freetype2-include-nowarn.patch deleted file mode 100644 index e26b9e0..0000000 --- a/freetype2-include-nowarn.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff -Nur freetype-2.0.2-test.orig/builds/unix/ft2unix.h freetype-2.0.2-test/builds/unix/ft2unix.h ---- freetype-2.0.2-test.orig/builds/unix/ft2unix.h Tue Dec 12 23:27:54 2000 -+++ freetype-2.0.2-test/builds/unix/ft2unix.h Tue Mar 27 15:54:43 2001 -@@ -30,11 +30,11 @@ - #ifndef __FT2_BUILD_UNIX_H__ - #define __FT2_BUILD_UNIX_H__ - --#define FT2_PUBLIC_FILE( x ) --#define FT2_CONFIG_FILE( x ) --#define FT2_INTERNAL_FILE( x ) -+#define FT2_H_PUBLIC_FILE( x ) -+#define FT2_H_CONFIG_FILE( x ) -+#define FT2_H_INTERNAL_FILE( x ) - --#include FT2_CONFIG_FILE( ft2build.h ) -+#include FT2_H_CONFIG_FILE( ft2build.h ) - - #endif /* __FT2_BUILD_UNIX_H__ */ - -- 2.44.0