Bug 225164 - x11-fonts/fontconfig: Update to 2.12.6
Summary: x11-fonts/fontconfig: Update to 2.12.6
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Li-Wen Hsu
URL:
Keywords: patch
Depends on:
Blocks:
 
Reported: 2018-01-14 18:51 UTC by lightside
Modified: 2018-05-09 03:51 UTC (History)
5 users (show)

See Also:
kwm: maintainer-feedback+


Attachments
Proposed patch for x11-fonts/fontconfig (since 431796 revision) (3.12 KB, patch)
2018-01-14 18:51 UTC, lightside
no flags Details | Diff
Proposed patch for x11-fonts/fontconfig-reference (since 420579 revision) (660 bytes, patch)
2018-01-14 18:52 UTC, lightside
lightside: maintainer-approval? (gnome)
Details | Diff
The testcase for FcLangNormalize function (1013 bytes, text/plain)
2018-01-14 19:51 UTC, lightside
no flags Details
Proposed patch for x11-fonts/fontconfig (since 463966 revision) (4.69 KB, patch)
2018-03-09 20:58 UTC, lightside
no flags Details | Diff
Proposed patch for x11-fonts/fontconfig (since 464042 revision) (3.20 KB, patch)
2018-03-10 04:05 UTC, lightside
no flags Details | Diff
Proposed patch for x11-fonts/fontconfig (since 464048 revision) (3.20 KB, patch)
2018-03-10 17:02 UTC, lightside
no flags Details | Diff
Add USES=gperf to fix fontconfig 2.12.6 build in poudriere (4.00 KB, patch)
2018-05-06 07:49 UTC, Ting-Wei Lan
no flags Details | Diff
The poudriere testport log for x11-fonts/fontconfig (FreeBSD 10.4 amd64) (11.78 KB, application/x-bzip)
2018-05-06 14:36 UTC, lightside
no flags Details
Add USES=gperf to fix fontconfig 2.12.6 build in poudriere (without full path) (3.34 KB, patch)
2018-05-06 14:56 UTC, Ting-Wei Lan
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description lightside 2018-01-14 18:51:23 UTC
Created attachment 189716 [details]
Proposed patch for x11-fonts/fontconfig (since 431796 revision)

Patch to update x11-fonts/fontconfig port from 2.12.1 to 2.12.6 version.

Look following link for changes:
https://cgit.freedesktop.org/fontconfig/tree/README?id=2.12.6
ABI:
https://abi-laboratory.pro/tracker/timeline/fontconfig/

- Adapt files/patch-src_fclang.c
- Adapt pkg-plist

The build was tested on FreeBSD 10.3 amd64.
Comment 1 lightside 2018-01-14 18:52:47 UTC
Created attachment 189717 [details]
Proposed patch for x11-fonts/fontconfig-reference (since 420579 revision)

Changes for x11-fonts/fontconfig-reference port:
- Adapt pkg-plist
Comment 2 lightside 2018-01-14 19:51:34 UTC
Created attachment 189718 [details]
The testcase for FcLangNormalize function

Attached some testcase for FcLangNormalize function, which may be used to test a patch in files/patch-src_fclang.c file.

% cc `pkg-config --cflags --libs fontconfig` -o testcase testcase.c
% ./testcase sk_SK.UTF-8 sr_Cyrl_RS.UTF-8
For patched fontconfig:
Result of FcLangNormalize for 'sk_SK.UTF-8' is 'sk'
Result of FcLangNormalize for 'sr_Cyrl_RS.UTF-8' is 'sr'

For unpatched fontconfig:
Result of FcLangNormalize for 'sk_SK.UTF-8' is 'sk'
Fontconfig warning: ignoring sr_Cyrl_RS.UTF-8: not a valid region tag
No result of FcLangNormalize for 'sr_Cyrl_RS.UTF-8'

For available locales on FreeBSD 10.3 amd64:
% locale -a | xargs ./testcase
Result of FcLangNormalize for 'C' is 'en'
Result of FcLangNormalize for 'POSIX' is 'en'
Result of FcLangNormalize for 'af_ZA.ISO8859-1' is 'af'
Result of FcLangNormalize for 'af_ZA.ISO8859-15' is 'af'
Result of FcLangNormalize for 'af_ZA.UTF-8' is 'af'
Result of FcLangNormalize for 'am_ET.UTF-8' is 'am'
Result of FcLangNormalize for 'be_BY.CP1131' is 'be'
Result of FcLangNormalize for 'be_BY.CP1251' is 'be'
Result of FcLangNormalize for 'be_BY.ISO8859-5' is 'be'
Result of FcLangNormalize for 'be_BY.UTF-8' is 'be'
Result of FcLangNormalize for 'bg_BG.CP1251' is 'bg'
Result of FcLangNormalize for 'bg_BG.UTF-8' is 'bg'
Result of FcLangNormalize for 'ca_AD.ISO8859-1' is 'ca'
Result of FcLangNormalize for 'ca_AD.ISO8859-15' is 'ca'
Result of FcLangNormalize for 'ca_AD.UTF-8' is 'ca'
Result of FcLangNormalize for 'ca_ES.ISO8859-1' is 'ca'
Result of FcLangNormalize for 'ca_ES.ISO8859-15' is 'ca'
Result of FcLangNormalize for 'ca_ES.UTF-8' is 'ca'
Result of FcLangNormalize for 'ca_FR.ISO8859-1' is 'ca'
Result of FcLangNormalize for 'ca_FR.ISO8859-15' is 'ca'
Result of FcLangNormalize for 'ca_FR.UTF-8' is 'ca'
Result of FcLangNormalize for 'ca_IT.ISO8859-1' is 'ca'
Result of FcLangNormalize for 'ca_IT.ISO8859-15' is 'ca'
Result of FcLangNormalize for 'ca_IT.UTF-8' is 'ca'
Result of FcLangNormalize for 'cs_CZ.ISO8859-2' is 'cs'
Result of FcLangNormalize for 'cs_CZ.UTF-8' is 'cs'
Result of FcLangNormalize for 'da_DK.ISO8859-1' is 'da'
Result of FcLangNormalize for 'da_DK.ISO8859-15' is 'da'
Result of FcLangNormalize for 'da_DK.UTF-8' is 'da'
Result of FcLangNormalize for 'de_AT.ISO8859-1' is 'de'
Result of FcLangNormalize for 'de_AT.ISO8859-15' is 'de'
Result of FcLangNormalize for 'de_AT.UTF-8' is 'de'
Result of FcLangNormalize for 'de_CH.ISO8859-1' is 'de'
Result of FcLangNormalize for 'de_CH.ISO8859-15' is 'de'
Result of FcLangNormalize for 'de_CH.UTF-8' is 'de'
Result of FcLangNormalize for 'de_DE.ISO8859-1' is 'de'
Result of FcLangNormalize for 'de_DE.ISO8859-15' is 'de'
Result of FcLangNormalize for 'de_DE.UTF-8' is 'de'
Result of FcLangNormalize for 'el_GR.ISO8859-7' is 'el'
Result of FcLangNormalize for 'el_GR.UTF-8' is 'el'
Result of FcLangNormalize for 'en_AU.ISO8859-1' is 'en'
Result of FcLangNormalize for 'en_AU.ISO8859-15' is 'en'
Result of FcLangNormalize for 'en_AU.US-ASCII' is 'en'
Result of FcLangNormalize for 'en_AU.UTF-8' is 'en'
Result of FcLangNormalize for 'en_CA.ISO8859-1' is 'en'
Result of FcLangNormalize for 'en_CA.ISO8859-15' is 'en'
Result of FcLangNormalize for 'en_CA.US-ASCII' is 'en'
Result of FcLangNormalize for 'en_CA.UTF-8' is 'en'
Result of FcLangNormalize for 'en_GB.ISO8859-1' is 'en'
Result of FcLangNormalize for 'en_GB.ISO8859-15' is 'en'
Result of FcLangNormalize for 'en_GB.US-ASCII' is 'en'
Result of FcLangNormalize for 'en_GB.UTF-8' is 'en'
Result of FcLangNormalize for 'en_IE.UTF-8' is 'en'
Result of FcLangNormalize for 'en_NZ.ISO8859-1' is 'en'
Result of FcLangNormalize for 'en_NZ.ISO8859-15' is 'en'
Result of FcLangNormalize for 'en_NZ.US-ASCII' is 'en'
Result of FcLangNormalize for 'en_NZ.UTF-8' is 'en'
Result of FcLangNormalize for 'en_US.ISO8859-1' is 'en'
Result of FcLangNormalize for 'en_US.ISO8859-15' is 'en'
Result of FcLangNormalize for 'en_US.US-ASCII' is 'en'
Result of FcLangNormalize for 'en_US.UTF-8' is 'en'
Result of FcLangNormalize for 'es_ES.ISO8859-1' is 'es'
Result of FcLangNormalize for 'es_ES.ISO8859-15' is 'es'
Result of FcLangNormalize for 'es_ES.UTF-8' is 'es'
Result of FcLangNormalize for 'et_EE.ISO8859-15' is 'et'
Result of FcLangNormalize for 'et_EE.UTF-8' is 'et'
Result of FcLangNormalize for 'eu_ES.ISO8859-1' is 'eu'
Result of FcLangNormalize for 'eu_ES.ISO8859-15' is 'eu'
Result of FcLangNormalize for 'eu_ES.UTF-8' is 'eu'
Result of FcLangNormalize for 'fi_FI.ISO8859-1' is 'fi'
Result of FcLangNormalize for 'fi_FI.ISO8859-15' is 'fi'
Result of FcLangNormalize for 'fi_FI.UTF-8' is 'fi'
Result of FcLangNormalize for 'fr_BE.ISO8859-1' is 'fr'
Result of FcLangNormalize for 'fr_BE.ISO8859-15' is 'fr'
Result of FcLangNormalize for 'fr_BE.UTF-8' is 'fr'
Result of FcLangNormalize for 'fr_CA.ISO8859-1' is 'fr'
Result of FcLangNormalize for 'fr_CA.ISO8859-15' is 'fr'
Result of FcLangNormalize for 'fr_CA.UTF-8' is 'fr'
Result of FcLangNormalize for 'fr_CH.ISO8859-1' is 'fr'
Result of FcLangNormalize for 'fr_CH.ISO8859-15' is 'fr'
Result of FcLangNormalize for 'fr_CH.UTF-8' is 'fr'
Result of FcLangNormalize for 'fr_FR.ISO8859-1' is 'fr'
Result of FcLangNormalize for 'fr_FR.ISO8859-15' is 'fr'
Result of FcLangNormalize for 'fr_FR.UTF-8' is 'fr'
Result of FcLangNormalize for 'he_IL.UTF-8' is 'he'
Result of FcLangNormalize for 'hi_IN.ISCII-DEV' is 'hi'
Result of FcLangNormalize for 'hr_HR.ISO8859-2' is 'hr'
Result of FcLangNormalize for 'hr_HR.UTF-8' is 'hr'
Result of FcLangNormalize for 'hu_HU.ISO8859-2' is 'hu'
Result of FcLangNormalize for 'hu_HU.UTF-8' is 'hu'
Result of FcLangNormalize for 'hy_AM.ARMSCII-8' is 'hy'
Result of FcLangNormalize for 'hy_AM.UTF-8' is 'hy'
Result of FcLangNormalize for 'is_IS.ISO8859-1' is 'is'
Result of FcLangNormalize for 'is_IS.ISO8859-15' is 'is'
Result of FcLangNormalize for 'is_IS.UTF-8' is 'is'
Result of FcLangNormalize for 'it_CH.ISO8859-1' is 'it'
Result of FcLangNormalize for 'it_CH.ISO8859-15' is 'it'
Result of FcLangNormalize for 'it_CH.UTF-8' is 'it'
Result of FcLangNormalize for 'it_IT.ISO8859-1' is 'it'
Result of FcLangNormalize for 'it_IT.ISO8859-15' is 'it'
Result of FcLangNormalize for 'it_IT.UTF-8' is 'it'
Result of FcLangNormalize for 'ja_JP.SJIS' is 'ja'
Result of FcLangNormalize for 'ja_JP.UTF-8' is 'ja'
Result of FcLangNormalize for 'ja_JP.eucJP' is 'ja'
Result of FcLangNormalize for 'kk_KZ.PT154' is 'kk'
Result of FcLangNormalize for 'kk_KZ.UTF-8' is 'kk'
Result of FcLangNormalize for 'ko_KR.CP949' is 'ko'
Result of FcLangNormalize for 'ko_KR.UTF-8' is 'ko'
Result of FcLangNormalize for 'ko_KR.eucKR' is 'ko'
Result of FcLangNormalize for 'la_LN.ISO8859-1' is 'la'
Result of FcLangNormalize for 'la_LN.ISO8859-13' is 'la'
Result of FcLangNormalize for 'la_LN.ISO8859-15' is 'la'
Result of FcLangNormalize for 'la_LN.ISO8859-2' is 'la'
Result of FcLangNormalize for 'la_LN.ISO8859-4' is 'la'
Result of FcLangNormalize for 'la_LN.US-ASCII' is 'la'
Result of FcLangNormalize for 'lt_LT.ISO8859-13' is 'lt'
Result of FcLangNormalize for 'lt_LT.ISO8859-4' is 'lt'
Result of FcLangNormalize for 'lt_LT.UTF-8' is 'lt'
Result of FcLangNormalize for 'lv_LV.ISO8859-13' is 'lv'
Result of FcLangNormalize for 'lv_LV.UTF-8' is 'lv'
Result of FcLangNormalize for 'mn_MN.UTF-8' is 'mn-MN'
Result of FcLangNormalize for 'nb_NO.ISO8859-1' is 'nb'
Result of FcLangNormalize for 'nb_NO.ISO8859-15' is 'nb'
Result of FcLangNormalize for 'nb_NO.UTF-8' is 'nb'
Result of FcLangNormalize for 'nl_BE.ISO8859-1' is 'nl'
Result of FcLangNormalize for 'nl_BE.ISO8859-15' is 'nl'
Result of FcLangNormalize for 'nl_BE.UTF-8' is 'nl'
Result of FcLangNormalize for 'nl_NL.ISO8859-1' is 'nl'
Result of FcLangNormalize for 'nl_NL.ISO8859-15' is 'nl'
Result of FcLangNormalize for 'nl_NL.UTF-8' is 'nl'
Result of FcLangNormalize for 'nn_NO.ISO8859-1' is 'nn'
Result of FcLangNormalize for 'nn_NO.ISO8859-15' is 'nn'
Result of FcLangNormalize for 'nn_NO.UTF-8' is 'nn'
Result of FcLangNormalize for 'no_NO.ISO8859-1' is 'no'
Result of FcLangNormalize for 'no_NO.ISO8859-15' is 'no'
Result of FcLangNormalize for 'no_NO.UTF-8' is 'no'
Result of FcLangNormalize for 'pl_PL.ISO8859-2' is 'pl'
Result of FcLangNormalize for 'pl_PL.UTF-8' is 'pl'
Result of FcLangNormalize for 'pt_BR.ISO8859-1' is 'pt'
Result of FcLangNormalize for 'pt_BR.UTF-8' is 'pt'
Result of FcLangNormalize for 'pt_PT.ISO8859-1' is 'pt'
Result of FcLangNormalize for 'pt_PT.ISO8859-15' is 'pt'
Result of FcLangNormalize for 'pt_PT.UTF-8' is 'pt'
Result of FcLangNormalize for 'ro_RO.ISO8859-2' is 'ro'
Result of FcLangNormalize for 'ro_RO.UTF-8' is 'ro'
Result of FcLangNormalize for 'ru_RU.CP1251' is 'ru'
Result of FcLangNormalize for 'ru_RU.CP866' is 'ru'
Result of FcLangNormalize for 'ru_RU.ISO8859-5' is 'ru'
Result of FcLangNormalize for 'ru_RU.KOI8-R' is 'ru'
Result of FcLangNormalize for 'ru_RU.UTF-8' is 'ru'
Result of FcLangNormalize for 'sk_SK.ISO8859-2' is 'sk'
Result of FcLangNormalize for 'sk_SK.UTF-8' is 'sk'
Result of FcLangNormalize for 'sl_SI.ISO8859-2' is 'sl'
Result of FcLangNormalize for 'sl_SI.UTF-8' is 'sl'
Result of FcLangNormalize for 'sr_YU.ISO8859-2' is 'sr'
Result of FcLangNormalize for 'sr_YU.ISO8859-5' is 'sr'
Result of FcLangNormalize for 'sr_YU.UTF-8' is 'sr'
Result of FcLangNormalize for 'sv_SE.ISO8859-1' is 'sv'
Result of FcLangNormalize for 'sv_SE.ISO8859-15' is 'sv'
Result of FcLangNormalize for 'sv_SE.UTF-8' is 'sv'
Result of FcLangNormalize for 'tr_TR.ISO8859-9' is 'tr'
Result of FcLangNormalize for 'tr_TR.UTF-8' is 'tr'
Result of FcLangNormalize for 'uk_UA.CP1251' is 'uk'
Result of FcLangNormalize for 'uk_UA.ISO8859-5' is 'uk'
Result of FcLangNormalize for 'uk_UA.KOI8-U' is 'uk'
Result of FcLangNormalize for 'uk_UA.UTF-8' is 'uk'
Result of FcLangNormalize for 'zh_CN.GB18030' is 'zh-CN'
Result of FcLangNormalize for 'zh_CN.GB2312' is 'zh-CN'
Result of FcLangNormalize for 'zh_CN.GBK' is 'zh-CN'
Result of FcLangNormalize for 'zh_CN.UTF-8' is 'zh-CN'
Result of FcLangNormalize for 'zh_CN.eucCN' is 'zh-CN'
Result of FcLangNormalize for 'zh_HK.Big5HKSCS' is 'zh-HK'
Result of FcLangNormalize for 'zh_HK.UTF-8' is 'zh-HK'
Result of FcLangNormalize for 'zh_TW.Big5' is 'zh-TW'
Result of FcLangNormalize for 'zh_TW.UTF-8' is 'zh-TW'

The same results are for patched or unpatched fontconfig on FreeBSD 10.3 amd64.

As I understood, the files/patch-src_fclang.c file was committed in ports r400653:
https://github.com/freebsd/freebsd-ports/commit/a0209812e88e8487b697a70dae61927536e8e69c
But there were some changes for FreeBSD in base r302329 for "Posixify the locales name for variants":
https://github.com/freebsd/freebsd/commit/9889527f5a2ab902035c679c612e4e5687466fea
Nevertheless, possible that files/patch-src_fclang.c may be usable for DragonFly BSD, where such locale(s) as "sr_Cyrl_RS.UTF-8" available (but I didn't test), if check current changes in Git repository:
https://github.com/DragonFlyBSD/DragonFlyBSD/search?q=sr_Cyrl_RS
https://github.com/DragonFlyBSD/DragonFlyBSD/blob/934db1c1fcfa35981634b8fe3b0b50bef84d5a96/etc/mtree/BSD.usr.dist#L393
https://github.com/DragonFlyBSD/DragonFlyBSD/blob/934db1c1fcfa35981634b8fe3b0b50bef84d5a96/etc/mtree/BSD.usr.dist#L668
https://github.com/freebsd/freebsd/search?q=sr_Cyrl_RS
https://github.com/freebsd/freebsd/blob/6920a5b1f1b5e251f2346302dad17f19226e2b10/etc/mtree/BSD.usr.dist#L423
https://github.com/freebsd/freebsd/blob/6920a5b1f1b5e251f2346302dad17f19226e2b10/etc/mtree/BSD.usr.dist#L760

The "sr_Cyrl_RS" was used as example from comment in files/patch-src_fclang.c file.
Comment 3 lightside 2018-03-09 20:58:10 UTC
Created attachment 191354 [details]
Proposed patch for x11-fonts/fontconfig (since 463966 revision)

Updated patch for x11-fonts/fontconfig after ports r463941 and ports r463966 changes.

- Add NO_BITMAPS option
- Add OPTIONS_SUB=yes
- Convert files/patch-conf.d_Makefile.in to sed patch

Some included changes was also proposed in bug 225744 comment #4.
Comment 4 lightside 2018-03-10 04:05:59 UTC
Created attachment 191368 [details]
Proposed patch for x11-fonts/fontconfig (since 464042 revision)

Updated patch for x11-fonts/fontconfig after ports r464041 and ports r464042 changes.
Comment 5 Walter Schwarzenfeld freebsd_triage 2018-03-10 07:57:25 UTC
New ports r464048 (disabled NO_BITMAPS).
Comment 6 lightside 2018-03-10 17:02:15 UTC
Created attachment 191372 [details]
Proposed patch for x11-fonts/fontconfig (since 464048 revision)

(In reply to comment #5)
> New ports r464048 (disabled NO_BITMAPS).
Ok, updated patch for x11-fonts/fontconfig after ports r464048 changes (i.e. changed PORTREVISION for patch, in this case).
Comment 7 Ting-Wei Lan 2018-03-12 16:02:57 UTC
(In reply to lightside from comment #6)
I did the same patch several days ago in order to compile GIMP from git master because the version requirement was raised to 2.12.4 recently. My patch is identical to yours and I don't see any problem after the update.
Comment 8 Ting-Wei Lan 2018-05-06 07:49:39 UTC
Created attachment 193081 [details]
Add USES=gperf to fix fontconfig 2.12.6 build in poudriere

This fixes the following build error in poudriere:

/bin/sh /wrkdirs/usr/ports/x11-fonts/fontconfig/work/fontconfig-2.12.6/missing gperf --pic -m 100 fcobjshash.gperf > fcobjshash.h.tmp && \
mv -f fcobjshash.h.tmp fcobjshash.h || ( rm -f fcobjshash.h.tmp && false )
/wrkdirs/usr/ports/x11-fonts/fontconfig/work/fontconfig-2.12.6/missing: gperf: not found
WARNING: 'gperf' is missing on your system.
         You might have modified some files without having the proper
         tools for further handling them.  Check the 'README' file, it
         often tells you about the needed prerequisites for installing
         this package.  You may also peek at any GNU archive site, in
         case some other package contains this missing 'gperf' program.
gmake[3]: *** [Makefile:916: fcobjshash.h] Error 1
Comment 9 lightside 2018-05-06 14:36:13 UTC
Created attachment 193091 [details]
The poudriere testport log for x11-fonts/fontconfig (FreeBSD 10.4 amd64)

(In reply to Ting-Wei Lan from comment #8)
> This fixes the following build error in poudriere:
> <..>
> WARNING: 'gperf' is missing on your system.
Does this mean that your system doesn't have /usr/bin/gperf in FreeBSD base?

For example, the FreeBSD 10.4 amd64 has gperf in FreeBSD base:
-8<--
% which gperf
/usr/bin/gperf
% gperf --version | head -1
GNU gperf 3.0.3
-->8-

Attached archived poudriere testport log for FreeBSD 10.4 amd64, based on patch in attachment #191372 [details].

Very possible, that current x11/fontconfig v2.12.1 (from ports r464048) also doesn't build on your (tested) FreeBSD version, because it has the same checks between 2.12.1 and 2.12.6 versions:
https://cgit.freedesktop.org/fontconfig/tree/configure.ac?h=2.12.1#n55
https://cgit.freedesktop.org/fontconfig/tree/configure.ac?h=2.12.6#n55
except added "Check the argument type of the gperf hash/lookup function":
https://cgit.freedesktop.org/fontconfig/tree/configure.ac?h=2.12.6#n196
but you didn't mention about this error in comment #8, because of missing gperf on your tested system.

I guess, committer(s) may check the need of USES+=gperf on other FreeBSD version(s) and add it, when needed.
Don't know why they didn't add this for previous version(s) also, since 2.10.91 (2.10.93 in ports r324037) version:
https://cgit.freedesktop.org/fontconfig/tree/configure.ac?h=da0946721af3ab2dff3cd903065336b93592d067#n73
and probably earlier, if check related commit log:
https://cgit.freedesktop.org/fontconfig/commit/?id=da0946721af3ab2dff3cd903065336b93592d067

Nevertheless, probably fix paths in your attachment #193081 [details], because it has full path to poudriere ports directory. Or committer may use appropriate --strip argument of svn patch (or other) command.
Comment 10 lightside 2018-05-06 14:43:07 UTC
(In reply to comment #9)
> since 2.10.91 (2.10.93 in ports r324037)
since 2.10.92.
Comment 11 Ting-Wei Lan 2018-05-06 14:52:26 UTC
(In reply to lightside from comment #9)
There is no /usr/bin/gperf on my FreeBSD 11.1 amd64 desktop, but I have gperf installed from ports for compiling VTE from a git checkout. I don't know why 2.12.1 didn't need it, but I did see build failure when I tested 2.12.6 in poudriere today.
Comment 12 Li-Wen Hsu freebsd_committer freebsd_triage 2018-05-06 14:56:15 UTC
/usr/bin/gperf is not installed since 11:

https://svnweb.freebsd.org/changeset/base/272849

Without gperf, the poudriere testport log of 11.1-amd64 is available at:

https://gist.github.com/0f19b1f7893cd867b60346521236f690

Adding USES+=gperf is the right fix because it pulls devel/gperf depending on the existence of /usr/bin/gperf .
Comment 13 Ting-Wei Lan 2018-05-06 14:56:44 UTC
Created attachment 193093 [details]
Add USES=gperf to fix fontconfig 2.12.6 build in poudriere (without full path)

Update patch to remove full path to poudriere.
Comment 14 lightside 2018-05-06 15:00:10 UTC
(In reply to comment #9)
The Mk/Uses/gperf.mk was added in ports r370280 (in 7 October 2014 year), so, probably, such FreeBSD systems exists.

There are some ports which already uses it as a build dependency:
https://www.freshports.org/search.php?stype=depends_build&method=match&query=devel%2Fgperf&orderby=category&orderbyupdown=asc&search=Search&format=plaintext&branch=head

(In reply to Ting-Wei Lan from comment #8)
Thanks you for noticing this.
Comment 15 lightside 2018-05-06 15:01:42 UTC
Comment on attachment 191372 [details]
Proposed patch for x11-fonts/fontconfig (since 464048 revision)

(In reply to Ting-Wei Lan from comment #13)
> Update patch to remove full path to poudriere.
Ok, the attachment #191372 [details] was obsoleted.
Comment 16 lightside 2018-05-06 15:29:15 UTC
(In reply to Li-Wen Hsu from comment #12)
> Adding USES+=gperf is the right fix because it pulls devel/gperf depending on
> the existence of /usr/bin/gperf
Ok.
Comment 17 lightside 2018-05-07 22:41:37 UTC
(In reply to comment #9)
> Don't know why they didn't add this for previous version(s) also
Probably, because (possibly) related commit of "Force regenerate fcobjshash.h when updating Makefile":
https://cgit.freedesktop.org/fontconfig/commit/?id=5c49354a782870d632884174f10c7fb10351c667
was related to 2.12.4 release version:
https://cgit.freedesktop.org/fontconfig/commit/?id=01085e07857cddf382db736a9e061f92f50397d6
so, previously (e.g. v2.12.1) the gperf program wasn't used to regenerate fcobjshash.h, when Makefile (timestamp) changes. And it turns out, I didn't notice this, because /usr/bin/gperf was available in FreeBSD 10.3 (10.4) base.
Comment 18 lightside 2018-05-07 23:04:53 UTC
(In reply to comment #17)
> when Makefile (timestamp) changes
when src/Makefile (timestamp) changes
Comment 19 commit-hook freebsd_committer freebsd_triage 2018-05-09 03:51:17 UTC
A commit references this bug:

Author: lwhsu
Date: Wed May  9 03:50:47 UTC 2018
New revision: 469428
URL: https://svnweb.freebsd.org/changeset/ports/469428

Log:
  - Update to 2.12.6

  PR:		225164
  Submitted by:	lightside <lightside@gmx.com>
  Test and tweaked by:	Ting-Wei Lan <lantw44@gmail.com>
  Approved by:	kwm (gnome@, maintainer)

Changes:
  head/x11-fonts/fontconfig/Makefile
  head/x11-fonts/fontconfig/distinfo
  head/x11-fonts/fontconfig/files/patch-src_fclang.c
  head/x11-fonts/fontconfig/pkg-plist
  head/x11-fonts/fontconfig-reference/pkg-plist