FreeBSD Bugzilla – Attachment 206030 Details for
Bug 239167
[exp-run] upgrade x11-fonts/fontconfig: update to 2.13.92 (remove libuuid dependency)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Proposed unified patch (since 479806 revision)
fontconfig-2.13.1_unified.diff (text/plain), 29.60 KB, created by
lightside
on 2019-07-24 08:57:16 UTC
(
hide
)
Description:
Proposed unified patch (since 479806 revision)
Filename:
MIME Type:
Creator:
lightside
Created:
2019-07-24 08:57:16 UTC
Size:
29.60 KB
patch
obsolete
>Index: x11-fonts/fontconfig-reference/Makefile >=================================================================== >--- x11-fonts/fontconfig-reference/Makefile (revision 469428) >+++ x11-fonts/fontconfig-reference/Makefile (working copy) >@@ -7,9 +7,11 @@ > NO_ARCH= yes > > DOCSDIR= ${PREFIX}/share/doc/fontconfig-devel >+DATADIR= ${PREFIX}/man/man3 >+PORTDATA= * > > do-install: >- ${INSTALL_MAN} ${WRKSRC}/doc/*.3 ${STAGEDIR}${PREFIX}/man/man3 >+ ${INSTALL_MAN} ${WRKSRC}/doc/*.3 ${STAGEDIR}${DATADIR} > @${MKDIR} ${STAGEDIR}${DOCSDIR} > ${INSTALL_DATA} ${WRKSRC}/doc/fontconfig-devel.pdf \ > ${WRKSRC}/doc/fontconfig-devel.txt ${STAGEDIR}${DOCSDIR} >Index: x11-fonts/fontconfig-reference/pkg-plist >=================================================================== >--- x11-fonts/fontconfig-reference/pkg-plist (revision 469428) >+++ x11-fonts/fontconfig-reference/pkg-plist (nonexistent) >@@ -1,199 +0,0 @@ >-man/man3/FcAtomicCreate.3.gz >-man/man3/FcAtomicDeleteNew.3.gz >-man/man3/FcAtomicDestroy.3.gz >-man/man3/FcAtomicLock.3.gz >-man/man3/FcAtomicNewFile.3.gz >-man/man3/FcAtomicOrigFile.3.gz >-man/man3/FcAtomicReplaceOrig.3.gz >-man/man3/FcAtomicUnlock.3.gz >-man/man3/FcBlanksAdd.3.gz >-man/man3/FcBlanksCreate.3.gz >-man/man3/FcBlanksDestroy.3.gz >-man/man3/FcBlanksIsMember.3.gz >-man/man3/FcCacheCopySet.3.gz >-man/man3/FcCacheCreateTagFile.3.gz >-man/man3/FcCacheDir.3.gz >-man/man3/FcCacheNumFont.3.gz >-man/man3/FcCacheNumSubdir.3.gz >-man/man3/FcCacheSubdir.3.gz >-man/man3/FcCharSetAddChar.3.gz >-man/man3/FcCharSetCopy.3.gz >-man/man3/FcCharSetCount.3.gz >-man/man3/FcCharSetCoverage.3.gz >-man/man3/FcCharSetCreate.3.gz >-man/man3/FcCharSetDelChar.3.gz >-man/man3/FcCharSetDestroy.3.gz >-man/man3/FcCharSetEqual.3.gz >-man/man3/FcCharSetFirstPage.3.gz >-man/man3/FcCharSetHasChar.3.gz >-man/man3/FcCharSetIntersect.3.gz >-man/man3/FcCharSetIntersectCount.3.gz >-man/man3/FcCharSetIsSubset.3.gz >-man/man3/FcCharSetMerge.3.gz >-man/man3/FcCharSetNew.3.gz >-man/man3/FcCharSetNextPage.3.gz >-man/man3/FcCharSetSubtract.3.gz >-man/man3/FcCharSetSubtractCount.3.gz >-man/man3/FcCharSetUnion.3.gz >-man/man3/FcConfigAppFontAddDir.3.gz >-man/man3/FcConfigAppFontAddFile.3.gz >-man/man3/FcConfigAppFontClear.3.gz >-man/man3/FcConfigBuildFonts.3.gz >-man/man3/FcConfigCreate.3.gz >-man/man3/FcConfigDestroy.3.gz >-man/man3/FcConfigEnableHome.3.gz >-man/man3/FcConfigFilename.3.gz >-man/man3/FcConfigGetBlanks.3.gz >-man/man3/FcConfigGetCache.3.gz >-man/man3/FcConfigGetCacheDirs.3.gz >-man/man3/FcConfigGetConfigDirs.3.gz >-man/man3/FcConfigGetConfigFiles.3.gz >-man/man3/FcConfigGetCurrent.3.gz >-man/man3/FcConfigGetFontDirs.3.gz >-man/man3/FcConfigGetFonts.3.gz >-man/man3/FcConfigGetRescanInterval.3.gz >-man/man3/FcConfigGetSysRoot.3.gz >-man/man3/FcConfigHome.3.gz >-man/man3/FcConfigParseAndLoad.3.gz >-man/man3/FcConfigParseAndLoadFromMemory.3.gz >-man/man3/FcConfigReference.3.gz >-man/man3/FcConfigSetCurrent.3.gz >-man/man3/FcConfigSetRescanInterval.3.gz >-man/man3/FcConfigSetSysRoot.3.gz >-man/man3/FcConfigSubstitute.3.gz >-man/man3/FcConfigSubstituteWithPat.3.gz >-man/man3/FcConfigUptoDate.3.gz >-man/man3/FcDefaultSubstitute.3.gz >-man/man3/FcDirCacheClean.3.gz >-man/man3/FcDirCacheLoad.3.gz >-man/man3/FcDirCacheLoadFile.3.gz >-man/man3/FcDirCacheRead.3.gz >-man/man3/FcDirCacheRescan.3.gz >-man/man3/FcDirCacheUnlink.3.gz >-man/man3/FcDirCacheUnload.3.gz >-man/man3/FcDirCacheValid.3.gz >-man/man3/FcDirSave.3.gz >-man/man3/FcDirScan.3.gz >-man/man3/FcFileIsDir.3.gz >-man/man3/FcFileScan.3.gz >-man/man3/FcFini.3.gz >-man/man3/FcFontList.3.gz >-man/man3/FcFontMatch.3.gz >-man/man3/FcFontRenderPrepare.3.gz >-man/man3/FcFontSetAdd.3.gz >-man/man3/FcFontSetCreate.3.gz >-man/man3/FcFontSetDestroy.3.gz >-man/man3/FcFontSetList.3.gz >-man/man3/FcFontSetMatch.3.gz >-man/man3/FcFontSetPrint.3.gz >-man/man3/FcFontSetSort.3.gz >-man/man3/FcFontSetSortDestroy.3.gz >-man/man3/FcFontSort.3.gz >-man/man3/FcFreeTypeCharIndex.3.gz >-man/man3/FcFreeTypeCharSet.3.gz >-man/man3/FcFreeTypeCharSetAndSpacing.3.gz >-man/man3/FcFreeTypeQuery.3.gz >-man/man3/FcFreeTypeQueryFace.3.gz >-man/man3/FcGetDefaultLangs.3.gz >-man/man3/FcGetLangs.3.gz >-man/man3/FcGetVersion.3.gz >-man/man3/FcInit.3.gz >-man/man3/FcInitBringUptoDate.3.gz >-man/man3/FcInitLoadConfig.3.gz >-man/man3/FcInitLoadConfigAndFonts.3.gz >-man/man3/FcInitReinitialize.3.gz >-man/man3/FcIsLower.3.gz >-man/man3/FcIsUpper.3.gz >-man/man3/FcLangGetCharSet.3.gz >-man/man3/FcLangNormalize.3.gz >-man/man3/FcLangSetAdd.3.gz >-man/man3/FcLangSetCompare.3.gz >-man/man3/FcLangSetContains.3.gz >-man/man3/FcLangSetCopy.3.gz >-man/man3/FcLangSetCreate.3.gz >-man/man3/FcLangSetDel.3.gz >-man/man3/FcLangSetDestroy.3.gz >-man/man3/FcLangSetEqual.3.gz >-man/man3/FcLangSetGetLangs.3.gz >-man/man3/FcLangSetHasLang.3.gz >-man/man3/FcLangSetHash.3.gz >-man/man3/FcLangSetSubtract.3.gz >-man/man3/FcLangSetUnion.3.gz >-man/man3/FcMatrixCopy.3.gz >-man/man3/FcMatrixEqual.3.gz >-man/man3/FcMatrixInit.3.gz >-man/man3/FcMatrixMultiply.3.gz >-man/man3/FcMatrixRotate.3.gz >-man/man3/FcMatrixScale.3.gz >-man/man3/FcMatrixShear.3.gz >-man/man3/FcNameConstant.3.gz >-man/man3/FcNameGetConstant.3.gz >-man/man3/FcNameGetObjectType.3.gz >-man/man3/FcNameParse.3.gz >-man/man3/FcNameRegisterConstants.3.gz >-man/man3/FcNameRegisterObjectTypes.3.gz >-man/man3/FcNameUnparse.3.gz >-man/man3/FcNameUnregisterConstants.3.gz >-man/man3/FcNameUnregisterObjectTypes.3.gz >-man/man3/FcObjectSetAdd.3.gz >-man/man3/FcObjectSetBuild.3.gz >-man/man3/FcObjectSetCreate.3.gz >-man/man3/FcObjectSetDestroy.3.gz >-man/man3/FcPatternAdd-Type.3.gz >-man/man3/FcPatternAdd.3.gz >-man/man3/FcPatternAddWeak.3.gz >-man/man3/FcPatternBuild.3.gz >-man/man3/FcPatternCreate.3.gz >-man/man3/FcPatternDel.3.gz >-man/man3/FcPatternDestroy.3.gz >-man/man3/FcPatternDuplicate.3.gz >-man/man3/FcPatternEqual.3.gz >-man/man3/FcPatternEqualSubset.3.gz >-man/man3/FcPatternFilter.3.gz >-man/man3/FcPatternFormat.3.gz >-man/man3/FcPatternGet-Type.3.gz >-man/man3/FcPatternGet.3.gz >-man/man3/FcPatternGetWithBinding.3.gz >-man/man3/FcPatternHash.3.gz >-man/man3/FcPatternPrint.3.gz >-man/man3/FcPatternReference.3.gz >-man/man3/FcPatternRemove.3.gz >-man/man3/FcRangeCopy.3.gz >-man/man3/FcRangeCreateDouble.3.gz >-man/man3/FcRangeCreateInteger.3.gz >-man/man3/FcRangeDestroy.3.gz >-man/man3/FcRangeGetDouble.3.gz >-man/man3/FcStrBasename.3.gz >-man/man3/FcStrCmp.3.gz >-man/man3/FcStrCmpIgnoreCase.3.gz >-man/man3/FcStrCopy.3.gz >-man/man3/FcStrCopyFilename.3.gz >-man/man3/FcStrDirname.3.gz >-man/man3/FcStrDowncase.3.gz >-man/man3/FcStrFree.3.gz >-man/man3/FcStrListCreate.3.gz >-man/man3/FcStrListDone.3.gz >-man/man3/FcStrListFirst.3.gz >-man/man3/FcStrListNext.3.gz >-man/man3/FcStrPlus.3.gz >-man/man3/FcStrSetAdd.3.gz >-man/man3/FcStrSetAddFilename.3.gz >-man/man3/FcStrSetCreate.3.gz >-man/man3/FcStrSetDel.3.gz >-man/man3/FcStrSetDestroy.3.gz >-man/man3/FcStrSetEqual.3.gz >-man/man3/FcStrSetMember.3.gz >-man/man3/FcStrStr.3.gz >-man/man3/FcStrStrIgnoreCase.3.gz >-man/man3/FcToLower.3.gz >-man/man3/FcUcs4ToUtf8.3.gz >-man/man3/FcUtf16Len.3.gz >-man/man3/FcUtf16ToUcs4.3.gz >-man/man3/FcUtf8Len.3.gz >-man/man3/FcUtf8ToUcs4.3.gz >-man/man3/FcValueDestroy.3.gz >-man/man3/FcValueEqual.3.gz >-man/man3/FcValuePrint.3.gz >-man/man3/FcValueSave.3.gz >-man/man3/FcWeightFromOpenType.3.gz >-man/man3/FcWeightToOpenType.3.gz >Index: x11-fonts/fontconfig/Makefile >=================================================================== >--- x11-fonts/fontconfig/Makefile (revision 479806) >+++ x11-fonts/fontconfig/Makefile (working copy) >@@ -2,7 +2,7 @@ > # $FreeBSD$ > > PORTNAME= fontconfig >-PORTVERSION= 2.12.6 >+PORTVERSION= 2.13.1 > PORTREVISION?= 0 > PORTEPOCH?= 1 > CATEGORIES= x11-fonts >@@ -19,6 +19,7 @@ > .if !defined(REFERENCE_PORT) > > LIB_DEPENDS= libfreetype.so:print/freetype2 \ >+ libuuid.so:misc/e2fsprogs-libuuid \ > libexpat.so:textproc/expat2 > > USES+= cpe gmake libtool pathfix pkgconfig >@@ -40,8 +41,6 @@ > # D6155: static linked library linking added to support statically linked > # applications, e.g. x11/xforward static option > CONFIGURE_ARGS+= --enable-static >-# Python is not required, because fc-blanks.h is available in distfile >-CONFIGURE_ENV= PYTHON=":" > > PKGINSTALL= ${WRKDIR}/pkg-install > INSTALL_TARGET=install-strip >@@ -49,7 +48,7 @@ > PLIST_SUB= PREFERRED_HINTING=${PREFERRED_HINTING} > PORTDOCS= fontconfig-user.html fontconfig-user.pdf fontconfig-user.txt > >-OPTIONS_DEFINE= DOCS NO_BITMAPS >+OPTIONS_DEFINE= DOCS NLS NO_BITMAPS > OPTIONS_DEFAULT=HINTING_SLIGHT > OPTIONS_SUB= yes > >@@ -63,6 +62,9 @@ > HINTING_${opt}_VARS= PREFERRED_HINTING=${opt:tl} > .endfor > >+NLS_USES= gettext >+NLS_CONFIGURE_ENABLE= nls >+ > post-patch-NO_BITMAPS-on: > @${REINPLACE_CMD} -i '.bitmaps.bak' -e \ > '/^CONF_LINKS =/s|$$|\${.newline} 70-no-bitmaps.conf \\|' \ >Index: x11-fonts/fontconfig/distinfo >=================================================================== >--- x11-fonts/fontconfig/distinfo (revision 479806) >+++ x11-fonts/fontconfig/distinfo (working copy) >@@ -1,3 +1,3 @@ >-TIMESTAMP = 1505981313 >-SHA256 (fontconfig-2.12.6.tar.bz2) = cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017 >-SIZE (fontconfig-2.12.6.tar.bz2) = 1624683 >+TIMESTAMP = 1550745725 >+SHA256 (fontconfig-2.13.1.tar.bz2) = f655dd2a986d7aa97e052261b36aa67b0a64989496361eca8d604e6414006741 >+SIZE (fontconfig-2.13.1.tar.bz2) = 1723639 >Index: x11-fonts/fontconfig/files/patch-2.13.1.diff >=================================================================== >--- x11-fonts/fontconfig/files/patch-2.13.1.diff (nonexistent) >+++ x11-fonts/fontconfig/files/patch-2.13.1.diff (working copy) >@@ -0,0 +1,572 @@ >+# 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 <dir> 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 >+ >+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 @@ >+ --> >+ <!ELEMENT dir (#PCDATA)> >+ <!ATTLIST dir >+- prefix CDATA "default" >+- xml:space (default|preserve) 'preserve'> >++ prefix (default|xdg|relative|cwd) "default" >++ xml:space (default|preserve) 'preserve'> >+ >+ <!-- >+ Define the per-user file that holds cache font information. >+ >+ If the filename begins with '~', it is replaced with the users >+ home directory path. >++ >++ If 'prefix' is 'default' or 'cwd', then the current working directory will be added prior to the value. >++ If 'prefix' is 'xdg', then the value in the $XDG_DATA_HOME will be added prior to the value. >++ If 'prefix' is 'relative', then the path of curent file will be added prior to the value. >+ --> >+ <!ELEMENT cache (#PCDATA)> >+ <!ATTLIST cache 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; >+ } >+@@ -2135,7 +2159,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 <dir> 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 <dir> element. please add prefix=\"cwd\" if current behavior is desired."); >++ } >+ #endif >+ if (strlen ((char *) data) == 0) >+ FcConfigMessage (parse, FcSevereWarning, "empty font directory name ignored"); >Index: x11-fonts/fontconfig/pkg-plist >=================================================================== >--- x11-fonts/fontconfig/pkg-plist (revision 479806) >+++ x11-fonts/fontconfig/pkg-plist (working copy) >@@ -1,5 +1,6 @@ > bin/fc-cache > bin/fc-cat >+bin/fc-conflist > bin/fc-list > bin/fc-match > bin/fc-pattern >@@ -67,10 +68,11 @@ > lib/libfontconfig.a > lib/libfontconfig.so > lib/libfontconfig.so.1 >-lib/libfontconfig.so.1.10.1 >+lib/libfontconfig.so.1.12.0 > libdata/pkgconfig/fontconfig.pc > man/man1/fc-cache.1.gz > man/man1/fc-cat.1.gz >+man/man1/fc-conflist.1.gz > man/man1/fc-list.1.gz > man/man1/fc-match.1.gz > man/man1/fc-pattern.1.gz >@@ -78,4 +80,8 @@ > man/man1/fc-scan.1.gz > man/man1/fc-validate.1.gz > man/man5/fonts-conf.5.gz >+share/gettext/its/fontconfig.its >+share/gettext/its/fontconfig.loc >+%%NLS%%share/locale/zh_CN/LC_MESSAGES/fontconfig-conf.mo >+%%NLS%%share/locale/zh_CN/LC_MESSAGES/fontconfig.mo > @dir /var/db/fontconfig
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 239167
:
205723
|
205785
|
205786
|
205810
|
205827
|
205855
|
206007
|
206009
|
206030
|
206087
|
206117
|
212601
|
212602
|
212603
|
212612
|
212643
|
212645