[arch-commits] Commit in lib32-fontconfig/repos/multilib-x86_64 (4 files)

Jan Steffens heftig at nymeria.archlinux.org
Tue Sep 10 03:06:29 UTC 2013


    Date: Tuesday, September 10, 2013 @ 05:06:28
  Author: heftig
Revision: 97000

archrelease: copy trunk to multilib-x86_64

Added:
  lib32-fontconfig/repos/multilib-x86_64/PKGBUILD
    (from rev 96999, lib32-fontconfig/trunk/PKGBUILD)
  lib32-fontconfig/repos/multilib-x86_64/lib32-fontconfig.install
    (from rev 96999, lib32-fontconfig/trunk/lib32-fontconfig.install)
Deleted:
  lib32-fontconfig/repos/multilib-x86_64/PKGBUILD
  lib32-fontconfig/repos/multilib-x86_64/git_fixes.diff

--------------------------+
 PKGBUILD                 |  116 +++----
 git_fixes.diff           |  732 ---------------------------------------------
 lib32-fontconfig.install |   11 
 3 files changed, 72 insertions(+), 787 deletions(-)

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2013-09-10 03:03:33 UTC (rev 96999)
+++ PKGBUILD	2013-09-10 03:06:28 UTC (rev 97000)
@@ -1,55 +0,0 @@
-# $Id$
-# Maintainer: Jan de Groot <jgc at archlinux.org>
-
-_pkgbasename=fontconfig
-pkgname=lib32-$_pkgbasename
-pkgver=2.10.95
-pkgrel=1
-pkgdesc="A library for configuring and customizing font access (32-bit)"
-arch=(x86_64)
-url="http://www.fontconfig.org/release/"
-license=('custom')
-depends=('lib32-expat' 'lib32-freetype2' $_pkgbasename)
-makedepends=(gcc-multilib)
-options=('!libtool')
-source=(http://www.fontconfig.org/release/${_pkgbasename}-${pkgver}.tar.bz2)
-sha256sums=('abc0ecb9fb083d8705c140c8c0d13cc294c56faa1fee0e31e3f3eb98062a5e7b')
-
-build() {
-  export CC="gcc -m32"
-  export CXX="g++ -m32"
-  export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
-
-  cd "${srcdir}/${_pkgbasename}-${pkgver}"
-
-  # make sure there's no rpath trouble and sane .so versioning - FC and Gentoo do this as well
-  libtoolize -f
-  autoreconf -fi
-
-  ./configure --prefix=/usr \
-	  --sysconfdir=/etc \
-	  --with-templatedir=/etc/fonts/conf.avail \
-	  --with-xmldir=/etc/fonts \
-	  --localstatedir=/var \
-	  --disable-static \
-	  --with-default-fonts=/usr/share/fonts \
-	  --with-add-fonts=/usr/share/fonts \
-	  --libdir=/usr/lib32
-
-  make
-}
-
-check() {
-  cd "$srcdir/$_pkgbasename-$pkgver"
-  make -k check
-}
-
-package() {
-  cd "${srcdir}/${_pkgbasename}-${pkgver}"
-
-  make DESTDIR="${pkgdir}" install
-
-  rm -rf "${pkgdir}"/usr/{include,share,bin} "$pkgdir"/{etc,var}
-  mkdir -p "$pkgdir/usr/share/licenses"
-  ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
-}

Copied: lib32-fontconfig/repos/multilib-x86_64/PKGBUILD (from rev 96999, lib32-fontconfig/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2013-09-10 03:06:28 UTC (rev 97000)
@@ -0,0 +1,61 @@
+# $Id$
+# Maintainer: Jan de Groot <jgc at archlinux.org>
+
+_pkgbasename=fontconfig
+pkgname=lib32-$_pkgbasename
+pkgver=2.10.95
+pkgrel=1.1
+pkgdesc="A library for configuring and customizing font access (32-bit)"
+arch=(x86_64)
+url="http://www.fontconfig.org/release/"
+license=('custom')
+depends=('lib32-expat' 'lib32-freetype2' $_pkgbasename)
+makedepends=(gcc-multilib)
+options=('!libtool')
+install=lib32-fontconfig.install
+source=(http://www.fontconfig.org/release/${_pkgbasename}-${pkgver}.tar.bz2)
+sha256sums=('abc0ecb9fb083d8705c140c8c0d13cc294c56faa1fee0e31e3f3eb98062a5e7b')
+
+  # a nice page to test font matching:
+  # http://zipcon.net/~swhite/docs/computers/browsers/fonttest.html
+
+build() {
+  cd "$srcdir/$_pkgbasename-$pkgver"
+
+  export CC="gcc -m32"
+  export CXX="g++ -m32"
+  export PKG_CONFIG_PATH="/usr/lib32/pkgconfig"
+
+  # make sure there's no rpath trouble and sane .so versioning - FC and Gentoo do this as well
+  libtoolize -f
+  autoreconf -fi
+
+  ./configure --prefix=/usr \
+    --sysconfdir=/etc \
+    --with-templatedir=/etc/fonts/conf.avail \
+    --with-xmldir=/etc/fonts \
+    --localstatedir=/var \
+    --disable-static \
+    --with-default-fonts=/usr/share/fonts \
+    --with-add-fonts=/usr/share/fonts \
+    --libdir=/usr/lib32
+  make
+}
+
+check() {
+  cd "$srcdir/$_pkgbasename-$pkgver"
+  make -k check
+}
+
+package() {
+  cd "$srcdir/$_pkgbasename-$pkgver"
+  make DESTDIR="${pkgdir}" install
+
+  rm -rf "$pkgdir"/{etc,usr/{include,share}}
+  find "$pkgdir/usr/bin" -not -type d -not -name fc-cache -delete
+  mv "$pkgdir"/usr/bin/fc-cache{,-32}
+
+  #Install license
+  mkdir -p "$pkgdir/usr/share/licenses"
+  ln -s $_pkgbasename "$pkgdir/usr/share/licenses/$pkgname"
+}

Deleted: git_fixes.diff
===================================================================
--- git_fixes.diff	2013-09-10 03:03:33 UTC (rev 96999)
+++ git_fixes.diff	2013-09-10 03:06:28 UTC (rev 97000)
@@ -1,732 +0,0 @@
-From 8fd0ed60a62cb7f36b2ade1bd16a66671eaf79da Mon Sep 17 00:00:00 2001
-From: Akira TAGOH <akira at 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
-From 18bf57c70aafcad031c0b43756b754dcaf6a756a Mon Sep 17 00:00:00 2001
-From: Sebastian Freundt <hroptatyr at 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
-From 9299155b5247255d6b6687448173056c3ca8d09b Mon Sep 17 00:00:00 2001
-From: Akira TAGOH <akira at 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
-From c93a8b8b54afe33e5ecf9870723543cb4058fa94 Mon Sep 17 00:00:00 2001
-From: Akira TAGOH <akira at 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
-From fc5a589abad0e8285f7d95007ebda76536e8fa7d Mon Sep 17 00:00:00 2001
-From: Akira TAGOH <akira at 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
-From 77419a4dfdf41ed34dd03e74d0e4e6f89dbc65e1 Mon Sep 17 00:00:00 2001
-From: Akira TAGOH <akira at tagoh.org>
-Date: Wed, 10 Apr 2013 02:14:39 +0000
-Subject: documented FC_HASH and FC_POSTSCRIPT_NAME
-
----
-diff --git a/doc/fontconfig-devel.sgml b/doc/fontconfig-devel.sgml
-index 05c5c09..a7b8530 100644
---- a/doc/fontconfig-devel.sgml
-+++ b/doc/fontconfig-devel.sgml
-@@ -196,6 +196,9 @@ convenience for the application's rendering mechanism.
-                                                   default value of familylang,
-                                                   stylelang and fullnamelang
-     prgname        FC_PRGNAME             String  Name of the running program
-+    hash           FC_HASH                String  SHA256 hash value of the font data
-+                                                  with "sha256:" prefix.
-+    postscriptname FC_POSTSCRIPT_NAME     String  Font name in PostScript
-     </programlisting>
-   </sect2>
- </sect1>
---
-cgit v0.9.0.2-2-gbebe
-From 03216ccf4ca0808f9c7b9513efcaeb7f4058b575 Mon Sep 17 00:00:00 2001
-From: Akira TAGOH <akira at 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

Copied: lib32-fontconfig/repos/multilib-x86_64/lib32-fontconfig.install (from rev 96999, lib32-fontconfig/trunk/lib32-fontconfig.install)
===================================================================
--- lib32-fontconfig.install	                        (rev 0)
+++ lib32-fontconfig.install	2013-09-10 03:06:28 UTC (rev 97000)
@@ -0,0 +1,11 @@
+post_install() {
+  echo -n "updating font cache... "
+  /usr/bin/fc-cache-32 -f
+  echo "done."
+}
+
+post_upgrade() {
+  echo -n "updating font cache... "
+  /usr/bin/fc-cache-32 -f
+  echo "done."
+}




More information about the arch-commits mailing list