Package init

This commit is contained in:
dogsheng 2019-12-14 21:40:29 +08:00
parent 8acb33f006
commit 082fbdd27c
17 changed files with 645 additions and 75 deletions

View File

@ -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/)

View File

@ -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/)

View File

@ -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 <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
+#include <string.h>
+#include <stdlib.h>
#include "directory.h"

11
ttmkfdir-3.0.9-cpp.patch Normal file
View File

@ -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;

View File

@ -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"));

View File

@ -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

View File

@ -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 @@
}
<INSIDE_ENC_BLOCK>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 @@
}
<INSIDE_MAP_BLOCK>{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 @@
<INSIDE_MAP_BLOCK>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;
}
<INSIDE_UNKNOWN_MAP>ENDMAPPING {

View File

@ -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 <cstring>
#include <unistd.h>
#include <zlib.h>
-#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 <map>
#include <string>
-#include "freetype/freetype.h"
+#include <ft2build.h>
+#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 <string>
-#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 <ft2build.h>
+#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"

View File

@ -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<MI, MI> 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);
+ }
}
- }
+ }
}
}

View File

@ -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 <cctype>
#include <cstring>
-#include "freetype/tttables.h"
+#include <ft2build.h>
+#include FT_TRUETYPE_TABLES_H
#include "ttmkfdir.h"
#include "ttf.h"
#include "ttos2val.h"

View File

@ -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",}},

View File

@ -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 <cctype>
#include <dirent.h>
+#include <stdio.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -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;

View File

@ -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 @@
}
<INSIDE_MAP_BLOCK>{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 <cstdlib>
+#ifndef _GNU_SOURCE
#define _GNU_SOURCE
+#endif
#include <getopt.h>
#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<string>::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);

80
ttmkfdir-3.0.9-zlib.patch Normal file
View File

@ -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 <cstdio>
#include <cstdlib>
#include <cstring>
+#include <unistd.h>
+#include <zlib.h>
#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

BIN
ttmkfdir-3.0.9.tar.bz2 Normal file

Binary file not shown.

68
ttmkfdir.1 Normal file
View File

@ -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 <encodings.dir>
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 <yshao@redhat.com> and Pravin Satpute <psatpute@redhat.com>
.PP
.SH LICENSE
GNU Library General Public License

51
ttmkfdir.spec Normal file
View File

@ -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 <mengxian@huawei.com> - 3.0.9-56
- Package init