From 082fbdd27cb2bc998898b083d1d5677c64cf8bd6 Mon Sep 17 00:00:00 2001 From: dogsheng <960055655@qq.com> Date: Sat, 14 Dec 2019 21:40:29 +0800 Subject: [PATCH] Package init --- README.en.md | 36 -------- README.md | 39 -------- ttmkfdir-3.0.9-bug434301.patch | 11 +++ ttmkfdir-3.0.9-cpp.patch | 11 +++ ttmkfdir-3.0.9-encoding-dir.patch | 20 ++++ ttmkfdir-3.0.9-fedora-ldflags.patch | 10 ++ ttmkfdir-3.0.9-fix-crash.patch | 79 ++++++++++++++++ ttmkfdir-3.0.9-fix-freetype217.patch | 44 +++++++++ ttmkfdir-3.0.9-font-scale.patch | 107 ++++++++++++++++++++++ ttmkfdir-3.0.9-freetype-header-fix2.patch | 13 +++ ttmkfdir-3.0.9-namespace.patch | 56 +++++++++++ ttmkfdir-3.0.9-segfaults.patch | 20 ++++ ttmkfdir-3.0.9-warnings.patch | 75 +++++++++++++++ ttmkfdir-3.0.9-zlib.patch | 80 ++++++++++++++++ ttmkfdir-3.0.9.tar.bz2 | Bin 0 -> 20160 bytes ttmkfdir.1 | 68 ++++++++++++++ ttmkfdir.spec | 51 +++++++++++ 17 files changed, 645 insertions(+), 75 deletions(-) delete mode 100644 README.en.md delete mode 100644 README.md create mode 100644 ttmkfdir-3.0.9-bug434301.patch create mode 100644 ttmkfdir-3.0.9-cpp.patch create mode 100644 ttmkfdir-3.0.9-encoding-dir.patch create mode 100644 ttmkfdir-3.0.9-fedora-ldflags.patch create mode 100644 ttmkfdir-3.0.9-fix-crash.patch create mode 100644 ttmkfdir-3.0.9-fix-freetype217.patch create mode 100644 ttmkfdir-3.0.9-font-scale.patch create mode 100644 ttmkfdir-3.0.9-freetype-header-fix2.patch create mode 100644 ttmkfdir-3.0.9-namespace.patch create mode 100644 ttmkfdir-3.0.9-segfaults.patch create mode 100644 ttmkfdir-3.0.9-warnings.patch create mode 100644 ttmkfdir-3.0.9-zlib.patch create mode 100644 ttmkfdir-3.0.9.tar.bz2 create mode 100644 ttmkfdir.1 create mode 100644 ttmkfdir.spec diff --git a/README.en.md b/README.en.md deleted file mode 100644 index ac6a1ea..0000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# ttmkfdir - -#### Description -{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**} - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index 5ddaf44..0000000 --- a/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# ttmkfdir - -#### 介绍 -{**以下是码云平台说明,您可以替换此简介** -码云是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 -无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 码云特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 -5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) 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-encoding-dir.patch b/ttmkfdir-3.0.9-encoding-dir.patch new file mode 100644 index 0000000..b073296 --- /dev/null +++ b/ttmkfdir-3.0.9-encoding-dir.patch @@ -0,0 +1,20 @@ +--- ttmkfdir-3.0.9/ttmkfdir.cpp.Origin 2006-06-15 17:58:43.000000000 +0800 ++++ ttmkfdir-3.0.9/ttmkfdir.cpp 2006-06-15 17:59:07.000000000 +0800 +@@ -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/share/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/share/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-fedora-ldflags.patch b/ttmkfdir-3.0.9-fedora-ldflags.patch new file mode 100644 index 0000000..0c2f7b8 --- /dev/null +++ b/ttmkfdir-3.0.9-fedora-ldflags.patch @@ -0,0 +1,10 @@ +--- ttmkfdir-3.0.9.old/Makefile 2018-03-07 16:47:47.102558995 +0530 ++++ ttmkfdir-3.0.9/Makefile 2018-03-07 16:57:46.484386555 +0530 +@@ -29,6 +29,7 @@ + CXX=g++ + CXXFLAGS=-Wall -pedantic $(FREETYPE_INCL) $(DEBUG) $(OPTFLAGS) + LDFLAGS=$(FREETYPE_LIB) $(DEBUG) -lz ++override LDFLAGS += $(RPM_LD_FLAGS) + + DESTDIR= + PREFIX=/usr 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-freetype-header-fix2.patch b/ttmkfdir-3.0.9-freetype-header-fix2.patch new file mode 100644 index 0000000..73bb7b2 --- /dev/null +++ b/ttmkfdir-3.0.9-freetype-header-fix2.patch @@ -0,0 +1,13 @@ +diff -rup ttmkfdir-3.0.9/ttf.cpp ttmkfdir-3.0.9_mod/ttf.cpp +--- ttmkfdir-3.0.9/ttf.cpp 2016-02-23 19:41:10.602175570 +0530 ++++ ttmkfdir-3.0.9_mod/ttf.cpp 2016-02-23 19:40:19.104015463 +0530 +@@ -3,7 +3,8 @@ + #include + #include + +-#include "freetype/tttables.h" ++#include ++#include FT_TRUETYPE_TABLES_H + #include "ttmkfdir.h" + #include "ttf.h" + #include "ttos2val.h" 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-3.0.9.tar.bz2 b/ttmkfdir-3.0.9.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..b38ad46510bdca0babb4d4e44acb43e1b4dc30dc GIT binary patch literal 20160 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 literal 0 HcmV?d00001 diff --git a/ttmkfdir.1 b/ttmkfdir.1 new file mode 100644 index 0000000..a11f96e --- /dev/null +++ b/ttmkfdir.1 @@ -0,0 +1,68 @@ +.TH TTMKFDIR 1 "March 28, 2013" +.SH NAME +\fBttmkfdir\fR\ - Utility to create fonts.scale files for truetype fonts +.SH SYNOPSIS +.B ttmkfdir +.RB [OPTION] +.SH DESCRIPTION +.PP + Originally written by Joerg Pommnitz, ttmkfdir is a tool to create valid and complete fonts.scale file 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. + +The ttmkfdir comes with Red Hat Linux has experienced quite some modifications or improvements, include: + +\fR\- migration to FreeType 2 library +.TP +\fR\- more accurate checking for big font files +.TP +\fR\- support for both two X core font backends, Freetype and XTT +.TP +\fR\- Truetype collection(ttc) font file support +.TP +\fR\- additional CJK friendly features +.TP +\fR\- bug fixes + + +.SH OPTIONS +Here is the detailed usage of Red Hat version of ttmkfdir. +.TP +.B -h, --help +It shows the menus and combo box in iok UI +.TP +.B -e, --encoding +ttmkfdir is doing its job by checking each TrueType font file against fontenc layer, please refer www.xfree86.org/current/fonts.html for details. Default encodings.dir file is /usr/X11R6/lib/X11/fonts/encodings/encodings.dir +.TP +.B -o, --output +Specify output, default is fonts.scale in the current directory +.TP +.B -d, --font-dir +Specify TrueType font directory, default is the current directory +.TP +.B -f, --default-foundry +Specify name of the default font foundry, default is "misc" +.TP +.B -m, --max-missing +Specify the maximum number of missing characters per encoding, default is 5. This option applies to the encoding that has less than 256 codepoint definitions. +.TP +.B -a, --max-missing-percentage +Specify the maximum percentage of missing characters per encoding, default is 2. This option applies to the encoding that has more than 256 codepoint definitions. +.TP +.B -b, --font-backend +For X FreeType backend, use value "1", for XTT backend use value "2", default value is 1. When you have TrueType Collection font(.ttc), you need to use this option. +.TP +.B -x, --additional-entries +Additional entries mean those extra TTCaps stuff for XTT backend, mainly for bold and italic font support. Or for FreeType backend, because FreeType still doesn't support bold and italic font, ttmkfdir can generate extra "dummy" XLFDs, so applications who asking those fonts won't complain. + +Default value is "0" means off,otherwise use "1" to switch it on. +.TP +.B -c, --completeness +use less strict completeness tests for encoding tables +.TP +.B -p, --panose +use panose information + +.SH AUTHOR +Yu Shao and Pravin Satpute +.PP +.SH LICENSE +GNU Library General Public License diff --git a/ttmkfdir.spec b/ttmkfdir.spec new file mode 100644 index 0000000..349c4c8 --- /dev/null +++ b/ttmkfdir.spec @@ -0,0 +1,51 @@ +Summary: Utility to create fonts.scale files for truetype fonts +Name: ttmkfdir +Version: 3.0.9 +Release: 56 +License: LGPLv2+ +Source0: %{name}-%{version}.tar.bz2 +Source1: ttmkfdir.1 +Patch: 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-encoding-dir.patch +Patch8: ttmkfdir-3.0.9-font-scale.patch +Patch9: ttmkfdir-3.0.9-bug434301.patch +Patch10: ttmkfdir-3.0.9-freetype-header-fix2.patch +Patch11: ttmkfdir-3.0.9-fedora-ldflags.patch + +BuildRequires: freetype-devel >= 2.0 flex libtool +BuildRequires: bzip2-devel zlib-devel gcc-c++ + +%description +ttmkfdir is a utility used to create fonts.scale files in +TrueType font directories in order to prepare them for use +by the font server. + +%package_help + +%prep +%autosetup -p1 + +%build +%make_build OPTFLAGS="$RPM_OPT_FLAGS" + +%install +%make_install +install -d $RPM_BUILD_ROOT/%{_mandir}/man1/ +cp -p %{SOURCE1} $RPM_BUILD_ROOT/%{_mandir}/man1/ + +%files +%{_bindir}/ttmkfdir + +%files help +%doc README +%{_mandir}/man1/ + +%changelog +* Tue Dec 3 2019 mengxian - 3.0.9-56 +- Package init