summaryrefslogtreecommitdiff
path: root/postprocess
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2017-09-22 17:14:56 +0200
committerChristian Lohmaier <lohmaier+LibreOffice@googlemail.com>2017-12-01 12:26:08 +0100
commit011dc2d0ecfa022ab0df2d9081a2d68e62cfc3cf (patch)
tree1fb0810f06806162ff615f550c7bf209b1f58fcc /postprocess
parentd48ab02bd3bdb8f33ad9b5ca6b2a641614da6ae4 (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.) Reviewed-on: https://gerrit.libreoffice.org/42670 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit e79f1261549d9c497a38ea1af8843a86883b02cd) Change-Id: I8d6d87f24974577fd66f5f3989f606237ebb3d75 Reviewed-on: https://gerrit.libreoffice.org/44979 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
Diffstat (limited to 'postprocess')
-rw-r--r--postprocess/CustomTarget_fontconfig.mk30
-rw-r--r--postprocess/Module_postprocess.mk13
-rw-r--r--postprocess/Package_fontconfig.mk18
3 files changed, 61 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..6ab59fcc59c1 100644
--- a/postprocess/Module_postprocess.mk
+++ b/postprocess/Module_postprocess.mk
@@ -28,6 +28,19 @@ $(eval $(call gb_Module_add_targets,postprocess,\
))
endif
+# For configurations that use fontconfig (cf. inclusion of
+# vcl/unx/generic/fontmanager/fontconfig.cxx in Library_vcl), 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 ($(USING_X11)$(ENABLE_HEADLESS)$(filter ANDROID,$(OS)),)
+$(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: