Index: UPDATING =================================================================== --- UPDATING (revision 528919) +++ UPDATING (working copy) @@ -5,6 +5,16 @@ You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades. +20200330 + AFFECTS: users of x11-fonts/fonctonfig + AUTHOR: desktop@FreeBSD.org + + Fontconfig 2.13.1 generated .uuid files in the fonts directory which where + not properly registered to the packages. To clean them up, please execute the + following command: + + find %%LOCALBASE%%/share/fonts -type f -name .uuid -delete + 20200320 AFFECTS: users of devel/qca AUTHOR: kde@FreeBSD.org Index: x11-fonts/fontconfig/Makefile =================================================================== --- x11-fonts/fontconfig/Makefile (revision 528919) +++ x11-fonts/fontconfig/Makefile (working copy) @@ -2,11 +2,10 @@ # $FreeBSD$ PORTNAME= fontconfig -PORTVERSION= 2.13.1 -PORTREVISION?= 1 +PORTVERSION= 2.13.92 PORTEPOCH?= 1 CATEGORIES= x11-fonts -MASTER_SITES= http://www.freedesktop.org/software/fontconfig/release/ +MASTER_SITES= https://www.freedesktop.org/software/fontconfig/release/ MAINTAINER= desktop@FreeBSD.org COMMENT= XML-based font configuration API for X Windows @@ -14,13 +13,12 @@ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/COPYING -USES= gperf tar:bzip2 +USES= gperf tar:xz .if !defined(REFERENCE_PORT) LIB_DEPENDS= libfreetype.so:print/freetype2 \ - libexpat.so:textproc/expat2 \ - libuuid.so:misc/e2fsprogs-libuuid + libexpat.so:textproc/expat2 USES+= cpe gmake libtool pathfix pkgconfig CPE_VENDOR= fontconfig_project Index: x11-fonts/fontconfig/distinfo =================================================================== --- x11-fonts/fontconfig/distinfo (revision 528919) +++ x11-fonts/fontconfig/distinfo (working copy) @@ -1,3 +1,3 @@ -TIMESTAMP = 1550745725 -SHA256 (fontconfig-2.13.1.tar.bz2) = f655dd2a986d7aa97e052261b36aa67b0a64989496361eca8d604e6414006741 -SIZE (fontconfig-2.13.1.tar.bz2) = 1723639 +TIMESTAMP = 1565349179 +SHA256 (fontconfig-2.13.92.tar.xz) = 506e61283878c1726550bc94f2af26168f1e9f2106eac77eaaf0b2cdfad66e4e +SIZE (fontconfig-2.13.92.tar.xz) = 1413128 Index: x11-fonts/fontconfig/files/patch-2.13.1.diff =================================================================== --- x11-fonts/fontconfig/files/patch-2.13.1.diff (revision 528919) +++ x11-fonts/fontconfig/files/patch-2.13.1.diff (nonexistent) @@ -1,592 +0,0 @@ -# Fix the build issue with --enable-static -# https://cgit.freedesktop.org/fontconfig/commit/?id=8208f99fa1676c42bfd8d74de3e9dac5366c150c -# Fix the issue that '~' wasn't extracted to the proper homedir -# https://cgit.freedesktop.org/fontconfig/commit/?id=806fd4c2c5164d66d978b0a4c579c157e5cbe766 -# Add more prefix support in element -# https://cgit.freedesktop.org/fontconfig/commit/?id=1aa8b700c3f09a31c78e7834e0db373f80b5e226 -# Update fonts.dtd for last commit -# https://cgit.freedesktop.org/fontconfig/commit/?id=67b4090321c0ec3cf3dc96f6d3cd7b9d03af0f25 -# add missing the case of prefix="default" as documented -# https://cgit.freedesktop.org/fontconfig/commit/?id=e4788c5a96e0f384ad5702ad8096b0e144613895 -# Do not update mtime when removing .uuid file -# https://cgit.freedesktop.org/fontconfig/commit/?id=ff5b49be2be0922f0fb6b9daf08f64a88d2fae6b -# Do not try updating mtime when unlink was failed -# https://cgit.freedesktop.org/fontconfig/commit/?id=5f5ec5676c61b9773026a9335c9b0dfa73a73353 -# Do not remove UUID file when a scanned directory is empty -# https://cgit.freedesktop.org/fontconfig/commit/?id=5f12f564f8748deaa603adb7a4b8f616b6390ad4 -# Fix name-table language code mapping for Mongolian -# https://cgit.freedesktop.org/fontconfig/commit/?id=f7036d589bffe353c1982b881afae6ec0a2ef200 -# Use FC_PATH_MAX instead of PATH_MAX -# https://cgit.freedesktop.org/fontconfig/commit/?id=648e0cf3d5a53efeab93b24ae37490427d05229d -# Fix FcFontList doesn't return a font with FC_COLOR=true -# https://cgit.freedesktop.org/fontconfig/commit/?id=9d5149ac41e18ab67404ddba41d7ef7e71839ebc -# Fix a dereference of a null pointer -# https://cgit.freedesktop.org/fontconfig/commit/?id=b047e299546ac3abb79cf0bac3c67f5c2dfc7fb6 -# Fix a crash with invalid matrix element -# https://cgit.freedesktop.org/fontconfig/commit/?id=699d6e4d8415a5d94483ea81fdf277964a33b8f1 -# src/fccache.c: Fix define for HAVE_POSIX_FADVISE -# https://cgit.freedesktop.org/fontconfig/commit/?id=586e35450e9ca7c1dc647ceb9d75ac8ed08c5c16 -# Reset errno to do error handling properly -# https://cgit.freedesktop.org/fontconfig/commit/?id=97fa77d27facc6a31486fdca5b3b853c591f792c -# fc-validate: returns an error code when missing some glyphs -# https://cgit.freedesktop.org/fontconfig/commit/?id=c336b8471877371f0190ba06f7547c54e2b890ba -# Fix endianness on generating MD5 cache name -# https://cgit.freedesktop.org/fontconfig/commit/?id=66b0af41b81c5f0db1a8f952beaaada95e221d14 -# Fix a typo on masking face id -# https://cgit.freedesktop.org/fontconfig/commit/?id=c0dc76268bb278c4bd123afbfb3409be64d0ed75 -# Fix the linear interpolation during weight mapping -# https://cgit.freedesktop.org/fontconfig/commit/?id=f2d4291d12ca1a2146d90da32a399fffff3e8227 -# Fix a crash when running with FC_DEBUG=256 -# https://cgit.freedesktop.org/fontconfig/commit/?id=322131f4330f972820fd903959999af9360120c0 -# Fix a typo -# https://cgit.freedesktop.org/fontconfig/commit/?id=a57f22bf6d93ad4079a6ae01fa00456921dc73e1 -# Improve the performance a bit -# https://cgit.freedesktop.org/fontconfig/commit/?id=cb3e6ff4d7628b6eb1dd8f78737de5c387aaf2e1 -# Add English name first into a cache -# https://cgit.freedesktop.org/fontconfig/commit/?id=2960391699ab3b417a17a0a2ac29e97e9c3d3c99 -# Fix a memory leak in FcFreeTypeQuery*() -# https://cgit.freedesktop.org/fontconfig/commit/?id=e2f9f28aed1470a07c33a57940d68b6a3cbe235b - -Excluding changes for the following files: .gitlab-ci.yml, doc/fcstring.fncs, -test/Makefile.am, test/test-bz106632.c, test/test-issue107.c, test/test-issue110.c - ---- fc-validate/fc-validate.c.orig 2018-06-05 10:36:38 UTC -+++ fc-validate/fc-validate.c -@@ -197,6 +197,7 @@ main (int argc, char **argv) - { - FcChar32 ucs4, pos, map[FC_CHARSET_MAP_SIZE]; - -+ err = 1; - printf (_("%s:%d Missing %d glyph(s) to satisfy the coverage for %s language\n"), - argv[i], index, count, lang); - ---- fontconfig/fontconfig.h.orig 2018-08-30 08:20:15 UTC -+++ fontconfig/fontconfig.h -@@ -1077,6 +1077,10 @@ FcUtf16Len (const FcChar8 *string, - int *wchar); - - FcPublic FcChar8 * -+FcStrBuildFilename (const FcChar8 *path, -+ ...); -+ -+FcPublic FcChar8 * - FcStrDirname (const FcChar8 *file); - - FcPublic FcChar8 * ---- fonts.dtd.orig 2016-12-02 03:22:19 UTC -+++ fonts.dtd -@@ -13,14 +13,18 @@ - --> - - -+ prefix (default|xdg|relative|cwd) "default" -+ xml:space (default|preserve) 'preserve'> - - - - ---- src/fccache.c.orig 2018-07-19 07:05:17 UTC -+++ src/fccache.c -@@ -155,17 +155,42 @@ FcDirCacheDeleteUUID (const FcChar8 *di - FcConfig *config) - { - const FcChar8 *sysroot = FcConfigGetSysRoot (config); -- FcChar8 *target; -+ FcChar8 *target, *d; - FcBool ret = FcTrue; -+ struct stat statb; -+ struct timeval times[2]; - - if (sysroot) -- target = FcStrBuildFilename (sysroot, dir, ".uuid", NULL); -+ d = FcStrBuildFilename (sysroot, dir, NULL); - else -- target = FcStrBuildFilename (dir, ".uuid", NULL); -- -+ d = FcStrBuildFilename (dir, NULL); -+ if (FcStat (d, &statb) != 0) -+ { -+ ret = FcFalse; -+ goto bail; -+ } -+ target = FcStrBuildFilename (d, ".uuid", NULL); - ret = unlink ((char *) target) == 0; -- FcHashTableRemove (config->uuid_table, target); -- FcStrFree(target); -+ if (ret) -+ { -+ times[0].tv_sec = statb.st_atime; -+ times[1].tv_sec = statb.st_mtime; -+#ifdef HAVE_STRUCT_STAT_ST_MTIM -+ times[0].tv_usec = statb.st_atim.tv_nsec / 1000; -+ times[1].tv_usec = statb.st_mtim.tv_nsec / 1000; -+#else -+ times[0].tv_usec = 0; -+ times[1].tv_usec = 0; -+#endif -+ if (utimes ((const char *) d, times) != 0) -+ { -+ fprintf (stderr, "Unable to revert mtime: %s\n", d); -+ } -+ FcHashTableRemove (config->uuid_table, target); -+ } -+ FcStrFree (target); -+bail: -+ FcStrFree (d); - - return ret; - } -@@ -685,15 +710,18 @@ FcCacheRemoveUnlocked (FcCache *cache) - while (fcCacheMaxLevel > 0 && fcCacheChains[fcCacheMaxLevel - 1] == NULL) - fcCacheMaxLevel--; - -- allocated = s->allocated; -- while (allocated) -+ if (s) - { -- /* First element in allocated chunk is the free list */ -- next = *(void **)allocated; -- free (allocated); -- allocated = next; -+ allocated = s->allocated; -+ while (allocated) -+ { -+ /* First element in allocated chunk is the free list */ -+ next = *(void **)allocated; -+ free (allocated); -+ allocated = next; -+ } -+ free (s); - } -- free (s); - } - - static FcCache * -@@ -948,7 +976,7 @@ FcDirCacheMapFd (FcConfig *config, int f - { - #if defined(HAVE_MMAP) || defined(__CYGWIN__) - cache = mmap (0, fd_stat->st_size, PROT_READ, MAP_SHARED, fd, 0); --#if (HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED) -+#if defined(HAVE_POSIX_FADVISE) && defined(POSIX_FADV_WILLNEED) - posix_fadvise (fd, 0, fd_stat->st_size, POSIX_FADV_WILLNEED); - #endif - if (cache == MAP_FAILED) -@@ -1079,6 +1107,7 @@ FcDirChecksum (struct stat *statb) - source_date_epoch = getenv("SOURCE_DATE_EPOCH"); - if (source_date_epoch) - { -+ errno = 0; - epoch = strtoull(source_date_epoch, &endptr, 10); - - if (endptr == source_date_epoch) -@@ -1685,7 +1714,7 @@ FcCacheNumFont args1(const FcCache *c) - * will fill a supplied 16-byte array with the digest. - */ - --#ifndef HIGHFIRST -+#ifndef WORDS_BIGENDIAN - #define byteReverse(buf, len) /* Nothing */ - #else - /* ---- src/fccfg.c.orig 2018-07-19 07:53:00 UTC -+++ src/fccfg.c -@@ -821,25 +821,25 @@ FcConfigCompareValue (const FcValue *lef - break; - case FcOpContains: - case FcOpListing: -- ret = left.u.b == right.u.b || left.u.b == FcDontCare; -+ ret = left.u.b == right.u.b || left.u.b >= FcDontCare; - break; - case FcOpNotEqual: - ret = left.u.b != right.u.b; - break; - case FcOpNotContains: -- ret = !(left.u.b == right.u.b || left.u.b == FcDontCare); -+ ret = !(left.u.b == right.u.b || left.u.b >= FcDontCare); - break; - case FcOpLess: -- ret = left.u.b != right.u.b && right.u.b == FcDontCare; -+ ret = left.u.b != right.u.b && right.u.b >= FcDontCare; - break; - case FcOpLessEqual: -- ret = left.u.b == right.u.b || right.u.b == FcDontCare; -+ ret = left.u.b == right.u.b || right.u.b >= FcDontCare; - break; - case FcOpMore: -- ret = left.u.b != right.u.b && left.u.b == FcDontCare; -+ ret = left.u.b != right.u.b && left.u.b >= FcDontCare; - break; - case FcOpMoreEqual: -- ret = left.u.b == right.u.b || left.u.b == FcDontCare; -+ ret = left.u.b == right.u.b || left.u.b >= FcDontCare; - break; - default: - break; -@@ -2207,17 +2207,19 @@ FcConfigFilename (const FcChar8 *url) - else - file = 0; - } -- -- path = FcConfigGetPath (); -- if (!path) -- return NULL; -- for (p = path; *p; p++) -+ else - { -- file = FcConfigFileExists (*p, url); -- if (file) -- break; -+ path = FcConfigGetPath (); -+ if (!path) -+ return NULL; -+ for (p = path; *p; p++) -+ { -+ file = FcConfigFileExists (*p, url); -+ if (file) -+ break; -+ } -+ FcConfigFreePath (path); - } -- FcConfigFreePath (path); - return file; - } - -@@ -2231,7 +2233,7 @@ FcConfigRealFilename (FcConfig *config, - - if (n) - { -- FcChar8 buf[PATH_MAX]; -+ FcChar8 buf[FC_PATH_MAX]; - ssize_t len; - - if (sysroot) ---- src/fcdir.c.orig 2018-07-19 03:14:39 UTC -+++ src/fcdir.c -@@ -421,13 +421,6 @@ FcDirCacheRead (const FcChar8 *dir, FcBo - /* Not using existing cache file, construct new cache */ - if (!cache) - cache = FcDirCacheScan (dir, config); -- if (cache) -- { -- FcFontSet *fs = FcCacheSet (cache); -- -- if (cache->dirs_count == 0 && (!fs || fs->nfont == 0)) -- FcDirCacheDeleteUUID (dir, config); -- } - - return cache; - } ---- src/fcfreetype.c.orig 2018-08-01 06:41:28 UTC -+++ src/fcfreetype.c -@@ -193,9 +193,9 @@ static const FcFtLanguage fcFtLanguage - { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KIRGHIZ, "ky" }, - { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TAJIKI, "tg" }, - { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_TURKMEN, "tk" }, -- { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN, "mo" }, -- { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT,"mo" }, -- { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT, "mo" }, -+ { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN, "mn" }, -+ { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN_MONGOLIAN_SCRIPT,"mn" }, -+ { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_MONGOLIAN_CYRILLIC_SCRIPT, "mn" }, - { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_PASHTO, "ps" }, - { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KURDISH, "ku" }, - { TT_PLATFORM_MACINTOSH, TT_MAC_LANGID_KASHMIRI, "ks" }, -@@ -1101,15 +1101,22 @@ FcGetPixelSize (FT_Face face, int i) - } - - static FcBool --FcStringInPatternElement (FcPattern *pat, const char *elt, FcChar8 *string) -+FcStringInPatternElement (FcPattern *pat, FcObject obj, const FcChar8 *string) - { -- int e; -- FcChar8 *old; -- for (e = 0; FcPatternGetString (pat, elt, e, &old) == FcResultMatch; e++) -- if (!FcStrCmpIgnoreBlanksAndCase (old, string)) -- { -+ FcPatternIter iter; -+ FcValueListPtr l; -+ -+ FcPatternIterStart (pat, &iter); -+ if (!FcPatternFindObjectIter (pat, &iter, obj)) -+ return FcFalse; -+ for (l = FcPatternIterGetValues (pat, &iter); l; l = FcValueListNext (l)) -+ { -+ FcValue v = FcValueCanonicalize (&l->value); -+ if (v.type != FcTypeString) -+ break; -+ if (!FcStrCmpIgnoreBlanksAndCase (v.u.s, string)) - return FcTrue; -- } -+ } - return FcFalse; - } - -@@ -1145,6 +1152,23 @@ typedef struct - unsigned int idx; - } FcNameMapping; - -+static FcBool -+_is_english(int platform, int language) -+{ -+ FcBool ret = FcFalse; -+ -+ switch (platform) -+ { -+ case TT_PLATFORM_MACINTOSH: -+ ret = language == TT_MAC_LANGID_ENGLISH; -+ break; -+ case TT_PLATFORM_MICROSOFT: -+ ret = language == TT_MS_LANGID_ENGLISH_UNITED_STATES; -+ break; -+ } -+ return ret; -+} -+ - static int - name_mapping_cmp (const void *pa, const void *pb) - { -@@ -1154,7 +1178,7 @@ name_mapping_cmp (const void *pa, const - if (a->platform_id != b->platform_id) return (int) a->platform_id - (int) b->platform_id; - if (a->name_id != b->name_id) return (int) a->name_id - (int) b->name_id; - if (a->encoding_id != b->encoding_id) return (int) a->encoding_id - (int) b->encoding_id; -- if (a->language_id != b->language_id) return (int) a->language_id - (int) b->language_id; -+ if (a->language_id != b->language_id) return _is_english(a->platform_id, a->language_id) ? -1 : _is_english(b->platform_id, b->language_id) ? 1 : (int) a->language_id - (int) b->language_id; - if (a->idx != b->idx) return (int) a->idx - (int) b->idx; - - return 0; -@@ -1455,10 +1479,10 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - FT_SfntName sname; - int nameidx; - const FcChar8 *lang; -- const char *elt = 0, *eltlang = 0; - int *np = 0, *nlangp = 0; - size_t len; - int nameid, lookupid; -+ FcObject obj = FC_INVALID_OBJECT, objlang = FC_INVALID_OBJECT; - - nameid = lookupid = nameid_order[n]; - -@@ -1494,8 +1518,8 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - sname.name_id, sname.platform_id, - sname.encoding_id, sname.language_id); - -- elt = FC_FAMILY; -- eltlang = FC_FAMILYLANG; -+ obj = FC_FAMILY_OBJECT; -+ objlang = FC_FAMILYLANG_OBJECT; - np = &nfamily; - nlangp = &nfamily_lang; - break; -@@ -1506,8 +1530,8 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - sname.name_id, sname.platform_id, - sname.encoding_id, sname.language_id); - -- elt = FC_FULLNAME; -- eltlang = FC_FULLNAMELANG; -+ obj = FC_FULLNAME_OBJECT; -+ objlang = FC_FULLNAMELANG_OBJECT; - np = &nfullname; - nlangp = &nfullname_lang; - break; -@@ -1521,8 +1545,8 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - sname.name_id, sname.platform_id, - sname.encoding_id, sname.language_id); - -- elt = FC_STYLE; -- eltlang = FC_STYLELANG; -+ obj = FC_STYLE_OBJECT; -+ objlang = FC_STYLELANG_OBJECT; - np = &nstyle; - nlangp = &nstyle_lang; - break; -@@ -1538,7 +1562,7 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - } - break; - } -- if (elt) -+ if (obj != FC_INVALID_OBJECT) - { - FcChar8 *utf8, *pp; - -@@ -1546,7 +1570,7 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - lang = FcSfntNameLanguage (&sname); - - if (FcDebug () & FC_DBG_SCANV) -- printf ("%s\n", utf8); -+ printf ("%s\n", utf8 ? (char *)utf8 : "(null)"); - - if (!utf8) - continue; -@@ -1562,14 +1586,14 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - pp--; - *pp = 0; - -- if (FcStringInPatternElement (pat, elt, utf8)) -+ if (FcStringInPatternElement (pat, obj, utf8)) - { - free (utf8); - continue; - } - - /* add new element */ -- if (!FcPatternAddString (pat, elt, utf8)) -+ if (!FcPatternObjectAddString (pat, obj, utf8)) - { - free (utf8); - goto bail1; -@@ -1580,11 +1604,11 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - /* pad lang list with 'und' to line up with elt */ - while (*nlangp < *np) - { -- if (!FcPatternAddString (pat, eltlang, (FcChar8 *) "und")) -+ if (!FcPatternObjectAddString (pat, objlang, (FcChar8 *) "und")) - goto bail1; - ++*nlangp; - } -- if (!FcPatternAddString (pat, eltlang, lang)) -+ if (!FcPatternObjectAddString (pat, objlang, lang)) - goto bail1; - ++*nlangp; - } -@@ -1606,7 +1630,7 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - printf ("using FreeType family \"%s\"\n", face->family_name); - if (!FcPatternAddString (pat, FC_FAMILY, (FcChar8 *) face->family_name)) - goto bail1; -- if (!FcPatternAddString (pat, FC_STYLELANG, (FcChar8 *) "en")) -+ if (!FcPatternAddString (pat, FC_FAMILYLANG, (FcChar8 *) "en")) - goto bail1; - ++nfamily; - } -@@ -2097,9 +2121,14 @@ FcFreeTypeQueryFaceInternal (const FT_Fa - free (foundry_); - - if (master) -- { -- /* TODO: How to free master?! */ -- } -+ { -+#ifdef HAVE_FT_DONE_MM_VAR -+ if (face->glyph) -+ FT_Done_MM_Var (face->glyph->library, master); -+#else -+ free (master); -+#endif -+ } - - return pat; - -@@ -2135,7 +2164,7 @@ FcFreeTypeQuery(const FcChar8 *file, - if (FT_Init_FreeType (&ftLibrary)) - return NULL; - -- if (FT_New_Face (ftLibrary, (char *) file, id & 0x7FFFFFFFF, &face)) -+ if (FT_New_Face (ftLibrary, (char *) file, id & 0x7FFFFFFF, &face)) - goto bail; - - if (count) ---- src/fcint.h.orig 2018-07-19 03:14:39 UTC -+++ src/fcint.h -@@ -1283,10 +1283,6 @@ FcPrivate FcBool - FcStrIsAbsoluteFilename (const FcChar8 *s); - - FcPrivate FcChar8 * --FcStrBuildFilename (const FcChar8 *path, -- ...); -- --FcPrivate FcChar8 * - FcStrLastSlash (const FcChar8 *path); - - FcPrivate FcChar32 ---- src/fcweight.c.orig 2018-06-05 10:36:38 UTC -+++ src/fcweight.c -@@ -46,7 +46,7 @@ static double lerp(double x, int x1, int - int dx = x2 - x1; - int dy = y2 - y1; - assert (dx > 0 && dy >= 0 && x1 <= x && x <= x2); -- return y1 + (dy*(x-x1) + dx/2) / dx; -+ return y1 + (x-x1) * dy / dx; - } - - double ---- src/fcxml.c.orig 2018-07-26 02:57:07 UTC -+++ src/fcxml.c -@@ -1480,6 +1480,11 @@ FcParseMatrix (FcConfigParse *parse) - m.xy = FcPopExpr (parse); - m.xx = FcPopExpr (parse); - -+ if (!m.yy || !m.yx || !m.xy || !m.xx) -+ { -+ FcConfigMessage (parse, FcSevereWarning, "Missing values in matrix element"); -+ return; -+ } - if (FcPopExpr (parse)) - FcConfigMessage (parse, FcSevereError, "wrong number of matrix elements"); - else -@@ -2073,16 +2078,36 @@ FcParseDir (FcConfigParse *parse) - #endif - - attr = FcConfigGetAttribute (parse, "prefix"); -- if (attr && FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) -+ data = FcStrBufDoneStatic (&parse->pstack->str); -+ if (attr) - { -- prefix = FcConfigXdgDataHome (); -- /* home directory might be disabled. -- * simply ignore this element. -- */ -- if (!prefix) -- goto bail; -+ if (FcStrCmp (attr, (const FcChar8 *)"xdg") == 0) -+ { -+ prefix = FcConfigXdgDataHome (); -+ /* home directory might be disabled. -+ * simply ignore this element. -+ */ -+ if (!prefix) -+ goto bail; -+ } -+ else if (FcStrCmp (attr, (const FcChar8 *)"default") == 0 || FcStrCmp (attr, (const FcChar8 *)"cwd") == 0) -+ { -+ } -+ else if (FcStrCmp (attr, (const FcChar8 *)"relative") == 0) -+ { -+ prefix = FcStrDirname (parse->name); -+ if (!prefix) -+ goto bail; -+ } - } -- data = FcStrBufDoneStatic (&parse->pstack->str); -+#ifndef _WIN32 -+ /* For Win32, check this later for dealing with special cases */ -+ else -+ { -+ if (!FcStrIsAbsoluteFilename (data) && data[0] != '~') -+ FcConfigMessage (parse, FcSevereWarning, "Use of ambiguous element. please add prefix=\"cwd\" if current behavior is desired."); -+ } -+#endif - if (!data) - { - FcConfigMessage (parse, FcSevereError, "out of memory"); -@@ -2153,6 +2178,11 @@ FcParseDir (FcConfigParse *parse) - strcat ((char *) data, "\\"); - strcat ((char *) data, "fonts"); - } -+ else if (!attr) -+ { -+ if (!FcStrIsAbsoluteFilename (data) && data[0] != '~') -+ FcConfigMessage (parse, FcSevereWarning, "Use of ambiguous element. please add prefix=\"cwd\" if current behavior is desired."); -+ } - #endif - if (strlen ((char *) data) == 0) - FcConfigMessage (parse, FcSevereWarning, "empty font directory name ignored"); Property changes on: x11-fonts/fontconfig/files/patch-2.13.1.diff ___________________________________________________________________ Deleted: fbsd:nokeywords ## -1 +0,0 ## -yes \ No newline at end of property Deleted: svn:eol-style ## -1 +0,0 ## -native \ No newline at end of property Deleted: svn:mime-type ## -1 +0,0 ## -text/plain \ No newline at end of property Index: x11-fonts/fontconfig/files/patch-2.13.92.diff =================================================================== --- x11-fonts/fontconfig/files/patch-2.13.92.diff (nonexistent) +++ x11-fonts/fontconfig/files/patch-2.13.92.diff (working copy) @@ -0,0 +1,1748 @@ +# Affect FC_FONT_HAS_HINT property to score on matcher +# https://cgit.freedesktop.org/fontconfig/commit/?id=cb1036a7c7f1cb79fa799b1db368c86b018ec368 +# Add missing return type for FcFontSet* functions +# https://cgit.freedesktop.org/fontconfig/commit/?id=7172f08d4231c59cf14dab9ebab714df37e352ac +# Do not return FcFalse from FcConfigParseAndLoad*() if complain is set to false +# https://cgit.freedesktop.org/fontconfig/commit/?id=fcada522913e5e07efa6367eff87ace9f06d24c8 +# conf: Add JoyPixels emoji font +# https://cgit.freedesktop.org/fontconfig/commit/?id=65087ac7ce4cc5f2109967c1380b474955dcb590 +# Warn as well if no directory name for cachedir provided +# https://cgit.freedesktop.org/fontconfig/commit/?id=75eadca26648abf69497691ff0f4c7803b9ff23c +# Take effect sysroot functionality to the default config file +# https://cgit.freedesktop.org/fontconfig/commit/?id=cd51cb241aad7b362b793200ca7d42595c14f52b +# Read latest cache in paths +# https://cgit.freedesktop.org/fontconfig/commit/?id=c9862b6ea7c3234b29f6500c7d07359847e55ed7 +# Fix a memory leak caused by the previous commit +# https://cgit.freedesktop.org/fontconfig/commit/?id=a45fc8a33256d9d3ea0ea7947f33c8e5e3cc7238 +# Use FcConfigReference/Destroy appropriately instead of FcConfigGetCurrent +# https://cgit.freedesktop.org/fontconfig/commit/?id=b5bcf61fe789e66df2de609ec246cb7e4d326180 +# Fix potential race condition in FcConfigSetCurrent and FcConfigReference +# https://cgit.freedesktop.org/fontconfig/commit/?id=aa8c8cfa9fb2563482336249e3f56459099fcf6e +# Correct reset-dirs in DTD +# https://cgit.freedesktop.org/fontconfig/commit/?id=a4aa66a858f1ecd375c5efe5916398281f73f794 +# Don't add a value for FC_FULLNAME in meta face +# https://cgit.freedesktop.org/fontconfig/commit/?id=8249f871b373db5c6559f8c48242beed612b23a0 +# Add proper fullname for named-instances +# https://cgit.freedesktop.org/fontconfig/commit/?id=452be8125f0e2a18a7dfef469e05d19374d36307 +# Fix the process substitution doesn't work with FONTCONFIG_FILE +# https://cgit.freedesktop.org/fontconfig/commit/?id=71d6866d381a0ab3585eb9ee760aeec98e722359 +# Fix memory leaks +# https://cgit.freedesktop.org/fontconfig/commit/?id=61573ad5f7c4dd0860d613d99d0086433240eb75 +# Fix assertion in FcFini() +# https://cgit.freedesktop.org/fontconfig/commit/?id=fbc05949ef52c8a8d69233eed77f6636dffec280 +# Set exact boolean value to color property +# https://cgit.freedesktop.org/fontconfig/commit/?id=d3bfbea7dc53aa7fa52aa9616235a23d4507da1b + +Excluding changes for the following files: test/Makefile.am, test/run-test.sh, +test/test-bz1744377.c, test/test-crbug1004254.c, test/test-issue180.c. + +--- conf.d/45-generic.conf.orig 2018-06-05 10:36:38 UTC ++++ conf.d/45-generic.conf +@@ -38,6 +38,10 @@ + emoji + + ++ JoyPixels ++ emoji ++ ++ + Emoji One + emoji + +--- conf.d/60-generic.conf.orig 2018-06-05 10:36:38 UTC ++++ conf.d/60-generic.conf +@@ -42,6 +42,7 @@ + EmojiOne Mozilla + + Emoji Two ++ JoyPixels + Emoji One + + Noto Emoji +--- doc/fcconfig.fncs.orig 2019-05-08 08:22:25 UTC ++++ doc/fcconfig.fncs +@@ -174,6 +174,10 @@ Returns one of the two sets of fonts fro + by set. This font set is owned by the library and must + not be modified or freed. + If config is NULL, the current configuration is used. ++ ++This function isn't MT-safe. FcConfigReference must be called ++before using this and then FcConfigDestroy when ++the return value is no longer referenced. + @@ + + @RET@ FcBlanks * +@@ -344,6 +348,15 @@ to be up to date, and used. + @TYPE1@ const FcChar8 * @ARG1@ name + @PURPOSE@ Find a config file + @DESC@ ++This function is deprecated and is replaced by FcConfigGetFilename. ++@@ ++ ++@RET@ FcChar8 * ++@FUNC@ FcConfigGetFilename ++@TYPE1@ FcConfig * @ARG1@ config ++@TYPE2@ const FcChar8 * @ARG2@ name ++@PURPOSE@ Find a config file ++@DESC@ + Given the specified external entity name, return the associated filename. + This provides applications a way to convert various configuration file + references into filename form. +@@ -355,6 +368,8 @@ refers to a file in the current users ho + doesn't start with '/', it refers to a file in the default configuration + directory; the built-in default directory can be overridden with the + FONTCONFIG_PATH environment variable. ++ ++The result of this function is affected by the FONTCONFIG_SYSROOT environment variable or equivalent functionality. + @@ + + @RET@ FcBool +@@ -396,6 +411,10 @@ parse error, semantic error or allocatio + Obtains the system root directory in 'config' if available. All files + (including file properties in patterns) obtained from this 'config' are + relative to this system root directory. ++ ++This function isn't MT-safe. FcConfigReference must be called ++before using this and then FcConfigDestroy when ++the return value is no longer referenced. + @SINCE@ 2.10.92 + @@ + +@@ -422,6 +441,10 @@ When setting this on the current config + @PURPOSE@ Initialize the iterator + @DESC@ + Initialize 'iter' with the first iterator in the config file information list. ++ ++This function isn't MT-safe. FcConfigReference must be called ++before using this and then FcConfigDestroy when the relevant ++values are no longer referenced. + @SINCE@ 2.12.91 + @@ + +@@ -433,6 +456,10 @@ Initialize 'iter' with the first iterato + @DESC@ + Set 'iter' to point to the next node in the config file information list. + If there is no next node, FcFalse is returned. ++ ++This function isn't MT-safe. FcConfigReference must be called ++before using FcConfigFileInfoIterInit and then ++FcConfigDestroy when the relevant values are no longer referenced. + @SINCE@ 2.12.91 + @@ + +@@ -448,5 +475,9 @@ If there is no next node, FcFalse is ret + Obtain the filename, the description and the flag whether it is enabled or not + for 'iter' where points to current configuration file information. + If the iterator is invalid, FcFalse is returned. ++ ++This function isn't MT-safe. FcConfigReference must be called ++before using FcConfigFileInfoIterInit and then ++FcConfigDestroy when the relevant values are no longer referenced. + @SINCE@ 2.12.91 + @@ +--- doc/fcfontset.fncs.orig 2016-07-11 02:41:05 UTC ++++ doc/fcfontset.fncs +@@ -97,7 +97,7 @@ of the output is designed to be of help + change at any time. + @@ + +-@RET@ ++@RET@ FcFontSet * + @FUNC@ FcFontSetSort + @TYPE1@ FcConfig * @ARG1@ config + @TYPE2@ FcFontSet ** @ARG2@ sets +@@ -128,7 +128,7 @@ modify these patterns. Instead, they sh + The FcFontSet returned by FcFontSetSort is destroyed by calling FcFontSetDestroy. + @@ + +-@RET@ ++@RET@ void + @FUNC@ FcFontSetSortDestroy + @TYPE1@ FcFontSet * @ARG1@ set + @PURPOSE@ DEPRECATED destroy a font set +--- fontconfig/fontconfig.h.orig 2019-08-09 11:09:32 UTC ++++ fontconfig/fontconfig.h +@@ -375,7 +375,7 @@ FcPublic FcBool + FcDirCacheClean (const FcChar8 *cache_dir, FcBool verbose); + + FcPublic void +-FcCacheCreateTagFile (const FcConfig *config); ++FcCacheCreateTagFile (FcConfig *config); + + FcPublic FcBool + FcDirCacheCreateUUID (FcChar8 *dir, +@@ -394,6 +394,10 @@ FcPublic FcBool + FcConfigEnableHome (FcBool enable); + + FcPublic FcChar8 * ++FcConfigGetFilename (FcConfig *config, ++ const FcChar8 *url); ++ ++FcPublic FcChar8 * + FcConfigFilename (const FcChar8 *url); + + FcPublic FcConfig * +@@ -433,7 +437,7 @@ FcPublic FcBlanks * + FcConfigGetBlanks (FcConfig *config); + + FcPublic FcStrList * +-FcConfigGetCacheDirs (const FcConfig *config); ++FcConfigGetCacheDirs (FcConfig *config); + + FcPublic int + FcConfigGetRescanInterval (FcConfig *config); +--- fonts.dtd.orig 2019-05-08 08:22:25 UTC ++++ fonts.dtd +@@ -124,7 +124,7 @@ + +- ++ + +