diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-libs/fontconfig | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.xz |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'media-libs/fontconfig')
25 files changed, 2002 insertions, 0 deletions
diff --git a/media-libs/fontconfig/Manifest b/media-libs/fontconfig/Manifest new file mode 100644 index 00000000000..2bbccbaf3bb --- /dev/null +++ b/media-libs/fontconfig/Manifest @@ -0,0 +1,3 @@ +DIST fontconfig-2.11.1.tar.bz2 1516095 SHA256 dc62447533bca844463a3c3fd4083b57c90f18a70506e7a9f4936b5a1e516a99 SHA512 acf4e6293e0e5521e4b8f29f4b48860ecd1d39744d0eab21c7332e56bfc3ccc63548e459243c5e425b8e5ef265f2cf065eece02460725e794041219d41188149 WHIRLPOOL 45009a1e0fcbbe2f532c6f642a0d57af35af3f6abfb50098c89fe39c71da96597078eb4babdd80a713ef4456e07481d70def7c1c18b7314452136d5b30a4858b +DIST fontconfig-2.11.93.tar.bz2 1565609 SHA256 381e7c14c7a8bc268a9c07589837f0ea24139abc15f46171b7f94751c969a0af SHA512 68e1728884e4c1bc236cd164fe0b8912c194e8b69bcbffdb3bc8a718737e640061d01a543d90d4198fb2a2d2df0d36b40fac40a27d9845579e1893428d3a22bd WHIRLPOOL b596c1e015e48945158d9d8ffe5e1bf91e6912ac9187fefa829960897fba5c9810ff73ec5ea255b6ca490adb768bd20a50ca0eda41763824cd59b180071600f2 +DIST fontconfig-2.11.94.tar.bz2 1567540 SHA256 d763c024df434146f3352448bc1f4554f390c8a48340cef7aa9cc44716a159df SHA512 ab0639afbe37c46197aa31178f928a000e0662edf794bcd421e396bae2298edc23851ff58deeb448cc14ac1206683494817a64a75ab9f7bb9bce6321ccf5c1f2 WHIRLPOOL cb4df2eafa2748ad51efde09225ccb5ec5e1154c0b2b1074aa6151c289d8f44dd14ed641ef092db5f8f2b986afed8d64167f6d2da9bd7afb3f2dab725a0434d4 diff --git a/media-libs/fontconfig/files/fontconfig-2.10.2-docbook.patch b/media-libs/fontconfig/files/fontconfig-2.10.2-docbook.patch new file mode 100644 index 00000000000..33d6549c814 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.2-docbook.patch @@ -0,0 +1,16 @@ +diff --unified -uNrp fontconfig-2.10.2-orig/configure.ac fontconfig-2.10.2/configure.ac +--- fontconfig-2.10.2-orig/configure.ac 2012-11-26 09:21:13.000000000 +0100 ++++ fontconfig-2.10.2/configure.ac 2013-01-05 15:40:54.541682239 +0100 +@@ -570,7 +570,11 @@ AC_SUBST(XMLDIR) + # Let people not build/install docs if they don't have docbook + # + +-AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) ++AC_ARG_ENABLE(docbook, [ --disable-docbook Don't build documentation],,) ++ ++if test x$enable_docbook != xno; then ++ AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) ++fi + + AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes) + diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-automake-1.13.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-automake-1.13.patch new file mode 100644 index 00000000000..02b89fa99e5 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-automake-1.13.patch @@ -0,0 +1,152 @@ +From 18bf57c70aafcad031c0b43756b754dcaf6a756a Mon Sep 17 00:00:00 2001 +From: Sebastian Freundt <hroptatyr@fresse.org> +Date: Sun, 07 Apr 2013 00:02:58 +0000 +Subject: build-chain, replace INCLUDES directive by AM_CPPFLAGS + +As of automake-13.1 the INCLUDES directive is no longer supported. +An automake run will return with an error. + +This changeset simply follows automake's advice to replace INCLUDES +by AM_CPPFLAGS. +--- +diff --git a/Tools.mk b/Tools.mk +index 56766da..f0fa0ec 100644 +--- a/Tools.mk ++++ b/Tools.mk +@@ -32,7 +32,7 @@ TOOL=./$(DIR)$(EXEEXT_FOR_BUILD) + + EXTRA_DIST = $(TARG) $(TMPL) $(TSRC) $(DIST) + +-INCLUDES = \ ++AM_CPPFLAGS = \ + -I$(builddir) \ + -I$(srcdir) \ + -I$(top_builddir)/src \ +@@ -43,7 +43,7 @@ INCLUDES = \ + $(WARN_CFLAGS) + + $(TOOL): $(TSRC) $(ALIAS_FILES) +- $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(INCLUDES) ++ $(AM_V_GEN) $(CC_FOR_BUILD) -o $(TOOL) $< $(AM_CPPFLAGS) + + $(TARG): $(TMPL) $(TSRC) $(DEPS) + $(AM_V_GEN) $(MAKE) $(TOOL) && \ +diff --git a/fc-cache/Makefile.am b/fc-cache/Makefile.am +index 7f7d1b1..0e10786 100644 +--- a/fc-cache/Makefile.am ++++ b/fc-cache/Makefile.am +@@ -36,7 +36,7 @@ uninstall-local: + -$(RM) -rf "$(DESTDIR)$(fc_cachedir)" + endif + +-INCLUDES=-I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} -I${top_srcdir}/src $(WARN_CFLAGS) + + bin_PROGRAMS=fc-cache + +diff --git a/fc-cat/Makefile.am b/fc-cat/Makefile.am +index b426723..04c1cc4 100644 +--- a/fc-cat/Makefile.am ++++ b/fc-cat/Makefile.am +@@ -27,7 +27,7 @@ FC_CAT_SRC=${top_srcdir}/fc-cat + + SGML = ${FC_CAT_SRC}/fc-cat.sgml + +-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) + + bin_PROGRAMS=fc-cat + +diff --git a/fc-list/Makefile.am b/fc-list/Makefile.am +index b2c499d..c58540e 100644 +--- a/fc-list/Makefile.am ++++ b/fc-list/Makefile.am +@@ -29,7 +29,7 @@ SGML = ${FC_LIST_SRC}/fc-list.sgml + + bin_PROGRAMS=fc-list + +-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) + + BUILT_MANS=fc-list.1 + +diff --git a/fc-match/Makefile.am b/fc-match/Makefile.am +index 0e9e8fd..84afb8b 100644 +--- a/fc-match/Makefile.am ++++ b/fc-match/Makefile.am +@@ -29,7 +29,7 @@ FC_MATCH_SRC=${top_srcdir}/fc-match + + SGML = ${FC_MATCH_SRC}/fc-match.sgml + +-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) + + BUILT_MANS=fc-match.1 + +diff --git a/fc-pattern/Makefile.am b/fc-pattern/Makefile.am +index 92b0433..c456247 100644 +--- a/fc-pattern/Makefile.am ++++ b/fc-pattern/Makefile.am +@@ -29,7 +29,7 @@ FC_PATTERN_SRC=${top_srcdir}/fc-pattern + + SGML = ${FC_PATTERN_SRC}/fc-pattern.sgml + +-INCLUDES=-I${top_srcdir} $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} $(WARN_CFLAGS) + + BUILT_MANS=fc-pattern.1 + +diff --git a/fc-query/Makefile.am b/fc-query/Makefile.am +index b3ea1e6..73b3f11 100644 +--- a/fc-query/Makefile.am ++++ b/fc-query/Makefile.am +@@ -29,7 +29,7 @@ FC_QUERY_SRC=${top_srcdir}/fc-query + + SGML = ${FC_QUERY_SRC}/fc-query.sgml + +-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) + + BUILT_MANS=fc-query.1 + +diff --git a/fc-scan/Makefile.am b/fc-scan/Makefile.am +index 2063405..471a42f 100644 +--- a/fc-scan/Makefile.am ++++ b/fc-scan/Makefile.am +@@ -29,7 +29,7 @@ FC_SCAN_SRC=${top_srcdir}/fc-scan + + SGML = ${FC_SCAN_SRC}/fc-scan.sgml + +-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) + + BUILT_MANS=fc-scan.1 + +diff --git a/fc-validate/Makefile.am b/fc-validate/Makefile.am +index 54edec2..782cead 100644 +--- a/fc-validate/Makefile.am ++++ b/fc-validate/Makefile.am +@@ -29,7 +29,7 @@ FC_VALIDATE_SRC=${top_srcdir}/fc-validate + + SGML = ${FC_VALIDATE_SRC}/fc-validate.sgml + +-INCLUDES=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) ++AM_CPPFLAGS=-I${top_srcdir} $(FREETYPE_CFLAGS) $(WARN_CFLAGS) + + BUILT_MANS=fc-validate.1 + +diff --git a/src/Makefile.am b/src/Makefile.am +index 9fd7dd8..066cc03 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -70,7 +70,7 @@ uninstall-ms-import-lib: + + endif + +-INCLUDES = \ ++AM_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_srcdir)/src \ + $(FREETYPE_CFLAGS) \ +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-closing-fp.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-closing-fp.patch new file mode 100644 index 00000000000..2f0083f39ed --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-closing-fp.patch @@ -0,0 +1,21 @@ +From 9299155b5247255d6b6687448173056c3ca8d09b Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Tue, 09 Apr 2013 02:34:35 +0000 +Subject: Ensure closing fp on error + +--- +diff --git a/src/fchash.c b/src/fchash.c +index 827b20f..4ea5f37 100644 +--- a/src/fchash.c ++++ b/src/fchash.c +@@ -220,7 +220,7 @@ FcHashGetSHA256DigestFromFile (const FcChar8 *filename) + + ret = FcHashInitSHA256Digest (); + if (!ret) +- return NULL; ++ goto bail0; + + while (!feof (fp)) + { +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-fix-check.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-fix-check.patch new file mode 100644 index 00000000000..ea07c0c02a3 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-fix-check.patch @@ -0,0 +1,143 @@ +From 03216ccf4ca0808f9c7b9513efcaeb7f4058b575 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Wed, 10 Apr 2013 09:41:22 +0000 +Subject: Bug 63329 - make check fails: .. contents:: :depth: 2 + +Add back FcHashGetSHA256DigestFromFile() and fall back to it +when font isn't SFNT-based font because FT_Load_Sfnt_Table +fails with FT_Err_Invalid_Face_Handle. +--- +diff --git a/src/fcfreetype.c b/src/fcfreetype.c +index 22064b3..5e8990d 100644 +--- a/src/fcfreetype.c ++++ b/src/fcfreetype.c +@@ -1666,17 +1666,29 @@ FcFreeTypeQueryFace (const FT_Face face, + goto bail1; + + err = FT_Load_Sfnt_Table (face, 0, 0, NULL, &len); +- if (err != FT_Err_Ok) +- goto bail1; +- alen = (len + 63) & ~63; +- fontdata = malloc (alen); +- if (!fontdata) +- goto bail1; +- err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)fontdata, &len); +- if (err != FT_Err_Ok) ++ if (err == FT_Err_Ok) ++ { ++ alen = (len + 63) & ~63; ++ fontdata = malloc (alen); ++ if (!fontdata) ++ goto bail1; ++ err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)fontdata, &len); ++ if (err != FT_Err_Ok) ++ goto bail1; ++ memset (&fontdata[len], 0, alen - len); ++ hashstr = FcHashGetSHA256DigestFromMemory (fontdata, len); ++ } ++ else if (err == FT_Err_Invalid_Face_Handle) ++ { ++ /* font may not support SFNT. falling back to ++ * read the font data from file directly ++ */ ++ hashstr = FcHashGetSHA256DigestFromFile (file); ++ } ++ else ++ { + goto bail1; +- memset (&fontdata[len], 0, alen - len); +- hashstr = FcHashGetSHA256DigestFromMemory (fontdata, len); ++ } + if (!hashstr) + goto bail1; + if (!FcPatternAddString (pat, FC_HASH, hashstr)) +diff --git a/src/fchash.c b/src/fchash.c +index 1ef1e16..92585a6 100644 +--- a/src/fchash.c ++++ b/src/fchash.c +@@ -204,6 +204,68 @@ FcHashGetSHA256Digest (const FcChar8 *input_strings, + } + + FcChar8 * ++FcHashGetSHA256DigestFromFile (const FcChar8 *filename) ++{ ++ FILE *fp = fopen ((const char *)filename, "rb"); ++ char ibuf[64]; ++ FcChar32 *ret; ++ size_t len; ++ struct stat st; ++ ++ if (!fp) ++ return NULL; ++ ++ if (FcStat (filename, &st)) ++ goto bail0; ++ ++ ret = FcHashInitSHA256Digest (); ++ if (!ret) ++ goto bail0; ++ ++ while (!feof (fp)) ++ { ++ if ((len = fread (ibuf, sizeof (char), 64, fp)) < 64) ++ { ++ long v; ++ ++ /* add a padding */ ++ memset (&ibuf[len], 0, 64 - len); ++ ibuf[len] = 0x80; ++ if ((64 - len) < 9) ++ { ++ /* process a block once */ ++ FcHashComputeSHA256Digest (ret, ibuf); ++ memset (ibuf, 0, 64); ++ } ++ /* set input size at the end */ ++ v = (long)st.st_size * 8; ++ ibuf[63 - 0] = v & 0xff; ++ ibuf[63 - 1] = (v >> 8) & 0xff; ++ ibuf[63 - 2] = (v >> 16) & 0xff; ++ ibuf[63 - 3] = (v >> 24) & 0xff; ++ ibuf[63 - 4] = (v >> 32) & 0xff; ++ ibuf[63 - 5] = (v >> 40) & 0xff; ++ ibuf[63 - 6] = (v >> 48) & 0xff; ++ ibuf[63 - 7] = (v >> 56) & 0xff; ++ FcHashComputeSHA256Digest (ret, ibuf); ++ break; ++ } ++ else ++ { ++ FcHashComputeSHA256Digest (ret, ibuf); ++ } ++ } ++ fclose (fp); ++ ++ return FcHashSHA256ToString (ret); ++ ++bail0: ++ fclose (fp); ++ ++ return NULL; ++} ++ ++FcChar8 * + FcHashGetSHA256DigestFromMemory (const char *fontdata, + size_t length) + { +diff --git a/src/fcint.h b/src/fcint.h +index a662dbf..8919958 100644 +--- a/src/fcint.h ++++ b/src/fcint.h +@@ -818,6 +818,10 @@ FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s); + FcPrivate FcChar8 * + FcHashGetSHA256Digest (const FcChar8 *input_strings, + size_t len); ++ ++FcPrivate FcChar8 * ++FcHashGetSHA256DigestFromFile (const FcChar8 *filename); ++ + FcPrivate FcChar8 * + FcHashGetSHA256DigestFromMemory (const char *fontdata, + size_t length); +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-fix-woff.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-fix-woff.patch new file mode 100644 index 00000000000..a3600c0186b --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-fix-woff.patch @@ -0,0 +1,157 @@ +diff --git a/src/fcfreetype.c b/src/fcfreetype.c +index 8a037c0..5e8990d 100644 +--- a/src/fcfreetype.c ++++ b/src/fcfreetype.c +@@ -1104,7 +1104,10 @@ FcFreeTypeQueryFace (const FT_Face face, + char psname[256]; + const char *tmp; + +- FcChar8 *hashstr; ++ FcChar8 *hashstr = NULL; ++ char *fontdata = NULL; ++ FT_Error err; ++ FT_ULong len = 0, alen; + + pat = FcPatternCreate (); + if (!pat) +@@ -1662,12 +1665,34 @@ FcFreeTypeQueryFace (const FT_Face face, + if (!FcPatternAddBool (pat, FC_DECORATIVE, decorative)) + goto bail1; + +- hashstr = FcHashGetSHA256DigestFromFile (file); ++ err = FT_Load_Sfnt_Table (face, 0, 0, NULL, &len); ++ if (err == FT_Err_Ok) ++ { ++ alen = (len + 63) & ~63; ++ fontdata = malloc (alen); ++ if (!fontdata) ++ goto bail1; ++ err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)fontdata, &len); ++ if (err != FT_Err_Ok) ++ goto bail1; ++ memset (&fontdata[len], 0, alen - len); ++ hashstr = FcHashGetSHA256DigestFromMemory (fontdata, len); ++ } ++ else if (err == FT_Err_Invalid_Face_Handle) ++ { ++ /* font may not support SFNT. falling back to ++ * read the font data from file directly ++ */ ++ hashstr = FcHashGetSHA256DigestFromFile (file); ++ } ++ else ++ { ++ goto bail1; ++ } + if (!hashstr) + goto bail1; + if (!FcPatternAddString (pat, FC_HASH, hashstr)) + goto bail1; +- free (hashstr); + + /* + * Compute the unicode coverage for the font +@@ -1756,6 +1781,10 @@ FcFreeTypeQueryFace (const FT_Face face, + bail2: + FcCharSetDestroy (cs); + bail1: ++ if (hashstr) ++ free (hashstr); ++ if (fontdata) ++ free (fontdata); + FcPatternDestroy (pat); + bail0: + return NULL; +diff --git a/src/fchash.c b/src/fchash.c +index 827b20f..92585a6 100644 +--- a/src/fchash.c ++++ b/src/fchash.c +@@ -220,7 +220,7 @@ FcHashGetSHA256DigestFromFile (const FcChar8 *filename) + + ret = FcHashInitSHA256Digest (); + if (!ret) +- return NULL; ++ goto bail0; + + while (!feof (fp)) + { +@@ -261,5 +261,60 @@ FcHashGetSHA256DigestFromFile (const FcChar8 *filename) + + bail0: + fclose (fp); ++ + return NULL; + } ++ ++FcChar8 * ++FcHashGetSHA256DigestFromMemory (const char *fontdata, ++ size_t length) ++{ ++ char ibuf[64]; ++ FcChar32 *ret; ++ size_t i = 0; ++ ++ ret = FcHashInitSHA256Digest (); ++ if (!ret) ++ return NULL; ++ ++ while (i <= length) ++ { ++ if ((length - i) < 64) ++ { ++ long v; ++ size_t n; ++ ++ /* add a padding */ ++ n = length - i; ++ if (n > 0) ++ memcpy (ibuf, &fontdata[i], n); ++ memset (&ibuf[n], 0, 64 - n); ++ ibuf[n] = 0x80; ++ if ((64 - n) < 9) ++ { ++ /* process a block once */ ++ FcHashComputeSHA256Digest (ret, ibuf); ++ memset (ibuf, 0, 64); ++ } ++ /* set input size at the end */ ++ v = length * 8; ++ ibuf[63 - 0] = v & 0xff; ++ ibuf[63 - 1] = (v >> 8) & 0xff; ++ ibuf[63 - 2] = (v >> 16) & 0xff; ++ ibuf[63 - 3] = (v >> 24) & 0xff; ++ ibuf[63 - 4] = (v >> 32) & 0xff; ++ ibuf[63 - 5] = (v >> 40) & 0xff; ++ ibuf[63 - 6] = (v >> 48) & 0xff; ++ ibuf[63 - 7] = (v >> 56) & 0xff; ++ FcHashComputeSHA256Digest (ret, ibuf); ++ break; ++ } ++ else ++ { ++ FcHashComputeSHA256Digest (ret, &fontdata[i]); ++ } ++ i += 64; ++ } ++ ++ return FcHashSHA256ToString (ret); ++} +diff --git a/src/fcint.h b/src/fcint.h +index c45075e..8919958 100644 +--- a/src/fcint.h ++++ b/src/fcint.h +@@ -818,9 +818,14 @@ FcFontSetSerialize (FcSerialize *serialize, const FcFontSet * s); + FcPrivate FcChar8 * + FcHashGetSHA256Digest (const FcChar8 *input_strings, + size_t len); ++ + FcPrivate FcChar8 * + FcHashGetSHA256DigestFromFile (const FcChar8 *filename); + ++FcPrivate FcChar8 * ++FcHashGetSHA256DigestFromMemory (const char *fontdata, ++ size_t length); ++ + /* fcinit.c */ + FcPrivate FcConfig * + FcInitLoadOwnConfig (FcConfig *config); diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-ft-face.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-ft-face.patch new file mode 100644 index 00000000000..1df40484633 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-ft-face.patch @@ -0,0 +1,144 @@ +From c93a8b8b54afe33e5ecf9870723543cb4058fa94 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Tue, 09 Apr 2013 03:46:30 +0000 +Subject: Obtain fonts data via FT_Face instead of opening a file directly + +--- +diff --git a/src/fcfreetype.c b/src/fcfreetype.c +index 8a037c0..1eecfdb 100644 +--- a/src/fcfreetype.c ++++ b/src/fcfreetype.c +@@ -1662,7 +1662,7 @@ FcFreeTypeQueryFace (const FT_Face face, + if (!FcPatternAddBool (pat, FC_DECORATIVE, decorative)) + goto bail1; + +- hashstr = FcHashGetSHA256DigestFromFile (file); ++ hashstr = FcHashGetSHA256DigestFromFace (face); + if (!hashstr) + goto bail1; + if (!FcPatternAddString (pat, FC_HASH, hashstr)) +diff --git a/src/fchash.c b/src/fchash.c +index 4ea5f37..043d94b 100644 +--- a/src/fchash.c ++++ b/src/fchash.c +@@ -29,6 +29,9 @@ + #include "fcint.h" + #include <stdio.h> + #include <string.h> ++#include <ft2build.h> ++#include FT_TRUETYPE_TABLES_H ++#include FT_TRUETYPE_TAGS_H + + #define ROTRN(w, v, n) ((((FcChar32)v) >> n) | (((FcChar32)v) << (w - n))) + #define ROTR32(v, n) ROTRN(32, v, n) +@@ -204,41 +207,50 @@ FcHashGetSHA256Digest (const FcChar8 *input_strings, + } + + FcChar8 * +-FcHashGetSHA256DigestFromFile (const FcChar8 *filename) ++FcHashGetSHA256DigestFromFace (const FT_Face face) + { +- FILE *fp = fopen ((const char *)filename, "rb"); +- char ibuf[64]; ++ char ibuf[64], *buf = NULL; + FcChar32 *ret; +- size_t len; +- struct stat st; ++ FT_Error err; ++ FT_ULong len = 0, alen, i = 0; + +- if (!fp) ++ err = FT_Load_Sfnt_Table (face, 0, 0, NULL, &len); ++ if (err != FT_Err_Ok) + return NULL; +- +- if (FcStat (filename, &st)) ++ alen = (len + 63) & ~63; ++ buf = malloc (alen); ++ if (!buf) ++ return NULL; ++ err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)buf, &len); ++ if (err != FT_Err_Ok) + goto bail0; ++ memset (&buf[len], 0, alen - len); + + ret = FcHashInitSHA256Digest (); + if (!ret) + goto bail0; + +- while (!feof (fp)) ++ while (i <= len) + { +- if ((len = fread (ibuf, sizeof (char), 64, fp)) < 64) ++ if ((len - i) < 64) + { + long v; ++ int n; + + /* add a padding */ +- memset (&ibuf[len], 0, 64 - len); +- ibuf[len] = 0x80; +- if ((64 - len) < 9) ++ n = len - i; ++ if (n > 0) ++ memcpy (ibuf, &buf[i], n); ++ memset (&ibuf[n], 0, 64 - n); ++ ibuf[n] = 0x80; ++ if ((64 - n) < 9) + { + /* process a block once */ + FcHashComputeSHA256Digest (ret, ibuf); + memset (ibuf, 0, 64); + } + /* set input size at the end */ +- v = (long)st.st_size * 8; ++ v = len * 8; + ibuf[63 - 0] = v & 0xff; + ibuf[63 - 1] = (v >> 8) & 0xff; + ibuf[63 - 2] = (v >> 16) & 0xff; +@@ -252,14 +264,18 @@ FcHashGetSHA256DigestFromFile (const FcChar8 *filename) + } + else + { +- FcHashComputeSHA256Digest (ret, ibuf); ++ FcHashComputeSHA256Digest (ret, &buf[i]); + } ++ i += 64; + } +- fclose (fp); ++ if (buf) ++ free (buf); + + return FcHashSHA256ToString (ret); + + bail0: +- fclose (fp); ++ if (buf) ++ free (buf); ++ + return NULL; + } +diff --git a/src/fcint.h b/src/fcint.h +index c45075e..703b983 100644 +--- a/src/fcint.h ++++ b/src/fcint.h +@@ -47,6 +47,8 @@ + #include "fcdeprecate.h" + #include "fcmutex.h" + #include "fcatomic.h" ++#include <ft2build.h> ++#include FT_FREETYPE_H + + #ifndef FC_CONFIG_PATH + #define FC_CONFIG_PATH "fonts.conf" +@@ -819,7 +821,7 @@ FcPrivate FcChar8 * + FcHashGetSHA256Digest (const FcChar8 *input_strings, + size_t len); + FcPrivate FcChar8 * +-FcHashGetSHA256DigestFromFile (const FcChar8 *filename); ++FcHashGetSHA256DigestFromFace (const FT_Face face); + + /* fcinit.c */ + FcPrivate FcConfig * +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-ft-face2.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-ft-face2.patch new file mode 100644 index 00000000000..62735675275 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-ft-face2.patch @@ -0,0 +1,177 @@ +From fc5a589abad0e8285f7d95007ebda76536e8fa7d Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Tue, 09 Apr 2013 08:18:43 +0000 +Subject: Revert the previous change and rework to not export freetype API outside fcfreetype.c + +--- +diff --git a/src/fcfreetype.c b/src/fcfreetype.c +index 1eecfdb..22064b3 100644 +--- a/src/fcfreetype.c ++++ b/src/fcfreetype.c +@@ -1104,7 +1104,10 @@ FcFreeTypeQueryFace (const FT_Face face, + char psname[256]; + const char *tmp; + +- FcChar8 *hashstr; ++ FcChar8 *hashstr = NULL; ++ char *fontdata = NULL; ++ FT_Error err; ++ FT_ULong len = 0, alen; + + pat = FcPatternCreate (); + if (!pat) +@@ -1662,12 +1665,22 @@ FcFreeTypeQueryFace (const FT_Face face, + if (!FcPatternAddBool (pat, FC_DECORATIVE, decorative)) + goto bail1; + +- hashstr = FcHashGetSHA256DigestFromFace (face); ++ err = FT_Load_Sfnt_Table (face, 0, 0, NULL, &len); ++ if (err != FT_Err_Ok) ++ goto bail1; ++ alen = (len + 63) & ~63; ++ fontdata = malloc (alen); ++ if (!fontdata) ++ goto bail1; ++ err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)fontdata, &len); ++ if (err != FT_Err_Ok) ++ goto bail1; ++ memset (&fontdata[len], 0, alen - len); ++ hashstr = FcHashGetSHA256DigestFromMemory (fontdata, len); + if (!hashstr) + goto bail1; + if (!FcPatternAddString (pat, FC_HASH, hashstr)) + goto bail1; +- free (hashstr); + + /* + * Compute the unicode coverage for the font +@@ -1756,6 +1769,10 @@ FcFreeTypeQueryFace (const FT_Face face, + bail2: + FcCharSetDestroy (cs); + bail1: ++ if (hashstr) ++ free (hashstr); ++ if (fontdata) ++ free (fontdata); + FcPatternDestroy (pat); + bail0: + return NULL; +diff --git a/src/fchash.c b/src/fchash.c +index 043d94b..1ef1e16 100644 +--- a/src/fchash.c ++++ b/src/fchash.c +@@ -29,9 +29,6 @@ + #include "fcint.h" + #include <stdio.h> + #include <string.h> +-#include <ft2build.h> +-#include FT_TRUETYPE_TABLES_H +-#include FT_TRUETYPE_TAGS_H + + #define ROTRN(w, v, n) ((((FcChar32)v) >> n) | (((FcChar32)v) << (w - n))) + #define ROTR32(v, n) ROTRN(32, v, n) +@@ -207,40 +204,28 @@ FcHashGetSHA256Digest (const FcChar8 *input_strings, + } + + FcChar8 * +-FcHashGetSHA256DigestFromFace (const FT_Face face) ++FcHashGetSHA256DigestFromMemory (const char *fontdata, ++ size_t length) + { +- char ibuf[64], *buf = NULL; ++ char ibuf[64]; + FcChar32 *ret; +- FT_Error err; +- FT_ULong len = 0, alen, i = 0; +- +- err = FT_Load_Sfnt_Table (face, 0, 0, NULL, &len); +- if (err != FT_Err_Ok) +- return NULL; +- alen = (len + 63) & ~63; +- buf = malloc (alen); +- if (!buf) +- return NULL; +- err = FT_Load_Sfnt_Table (face, 0, 0, (FT_Byte *)buf, &len); +- if (err != FT_Err_Ok) +- goto bail0; +- memset (&buf[len], 0, alen - len); ++ size_t i = 0; + + ret = FcHashInitSHA256Digest (); + if (!ret) +- goto bail0; ++ return NULL; + +- while (i <= len) ++ while (i <= length) + { +- if ((len - i) < 64) ++ if ((length - i) < 64) + { + long v; +- int n; ++ size_t n; + + /* add a padding */ +- n = len - i; ++ n = length - i; + if (n > 0) +- memcpy (ibuf, &buf[i], n); ++ memcpy (ibuf, &fontdata[i], n); + memset (&ibuf[n], 0, 64 - n); + ibuf[n] = 0x80; + if ((64 - n) < 9) +@@ -250,7 +235,7 @@ FcHashGetSHA256DigestFromFace (const FT_Face face) + memset (ibuf, 0, 64); + } + /* set input size at the end */ +- v = len * 8; ++ v = length * 8; + ibuf[63 - 0] = v & 0xff; + ibuf[63 - 1] = (v >> 8) & 0xff; + ibuf[63 - 2] = (v >> 16) & 0xff; +@@ -264,18 +249,10 @@ FcHashGetSHA256DigestFromFace (const FT_Face face) + } + else + { +- FcHashComputeSHA256Digest (ret, &buf[i]); ++ FcHashComputeSHA256Digest (ret, &fontdata[i]); + } + i += 64; + } +- if (buf) +- free (buf); + + return FcHashSHA256ToString (ret); +- +-bail0: +- if (buf) +- free (buf); +- +- return NULL; + } +diff --git a/src/fcint.h b/src/fcint.h +index 703b983..a662dbf 100644 +--- a/src/fcint.h ++++ b/src/fcint.h +@@ -47,8 +47,6 @@ + #include "fcdeprecate.h" + #include "fcmutex.h" + #include "fcatomic.h" +-#include <ft2build.h> +-#include FT_FREETYPE_H + + #ifndef FC_CONFIG_PATH + #define FC_CONFIG_PATH "fonts.conf" +@@ -821,7 +819,8 @@ FcPrivate FcChar8 * + FcHashGetSHA256Digest (const FcChar8 *input_strings, + size_t len); + FcPrivate FcChar8 * +-FcHashGetSHA256DigestFromFace (const FT_Face face); ++FcHashGetSHA256DigestFromMemory (const char *fontdata, ++ size_t length); + + /* fcinit.c */ + FcPrivate FcConfig * +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-native-fonts.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-native-fonts.patch new file mode 100644 index 00000000000..05e9ee90d90 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-native-fonts.patch @@ -0,0 +1,73 @@ +From 8fd0ed60a62cb7f36b2ade1bd16a66671eaf79da Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Mon, 01 Apr 2013 09:16:28 +0000 +Subject: Bug 62980 - matching native fonts with even :lang=en + +Fix the matcher modified by 4eab908c8679a797ac7016b77a93ee41bb11b0fc +to deal with both strong and weak of FC_LANG as the same location in the score +--- +diff --git a/src/fcmatch.c b/src/fcmatch.c +index 68f39ae..2d7b798 100644 +--- a/src/fcmatch.c ++++ b/src/fcmatch.c +@@ -227,9 +227,10 @@ typedef enum _FcMatcherPriorityDummy { + #undef FC_OBJECT + + #undef PRI1 +-#define PRI1(n) \ +- PRI_ ## n ## _STRONG, \ +- PRI_ ## n ## _WEAK ++#define PRI1(n) \ ++ PRI_ ## n, \ ++ PRI_ ## n ## _STRONG = PRI_ ## n, \ ++ PRI_ ## n ## _WEAK = PRI_ ## n + + typedef enum _FcMatcherPriority { + PRI1(HASH), +@@ -237,9 +238,8 @@ typedef enum _FcMatcherPriority { + PRI1(FOUNDRY), + PRI1(CHARSET), + PRI_FAMILY_STRONG, +- PRI_LANG_STRONG, + PRI_POSTSCRIPT_NAME_STRONG, +- PRI_LANG_WEAK, ++ PRI1(LANG), + PRI_FAMILY_WEAK, + PRI_POSTSCRIPT_NAME_WEAK, + PRI1(SPACING), +@@ -910,8 +910,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED, + * If this node matches any language, go check + * which ones and satisfy those entries + */ +- if (nodeps[f]->score[PRI_LANG_STRONG] < 2000 || +- nodeps[f]->score[PRI_LANG_WEAK] < 2000) ++ if (nodeps[f]->score[PRI_LANG] < 2000) + { + for (i = 0; i < nPatternLang; i++) + { +@@ -935,13 +934,6 @@ FcFontSetSort (FcConfig *config FC_UNUSED, + } + patternLangSat[i] = FcTrue; + satisfies = FcTrue; +- /* adjust score to ensure it's not more than 10000.0 +- * which would means the lang didn't satisfy the requirements +- */ +- if (nodeps[f]->score[PRI_LANG_STRONG] > 10000.0) +- nodeps[f]->score[PRI_LANG_STRONG] = 10000.0; +- if (nodeps[f]->score[PRI_LANG_WEAK] > 10000.0) +- nodeps[f]->score[PRI_LANG_WEAK] = 10000.0; + break; + } + } +@@ -949,8 +941,7 @@ FcFontSetSort (FcConfig *config FC_UNUSED, + } + if (!satisfies) + { +- nodeps[f]->score[PRI_LANG_STRONG] = 10000.0; +- nodeps[f]->score[PRI_LANG_WEAK] = 10000.0; ++ nodeps[f]->score[PRI_LANG] = 10000.0; + } + } + +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.10.92-use-glob.patch b/media-libs/fontconfig/files/fontconfig-2.10.92-use-glob.patch new file mode 100644 index 00000000000..e2040fcd4b1 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.10.92-use-glob.patch @@ -0,0 +1,164 @@ +From f6244d2cf231e1dc756f3e941e61b9bf124879bb Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Wed, 08 May 2013 02:57:49 +0000 +Subject: Use the glob matching for filename + +Regex is expensive to compare filenames. we already have the glob matching +and it works enough in this case. + +Prior to this change, renaming FcConfigGlobMatch() to FcStrGlobMatch() and moving to fcstr.c +--- +diff --git a/src/fccfg.c b/src/fccfg.c +index 7da50b5..fcdf73e 100644 +--- a/src/fccfg.c ++++ b/src/fccfg.c +@@ -2211,57 +2211,13 @@ FcConfigGlobAdd (FcConfig *config, + } + + static FcBool +-FcConfigGlobMatch (const FcChar8 *glob, +- const FcChar8 *string) +-{ +- FcChar8 c; +- +- while ((c = *glob++)) +- { +- switch (c) { +- case '*': +- /* short circuit common case */ +- if (!*glob) +- return FcTrue; +- /* short circuit another common case */ +- if (strchr ((char *) glob, '*') == 0) +- { +- size_t l1, l2; +- +- l1 = strlen ((char *) string); +- l2 = strlen ((char *) glob); +- if (l1 < l2) +- return FcFalse; +- string += (l1 - l2); +- } +- while (*string) +- { +- if (FcConfigGlobMatch (glob, string)) +- return FcTrue; +- string++; +- } +- return FcFalse; +- case '?': +- if (*string++ == '\0') +- return FcFalse; +- break; +- default: +- if (*string++ != c) +- return FcFalse; +- break; +- } +- } +- return *string == '\0'; +-} +- +-static FcBool + FcConfigGlobsMatch (const FcStrSet *globs, + const FcChar8 *string) + { + int i; + + for (i = 0; i < globs->num; i++) +- if (FcConfigGlobMatch (globs->strs[i], string)) ++ if (FcStrGlobMatch (globs->strs[i], string)) + return FcTrue; + return FcFalse; + } +diff --git a/src/fcint.h b/src/fcint.h +index 8919958..65bf333 100644 +--- a/src/fcint.h ++++ b/src/fcint.h +@@ -1090,6 +1090,10 @@ FcPrivate int + FcStrMatchIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcChar8 *delims); + + FcPrivate FcBool ++FcStrGlobMatch (const FcChar8 *glob, ++ const FcChar8 *string); ++ ++FcPrivate FcBool + FcStrUsesHome (const FcChar8 *s); + + FcPrivate FcChar8 * +diff --git a/src/fcmatch.c b/src/fcmatch.c +index 2d7b798..84c9a9a 100644 +--- a/src/fcmatch.c ++++ b/src/fcmatch.c +@@ -196,12 +196,10 @@ FcCompareFilename (FcValue *v1, FcValue *v2) + return 0.0; + else if (FcStrCmpIgnoreCase (s1, s2) == 0) + return 1.0; +- else if (FcStrRegexCmp (s2, s1)) ++ else if (FcStrGlobMatch (s1, s2)) + return 2.0; +- else if (FcStrRegexCmpIgnoreCase (s2, s1)) +- return 3.0; + else +- return 4.0; ++ return 3.0; + } + + #define PRI_NULL(n) \ +diff --git a/src/fcstr.c b/src/fcstr.c +index 339a346..3a32031 100644 +--- a/src/fcstr.c ++++ b/src/fcstr.c +@@ -459,6 +459,50 @@ FcStrMatchIgnoreCaseAndDelims (const FcChar8 *s1, const FcChar8 *s2, const FcCha + return w1.src - s1 - 1; + } + ++FcBool ++FcStrGlobMatch (const FcChar8 *glob, ++ const FcChar8 *string) ++{ ++ FcChar8 c; ++ ++ while ((c = *glob++)) ++ { ++ switch (c) { ++ case '*': ++ /* short circuit common case */ ++ if (!*glob) ++ return FcTrue; ++ /* short circuit another common case */ ++ if (strchr ((char *) glob, '*') == 0) ++ { ++ size_t l1, l2; ++ ++ l1 = strlen ((char *) string); ++ l2 = strlen ((char *) glob); ++ if (l1 < l2) ++ return FcFalse; ++ string += (l1 - l2); ++ } ++ while (*string) ++ { ++ if (FcStrGlobMatch (glob, string)) ++ return FcTrue; ++ string++; ++ } ++ return FcFalse; ++ case '?': ++ if (*string++ == '\0') ++ return FcFalse; ++ break; ++ default: ++ if (*string++ != c) ++ return FcFalse; ++ break; ++ } ++ } ++ return *string == '\0'; ++} ++ + const FcChar8 * + FcStrStrIgnoreCase (const FcChar8 *s1, const FcChar8 *s2) + { +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.11.0-baseconfigdir_fix.patch b/media-libs/fontconfig/files/fontconfig-2.11.0-baseconfigdir_fix.patch new file mode 100644 index 00000000000..c3f38aad421 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.0-baseconfigdir_fix.patch @@ -0,0 +1,21 @@ +From 320283cd70ae31ce46b03e0c5da55412089ce953 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Thu, 16 Jan 2014 10:30:35 +0000 +Subject: Bug 73686 - confdir is not set correctly in fontconfig.pc + +--- +diff --git a/fontconfig.pc.in b/fontconfig.pc.in +index 6e112bb..fa00a72 100644 +--- a/fontconfig.pc.in ++++ b/fontconfig.pc.in +@@ -5,7 +5,7 @@ includedir=@includedir@ + sysconfdir=@sysconfdir@ + localstatedir=@localstatedir@ + PACKAGE=@PACKAGE@ +-confdir=@baseconfigdir@ ++confdir=@BASECONFIGDIR@ + cachedir=@fc_cachedir@ + + Name: Fontconfig +-- +cgit v0.9.0.2-2-gbebe diff --git a/media-libs/fontconfig/files/fontconfig-2.11.0-solaris.patch b/media-libs/fontconfig/files/fontconfig-2.11.0-solaris.patch new file mode 100644 index 00000000000..a2c7a7640c6 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.0-solaris.patch @@ -0,0 +1,57 @@ + + test/test-migration.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +New commits: +commit 76ea9af816a50c6bb0b3dc2960460a90fadd9cdb +Author: Akira TAGOH <akira@tagoh.org> +Date: Tue Oct 22 15:00:29 2013 +0900 + + Use stat() if there are no d_type in struct dirent + + Reported by Thomas Klausner + +diff --git a/test/test-migration.c b/test/test-migration.c +index a0ab839..9709651 100644 +--- a/test/test-migration.c ++++ b/test/test-migration.c +@@ -4,6 +4,11 @@ + #include <unistd.h> + #include <sys/types.h> + #include <dirent.h> ++#ifndef HAVE_STRUCT_DIRENT_D_TYPE ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <unistd.h> ++#endif + #include <fontconfig/fontconfig.h> + + FcBool +@@ -36,6 +41,9 @@ unlink_dirs(const char *dir) + size_t len = strlen (dir); + char *n = NULL; + FcBool ret = FcTrue; ++#ifndef HAVE_STRUCT_DIRENT_D_TYPE ++ struct stat statb; ++#endif + + if (!d) + return FcFalse; +@@ -53,7 +61,17 @@ unlink_dirs(const char *dir) + strcpy (n, dir); + n[len] = '/'; + strcpy (&n[len + 1], e->d_name); ++#ifdef HAVE_STRUCT_DIRENT_D_TYPE + if (e->d_type == DT_DIR) ++#else ++ if (stat (n, &statb) == -1) ++ { ++ fprintf (stderr, "E: %s\n", n); ++ ret = FcFalse; ++ break; ++ } ++ if (S_ISDIR (statb.st_mode)) ++#endif + { + if (!unlink_dirs (n)) + { diff --git a/media-libs/fontconfig/files/fontconfig-2.11.0-solaris10.patch b/media-libs/fontconfig/files/fontconfig-2.11.0-solaris10.patch new file mode 100644 index 00000000000..8ea47d4c646 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.0-solaris10.patch @@ -0,0 +1,63 @@ + + configure.ac | 2 +- + test/test-migration.c | 15 ++++++++++++++- + 2 files changed, 15 insertions(+), 2 deletions(-) + +New commits: +commit 65872e9e46d17e4461c3a891ef23abe156005e04 +Author: Akira TAGOH <akira@tagoh.org> +Date: Thu Oct 24 19:35:26 2013 +0900 + + Fix a build issue on Solaris 10 + + Use own mkdtemp implementation if not available. + + Reported by Thomas Klausner and Jörn Clausen + +diff --git a/configure.ac b/configure.ac +index c3743f4..4478914 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -148,7 +148,7 @@ AC_TYPE_PID_T + # Checks for library functions. + AC_FUNC_VPRINTF + AC_FUNC_MMAP +-AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat]) ++AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat]) + + dnl AC_CHECK_FUNCS doesn't check for header files. + dnl posix_fadvise() may be not available in older libc. +diff --git a/test/test-migration.c b/test/test-migration.c +index 9709651..f127e27 100644 +--- a/test/test-migration.c ++++ b/test/test-migration.c +@@ -11,6 +11,19 @@ + #endif + #include <fontconfig/fontconfig.h> + ++#ifdef HAVE_MKDTEMP ++#define fc_mkdtemp mkdtemp ++#else ++char * ++fc_mkdtemp (char *template) ++{ ++ if (!mktemp (template) || mkdir (template, 0700)) ++ return NULL; ++ ++ return template; ++} ++#endif ++ + FcBool + mkdir_p(const char *dir) + { +@@ -107,7 +120,7 @@ int + main(void) + { + char template[32] = "fontconfig-XXXXXXXX"; +- char *tmp = mkdtemp (template); ++ char *tmp = fc_mkdtemp (template); + size_t len = strlen (tmp), xlen, dlen; + char xdg[256], confd[256], fn[256], nfn[256], ud[256], nud[256]; + int ret = -1; + diff --git a/media-libs/fontconfig/files/fontconfig-2.11.1-fc-cache-r.patch b/media-libs/fontconfig/files/fontconfig-2.11.1-fc-cache-r.patch new file mode 100644 index 00000000000..48f67f12974 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.1-fc-cache-r.patch @@ -0,0 +1,26 @@ +From f44157c809d280e2a0ce87fb078fc4b278d24a67 Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Thu, 10 Apr 2014 19:27:55 +0900 +Subject: Fix fc-cache fail with -r + +Do not unlink the cache even if --really-force is given. +because re-scanning process expects the cache exists. + +https://bugs.freedesktop.org/show_bug.cgi?id=77252 + +diff --git a/fc-cache/fc-cache.c b/fc-cache/fc-cache.c +index 99e0e9f..90ebad3 100644 +--- a/fc-cache/fc-cache.c ++++ b/fc-cache/fc-cache.c +@@ -388,7 +388,7 @@ main (int argc, char **argv) + list = FcStrListCreate (updateDirs); + if (list) + { +- ret += scanDirs (list, config, FcTrue, really_force, verbose, FcFalse, &changed, NULL); ++ ret += scanDirs (list, config, FcTrue, FcFalse, verbose, FcFalse, &changed, NULL); + FcStrListDone (list); + } + FcStrSetDestroy (updateDirs); +-- +cgit v0.10.2 + diff --git a/media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch b/media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch new file mode 100644 index 00000000000..8b96da2e594 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch @@ -0,0 +1,109 @@ +From c965c9f67759585909fa03236bad826de85bd39c Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Mon, 23 Mar 2015 13:30:59 +0900 +Subject: Bug 89617 - FcConfigAppFontAddFile() returns false on any font file + +Prior to the change of 32ac7c75e8db0135ef37cf86f92d8b9be000c8bb +FcConfigAppFontAddFile() always returned FcTrue no matter what +fonts was added. after that, it always returned FcFalse because +adding a font doesn't add any subdirs with FcFileScanConfig(). +so changing that to simply ignore it. + +Also fixing it to return FcFalse if non-fonts was added, i.e. +FcFreeTypeQuery() fails. + +https://bugs.freedesktop.org/show_bug.cgi?id=89617 + +diff --git a/src/fccfg.c b/src/fccfg.c +index b92270b..5467493 100644 +--- a/src/fccfg.c ++++ b/src/fccfg.c +@@ -2227,7 +2227,9 @@ FcConfigAppFontAddFile (FcConfig *config, + FcStrSetDestroy (subdirs); + return FcFalse; + } +- if ((sublist = FcStrListCreate (subdirs))) ++ if (subdirs->num == 0) ++ ret = FcTrue; ++ else if ((sublist = FcStrListCreate (subdirs))) + { + while ((subdir = FcStrListNext (sublist))) + { +diff --git a/src/fcdir.c b/src/fcdir.c +index 00dee72..2e7f0dc 100644 +--- a/src/fcdir.c ++++ b/src/fcdir.c +@@ -136,6 +136,8 @@ FcFileScanFontConfig (FcFontSet *set, + ret = FcFalse; + } + } ++ else ++ ret = FcFalse; + id++; + } while (font && ret && id < count); + return ret; +diff --git a/test/Makefile.am b/test/Makefile.am +index f270b50..bf1ec24 100644 +--- a/test/Makefile.am ++++ b/test/Makefile.am +@@ -24,6 +24,13 @@ test_pthread_LDADD = $(top_builddir)/src/libfontconfig.la + # to meaningfully test anything, and we are not installed yet. + #TESTS += test-pthread + endif ++check_PROGRAMS += test-bz89617 ++test_bz89617_CFLAGS = \ ++ -DSRCDIR="\"$(abs_srcdir)\"" ++ ++test_bz89617_LDADD = $(top_builddir)/src/libfontconfig.la ++TESTS += test-bz89617 ++ + noinst_PROGRAMS = $(check_PROGRAMS) + + if !OS_WIN32 +diff --git a/test/test-bz89617.c b/test/test-bz89617.c +new file mode 100644 +index 0000000..389f470 +--- /dev/null ++++ b/test/test-bz89617.c +@@ -0,0 +1,38 @@ ++/* ++ * fontconfig/test/test-bz89617.c ++ * ++ * Copyright © 2000 Keith Packard ++ * Copyright © 2015 Akira TAGOH ++ * ++ * Permission to use, copy, modify, distribute, and sell this software and its ++ * documentation for any purpose is hereby granted without fee, provided that ++ * the above copyright notice appear in all copies and that both that ++ * copyright notice and this permission notice appear in supporting ++ * documentation, and that the name of the author(s) not be used in ++ * advertising or publicity pertaining to distribution of the software without ++ * specific, written prior permission. The authors make no ++ * representations about the suitability of this software for any purpose. It ++ * is provided "as is" without express or implied warranty. ++ * ++ * THE AUTHOR(S) DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, ++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO ++ * EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY SPECIAL, INDIRECT OR ++ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, ++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER ++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR ++ * PERFORMANCE OF THIS SOFTWARE. ++ */ ++#include <stdio.h> ++#include <fontconfig/fontconfig.h> ++ ++int ++main (void) ++{ ++ FcConfig *config = FcConfigGetCurrent (); ++ ++ if (!FcConfigAppFontAddFile (config, SRCDIR "/4x6.pcf") || ++ FcConfigAppFontAddFile (config, "/dev/null")) ++ return 1; ++ ++ return 0; ++} +-- +cgit v0.10.2 + diff --git a/media-libs/fontconfig/files/fontconfig-2.11.93-fix-sigfpe.patch b/media-libs/fontconfig/files/fontconfig-2.11.93-fix-sigfpe.patch new file mode 100644 index 00000000000..e5a5558e2c4 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.93-fix-sigfpe.patch @@ -0,0 +1,22 @@ +From 7bc07cf6c2a5685ab95f146f5af2b3bcd5f5864d Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Mon, 30 Mar 2015 15:18:44 +0900 +Subject: Fix SIGFPE + + +diff --git a/src/fcrange.c b/src/fcrange.c +index 37cf067..9b1b67b 100644 +--- a/src/fcrange.c ++++ b/src/fcrange.c +@@ -204,7 +204,7 @@ FcRangeHash (const FcRange *r) + { + FcRange c = FcRangeCanonicalize (r); + int b = (int) (c.u.d.begin * 100); +- int e = (int) (c.u.d.end * 100); ++ int e = FcDoubleCmpEQ (c.u.d.end, DBL_MAX) ? INT_MAX : (int) (c.u.d.end * 100); + + return b ^ (b << 1) ^ (e << 9); + } +-- +cgit v0.10.2 + diff --git a/media-libs/fontconfig/files/fontconfig-2.11.93-latin-update.patch b/media-libs/fontconfig/files/fontconfig-2.11.93-latin-update.patch new file mode 100644 index 00000000000..033fe895bc1 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.93-latin-update.patch @@ -0,0 +1,67 @@ +--- fontconfig-2.11.93.orig/conf.d/60-latin.conf 2015-04-18 20:06:06.070687989 +0800 ++++ fontconfig-2.11.93/conf.d/60-latin.conf 2015-04-18 20:14:15.245732796 +0800 +@@ -4,46 +4,49 @@ + <alias> + <family>serif</family> + <prefer> +- <family>Bitstream Vera Serif</family> ++ <family>Liberation Serif</family> + <family>DejaVu Serif</family> + <family>Times New Roman</family> +- <family>Thorndale AMT</family> + <family>Luxi Serif</family> + <family>Nimbus Roman No9 L</family> + <family>Nimbus Roman</family> + <family>Times</family> ++ <family>Thorndale AMT</family> ++ <family>Bitstream Vera Serif</family> + </prefer> + </alias> + <alias> + <family>sans-serif</family> + <prefer> +- <family>Bitstream Vera Sans</family> ++ <family>Liberation Sans</family> + <family>DejaVu Sans</family> +- <family>Verdana</family> + <family>Arial</family> +- <family>Albany AMT</family> + <family>Luxi Sans</family> + <family>Nimbus Sans L</family> + <family>Nimbus Sans</family> + <family>Helvetica</family> + <family>Lucida Sans Unicode</family> + <family>BPG Glaho International</family> <!-- lat,cyr,arab,geor --> ++ <family>Verdana</family> + <family>Tahoma</family> <!-- lat,cyr,greek,heb,arab,thai --> ++ <family>Albany AMT</family> ++ <family>Bitstream Vera Sans</family> + </prefer> + </alias> + <alias> + <family>monospace</family> + <prefer> +- <family>Bitstream Vera Sans Mono</family> ++ <family>Liberation Mono</family> + <family>DejaVu Sans Mono</family> + <family>Inconsolata</family> + <family>Andale Mono</family> + <family>Courier New</family> +- <family>Cumberland AMT</family> + <family>Luxi Mono</family> + <family>Nimbus Mono L</family> + <family>Nimbus Mono</family> + <family>Courier</family> ++ <family>Cumberland AMT</family> ++ <family>Bitstream Vera Sans Mono</family> + </prefer> + </alias> + <!-- +@@ -64,6 +67,7 @@ + <alias> + <family>cursive</family> + <prefer> ++ <family>Comic Neue</family> + <family>ITC Zapf Chancery Std</family> + <family>Zapfino</family> + <family>Comic Sans MS</family> diff --git a/media-libs/fontconfig/files/fontconfig-2.11.93-rmdead.patch b/media-libs/fontconfig/files/fontconfig-2.11.93-rmdead.patch new file mode 100644 index 00000000000..388ecc6ee58 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.11.93-rmdead.patch @@ -0,0 +1,22 @@ +From 7301f2f02816c5d44ee75dd0689c806c5aabdbda Mon Sep 17 00:00:00 2001 +From: Akira TAGOH <akira@tagoh.org> +Date: Mon, 23 Mar 2015 13:18:49 +0900 +Subject: Remove the dead code + + +diff --git a/src/fcdir.c b/src/fcdir.c +index 593382f..00dee72 100644 +--- a/src/fcdir.c ++++ b/src/fcdir.c +@@ -136,8 +136,6 @@ FcFileScanFontConfig (FcFontSet *set, + ret = FcFalse; + } + } +- else if (font) +- FcPatternDestroy (font); + id++; + } while (font && ret && id < count); + return ret; +-- +cgit v0.10.2 + diff --git a/media-libs/fontconfig/files/fontconfig-2.3.2-docbook.patch b/media-libs/fontconfig/files/fontconfig-2.3.2-docbook.patch new file mode 100644 index 00000000000..6a6c01e26f6 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.3.2-docbook.patch @@ -0,0 +1,15 @@ +--- configure.in.old 2006-03-31 18:31:26.000000000 +0200 ++++ configure.in 2006-03-31 18:44:47.000000000 +0200 +@@ -407,7 +407,11 @@ + # Let people not build/install docs if they don't have docbook + # + +-AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) ++AC_ARG_ENABLE(docbook, [ --disable-docbook Don't build documentation],,) ++ ++if test x$enable_docbook != xno; then ++ AC_CHECK_PROG(HASDOCBOOK, docbook2html, yes, no) ++fi + + AM_CONDITIONAL(USEDOCBOOK, test "x$HASDOCBOOK" = xyes) + diff --git a/media-libs/fontconfig/files/fontconfig-2.7.1-latin-reorder.patch b/media-libs/fontconfig/files/fontconfig-2.7.1-latin-reorder.patch new file mode 100644 index 00000000000..6ecf6cb9df6 --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.7.1-latin-reorder.patch @@ -0,0 +1,50 @@ +diff -Naurp fontconfig-2.7.1-orig/conf.d/60-latin.conf fontconfig-2.7.1/conf.d/60-latin.conf +--- fontconfig-2.7.1-orig/conf.d/60-latin.conf 2009-07-10 11:09:33.000000000 -0600 ++++ fontconfig-2.7.1/conf.d/60-latin.conf 2009-08-16 15:25:38.347701112 -0600 +@@ -4,8 +4,8 @@ + <alias> + <family>serif</family> + <prefer> +- <family>Bitstream Vera Serif</family> + <family>DejaVu Serif</family> ++ <family>Bitstream Vera Serif</family> + <family>Times New Roman</family> + <family>Thorndale AMT</family> + <family>Luxi Serif</family> +@@ -16,14 +16,14 @@ + <alias> + <family>sans-serif</family> + <prefer> +- <family>Bitstream Vera Sans</family> + <family>DejaVu Sans</family> +- <family>Verdana</family> +- <family>Arial</family> +- <family>Albany AMT</family> ++ <family>Bitstream Vera Sans</family> + <family>Luxi Sans</family> + <family>Nimbus Sans L</family> ++ <family>Arial</family> ++ <family>Albany AMT</family> + <family>Helvetica</family> ++ <family>Verdana</family> + <family>Lucida Sans Unicode</family> + <family>BPG Glaho International</family> <!-- lat,cyr,arab,geor --> + <family>Tahoma</family> <!-- lat,cyr,greek,heb,arab,thai --> +@@ -32,14 +32,14 @@ + <alias> + <family>monospace</family> + <prefer> +- <family>Bitstream Vera Sans Mono</family> + <family>DejaVu Sans Mono</family> ++ <family>Bitstream Vera Sans Mono</family> + <family>Inconsolata</family> ++ <family>Luxi Mono</family> ++ <family>Nimbus Mono L</family> + <family>Andale Mono</family> + <family>Courier New</family> + <family>Cumberland AMT</family> +- <family>Luxi Mono</family> +- <family>Nimbus Mono L</family> + <family>Courier</family> + </prefer> + </alias> diff --git a/media-libs/fontconfig/files/fontconfig-2.8.0-urw-aliases.patch b/media-libs/fontconfig/files/fontconfig-2.8.0-urw-aliases.patch new file mode 100644 index 00000000000..76a4aaafb0c --- /dev/null +++ b/media-libs/fontconfig/files/fontconfig-2.8.0-urw-aliases.patch @@ -0,0 +1,18 @@ +http://bugs.freedesktop.org/19128 +http://bugs.gentoo.org/303591 +http://bugzilla.redhat.com/468565 +http://bugzilla.gnome.org/502664 + +--- a/conf.d/30-urw-aliases.conf ++++ b/conf.d/30-urw-aliases.conf +@@ -29,6 +29,10 @@ + <family>Zapf Dingbats</family> + <accept><family>Dingbats</family></accept> + </alias> ++ <alias binding="same"> ++ <family>ZapfDingbats</family> ++ <accept><family>Dingbats</family></accept> ++ </alias> + <match target="pattern"> + <test name="family"> + <string>Symbol</string> diff --git a/media-libs/fontconfig/fontconfig-2.11.1-r2.ebuild b/media-libs/fontconfig/fontconfig-2.11.1-r2.ebuild new file mode 100644 index 00000000000..b812a0a7385 --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.11.1-r2.ebuild @@ -0,0 +1,160 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +AUTOTOOLS_AUTORECONF=yes + +inherit eutils readme.gentoo autotools-multilib + +DESCRIPTION="A library for configuring and customizing font access" +HOMEPAGE="http://fontconfig.org/" +SRC_URI="http://fontconfig.org/release/${P}.tar.bz2" + +LICENSE="MIT" +SLOT="1.0" +KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~m68k ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="doc static-libs" + +# Purposefully dropped the xml USE flag and libxml2 support. Expat is the +# default and used by every distro. See bug #283191. + +RDEPEND=">=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] + >=media-libs/freetype-2.5.3-r1[${MULTILIB_USEDEP}] + abi_x86_32? ( !app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)] )" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( + =app-text/docbook-sgml-dtd-3.1* + app-text/docbook-sgml-utils[jadetex] + )" +PDEPEND="!x86-winnt? ( app-eselect/eselect-fontconfig ) + virtual/ttf-fonts" + +PATCHES=( + "${FILESDIR}"/${PN}-2.7.1-latin-reorder.patch # 130466 + "${FILESDIR}"/${PN}-2.10.2-docbook.patch # 310157 + "${FILESDIR}"/${PN}-2.11.1-fc-cache-r.patch # 531748 +) + +MULTILIB_CHOST_TOOLS=( + /usr/bin/fc-cache +) + +pkg_setup() { + DOC_CONTENTS="Please make fontconfig configuration changes using + \`eselect fontconfig\`. Any changes made to /etc/fonts/fonts.conf will be + overwritten. If you need to reset your configuration to upstream defaults, + delete the directory ${EROOT}etc/fonts/conf.d/ and re-emerge fontconfig." +} + +src_configure() { + local addfonts + # harvest some font locations, such that users can benefit from the + # host OS's installed fonts + case ${CHOST} in + *-darwin*) + addfonts=",/Library/Fonts,/System/Library/Fonts" + ;; + *-solaris*) + [[ -d /usr/X/lib/X11/fonts/TrueType ]] && \ + addfonts=",/usr/X/lib/X11/fonts/TrueType" + [[ -d /usr/X/lib/X11/fonts/Type1 ]] && \ + addfonts="${addfonts},/usr/X/lib/X11/fonts/Type1" + ;; + *-linux-gnu) + use prefix && [[ -d /usr/share/fonts ]] && \ + addfonts=",/usr/share/fonts" + ;; + esac + + local myeconfargs=( + $(use_enable doc docbook) + # always enable docs to install manpages + --enable-docs + --localstatedir="${EPREFIX}"/var + --with-default-fonts="${EPREFIX}"/usr/share/fonts + --with-add-fonts="${EPREFIX}/usr/local/share/fonts${addfonts}" \ + --with-templatedir="${EPREFIX}"/etc/fonts/conf.avail + ) + + autotools-multilib_src_configure +} + +multilib_src_install() { + default + + # XXX: avoid calling this multiple times, bug #459210 + if multilib_is_native_abi; then + # stuff installed from build-dir + emake -C doc DESTDIR="${D}" install-man + + insinto /etc/fonts + doins fonts.conf + fi +} + +multilib_src_install_all() { + einstalldocs + prune_libtool_files --all + + #fc-lang directory contains language coverage datafiles + #which are needed to test the coverage of fonts. + insinto /usr/share/fc-lang + doins fc-lang/*.orth + + dodoc doc/fontconfig-user.{txt,pdf} + + if [[ -e ${ED}usr/share/doc/fontconfig/ ]]; then + mv "${ED}"usr/share/doc/fontconfig/* "${ED}"/usr/share/doc/${P} || die + rm -rf "${ED}"usr/share/doc/fontconfig + fi + + # Changes should be made to /etc/fonts/local.conf, and as we had + # too much problems with broken fonts.conf we force update it ... + echo 'CONFIG_PROTECT_MASK="/etc/fonts/fonts.conf"' > "${T}"/37fontconfig + doenvd "${T}"/37fontconfig + + # As of fontconfig 2.7, everything sticks their noses in here. + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/var/cache/fontconfig"' > "${ED}"/etc/sandbox.d/37fontconfig + + readme.gentoo_create_doc +} + +pkg_preinst() { + # Bug #193476 + # /etc/fonts/conf.d/ contains symlinks to ../conf.avail/ to include various + # config files. If we install as-is, we'll blow away user settings. + ebegin "Syncing fontconfig configuration to system" + if [[ -e ${EROOT}/etc/fonts/conf.d ]]; then + for file in "${EROOT}"/etc/fonts/conf.avail/*; do + f=${file##*/} + if [[ -L ${EROOT}/etc/fonts/conf.d/${f} ]]; then + [[ -f ${ED}etc/fonts/conf.avail/${f} ]] \ + && ln -sf ../conf.avail/"${f}" "${ED}"etc/fonts/conf.d/ &>/dev/null + else + [[ -f ${ED}etc/fonts/conf.avail/${f} ]] \ + && rm "${ED}"etc/fonts/conf.d/"${f}" &>/dev/null + fi + done + fi + eend $? +} + +pkg_postinst() { + einfo "Cleaning broken symlinks in "${EROOT}"etc/fonts/conf.d/" + find -L "${EROOT}"etc/fonts/conf.d/ -type l -delete + + readme.gentoo_print_elog + + if [[ ${ROOT} = / ]]; then + multilib_pkg_postinst() { + ebegin "Creating global font cache for ${ABI}" + "${EPREFIX}"/usr/bin/${CHOST}-fc-cache -srf + eend $? + } + + multilib_parallel_foreach_abi multilib_pkg_postinst + fi +} diff --git a/media-libs/fontconfig/fontconfig-2.11.93.ebuild b/media-libs/fontconfig/fontconfig-2.11.93.ebuild new file mode 100644 index 00000000000..c5a899d0cf1 --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.11.93.ebuild @@ -0,0 +1,155 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +AUTOTOOLS_AUTORECONF=yes +inherit eutils readme.gentoo autotools-multilib + +DESCRIPTION="A library for configuring and customizing font access" +HOMEPAGE="http://fontconfig.org/" +SRC_URI="http://fontconfig.org/release/${P}.tar.bz2" + +LICENSE="MIT" +SLOT="1.0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="doc static-libs" + +# Purposefully dropped the xml USE flag and libxml2 support. Expat is the +# default and used by every distro. See bug #283191. +RDEPEND=">=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] + >=media-libs/freetype-2.5.3-r1[${MULTILIB_USEDEP}] + abi_x86_32? ( !app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)] )" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( =app-text/docbook-sgml-dtd-3.1* + app-text/docbook-sgml-utils[jadetex] )" +PDEPEND="!x86-winnt? ( app-eselect/eselect-fontconfig ) + virtual/ttf-fonts" + +PATCHES=( + "${FILESDIR}"/${PN}-2.10.2-docbook.patch # 310157 + "${FILESDIR}"/${PN}-2.11.93-latin-update.patch # 130466 + make liberation default + "${FILESDIR}"/${PN}-2.11.93-rmdead.patch # these 3 are upstream, in next release + "${FILESDIR}"/${PN}-2.11.93-addfile.patch + "${FILESDIR}"/${PN}-2.11.93-fix-sigfpe.patch +) + +MULTILIB_CHOST_TOOLS=( /usr/bin/fc-cache ) + +pkg_setup() { + DOC_CONTENTS="Please make fontconfig configuration changes using + \`eselect fontconfig\`. Any changes made to /etc/fonts/fonts.conf will be + overwritten. If you need to reset your configuration to upstream defaults, + delete the directory ${EROOT}etc/fonts/conf.d/ and re-emerge fontconfig." +} + +src_configure() { + local addfonts + # harvest some font locations, such that users can benefit from the + # host OS's installed fonts + case ${CHOST} in + *-darwin*) + addfonts=",/Library/Fonts,/System/Library/Fonts" + ;; + *-solaris*) + [[ -d /usr/X/lib/X11/fonts/TrueType ]] && \ + addfonts=",/usr/X/lib/X11/fonts/TrueType" + [[ -d /usr/X/lib/X11/fonts/Type1 ]] && \ + addfonts="${addfonts},/usr/X/lib/X11/fonts/Type1" + ;; + *-linux-gnu) + use prefix && [[ -d /usr/share/fonts ]] && \ + addfonts=",/usr/share/fonts" + ;; + esac + + local myeconfargs=( + $(use_enable doc docbook) + --enable-docs + --localstatedir="${EPREFIX}"/var + --with-default-fonts="${EPREFIX}"/usr/share/fonts + --with-add-fonts="${EPREFIX}/usr/local/share/fonts${addfonts}" \ + --with-templatedir="${EPREFIX}"/etc/fonts/conf.avail + ) + + autotools-multilib_src_configure +} + +multilib_src_install() { + default + + # avoid calling this multiple times, bug #459210 + if multilib_is_native_abi; then + # stuff installed from build-dir + emake -C doc DESTDIR="${D}" install-man + + insinto /etc/fonts + doins fonts.conf + fi +} + +multilib_src_install_all() { + einstalldocs + prune_libtool_files --all + + # fc-lang directory contains language coverage datafiles + # which are needed to test the coverage of fonts. + insinto /usr/share/fc-lang + doins fc-lang/*.orth + + dodoc doc/fontconfig-user.{txt,pdf} + + if [[ -e ${ED}usr/share/doc/fontconfig/ ]]; then + mv "${ED}"usr/share/doc/fontconfig/* "${ED}"/usr/share/doc/${P} || die + rm -rf "${ED}"usr/share/doc/fontconfig + fi + + # Changes should be made to /etc/fonts/local.conf, and as we had + # too much problems with broken fonts.conf we force update it ... + echo 'CONFIG_PROTECT_MASK="/etc/fonts/fonts.conf"' > "${T}"/37fontconfig + doenvd "${T}"/37fontconfig + + # As of fontconfig 2.7, everything sticks their noses in here. + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/var/cache/fontconfig"' > "${ED}"/etc/sandbox.d/37fontconfig + + readme.gentoo_create_doc +} + +pkg_preinst() { + # Bug #193476 + # /etc/fonts/conf.d/ contains symlinks to ../conf.avail/ to include various + # config files. If we install as-is, we'll blow away user settings. + ebegin "Syncing fontconfig configuration to system" + if [[ -e ${EROOT}/etc/fonts/conf.d ]]; then + for file in "${EROOT}"/etc/fonts/conf.avail/*; do + f=${file##*/} + if [[ -L ${EROOT}/etc/fonts/conf.d/${f} ]]; then + [[ -f ${ED}etc/fonts/conf.avail/${f} ]] \ + && ln -sf ../conf.avail/"${f}" "${ED}"etc/fonts/conf.d/ &>/dev/null + else + [[ -f ${ED}etc/fonts/conf.avail/${f} ]] \ + && rm "${ED}"etc/fonts/conf.d/"${f}" &>/dev/null + fi + done + fi + eend $? +} + +pkg_postinst() { + einfo "Cleaning broken symlinks in "${EROOT}"etc/fonts/conf.d/" + find -L "${EROOT}"etc/fonts/conf.d/ -type l -delete + + readme.gentoo_print_elog + + if [[ ${ROOT} = / ]]; then + multilib_pkg_postinst() { + ebegin "Creating global font cache for ${ABI}" + "${EPREFIX}"/usr/bin/${CHOST}-fc-cache -srf + eend $? + } + + multilib_parallel_foreach_abi multilib_pkg_postinst + fi +} diff --git a/media-libs/fontconfig/fontconfig-2.11.94.ebuild b/media-libs/fontconfig/fontconfig-2.11.94.ebuild new file mode 100644 index 00000000000..895cf5cce82 --- /dev/null +++ b/media-libs/fontconfig/fontconfig-2.11.94.ebuild @@ -0,0 +1,152 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 +AUTOTOOLS_AUTORECONF=yes +inherit eutils readme.gentoo autotools-multilib + +DESCRIPTION="A library for configuring and customizing font access" +HOMEPAGE="http://fontconfig.org/" +SRC_URI="http://fontconfig.org/release/${P}.tar.bz2" + +LICENSE="MIT" +SLOT="1.0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~x86-interix ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt" +IUSE="doc static-libs" + +# Purposefully dropped the xml USE flag and libxml2 support. Expat is the +# default and used by every distro. See bug #283191. +RDEPEND=">=dev-libs/expat-2.1.0-r3[${MULTILIB_USEDEP}] + >=media-libs/freetype-2.5.3-r1[${MULTILIB_USEDEP}] + abi_x86_32? ( !app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)] )" +DEPEND="${RDEPEND} + virtual/pkgconfig + doc? ( =app-text/docbook-sgml-dtd-3.1* + app-text/docbook-sgml-utils[jadetex] )" +PDEPEND="!x86-winnt? ( app-eselect/eselect-fontconfig ) + virtual/ttf-fonts" + +PATCHES=( + "${FILESDIR}"/${PN}-2.10.2-docbook.patch # 310157 + "${FILESDIR}"/${PN}-2.11.93-latin-update.patch # 130466 + make liberation default +) + +MULTILIB_CHOST_TOOLS=( /usr/bin/fc-cache ) + +pkg_setup() { + DOC_CONTENTS="Please make fontconfig configuration changes using + \`eselect fontconfig\`. Any changes made to /etc/fonts/fonts.conf will be + overwritten. If you need to reset your configuration to upstream defaults, + delete the directory ${EROOT}etc/fonts/conf.d/ and re-emerge fontconfig." +} + +src_configure() { + local addfonts + # harvest some font locations, such that users can benefit from the + # host OS's installed fonts + case ${CHOST} in + *-darwin*) + addfonts=",/Library/Fonts,/System/Library/Fonts" + ;; + *-solaris*) + [[ -d /usr/X/lib/X11/fonts/TrueType ]] && \ + addfonts=",/usr/X/lib/X11/fonts/TrueType" + [[ -d /usr/X/lib/X11/fonts/Type1 ]] && \ + addfonts="${addfonts},/usr/X/lib/X11/fonts/Type1" + ;; + *-linux-gnu) + use prefix && [[ -d /usr/share/fonts ]] && \ + addfonts=",/usr/share/fonts" + ;; + esac + + local myeconfargs=( + $(use_enable doc docbook) + --enable-docs + --localstatedir="${EPREFIX}"/var + --with-default-fonts="${EPREFIX}"/usr/share/fonts + --with-add-fonts="${EPREFIX}/usr/local/share/fonts${addfonts}" \ + --with-templatedir="${EPREFIX}"/etc/fonts/conf.avail + ) + + autotools-multilib_src_configure +} + +multilib_src_install() { + default + + # avoid calling this multiple times, bug #459210 + if multilib_is_native_abi; then + # stuff installed from build-dir + emake -C doc DESTDIR="${D}" install-man + + insinto /etc/fonts + doins fonts.conf + fi +} + +multilib_src_install_all() { + einstalldocs + prune_libtool_files --all + + # fc-lang directory contains language coverage datafiles + # which are needed to test the coverage of fonts. + insinto /usr/share/fc-lang + doins fc-lang/*.orth + + dodoc doc/fontconfig-user.{txt,pdf} + + if [[ -e ${ED}usr/share/doc/fontconfig/ ]]; then + mv "${ED}"usr/share/doc/fontconfig/* "${ED}"/usr/share/doc/${P} || die + rm -rf "${ED}"usr/share/doc/fontconfig + fi + + # Changes should be made to /etc/fonts/local.conf, and as we had + # too much problems with broken fonts.conf we force update it ... + echo 'CONFIG_PROTECT_MASK="/etc/fonts/fonts.conf"' > "${T}"/37fontconfig + doenvd "${T}"/37fontconfig + + # As of fontconfig 2.7, everything sticks their noses in here. + dodir /etc/sandbox.d + echo 'SANDBOX_PREDICT="/var/cache/fontconfig"' > "${ED}"/etc/sandbox.d/37fontconfig + + readme.gentoo_create_doc +} + +pkg_preinst() { + # Bug #193476 + # /etc/fonts/conf.d/ contains symlinks to ../conf.avail/ to include various + # config files. If we install as-is, we'll blow away user settings. + ebegin "Syncing fontconfig configuration to system" + if [[ -e ${EROOT}/etc/fonts/conf.d ]]; then + for file in "${EROOT}"/etc/fonts/conf.avail/*; do + f=${file##*/} + if [[ -L ${EROOT}/etc/fonts/conf.d/${f} ]]; then + [[ -f ${ED}etc/fonts/conf.avail/${f} ]] \ + && ln -sf ../conf.avail/"${f}" "${ED}"etc/fonts/conf.d/ &>/dev/null + else + [[ -f ${ED}etc/fonts/conf.avail/${f} ]] \ + && rm "${ED}"etc/fonts/conf.d/"${f}" &>/dev/null + fi + done + fi + eend $? +} + +pkg_postinst() { + einfo "Cleaning broken symlinks in "${EROOT}"etc/fonts/conf.d/" + find -L "${EROOT}"etc/fonts/conf.d/ -type l -delete + + readme.gentoo_print_elog + + if [[ ${ROOT} = / ]]; then + multilib_pkg_postinst() { + ebegin "Creating global font cache for ${ABI}" + "${EPREFIX}"/usr/bin/${CHOST}-fc-cache -srf + eend $? + } + + multilib_parallel_foreach_abi multilib_pkg_postinst + fi +} diff --git a/media-libs/fontconfig/metadata.xml b/media-libs/fontconfig/metadata.xml new file mode 100644 index 00000000000..a46832ff9ef --- /dev/null +++ b/media-libs/fontconfig/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>fonts</herd> + <maintainer> + <email>yngwin@gentoo.org</email> + <name>Ben de Groot</name> + </maintainer> + <maintainer> + <email>multilib@gentoo.org</email> + <name>gx86-multilib project</name> + <description>Handling the bugs related to multilib support in the package and related changes.</description> + </maintainer> + <longdescription>Fontconfig is a font configuration and customization library, which does not depend on the X Window System. It is designed to locate fonts within the system and select them according to requirements specified by applications.</longdescription> +</pkgmetadata> |