diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-09-22 17:14:56 +0200 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-09-24 12:08:26 +0200 |
commit | e79f1261549d9c497a38ea1af8843a86883b02cd (patch) | |
tree | 408e9b52591659c531af3a44088049aeeddbffca /postprocess | |
parent | 57357260250a9f5ae59ea346db03f94f76cce42b (diff) |
Compensate for loss of Type 1 "Standard Symbols L" substitute for "Symbol"
At least for me on Linux since LO 5.3, 'soffice
sw/qa/extras/rtfexport/data/fdo72031.rtf' shows "Å" (rendered in "DejaVu Sans")
instead of "⊕" (rendered in "Standard Symbols L"). That's presumably because
47ea13ef8dc8ab9aeded6121845e3ebd1d28b292 "Kill the old Unix layout engines"
removed support for Type 1 fonts (see "Ignore Type 1 fonts" in
FontCfgWrapper::addFontSet, vcl/unx/generic/fontmanager/fontconfig.cxx), and my
(Fedora 25) /usr/share/fonts/default/Type1/s050000l.pfb "Standard Symbols L" is
a Type 1 font. So we fell back to fontconfig's generic (weak) suggestion of
"DejaVu Sans" as a substitute for "Symbol".
So extend our fc_local.conf to suggest our "OpenSymbol" as a substitute for
"Symbol".
As that fc_local.conf was originally brought along by --with-fonts, which is
enabled by default but can be disabled, compilation of fc_local.conf from the
various snippets is moved to postprocess.
macOS and Windows were never affected, as they both come with a "Symbol" font
installed in the system. (And we don't install fc_local.conf on Windows at
all.)
Change-Id: I8d6d87f24974577fd66f5f3989f606237ebb3d75
Reviewed-on: https://gerrit.libreoffice.org/42670
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Tested-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'postprocess')
-rw-r--r-- | postprocess/CustomTarget_fontconfig.mk | 30 | ||||
-rw-r--r-- | postprocess/Module_postprocess.mk | 11 | ||||
-rw-r--r-- | postprocess/Package_fontconfig.mk | 18 |
3 files changed, 59 insertions, 0 deletions
diff --git a/postprocess/CustomTarget_fontconfig.mk b/postprocess/CustomTarget_fontconfig.mk new file mode 100644 index 000000000000..72ff3f3cf1b0 --- /dev/null +++ b/postprocess/CustomTarget_fontconfig.mk @@ -0,0 +1,30 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t; fill-column: 100 -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_CustomTarget_CustomTarget,postprocess/fontconfig)) + +$(call gb_CustomTarget_get_workdir,postprocess/fontconfig)/fc_local.conf: \ + $(SRCDIR)/extras/source/truetype/symbol/fc_local.snippet \ + $(SRCDIR)/postprocess/CustomTarget_fontconfig.mk \ + | $(call gb_CustomTarget_get_workdir,postprocess/fontconfig)/.dir + +ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),) +$(call gb_CustomTarget_get_workdir,postprocess/fontconfig)/fc_local.conf: \ + $(SRCDIR)/external/more_fonts/fc_local.snippet +endif + +$(call gb_CustomTarget_get_workdir,postprocess/fontconfig)/fc_local.conf: + printf '<?xml version="1.0"?>\n<!DOCTYPE fontconfig SYSTEM "/etc/fonts/conf.d/fonts.dtd">\n<fontconfig>\n' >$@ + cat $(SRCDIR)/extras/source/truetype/symbol/fc_local.snippet >>$@ +ifneq ($(filter MORE_FONTS,$(BUILD_TYPE)),) + cat $(SRCDIR)/external/more_fonts/fc_local.snippet >>$@ +endif + printf '</fontconfig>\n' >>$@ + +# vim: set noet sw=4 ts=4: diff --git a/postprocess/Module_postprocess.mk b/postprocess/Module_postprocess.mk index 5775cfa795e1..d92a348e4142 100644 --- a/postprocess/Module_postprocess.mk +++ b/postprocess/Module_postprocess.mk @@ -28,6 +28,17 @@ $(eval $(call gb_Module_add_targets,postprocess,\ )) endif +# For non-WNT, add instdir/share/fonts/truetype/fc_local.conf when it shall +# contain content from at least one of external/more_fonts/fc_local.snippet +# (conditional on MORE_FONTS in BUILD_TYPE) and +# extras/source/truetype/symbol/fc_local.snippet (unconditional): +ifneq ($(OS),WNT) +$(eval $(call gb_Module_add_targets,postprocess, \ + CustomTarget_fontconfig \ + Package_fontconfig \ +)) +endif + $(eval $(call gb_Module_add_check_targets,postprocess,\ CppunitTest_services \ )) diff --git a/postprocess/Package_fontconfig.mk b/postprocess/Package_fontconfig.mk new file mode 100644 index 000000000000..37f096e5028e --- /dev/null +++ b/postprocess/Package_fontconfig.mk @@ -0,0 +1,18 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t; fill-column: 100 -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# + +$(eval $(call gb_Package_Package,postprocess_fontconfig,$(call gb_CustomTarget_get_workdir,postprocess/fontconfig))) + +$(eval $(call gb_Package_add_files,postprocess_fontconfig,$(LIBO_SHARE_FOLDER)/fonts/truetype, \ + fc_local.conf \ +)) + +$(eval $(call gb_Package_use_custom_target,postprocess_fontconfig,postprocess/fontconfig)) + +# vim: set noet sw=4 ts=4: |