gnu: fontconfig: Update to 2.12.3.
* gnu/packages/fontutils.scm (fontconfig): Update to 2.12.3. [source]: Remove obsolete patches. [native-inputs]: Add GPERF. [arguments]<#:phases>: Remove obsolete 'fix-tests-for-freetype-2.7.1' phase. Add 'regenerate-fcobjshash'. * gnu/packages/patches/fontconfig-charwidth-symbol-conflict.patch, gnu/packages/patches/fontconfig-path-max.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Remove them.
This commit is contained in:
parent
2ac6998063
commit
70564e71bd
|
@ -587,8 +587,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/flint-ldconfig.patch \
|
%D%/packages/patches/flint-ldconfig.patch \
|
||||||
%D%/packages/patches/fltk-shared-lib-defines.patch \
|
%D%/packages/patches/fltk-shared-lib-defines.patch \
|
||||||
%D%/packages/patches/fltk-xfont-on-demand.patch \
|
%D%/packages/patches/fltk-xfont-on-demand.patch \
|
||||||
%D%/packages/patches/fontconfig-charwidth-symbol-conflict.patch \
|
|
||||||
%D%/packages/patches/fontconfig-path-max.patch \
|
|
||||||
%D%/packages/patches/fontforge-svg-modtime.patch \
|
%D%/packages/patches/fontforge-svg-modtime.patch \
|
||||||
%D%/packages/patches/freeimage-CVE-2015-0852.patch \
|
%D%/packages/patches/freeimage-CVE-2015-0852.patch \
|
||||||
%D%/packages/patches/freeimage-CVE-2016-5684.patch \
|
%D%/packages/patches/freeimage-CVE-2016-5684.patch \
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
#:use-module (gnu packages bison)
|
#:use-module (gnu packages bison)
|
||||||
#:use-module (gnu packages flex)
|
#:use-module (gnu packages flex)
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
|
#:use-module (gnu packages gperf)
|
||||||
#:use-module (gnu packages xorg)
|
#:use-module (gnu packages xorg)
|
||||||
#:use-module (gnu packages gtk)
|
#:use-module (gnu packages gtk)
|
||||||
#:use-module (gnu packages xml)
|
#:use-module (gnu packages xml)
|
||||||
|
@ -225,22 +226,21 @@ fonts to/from the WOFF2 format.")
|
||||||
(define-public fontconfig
|
(define-public fontconfig
|
||||||
(package
|
(package
|
||||||
(name "fontconfig")
|
(name "fontconfig")
|
||||||
(version "2.12.1")
|
(version "2.12.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append
|
(uri (string-append
|
||||||
"https://www.freedesktop.org/software/fontconfig/release/fontconfig-"
|
"https://www.freedesktop.org/software/fontconfig/release/fontconfig-"
|
||||||
version ".tar.bz2"))
|
version ".tar.bz2"))
|
||||||
(patches (search-patches "fontconfig-charwidth-symbol-conflict.patch"
|
|
||||||
"fontconfig-path-max.patch"))
|
|
||||||
(sha256 (base32
|
(sha256 (base32
|
||||||
"1wy7svvp7df6bjpg1m5vizb3ngd7rhb20vpclv3x3qa71khs6jdl"))))
|
"1ggq6jmz3mlzk4xjs615aqw9h3hq33chjn82bhli26kk09kby95x"))))
|
||||||
(build-system gnu-build-system)
|
(build-system gnu-build-system)
|
||||||
(propagated-inputs `(("expat" ,expat)
|
(propagated-inputs `(("expat" ,expat)
|
||||||
("freetype" ,freetype)))
|
("freetype" ,freetype)))
|
||||||
(inputs `(("gs-fonts" ,gs-fonts)))
|
(inputs `(("gs-fonts" ,gs-fonts)))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("pkg-config" ,pkg-config)))
|
`(("gperf" ,gperf) ; Try dropping this for > 2.12.3.
|
||||||
|
("pkg-config" ,pkg-config)))
|
||||||
(arguments
|
(arguments
|
||||||
`(#:configure-flags
|
`(#:configure-flags
|
||||||
(list "--with-cache-dir=/var/cache/fontconfig"
|
(list "--with-cache-dir=/var/cache/fontconfig"
|
||||||
|
@ -258,10 +258,12 @@ fonts to/from the WOFF2 format.")
|
||||||
"PYTHON=false")
|
"PYTHON=false")
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
(add-after 'unpack 'fix-tests-for-freetype-2.7.1
|
(add-before 'configure 'regenerate-fcobjshash
|
||||||
|
;; XXX The pre-generated gperf files are broken.
|
||||||
|
;; See <https://bugs.freedesktop.org/show_bug.cgi?id=101280>.
|
||||||
(lambda _
|
(lambda _
|
||||||
(substitute* "test/run-test.sh"
|
(delete-file "src/fcobjshash.h")
|
||||||
(("\\\| sort") "| cut -d' ' -f2 | sort"))
|
(delete-file "src/fcobjshash.gperf")
|
||||||
#t))
|
#t))
|
||||||
(replace 'install
|
(replace 'install
|
||||||
(lambda _
|
(lambda _
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
The first patch is copied from the upstream source repository:
|
|
||||||
|
|
||||||
https://cgit.freedesktop.org/fontconfig/commit/?id=1ab5258f7c2abfafcd63a760ca08bf93591912da
|
|
||||||
|
|
||||||
The second patch is adapted from a message to from the OpenEmbedded mailing list:
|
|
||||||
|
|
||||||
http://lists.openembedded.org/pipermail/openembedded-core/2016-December/130213.html
|
|
||||||
|
|
||||||
From 1ab5258f7c2abfafcd63a760ca08bf93591912da Mon Sep 17 00:00:00 2001
|
|
||||||
From: Khem Raj <raj.khem@gmail.com>
|
|
||||||
Date: Wed, 14 Dec 2016 16:11:05 -0800
|
|
||||||
Subject: Avoid conflicts with integer width macros from TS 18661-1:2014
|
|
||||||
|
|
||||||
glibc 2.25+ has now defined these macros in <limits.h>
|
|
||||||
https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a
|
|
||||||
|
|
||||||
Create an alias for FC_CHAR_WIDTH for ABI compatibility
|
|
||||||
|
|
||||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
||||||
|
|
||||||
diff --git a/fontconfig/fontconfig.h b/fontconfig/fontconfig.h
|
|
||||||
index 5c72b22..070a557 100644
|
|
||||||
--- a/fontconfig/fontconfig.h
|
|
||||||
+++ b/fontconfig/fontconfig.h
|
|
||||||
@@ -128,7 +128,8 @@ typedef int FcBool;
|
|
||||||
#define FC_USER_CACHE_FILE ".fonts.cache-" FC_CACHE_VERSION
|
|
||||||
|
|
||||||
/* Adjust outline rasterizer */
|
|
||||||
-#define FC_CHAR_WIDTH "charwidth" /* Int */
|
|
||||||
+#define FC_CHARWIDTH "charwidth" /* Int */
|
|
||||||
+#define FC_CHAR_WIDTH FC_CHARWIDTH
|
|
||||||
#define FC_CHAR_HEIGHT "charheight"/* Int */
|
|
||||||
#define FC_MATRIX "matrix" /* FcMatrix */
|
|
||||||
|
|
||||||
diff --git a/src/fcobjs.h b/src/fcobjs.h
|
|
||||||
index 1fc4f65..d27864b 100644
|
|
||||||
--- a/src/fcobjs.h
|
|
||||||
+++ b/src/fcobjs.h
|
|
||||||
@@ -51,7 +51,7 @@ FC_OBJECT (DPI, FcTypeDouble, NULL)
|
|
||||||
FC_OBJECT (RGBA, FcTypeInteger, NULL)
|
|
||||||
FC_OBJECT (SCALE, FcTypeDouble, NULL)
|
|
||||||
FC_OBJECT (MINSPACE, FcTypeBool, NULL)
|
|
||||||
-FC_OBJECT (CHAR_WIDTH, FcTypeInteger, NULL)
|
|
||||||
+FC_OBJECT (CHARWIDTH, FcTypeInteger, NULL)
|
|
||||||
FC_OBJECT (CHAR_HEIGHT, FcTypeInteger, NULL)
|
|
||||||
FC_OBJECT (MATRIX, FcTypeMatrix, NULL)
|
|
||||||
FC_OBJECT (CHARSET, FcTypeCharSet, FcCompareCharSet)
|
|
||||||
--
|
|
||||||
cgit v0.10.2
|
|
||||||
|
|
||||||
From 20cddc824c6501c2082cac41b162c34cd5fcc530 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Khem Raj <raj.khem at gmail.com>
|
|
||||||
Date: Sun, 11 Dec 2016 14:32:00 -0800
|
|
||||||
Subject: [PATCH] Avoid conflicts with integer width macros from TS
|
|
||||||
18661-1:2014
|
|
||||||
|
|
||||||
glibc 2.25+ has now defined these macros in <limits.h>
|
|
||||||
https://sourceware.org/git/?p=glibc.git;a=commit;h=5b17fd0da62bf923cb61d1bb7b08cf2e1f1f9c1a
|
|
||||||
|
|
||||||
Signed-off-by: Khem Raj <raj.khem at gmail.com>
|
|
||||||
---
|
|
||||||
Upstream-Status: Submitted
|
|
||||||
|
|
||||||
fontconfig/fontconfig.h | 2 +-
|
|
||||||
src/fcobjs.h | 2 +-
|
|
||||||
src/fcobjshash.gperf | 2 +-
|
|
||||||
src/fcobjshash.h | 2 +-
|
|
||||||
4 files changed, 4 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
Index: fontconfig-2.12.1/src/fcobjshash.h
|
|
||||||
===================================================================
|
|
||||||
--- fontconfig-2.12.1.orig/src/fcobjshash.h
|
|
||||||
+++ fontconfig-2.12.1/src/fcobjshash.h
|
|
||||||
@@ -284,7 +284,7 @@ FcObjectTypeLookup (register const char
|
|
||||||
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str43,FC_CHARSET_OBJECT},
|
|
||||||
{-1},
|
|
||||||
#line 47 "fcobjshash.gperf"
|
|
||||||
- {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHAR_WIDTH_OBJECT},
|
|
||||||
+ {(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str45,FC_CHARWIDTH_OBJECT},
|
|
||||||
#line 48 "fcobjshash.gperf"
|
|
||||||
{(int)(long)&((struct FcObjectTypeNamePool_t *)0)->FcObjectTypeNamePool_str46,FC_CHAR_HEIGHT_OBJECT},
|
|
||||||
#line 55 "fcobjshash.gperf"
|
|
|
@ -1,124 +0,0 @@
|
||||||
This patch fix the build on GNU/Hurd, due to PATH_MAX isn't defined.
|
|
||||||
|
|
||||||
The patch was adapted from upstream source repository:
|
|
||||||
'<https://cgit.freedesktop.org/fontconfig/commit/?id=abdb6d658e1a16410dd1c964e365a3ebd5039e7c>'
|
|
||||||
Commit: abdb6d658e1a16410dd1c964e365a3ebd5039e7c
|
|
||||||
|
|
||||||
---
|
|
||||||
src/fcdefault.c | 34 +++++++++++++++++++++++++++-------
|
|
||||||
src/fcint.h | 6 ++++++
|
|
||||||
src/fcstat.c | 12 +++++++++++-
|
|
||||||
3 files changed, 44 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/fcdefault.c b/src/fcdefault.c
|
|
||||||
index 6647a8f..5afd7ec 100644
|
|
||||||
--- a/src/fcdefault.c
|
|
||||||
+++ b/src/fcdefault.c
|
|
||||||
@@ -148,17 +148,34 @@ retry:
|
|
||||||
prgname = FcStrdup ("");
|
|
||||||
#else
|
|
||||||
# if defined (HAVE_GETEXECNAME)
|
|
||||||
- const char *p = getexecname ();
|
|
||||||
+ char *p = FcStrdup(getexecname ());
|
|
||||||
# elif defined (HAVE_READLINK)
|
|
||||||
- char buf[PATH_MAX + 1];
|
|
||||||
- int len;
|
|
||||||
+ size_t size = FC_PATH_MAX;
|
|
||||||
char *p = NULL;
|
|
||||||
|
|
||||||
- len = readlink ("/proc/self/exe", buf, sizeof (buf) - 1);
|
|
||||||
- if (len != -1)
|
|
||||||
+ while (1)
|
|
||||||
{
|
|
||||||
- buf[len] = '\0';
|
|
||||||
- p = buf;
|
|
||||||
+ char *buf = malloc (size);
|
|
||||||
+ ssize_t len;
|
|
||||||
+
|
|
||||||
+ if (!buf)
|
|
||||||
+ break;
|
|
||||||
+
|
|
||||||
+ len = readlink ("/proc/self/exe", buf, size - 1);
|
|
||||||
+ if (len < 0)
|
|
||||||
+ {
|
|
||||||
+ free (buf);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ if (len < size - 1)
|
|
||||||
+ {
|
|
||||||
+ buf[len] = 0;
|
|
||||||
+ p = buf;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ free (buf);
|
|
||||||
+ size *= 2;
|
|
||||||
}
|
|
||||||
# else
|
|
||||||
char *p = NULL;
|
|
||||||
@@ -176,6 +193,9 @@ retry:
|
|
||||||
|
|
||||||
if (!prgname)
|
|
||||||
prgname = FcStrdup ("");
|
|
||||||
+
|
|
||||||
+ if (p)
|
|
||||||
+ free (p);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!fc_atomic_ptr_cmpexch (&default_prgname, NULL, prgname)) {
|
|
||||||
diff --git a/src/fcint.h b/src/fcint.h
|
|
||||||
index ac911ad..dad34c5 100644
|
|
||||||
--- a/src/fcint.h
|
|
||||||
+++ b/src/fcint.h
|
|
||||||
@@ -70,6 +70,12 @@ extern pfnSHGetFolderPathA pSHGetFolderPathA;
|
|
||||||
# define FC_DIR_SEPARATOR_S "/"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifdef PATH_MAX
|
|
||||||
+#define FC_PATH_MAX PATH_MAX
|
|
||||||
+#else
|
|
||||||
+#define FC_PATH_MAX 128
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
#if __GNUC__ >= 4
|
|
||||||
#define FC_UNUSED __attribute__((unused))
|
|
||||||
#else
|
|
||||||
diff --git a/src/fcstat.c b/src/fcstat.c
|
|
||||||
index 1734fa4..f6e1aaa 100644
|
|
||||||
--- a/src/fcstat.c
|
|
||||||
+++ b/src/fcstat.c
|
|
||||||
@@ -278,8 +278,13 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum)
|
|
||||||
{
|
|
||||||
#endif
|
|
||||||
struct stat statb;
|
|
||||||
- char f[PATH_MAX + 1];
|
|
||||||
+ char *f = malloc (len + 1 + dlen + 1);
|
|
||||||
|
|
||||||
+ if (!f)
|
|
||||||
+ {
|
|
||||||
+ ret = -1;
|
|
||||||
+ goto bail;
|
|
||||||
+ }
|
|
||||||
memcpy (f, dir, len);
|
|
||||||
f[len] = FC_DIR_SEPARATOR;
|
|
||||||
memcpy (&f[len + 1], files[n]->d_name, dlen);
|
|
||||||
@@ -287,11 +292,16 @@ FcDirChecksum (const FcChar8 *dir, time_t *checksum)
|
|
||||||
if (lstat (f, &statb) < 0)
|
|
||||||
{
|
|
||||||
ret = -1;
|
|
||||||
+ free (f);
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
if (S_ISDIR (statb.st_mode))
|
|
||||||
+ {
|
|
||||||
+ free (f);
|
|
||||||
goto bail;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
+ free (f);
|
|
||||||
dtype = statb.st_mode;
|
|
||||||
#ifdef HAVE_STRUCT_DIRENT_D_TYPE
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.11.0
|
|
||||||
|
|
Loading…
Reference in New Issue