diff --git a/t1lib-5.0.0-t1libconfig.patch b/t1lib-5.0.0-t1libconfig.patch index b4d1a9d..8000900 100644 --- a/t1lib-5.0.0-t1libconfig.patch +++ b/t1lib-5.0.0-t1libconfig.patch @@ -174,7 +174,7 @@ + fi + fi + # get a listing of all the fonts in each dir -+ find $i -name *.pf[ab] -maxdepth 1 -printf '%f\n' >> $temp ++ find $i -maxdepth 1 -name *.pf[ab] -printf '%f\n' >> $temp + fi + done + if [ -z "$fontpath" ]; then diff --git a/t1lib-5.1.1-segf.patch b/t1lib-5.1.1-segf.patch new file mode 100644 index 0000000..fa03e1b --- /dev/null +++ b/t1lib-5.1.1-segf.patch @@ -0,0 +1,59 @@ +diff -up t1lib-5.1.1/lib/t1lib/t1base.c.segf t1lib-5.1.1/lib/t1lib/t1base.c +--- t1lib-5.1.1/lib/t1lib/t1base.c.segf 2008-01-05 20:52:02.000000000 +0100 ++++ t1lib-5.1.1/lib/t1lib/t1base.c 2008-01-05 22:40:55.000000000 +0100 +@@ -455,7 +455,7 @@ int intT1_scanFontDBase( char *filename) + to test_for_t1_file() filename is substituted by an emty + string if the file was not found: */ + sprintf( err_warn_msg_buf, "Type 1 Font file %s.[pfa/pfb] not found (FontID=%d, SearchPath=%s)", +- linebuf, m-1, T1_GetFileSearchPath(T1_PFAB_PATH)); ++ linebuf, m-1, intT1_GetFileSearchPath(T1_PFAB_PATH)); + if ((test_for_t1_file( &linebuf[0]))){ + T1_PrintLog( "intT1_scanFontDBase()", err_warn_msg_buf, T1LOG_WARNING); + located=0; +@@ -579,7 +579,7 @@ int intT1_scanFontDBaseXLFD( char *filen + to test_for_t1_file() filename is substituted by an emty + string if the file was not found: */ + sprintf( err_warn_msg_buf, "Type 1 Font file %s.[pfa/pfb] not found (FontID=%d, SearchPath=%s)", +- linebuf, m-1, T1_GetFileSearchPath(T1_PFAB_PATH)); ++ linebuf, m-1, intT1_GetFileSearchPath(T1_PFAB_PATH)); + if ((test_for_t1_file( &linebuf[0]))){ + T1_PrintLog( "intT1_scanFontDBase()", err_warn_msg_buf, T1LOG_WARNING); + located=0; +diff -up t1lib-5.1.1/lib/t1lib/t1env.c.segf t1lib-5.1.1/lib/t1lib/t1env.c +--- t1lib-5.1.1/lib/t1lib/t1env.c.segf 2008-01-05 22:18:14.000000000 +0100 ++++ t1lib-5.1.1/lib/t1lib/t1env.c 2008-01-05 22:44:06.000000000 +0100 +@@ -807,6 +807,14 @@ char *T1_GetFileSearchPath( int type) + + } + ++/* intT1_GetFileSearchPath(): ++ call T1_GetFileSearchPath and truncate the line to avoid overflowing ++ error buffers*/ ++char *intT1_GetFileSearchPath( int type) ++{ ++ char *res = T1_GetFileSearchPath(type); ++ res[900] = 0; ++} + + /* T1_AddToFileSearchPath(): Add the specified path element to + the specified search path. If the existing path is the default path, +diff -up t1lib-5.1.1/lib/t1lib/t1load.c.segf t1lib-5.1.1/lib/t1lib/t1load.c +diff -up t1lib-5.1.1/lib/t1lib/t1env.h.segf t1lib-5.1.1/lib/t1lib/t1env.h +--- t1lib-5.1.1/lib/t1lib/t1env.h.segf 2008-01-05 22:31:58.000000000 +0100 ++++ t1lib-5.1.1/lib/t1lib/t1env.h 2008-01-05 22:44:55.000000000 +0100 +@@ -35,6 +35,7 @@ char *intT1_Env_GetCompletePath( char *F + int T1_SetFileSearchPath( int type, char *pathname); + int T1_AddToFileSearchPath( int pathtype, int mode, char *pathname); + char *T1_GetFileSearchPath( int type); ++char *intT1_GetFileSearchPath( int type); + int T1_SetFontDataBase( char *filename); + int T1_AddFontDataBase( int mode, char *filename); + int T1_SetFontDataBaseXLFD( char *filename); +@@ -49,6 +50,7 @@ extern char *intT1_Env_GetCompletePath( + extern int T1_SetFileSearchPath( int type, char *pathname); + extern int T1_AddToFileSearchPath( int pathtype, int mode, char *pathname); + extern char *T1_GetFileSearchPath( int type); ++extern char *intT1_GetFileSearchPath( int type); + extern int T1_SetFontDataBase( char *filename); + extern int T1_AddFontDataBase( int mode, char *filename); + extern int T1_SetFontDataBaseXLFD( char *filename); diff --git a/t1lib.spec b/t1lib.spec index 60c14d7..e616dd1 100644 --- a/t1lib.spec +++ b/t1lib.spec @@ -1,6 +1,6 @@ Name: t1lib Version: 5.1.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: PostScript Type 1 font rasterizer @@ -13,7 +13,8 @@ Patch1: t1lib-5.0.0-manpages.patch Patch2: t1lib-5.0.0-xglyph-env.patch # From Debian's t1lib-5.0.0-4 (slightly tweaked): Patch3: t1lib-5.0.0-t1libconfig.patch -Patch4: t1lib-cve-2007-4033.patch +Patch4: t1lib-cve-2007-4033.patch +Patch5: t1lib-5.1.1-segf.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires(post): coreutils, findutils @@ -28,13 +29,20 @@ AFM-files can be generated from Type 1 font files and font subsetting is possible. %package devel -Summary: Header files and static libraries for %{name} +Summary: Header files and development files for %{name} Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel -This package contains header files and static libraries for %{name}. +This package contains header files and development files for %{name}. +%package static +Summary: Static libraries for %{name} +Group: Development/Libraries +Requires: %{name}-devel = %{version}-%{release} + +%description static +This package contains header files and static libraries for %{name}. %prep %setup -q @@ -42,33 +50,43 @@ This package contains header files and static libraries for %{name}. %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 -b .segf +iconv -f latin1 -t utf8 < Changes > Changes.utf8 +touch -r Changes Changes.utf8 +mv Changes.utf8 Changes %build %configure make %{?_smp_mflags} without_doc +touch -r lib/t1lib/t1lib.h.in lib/t1lib.h +touch -r lib/t1lib/t1libx.h lib/t1libx.h ln README.t1lib-%{version} README +sed -e 's;/usr/share/X11/fonts;%{_datadir}/X11/fonts %{_datadir}/fonts %{_datadir}/texmf/fonts;' \ + -e 's;/etc/t1lib/;%{_datadir}/t1lib/;' \ + -e 's;/usr/lib/ghostscript/fonts;;' \ + debian/t1libconfig > t1libconfig +touch -r README.t1lib-%{version} t1libconfig %install rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT -find $RPM_BUILD_ROOT -type f -name "*.la" -exec rm -f {} ';' +make install DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' +rm $RPM_BUILD_ROOT%{_libdir}/libt1*.la +chmod a+x $RPM_BUILD_ROOT%{_libdir}/libt1*.so.* mkdir -p $RPM_BUILD_ROOT%{_mandir}/man{1,5,8} install -p -m 644 debian/FontDatabase.5 $RPM_BUILD_ROOT%{_mandir}/man5/ install -p -m 644 debian/t1libconfig.8 $RPM_BUILD_ROOT%{_mandir}/man8/ install -p -m 644 debian/type1afm.1 $RPM_BUILD_ROOT%{_mandir}/man1/ install -p -m 644 debian/xglyph.1 $RPM_BUILD_ROOT%{_mandir}/man1/ +touch -r README.t1lib-%{version} $RPM_BUILD_ROOT%{_mandir}/man?/*.* mkdir -p $RPM_BUILD_ROOT%{_sbindir} -install -p -m 755 debian/t1libconfig $RPM_BUILD_ROOT%{_sbindir}/ +install -p -m 755 t1libconfig $RPM_BUILD_ROOT%{_sbindir}/ -touch FontDatabase -install -d -m 755 $RPM_BUILD_ROOT%{_sysconfdir}/t1lib -install -p -m 644 FontDatabase $RPM_BUILD_ROOT%{_sysconfdir}/t1lib/ -touch $RPM_BUILD_ROOT%{_sysconfdir}/t1lib/t1lib.config +touch $RPM_BUILD_ROOT%{_datadir}/t1lib/FontDatabase -rm -rf $RPM_BUILD_ROOT%{_datadir}/t1lib +rm -rf $RPM_BUILD_ROOT%{_datadir}/t1lib/doc %clean @@ -85,9 +103,9 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc Changes LGPL LICENSE README -%dir %{_sysconfdir}/t1lib -%ghost %{_sysconfdir}/t1lib/t1lib.config -%ghost %{_sysconfdir}/t1lib/FontDatabase +%dir %{_datadir}/t1lib +%ghost %verify(not size mtime md5) %{_datadir}/t1lib/t1lib.config +%ghost %verify(not size mtime md5) %{_datadir}/t1lib/FontDatabase %{_bindir}/* %{_libdir}/*.so.* %{_mandir}/man*/* @@ -97,11 +115,23 @@ rm -rf $RPM_BUILD_ROOT %defattr(-,root,root,-) %doc doc/t1lib_doc.pdf %{_includedir}/*.h -%{_libdir}/*.a %{_libdir}/*.so +%files static +%defattr(-,root,root,-) +%{_libdir}/*.a + %changelog +* Sat Jan 5 2008 Patrice Dumas - 5.1.1-4 +- separate subpackage for static library +- keep timestamps +- add more paths to t1libconfig and use rpm macros for those paths +- fix the -maxdepth position in find +- put t1lib.config and FontDatabase in %%{_datadir} these are not + config files, they are generated +- fix a segfault in t1lib with long TYPE1 lines + * Thu Sep 27 2007 José Matos - 5.1.1-3 - Apply patch to fix CVE-2007-4033