diff --git a/README.md b/README.md index 8053b56..cb68307 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,7 @@ # ttmkfdir +ttmkfdir is a tool to create valid and complete fonts.dir files from TrueType fonts. It is very useful +when you plan to use a TrueType enabled font server that is based on the X11R6 sample +implementation (xfsft for instance). Great care has been taken to correctly identify the encodings +that a given TrueType font supports. + diff --git a/ttmkfdir-3.0.9-bug434301.patch b/ttmkfdir-3.0.9-bug434301.patch new file mode 100644 index 0000000..0a77dbb --- /dev/null +++ b/ttmkfdir-3.0.9-bug434301.patch @@ -0,0 +1,11 @@ +--- ttmkfdir-3.0.9/directory.cpp.bak 2008-02-27 10:18:52.000000000 +0800 ++++ ttmkfdir-3.0.9/directory.cpp 2008-02-27 10:20:24.000000000 +0800 +@@ -3,6 +3,8 @@ + #include + #include + #include ++#include ++#include + + #include "directory.h" + diff --git a/ttmkfdir-3.0.9-cpp.patch b/ttmkfdir-3.0.9-cpp.patch new file mode 100644 index 0000000..58839ed --- /dev/null +++ b/ttmkfdir-3.0.9-cpp.patch @@ -0,0 +1,11 @@ +--- ttmkfdir-3.0.9/ttf.cpp.sopwith Thu Aug 7 12:49:08 2003 ++++ ttmkfdir-3.0.9/ttf.cpp Thu Aug 7 12:50:01 2003 +@@ -239,7 +239,7 @@ + for (i = 0; i < n; i++) { + if ((fterror = FT_Get_Sfnt_Name (face, i, &NamePtr)) != FT_Err_Ok) { + std::cout << "Warning: Can't SFNT name : " << FileName << "(" << fterror << ")" << std::endl; +- return; ++ return NULL; + }; + platform = NamePtr.platform_id; + encoding = NamePtr.encoding_id; diff --git a/ttmkfdir-3.0.9-fix-crash.patch b/ttmkfdir-3.0.9-fix-crash.patch new file mode 100644 index 0000000..4a17ccf --- /dev/null +++ b/ttmkfdir-3.0.9-fix-crash.patch @@ -0,0 +1,79 @@ +--- ttmkfdir-3.0.9.orig/encoding.l 2003-01-08 14:25:25.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.l 2005-08-03 19:24:22.000000000 +0900 +@@ -21,6 +21,19 @@ + + static Encoding *cur_enc; + static NumericMapping *cur_map; ++static int is_created_map = 0; ++ ++static void ++create_mapping(void) ++{ ++ cur_map = new NumericMapping (cur_enc->size, ++ TT_PLATFORM_MICROSOFT, ++ TT_MS_ID_UNICODE_CS); ++ ++ cur_enc->enc_size = 0; ++ cur_enc->start_code = 0xffff; ++ is_created_map = 1; ++} + + %} + +@@ -67,12 +80,6 @@ + } + + STARTMAPPING{WHITESPACES}unicode { +- cur_map = new NumericMapping (cur_enc->size, +- TT_PLATFORM_MICROSOFT, +- TT_MS_ID_UNICODE_CS); +- +- cur_enc->enc_size = 0; +- cur_enc->start_code = 0xffff; + BEGIN(INSIDE_MAP_BLOCK); + } + +@@ -107,6 +114,12 @@ + i2 = i1; + } + ++ /* avoid a crash issue */ ++ if (cur_enc->size < i2) ++ cur_enc->size = i2; ++ if (!is_created_map) ++ create_mapping(); ++ + /* now mark all the unassigned codes */ + for (long i = i1; i <= i2; i++) { + (*cur_map)[i] = -1; +@@ -114,10 +127,14 @@ + } + + {NUMBER}({WHITESPACES}{NUMBER}){0,2} { +- int numbers[3], i = 0, start_range, end_range, target, res; ++ unsigned int start_range; ++ int numbers[3], i = 0, end_range, target, res; + char *startptr; + char *endptr = yytext; + ++ if (!is_created_map) ++ create_mapping(); ++ + for (i = 0;;i++) { + startptr = endptr; + res = std::strtol (startptr, &endptr, 0); +@@ -150,9 +167,14 @@ + + + ENDMAPPING { ++ /* it may not happens but to be safe */ ++ if (!is_created_map) ++ create_mapping(); ++ + cur_enc->AddMapping (cur_map); + dest.insert (std::make_pair(cur_map->cmapkey(), cur_enc));; + BEGIN(INSIDE_ENC_BLOCK); ++ is_created_map = 0; + } + + ENDMAPPING { diff --git a/ttmkfdir-3.0.9-fix-freetype217.patch b/ttmkfdir-3.0.9-fix-freetype217.patch new file mode 100644 index 0000000..a5ded9f --- /dev/null +++ b/ttmkfdir-3.0.9-fix-freetype217.patch @@ -0,0 +1,44 @@ +--- ttmkfdir-3.0.9/encoding.cpp.orig 2002-12-09 17:52:48.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.cpp 2004-01-31 18:16:46.617118976 +0900 +@@ -4,7 +4,6 @@ + #include + #include + #include +-#include "freetype/freetype.h" + + #include "ttmkfdir.h" + #include "encoding.h" +--- ttmkfdir-3.0.9/encoding.h.orig 2002-12-09 17:52:48.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.h 2004-01-31 18:19:18.600014064 +0900 +@@ -6,7 +6,8 @@ + #include + #include + +-#include "freetype/freetype.h" ++#include ++#include FT_FREETYPE_H + + #include "util.h" + +--- ttmkfdir-3.0.9/ttf.h.orig 2003-01-08 14:25:25.000000000 +0900 ++++ ttmkfdir-3.0.9/ttf.h 2004-01-31 18:32:53.333155800 +0900 +@@ -3,12 +3,13 @@ + #define TTF_H__ + + #include +-#include "freetype/freetype.h" +-#include "freetype/tttables.h" +-#include "freetype/ftsnames.h" +-#include "freetype/ttnameid.h" +-#include "freetype/fterrors.h" +-#include "freetype/ftmodule.h" ++#include ++#include FT_FREETYPE_H ++#include FT_SFNT_NAMES_H ++#include FT_TRUETYPE_TABLES_H ++#include FT_TRUETYPE_IDS_H ++#include FT_ERRORS_H ++#include FT_MODULE_H + + #include "util.h" + #include "encoding.h" diff --git a/ttmkfdir-3.0.9-font-scale.patch b/ttmkfdir-3.0.9-font-scale.patch new file mode 100644 index 0000000..e44e5dc --- /dev/null +++ b/ttmkfdir-3.0.9-font-scale.patch @@ -0,0 +1,107 @@ +diff -ruN -x '*o' -x '*~' -x ttmkfdir -x parser.cpp ttmkfdir-3.0.9.orig/ttf.cpp ttmkfdir-3.0.9/ttf.cpp +--- ttmkfdir-3.0.9.orig/ttf.cpp 2006-11-29 15:46:55.000000000 +0900 ++++ ttmkfdir-3.0.9/ttf.cpp 2006-11-29 17:21:40.000000000 +0900 +@@ -70,7 +70,6 @@ + Face::Face (const std::string &filename) + { + FT_Error fterror; +- string header_enc("-"); + int face_id, face_count; + + string::size_type pos = filename.rfind("/"); +@@ -98,29 +97,13 @@ + if ((post = (TT_Postscript *) FT_Get_Sfnt_Table(face, ft_sfnt_post)) == 0){ + std::cout << "Warning: Can't get POST table : " << FileName << "(" << FT_Err_Post_Table_Missing << ")" << std::endl; + return; +- } ++ } + + if ((os2 = (TT_OS2 *) FT_Get_Sfnt_Table(face, ft_sfnt_os2)) == 0) { + std::cout << "Warning: Can't get OS2 table : " << FileName << "(" << FT_Err_Table_Missing << ")" << std::endl; + return; + } + +- for (int j = 0; j < 32; j++) { +- switch (os2->ulCodePageRange1 & (1 << j)) { +- case TT_CODEPAGE_RANGE_932: /* Japanese */ +- header_enc = "ji"; +- break; +- case TT_CODEPAGE_RANGE_936: /* Simplified Chinese */ +- header_enc = "gb"; +- break; +- case TT_CODEPAGE_RANGE_949: /* Korean Wansung */ +- header_enc = "ks"; +- break; +- case TT_CODEPAGE_RANGE_950: /* Traditional Chinese */ +- header_enc = "big"; +- break; +- } +- } + /* + * Iterate over all cmap entries. + */ +@@ -148,25 +131,50 @@ + */ + typedef Encodings_t::const_iterator MI; + std::pair bounds = Encodings::instance()->equal_range (key); ++ bool need_non_cjk_encoding = true; + + /* + * then look whether each of these encodings is present in this cmap. + */ +- for (Encodings_t::const_iterator i = bounds.first; i != bounds.second; i++) { +- if (MappingPresent (cmapidx, +- i->second->mappings[key], +- i->second->enc_size, +- i->second->start_code, +- (header_enc.compare("-")?((i->second->names[0].find(header_enc) != string::npos)?1:0):1) +- )) { +- /* +- * if the mapping is present, add all xlfd names for this mapping to the +- * list of available font names. +- */ +- for (unsigned int k = 0; k < i->second->names.size (); k++) { +- add_entries (i->second->names[k],face_id); ++ for (int j = 0; j < 32; j++) { ++ string header_enc("-"); ++ ++ switch (os2->ulCodePageRange1 & (1 << j)) { ++ case TT_CODEPAGE_RANGE_932: /* Japanese */ ++ header_enc = "ji"; ++ break; ++ case TT_CODEPAGE_RANGE_936: /* Simplified Chinese */ ++ header_enc = "gb"; ++ break; ++ case TT_CODEPAGE_RANGE_949: /* Korean Wansung */ ++ header_enc = "ks"; ++ break; ++ case TT_CODEPAGE_RANGE_950: /* Traditional Chinese */ ++ header_enc = "big"; ++ break; ++ default: ++ if (need_non_cjk_encoding) ++ need_non_cjk_encoding = false; ++ else ++ continue; ++ break; ++ } ++ for (Encodings_t::const_iterator i = bounds.first; i != bounds.second; i++) { ++ if (MappingPresent (cmapidx, ++ i->second->mappings[key], ++ i->second->enc_size, ++ i->second->start_code, ++ (header_enc.compare("-")?((i->second->names[0].find(header_enc) != string::npos)?1:0):1) ++ )) { ++ /* ++ * if the mapping is present, add all xlfd names for this mapping to the ++ * list of available font names. ++ */ ++ for (unsigned int k = 0; k < i->second->names.size (); k++) { ++ add_entries (i->second->names[k],face_id); ++ } + } +- } ++ } + } + } + diff --git a/ttmkfdir-3.0.9-mamba-encoding_dir.patch b/ttmkfdir-3.0.9-mamba-encoding_dir.patch new file mode 100644 index 0000000..293e695 --- /dev/null +++ b/ttmkfdir-3.0.9-mamba-encoding_dir.patch @@ -0,0 +1,20 @@ +--- ttmkfdir.cpp 2011-01-24 09:30:16.000000000 +0100 ++++ ttmkfdir.cpp-gil 2011-01-24 09:41:57.000000000 +0100 +@@ -16,7 +16,7 @@ + + cerr << "This Program is (C) Joerg Pommnitz, 2000" << endl; + cerr << "Usage: " << program << " [OPTION]" << endl; +- cerr << "-e, --encoding\t\tname of the encoding directory file, default is \"/usr/X11R6/lib/X11/fonts/encodings/encodings.dir\"" << endl; ++ cerr << "-e, --encoding\t\tname of the encoding directory file, default is \"/usr/lib/X11/fonts/encodings/encodings.dir\"" << endl; + cerr << "-o, --output\t\tname of the destination file, default is \"fonts.scale\"" << endl; + cerr << "-d, --font-dir\t\tname of the TrueType font directory, default is \".\"" << endl; + cerr << "-f, --default-foundry\tname of the default font foundry, default is \"misc\"" << endl; +@@ -32,7 +32,7 @@ + void + ParseCommandline (int argc, char *argv[]) + { +- cmdline::instance()->AddOption (new Commandline::Option ("encoding", 'e', "/usr/X11R6/lib/X11/fonts/encodings/encodings.dir")); ++ cmdline::instance()->AddOption (new Commandline::Option ("encoding", 'e', "/usr/lib/X11/fonts/encodings/encodings.dir")); + cmdline::instance()->AddOption (new Commandline::Option ("output", 'o', "fonts.scale")); + cmdline::instance()->AddOption (new Commandline::Option ("font-dir", 'd', ".")); + cmdline::instance()->AddOption (new Commandline::Option ("default-foundry", 'f', "misc")); diff --git a/ttmkfdir-3.0.9-namespace.patch b/ttmkfdir-3.0.9-namespace.patch new file mode 100644 index 0000000..34220c2 --- /dev/null +++ b/ttmkfdir-3.0.9-namespace.patch @@ -0,0 +1,56 @@ +*** ttmkfdir-3.0.9/ttf.h.ORIG 2004-03-10 13:40:47.149814008 -0700 +--- ttmkfdir-3.0.9/ttf.h 2004-03-10 13:40:50.571293864 -0700 +*************** namespace ttf { +*** 50,56 **** + TT_Postscript *post; + std::string FileName; + }; +! }; + + #endif /* TTF_H__ */ + +--- 50,56 ---- + TT_Postscript *post; + std::string FileName; + }; +! } + + #endif /* TTF_H__ */ + +*** ttmkfdir-3.0.9/util.h.ORIG 2004-03-10 13:40:19.872960720 -0700 +--- ttmkfdir-3.0.9/util.h 2004-03-10 13:40:34.059803992 -0700 +*************** namespace util { +*** 17,22 **** + Singleton (void) {}; + ~Singleton (void) {}; + }; +! }; + + #endif // TTMKFDIRUTIL_H__ +--- 17,22 ---- + Singleton (void) {}; + ~Singleton (void) {}; + }; +! } + + #endif // TTMKFDIRUTIL_H__ +*** ttmkfdir-3.0.9/builtin.cpp.ORIG 2004-03-10 13:41:47.089701760 -0700 +--- ttmkfdir-3.0.9/builtin.cpp 2004-03-10 13:41:51.327057584 -0700 +*************** namespace { +*** 600,606 **** + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff + }; + +! }; + + Encoding::BuiltinEncoding_t Encoding::builtin_encodings[] = { + {256,191,32,{TT_PLATFORM_MICROSOFT,TT_MS_ID_UNICODE_CS,iso8859_1},{"iso8859-1",}}, +--- 600,606 ---- + 0x00f8, 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x00fe, 0x00ff + }; + +! } + + Encoding::BuiltinEncoding_t Encoding::builtin_encodings[] = { + {256,191,32,{TT_PLATFORM_MICROSOFT,TT_MS_ID_UNICODE_CS,iso8859_1},{"iso8859-1",}}, + diff --git a/ttmkfdir-3.0.9-segfaults.patch b/ttmkfdir-3.0.9-segfaults.patch new file mode 100644 index 0000000..17a8dec --- /dev/null +++ b/ttmkfdir-3.0.9-segfaults.patch @@ -0,0 +1,20 @@ +--- ttmkfdir-3.0.9/directory.cpp.back 2005-10-08 14:25:37.839328408 +0800 ++++ ttmkfdir-3.0.9/directory.cpp 2005-10-08 14:26:00.021956136 +0800 +@@ -1,5 +1,6 @@ + #include + #include ++#include + #include + #include + +@@ -13,6 +14,10 @@ + directory::scan (const std::string &dir) + { + DIR *ttfdir = opendir(dir.c_str ()); ++ if (!ttfdir) { ++ printf("%s is not exist!\n", dir.c_str ()); ++ exit(-1); ++ } + + this->clear (); + dirpath = dir; diff --git a/ttmkfdir-3.0.9-warnings.patch b/ttmkfdir-3.0.9-warnings.patch new file mode 100644 index 0000000..26334bb --- /dev/null +++ b/ttmkfdir-3.0.9-warnings.patch @@ -0,0 +1,75 @@ +--- ttmkfdir-3.0.9/encoding.l~ 2005-08-03 19:33:07.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.l 2005-08-03 21:52:15.000000000 +0900 +@@ -115,7 +115,7 @@ + } + + /* avoid a crash issue */ +- if (cur_enc->size < i2) ++ if ((int) (cur_enc->size) < i2) + cur_enc->size = i2; + if (!is_created_map) + create_mapping(); +@@ -127,8 +127,8 @@ + } + + {NUMBER}({WHITESPACES}{NUMBER}){0,2} { +- unsigned int start_range; +- int numbers[3], i = 0, end_range, target, res; ++ unsigned int start_range = 0, i = 0, end_range = 0; ++ int numbers[3], target = 0, res; + char *startptr; + char *endptr = yytext; + +--- ttmkfdir-3.0.9/commandline.cpp~ 2002-12-09 17:29:11.000000000 +0900 ++++ ttmkfdir-3.0.9/commandline.cpp 2005-08-03 21:12:40.000000000 +0900 +@@ -1,6 +1,8 @@ + #include + ++#ifndef _GNU_SOURCE + #define _GNU_SOURCE ++#endif + #include + + #include "commandline.h" +--- ttmkfdir-3.0.9/ttmkfdir.cpp~ 2003-01-20 08:33:11.000000000 +0900 ++++ ttmkfdir-3.0.9/ttmkfdir.cpp 2005-08-03 21:08:43.000000000 +0900 +@@ -76,7 +76,7 @@ + return 1; + } + +- fprintf (output, "%d\n", fontdir.size ()); ++ fprintf (output, "%d\n", (int)(fontdir.size ())); + + for (vector::const_iterator i = fontdir.begin (); i != fontdir.end (); i++) { + fprintf (output, "%s\n", i->c_str ()); +--- ttmkfdir-3.0.9/ttf.cpp~ 2005-08-03 19:33:07.000000000 +0900 ++++ ttmkfdir-3.0.9/ttf.cpp 2005-08-03 21:31:48.000000000 +0900 +@@ -533,7 +533,7 @@ + const char * + Face::Weight (void) const + { +- const char *result; ++ const char *result = NULL; + + if (cmdline::instance()->option ("panose") && ((result = PanoseWeight ()) != 0)) { + return result; +@@ -614,7 +614,7 @@ + const char * + Face::Width (void) const + { +- const char *result; ++ const char *result = NULL; + + if (cmdline::instance()->option ("panose") && ((result = PanoseWidth ()) != 0)) { + return result; +--- ttmkfdir-3.0.9/encoding.cpp~ 2005-08-03 19:33:07.000000000 +0900 ++++ ttmkfdir-3.0.9/encoding.cpp 2005-08-03 21:31:44.000000000 +0900 +@@ -121,7 +121,7 @@ + + NumericMapping *m = new NumericMapping (size, b->mapdata.platform, b->mapdata.encoding); + +- for (int i = 0; i < size; i++) ++ for (unsigned int i = 0; i < size; i++) + (*m)[i] = b->mapdata.mappingtable[i]; + + AddMapping (m); diff --git a/ttmkfdir-3.0.9-zlib.patch b/ttmkfdir-3.0.9-zlib.patch new file mode 100644 index 0000000..548a49e --- /dev/null +++ b/ttmkfdir-3.0.9-zlib.patch @@ -0,0 +1,80 @@ +--- ttmkfdir-3.0.9/encoding.cpp 2002-12-09 03:52:48.000000000 -0500 ++++ ttmkfdir-3.0.9/encoding.cpp 2003-09-12 12:32:29.000000000 -0400 +@@ -2,6 +2,8 @@ + #include + #include + #include ++#include ++#include + #include "freetype/freetype.h" + + #include "ttmkfdir.h" +@@ -32,9 +34,16 @@ + NextFile (FILE *f, char *name) + { + char file_name [1024]; +- char command[1024]; ++ char line_buf [1024]; ++ char tmp_file_name[] = "/tmp/ttmkfdir_XXXXXX"; ++ char inbuf[300000]; ++ FILE *od; ++ gzFile fd; ++ int rvalue, tmpfd; + +- if (fscanf (f, "%*s %[^\n]\n", file_name) == 1) { ++ if (fgets (line_buf, sizeof(line_buf), f) != NULL) { ++ ++ sscanf (line_buf, "%*s %[^\n]\n", file_name); + + if (file_name[0] == '/') { + name[0] = 0; +@@ -44,9 +53,25 @@ + + strcat (name, file_name); + +- sprintf (command, "exec %s < %s", (toupper(name[strlen (name) - 1]) == 'Z') +- ? "gzip -d" : "cat", name); +- return popen (command, "r"); ++ bzero(inbuf, sizeof(inbuf)); ++ ++ fd = gzopen (name,"rb"); ++ rvalue = gzread (fd, inbuf, sizeof(inbuf)); ++ ++ tmpfd = mkstemp (tmp_file_name); ++ if (tmpfd == -1) { ++ return 0; ++ } ++ ++ od = fdopen (tmpfd,"w"); ++ fputs (inbuf, od); ++ fflush (od); ++ fclose (od); ++ ++ od = fopen (tmp_file_name,"r"); ++ unlink (tmp_file_name); ++ return od; ++ + } + + return 0; +@@ -75,7 +100,7 @@ + yyrestart (input); + yylex (name, *this); + +- pclose (input); ++ fclose (input); + } + + fclose (f); +diff -uNr ttmkfdir-3.0.9.orig/Makefile ttmkfdir-3.0.9/Makefile +--- ttmkfdir-3.0.9.orig/Makefile 2003-08-21 17:43:13.000000000 +1000 ++++ ttmkfdir-3.0.9/Makefile 2003-08-21 17:40:16.000000000 +1000 +@@ -28,7 +28,7 @@ + DEBUG=-ggdb + CXX=g++ + CXXFLAGS=-Wall -pedantic $(FREETYPE_INCL) $(DEBUG) $(OPTFLAGS) +-LDFLAGS=$(FREETYPE_LIB) $(DEBUG) ++LDFLAGS=$(FREETYPE_LIB) $(DEBUG) -lz + + DESTDIR= + PREFIX=/usr diff --git a/ttmkfdir.spec b/ttmkfdir.spec new file mode 100644 index 0000000..6ce234c --- /dev/null +++ b/ttmkfdir.spec @@ -0,0 +1,81 @@ +Name: ttmkfdir +Version: 3.0.9 +Release: 1mamba +Summary: Utility used to create fonts.scale files for truetype fonts +Group: System/Tools +Vendor: openmamba +Distribution: openmamba +Packager: gil +##URL: http://www.joerg-pommnitz.de/TrueType/xfsft.html +URL: http://pravins.fedorapeople.org/ttmkfdir/ + +# Source: http://www.joerg-pommnitz.de/TrueType/ttmkfdir.tar.gz only binary available +# source from http://pravins.fedorapeople.org/ttmkfdir/ttmkfdir-3.0.9-28.fc10.src.rpm + +# This is a Red Hat maintained package which is specific to +# our distribution. Thus the source is only available from +# within this srpm. + +Source: ttmkfdir-%{version}.tar.bz2 +Patch0: ttmkfdir-3.0.9-cpp.patch +Patch1: ttmkfdir-3.0.9-zlib.patch +Patch2: ttmkfdir-3.0.9-fix-freetype217.patch +Patch3: ttmkfdir-3.0.9-namespace.patch +Patch4: ttmkfdir-3.0.9-fix-crash.patch +Patch5: ttmkfdir-3.0.9-warnings.patch +Patch6: ttmkfdir-3.0.9-segfaults.patch +Patch7: ttmkfdir-3.0.9-mamba-encoding_dir.patch +Patch8: ttmkfdir-3.0.9-font-scale.patch +Patch9: ttmkfdir-3.0.9-bug434301.patch +##License: GPL, LGPL, MIT +License: LGPL +BuildRequires: flex +BuildRequires: libtool +## AUTOBUILDREQ-BEGIN +BuildRequires: glibc-devel +BuildRequires: libfreetype-devel +BuildRequires: libgcc +BuildRequires: libstdc++6-devel +BuildRequires: libz-devel +## AUTOBUILDREQ-END +BuildRoot: %{_tmppath}/%{name}-%{version}-root + +%description +ttmkfdir is a tool to create valid and complete fonts.dir files from TrueType fonts. It is very useful +when you plan to use a TrueType enabled font server that is based on the X11R6 sample +implementation (xfsft for instance). Great care has been taken to correctly identify the encodings +that a given TrueType font supports. + +%prep +%setup -q +%patch0 -p1 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p0 +%patch8 -p1 +%patch9 -p1 + +sed -i "s|CXX=g++|CXX=%{__cxx}|" Makefile + +%build +%make OPTFLAGS="%{optflags}" + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" +%makeinstall + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%files +%defattr(-,root,root) +%{_bindir}/ttmkfdir +%doc README + +%changelog +* Mon Jan 24 2011 gil 3.0.9-1mamba +- package created by autospec