summaryrefslogtreecommitdiff
path: root/devel/electron7/files/patch-base_test_fontconfig__util__linux.cc
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2021-01-01 00:57:23 +0000
committerRene Ladan <rene@FreeBSD.org>2021-01-01 00:57:23 +0000
commite095f78463023f59c04bdd21ffc95fada557410f (patch)
treeec5de6499c9c252b774be9acb5c807082d084bd2 /devel/electron7/files/patch-base_test_fontconfig__util__linux.cc
parentNew port, misc/timezonemap (diff)
Remove most expired ports that depend on Python 2.7:
Exceptions are: - mail/mailman, our listservers still use it - www/chromium, solely because of popular demand, upstream is (slowly) working on porting it to Python 3 - ports that have actual patches for Python 3 against them (Cinnamon and a few unrelated other ports) - llvm70 and qt5-webengine because they seem to have a lot of dependencies which need further analysis - sysutils/uefi-edk2-bhyve because bhyve seems to use them - python2 and python27 themselves I'm sure there will be complaints, but the nice thing about a version control system is that we can revert and adjust things. 2020-12-31 audio/ardour: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 audio/mixxx21: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 audio/xmms2: Uses Python 2.7 which is EOLed upstream 2020-12-31 chinese/sunpinyin: Uses Python 2.7 which is EOLed upstream 2020-12-31 databases/arangodb32: Uses Python 2.7 which is EOLed upstream 2020-12-31 databases/arangodb33: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/bzr: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/chromium-gn: Uses deprecated version of python, use devel/gn instead 2020-12-31 devel/electron4: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/electron5: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/electron6: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/electron7: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/gnatpython: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/godot2: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 devel/godot2-tools: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 devel/libhid: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/libosmocore: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/llvm60: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/mongo-cxx-driver: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-06-30 devel/p5-Log-Any-Adapter-Callback: Use devel/p5-Log-Any (Log::Any::Adapter::Capture) instead 2020-12-31 devel/py-backports.functools_lru_cache: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-backports.os: Python 2 is EOL upstream 2020-12-31 devel/py-backports.shutil_get_terminal_size: Python 2 is EOL upstream 2020-12-31 devel/py-backports_abc: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-cheetah: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-dis3: Python 2 only, backport of Python 3 2020-12-31 devel/py-enum34: Will be removed along with python27 2020-12-31 devel/py-functools32: Python 2 only, backport of Python 3 2020-12-31 devel/py-futures: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-more-itertools5: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-pathlib: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-selectors2: Python 2 is EOL upstream 2020-12-31 devel/py-should_dsl: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-singledispatch: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-subprocess32: Python 2 only, following EOL of lang/python27 2020-12-31 devel/py-total-ordering: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/py-typing: Python 2 only, backport of Python 3 2020-12-31 devel/py-weakrefmethod: Python 2 only, backport of Python 3 2020-12-31 devel/rbtools: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/subversion-lts: Uses Python 2.7 which is EOLed upstream 2020-12-31 devel/viewvc: Uses Python 2.7 which is EOLed upstream 2020-12-31 dns/py-dns: Uses Python 2.7 which is EOLed upstream 2020-12-31 editors/atom: Uses Python 2.7 which is EOLed upstream 2020-12-31 emulators/fceux: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 emulators/gem5: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 emulators/nonpareil: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 games/0ad: Uses deprecated version of python 2020-12-31 games/dangerdeep: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 games/freera: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 games/glob2: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 games/marsnomercy: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 games/netpanzer: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 games/pingus: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 games/renpy: Uses deprecated version of python 2020-12-31 graphics/goxel: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 graphics/py-pillow6: Uses Python 2.7 which is EOLed upstream 2020-12-31 graphics/sk1libs: Uses Python 2.7 which is EOLed upstream 2020-12-31 graphics/uniconvertor: Uses deprecated version of python 2020-12-31 lang/julia10: Uses Python 2.7 which is EOLed upstream 2020-12-31 lang/pypy: Uses Python 2.7 which is EOLed upstream 2020-12-31 lang/pypy3: Uses Python 2.7 which is EOLed upstream 2020-12-31 lang/spidermonkey185: Uses Python 2.7 which is EOLed upstream 2020-12-31 lang/spidermonkey24: Uses Python 2.7 which is EOLed upstream 2020-12-31 lang/spidermonkey52: Uses Python 2.7 which is EOLed upstream 2020-12-31 lang/spidermonkey60: Requires python2 to build 2020-12-31 lang/tolua++: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 mail/getmail: Uses deprecated version of python 2020-12-31 math/gringo: Uses Python 2.7 which is EOLed upstream 2020-12-31 multimedia/ffmpeg2theora: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 multimedia/mimms: Uses Python 2.7 which is EOLed upstream 2020-12-31 net/py-ipaddress: Uses Python 2.7 which is EOLed upstream 2020-12-31 net-p2p/linuxdcpp: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 security/broccoli: Depends lang/python27 which is EOLed upstream 2020-12-31 security/orthrus: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 security/py-backports.ssl_match_hostname: Uses Python 2.7 which is EOLed upstream 2020-12-31 security/sandsifter: Uses deprecated version of python, see https://github.com/rigred/sandsifter/issues/10 2020-12-31 sysutils/cinnamon-control-center: Uses Python 2.7 which is EOLed upstream 2020-12-31 sysutils/ori: Uses Python 2.7 version of scons, and Python 2.7 which is EOLed upstream 2020-12-31 sysutils/osquery: Uses Python 2.7 which is EOLed upstream 2020-12-31 sysutils/py-shutilwhich: Python 2 only, backport of Python 3 2020-12-31 sysutils/uefi-edk2-bhyve-csm: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/cliqz: Uses deprecated version of python 2020-12-31 www/iridium: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/moinmoin: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/node10: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/node12: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-OhlohWidgetsMacro: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-TracGoogleAnalytics: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-accountmanager: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-advancedticketworkflow: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-autocomplete: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-ccselector: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-customfieldadmin: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-datefield: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-defaultcc: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-devel: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-discussion: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-downloads: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-email2trac: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-email2trac-postfix: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-estimator: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-fivestarvote: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-fullblog: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-fullblognotification: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-graphviz: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-iniadmin: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-keywords: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-keywordsecretticket: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-ldap: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-ldapauthstore: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-math: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-mercurial: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-navadd: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-permredirect: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-privatetickets: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-pydotorgtheme: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-scrumburndown: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-spam-filter: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-subtickets: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-tags: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-themeengine: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-ticketimport: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-tickettemplate: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-timingandestimation: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-tocmacro: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-tweakui: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-vote: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-wikigoodies: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-wikinotification: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-wikitemplates: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-wikitopdf: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-wysiwyg: Uses Python 2.7 which is EOLed upstream 2020-12-31 www/trac-xmlrpc: Uses Python 2.7 which is EOLed upstream
Diffstat (limited to 'devel/electron7/files/patch-base_test_fontconfig__util__linux.cc')
-rw-r--r--devel/electron7/files/patch-base_test_fontconfig__util__linux.cc408
1 files changed, 0 insertions, 408 deletions
diff --git a/devel/electron7/files/patch-base_test_fontconfig__util__linux.cc b/devel/electron7/files/patch-base_test_fontconfig__util__linux.cc
deleted file mode 100644
index 1fccc0ad2475..000000000000
--- a/devel/electron7/files/patch-base_test_fontconfig__util__linux.cc
+++ /dev/null
@@ -1,408 +0,0 @@
---- base/test/fontconfig_util_linux.cc.orig 2019-12-12 12:38:59 UTC
-+++ base/test/fontconfig_util_linux.cc
-@@ -6,24 +6,397 @@
-
- #include <fontconfig/fontconfig.h>
-
--#include <memory>
--
- #include "base/base_paths.h"
- #include "base/environment.h"
- #include "base/files/file_path.h"
-+#include "base/files/file_util.h"
- #include "base/logging.h"
-+#include "base/macros.h"
- #include "base/path_service.h"
-+#include "base/strings/string_util.h"
-
- namespace base {
-
-+namespace {
-+
-+const char kFontsConfTemplate[] = R"(<?xml version="1.0"?>
-+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
-+<fontconfig>
-+
-+ <!-- Cache location. -->
-+ <cachedir>$1</cachedir>
-+
-+ <!-- GCS-synced fonts. -->
-+ <dir>$2</dir>
-+
-+ <!-- Default properties. -->
-+ <match target="font">
-+ <edit name="embeddedbitmap" mode="append_last">
-+ <bool>false</bool>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Times</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Tinos</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>sans</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>DejaVu Sans</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>sans serif</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ </match>
-+
-+ <!-- Some layout tests specify Helvetica as a family and we need to make sure
-+ that we don't fallback to Tinos for them -->
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Helvetica</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>sans-serif</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>serif</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Tinos</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>mono</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Cousine</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>monospace</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Cousine</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Courier</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Cousine</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>cursive</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Comic Sans MS</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>fantasy</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Impact</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Monaco</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Tinos</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Arial</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Courier New</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Cousine</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Georgia</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Gelasio</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Times New Roman</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Tinos</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test qual="any" name="family">
-+ <string>Verdana</string>
-+ </test>
-+ <!-- NOT metrically compatible! -->
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ </match>
-+
-+ <!-- TODO(thomasanderson): Move these configs to be test-specific. -->
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>NonAntiAliasedSans</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ <edit name="antialias" mode="assign">
-+ <bool>false</bool>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>SlightHintedGeorgia</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Gelasio</string>
-+ </edit>
-+ <edit name="hintstyle" mode="assign">
-+ <const>hintslight</const>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>NonHintedSans</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ <!-- These deliberately contradict each other. The 'hinting' preference
-+ should take priority -->
-+ <edit name="hintstyle" mode="assign">
-+ <const>hintfull</const>
-+ </edit>
-+ <edit name="hinting" mode="assign">
-+ <bool>false</bool>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>AutohintedSerif</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ <edit name="autohint" mode="assign">
-+ <bool>true</bool>
-+ </edit>
-+ <edit name="hintstyle" mode="assign">
-+ <const>hintmedium</const>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>HintedSerif</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ <edit name="autohint" mode="assign">
-+ <bool>false</bool>
-+ </edit>
-+ <edit name="hintstyle" mode="assign">
-+ <const>hintmedium</const>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>FullAndAutoHintedSerif</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ <edit name="autohint" mode="assign">
-+ <bool>true</bool>
-+ </edit>
-+ <edit name="hintstyle" mode="assign">
-+ <const>hintfull</const>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>SubpixelEnabledArial</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ <edit name="rgba" mode="assign">
-+ <const>rgb</const>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>SubpixelDisabledArial</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Arimo</string>
-+ </edit>
-+ <edit name="rgba" mode="assign">
-+ <const>none</const>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <!-- FontConfig doesn't currently provide a well-defined way to turn on
-+ subpixel positioning. This is just an arbitrary pattern to use after
-+ turning subpixel positioning on globally to ensure that we don't have
-+ issues with our style getting cached for other tests. -->
-+ <test name="family" compare="eq">
-+ <string>SubpixelPositioning</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Tinos</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <!-- See comments above -->
-+ <test name="family" compare="eq">
-+ <string>SubpixelPositioningAhem</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>ahem</string>
-+ </edit>
-+ </match>
-+
-+ <match target="pattern">
-+ <test name="family" compare="eq">
-+ <string>SlightHintedTimesNewRoman</string>
-+ </test>
-+ <edit name="family" mode="assign">
-+ <string>Tinos</string>
-+ </edit>
-+ <edit name="hintstyle" mode="assign">
-+ <const>hintslight</const>
-+ </edit>
-+ </match>
-+
-+ <!-- When we encounter a character that the current font doesn't
-+ support, gfx::GetFallbackFontForChar() returns the first font
-+ that does have a glyph for the character. The list of fonts is
-+ sorted by a pattern that includes the current locale, but doesn't
-+ include a font family (which means that the fallback font depends
-+ on the locale but not on the current font).
-+
-+ DejaVu Sans is commonly the only font that supports some
-+ characters, such as "⇧", and even when other candidates are
-+ available, DejaVu Sans is commonly first among them, because of
-+ the way Fontconfig is ordinarily configured. For example, the
-+ configuration in the Fonconfig source lists DejaVu Sans under the
-+ sans-serif generic family, and appends sans-serif to patterns
-+ that don't already include a generic family (such as the pattern
-+ in gfx::GetFallbackFontForChar()).
-+
-+ To get the same fallback font in the layout tests, we could
-+ duplicate this configuration here, or more directly, simply
-+ append DejaVu Sans to all patterns. -->
-+ <match target="pattern">
-+ <edit name="family" mode="append_last">
-+ <string>DejaVu Sans</string>
-+ </edit>
-+ </match>
-+
-+</fontconfig>
-+)";
-+
-+} // namespace
-+
- void SetUpFontconfig() {
-- FilePath dir_module;
-- CHECK(PathService::Get(DIR_MODULE, &dir_module));
-+ std::unique_ptr<Environment> env = Environment::Create();
-+ if (!env->HasVar("FONTCONFIG_FILE")) {
-+ // fonts.conf must be generated on-the-fly since it contains absolute paths
-+ // which may be different if
-+ // 1. The user moves/renames their build directory (or any parent dirs).
-+ // 2. The build directory is mapped on a swarming bot at a location
-+ // different from the one the buildbot used.
-+ FilePath dir_module;
-+ PathService::Get(DIR_MODULE, &dir_module);
-+ FilePath font_cache = dir_module.Append("fontconfig_caches");
-+ FilePath test_fonts = dir_module.Append("test_fonts");
-+ std::string fonts_conf = ReplaceStringPlaceholders(
-+ kFontsConfTemplate, {font_cache.value(), test_fonts.value()}, nullptr);
-
-- std::unique_ptr<Environment> env(Environment::Create());
-- // TODO(thomasanderson): This still stat()'s the real /etc/fonts/fonts.conf.
-- // Prevent fontconfig from doing this.
-- CHECK(env->SetVar("FONTCONFIG_SYSROOT", dir_module.value().c_str()));
-+ // Write the data to a different file and then atomically rename it to
-+ // fonts.conf. This avoids the file being in a bad state when different
-+ // parallel tests call this function at the same time.
-+ FilePath fonts_conf_file_temp;
-+ if(!CreateTemporaryFileInDir(dir_module, &fonts_conf_file_temp))
-+ CHECK(CreateTemporaryFile(&fonts_conf_file_temp));
-+ CHECK(
-+ WriteFile(fonts_conf_file_temp, fonts_conf.c_str(), fonts_conf.size()));
-+ FilePath fonts_conf_file = dir_module.Append("fonts.conf");
-+ if (ReplaceFile(fonts_conf_file_temp, fonts_conf_file, nullptr))
-+ env->SetVar("FONTCONFIG_FILE", fonts_conf_file.value());
-+ else
-+ env->SetVar("FONTCONFIG_FILE", fonts_conf_file_temp.value());
-+ }
- }
-
- } // namespace base