summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /media-libs/fontconfig
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
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')
-rw-r--r--media-libs/fontconfig/Manifest3
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.2-docbook.patch16
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-automake-1.13.patch152
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-closing-fp.patch21
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-fix-check.patch143
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-fix-woff.patch157
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-ft-face.patch144
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-ft-face2.patch177
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-native-fonts.patch73
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.10.92-use-glob.patch164
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.0-baseconfigdir_fix.patch21
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.0-solaris.patch57
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.0-solaris10.patch63
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.1-fc-cache-r.patch26
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.93-addfile.patch109
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.93-fix-sigfpe.patch22
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.93-latin-update.patch67
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.11.93-rmdead.patch22
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.3.2-docbook.patch15
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.7.1-latin-reorder.patch50
-rw-r--r--media-libs/fontconfig/files/fontconfig-2.8.0-urw-aliases.patch18
-rw-r--r--media-libs/fontconfig/fontconfig-2.11.1-r2.ebuild160
-rw-r--r--media-libs/fontconfig/fontconfig-2.11.93.ebuild155
-rw-r--r--media-libs/fontconfig/fontconfig-2.11.94.ebuild152
-rw-r--r--media-libs/fontconfig/metadata.xml15
25 files changed, 2002 insertions, 0 deletions
diff --git a/media-libs/fontconfig/Manifest b/media-libs/fontconfig/Manifest
new file mode 100644
index 000000000000..2bbccbaf3bb6
--- /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 000000000000..33d6549c8147
--- /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 000000000000..02b89fa99e56
--- /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 000000000000..2f0083f39ed8
--- /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 000000000000..ea07c0c02a35
--- /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 000000000000..a3600c0186ba
--- /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 000000000000..1df404846330
--- /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 000000000000..62735675275c
--- /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 000000000000..05e9ee90d904
--- /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 000000000000..e2040fcd4b10
--- /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 000000000000..c3f38aad4218
--- /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 000000000000..a2c7a7640c66
--- /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 000000000000..8ea47d4c646c
--- /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 000000000000..48f67f12974d
--- /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 000000000000..8b96da2e5946
--- /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 000000000000..e5a5558e2c49
--- /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 000000000000..033fe895bc10
--- /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 000000000000..388ecc6ee58a
--- /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 000000000000..6a6c01e26f64
--- /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 000000000000..6ecf6cb9df6e
--- /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 000000000000..76a4aaafb0ce
--- /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 000000000000..b812a0a73859
--- /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 000000000000..c5a899d0cf1b
--- /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 000000000000..895cf5cce823
--- /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 000000000000..a46832ff9ef6
--- /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>