From 870696a1b1d6742ee7330c0656ebb078afb5faf6 Mon Sep 17 00:00:00 2001 From: "David Kaspar [Dee'Kej]" Date: Mon, 4 Dec 2017 13:07:08 +0100 Subject: [PATCH] Fix Fontmap.GS lookup path for Helvetica-Narrow-Bold-Oblique Related changes: * ghostscript-9.20-runlibfileifexists.patch removed (conflicted with new patch below) * ghostscript-9.22-fix-Fontmap.GS.patch added (accepted by upstream, will be part of ghostscript-9.23 release) * CIDFnmap & cidfmap deleted (conflicted with path above) * specfile updated as necessary Resolves: #1517518 --- CIDFnmap | 9 --- cidfmap | 10 --- ghostscript-9.20-runlibfileifexists.patch | 93 ----------------------- ghostscript-9.22-fix-Fontmap.GS.patch | 63 +++++++++++++++ ghostscript.spec | 29 ++----- 5 files changed, 69 insertions(+), 135 deletions(-) delete mode 100644 CIDFnmap delete mode 100644 cidfmap delete mode 100644 ghostscript-9.20-runlibfileifexists.patch create mode 100644 ghostscript-9.22-fix-Fontmap.GS.patch diff --git a/CIDFnmap b/CIDFnmap deleted file mode 100644 index 2f3d7b7..0000000 --- a/CIDFnmap +++ /dev/null @@ -1,9 +0,0 @@ -%! -% following lines are for CJK fonts. -(CIDFnmap.ja) .runlibfileifexists -(CIDFnmap.ko) .runlibfileifexists -(CIDFnmap.zh_CN) .runlibfileifexists -(CIDFnmap.zh_TW) .runlibfileifexists -% must be at the bottom of line to allow people overriding everything. -(CIDFnmap.local) .runlibfileifexists - diff --git a/cidfmap b/cidfmap deleted file mode 100644 index 18c1786..0000000 --- a/cidfmap +++ /dev/null @@ -1,10 +0,0 @@ -%! -% Don't change following line. We should ensure that the original one is surely loaded. -(cidfmap.GS) .runlibfile -% following lines are for CJK fonts. -(cidfmap.ja) .runlibfileifexists -(cidfmap.ko) .runlibfileifexists -(cidfmap.zh_CN) .runlibfileifexists -(cidfmap.zh_TW) .runlibfileifexists -% must be at the bottom of line to allow people overriding everything. -(cidfmap.local) .runlibfileifexists diff --git a/ghostscript-9.20-runlibfileifexists.patch b/ghostscript-9.20-runlibfileifexists.patch deleted file mode 100644 index 2768fca..0000000 --- a/ghostscript-9.20-runlibfileifexists.patch +++ /dev/null @@ -1,93 +0,0 @@ -From ea8addd686889af76d70031998680196913243ec Mon Sep 17 00:00:00 2001 -From: "David Kaspar [Dee'Kej]" -Date: Fri, 7 Oct 2016 12:20:29 +0200 -Subject: [PATCH 1/2] Fix error when using ImageMagick's convert: - - Error: /undefined in .runlibfileexists ---- - Resource/Init/gs_fonts.ps | 15 ++++++++++++--- - Resource/Init/gs_init.ps | 9 +++++++++ - 2 files changed, 21 insertions(+), 3 deletions(-) - -diff --git a/Resource/Init/gs_fonts.ps b/Resource/Init/gs_fonts.ps -index a3da615..77814b8 100644 ---- a/Resource/Init/gs_fonts.ps -+++ b/Resource/Init/gs_fonts.ps -@@ -96,10 +96,19 @@ userdict /.nativeFontmap .FontDirectory maxlength dict put - % stack: dict file fontname filename|aliasname - 1 index type /stringtype eq - 1 index type /nametype eq and 1 index xcheck and -- 1 index /run eq 2 index /.runlibfile eq or and { -+ 1 index /run eq 2 index /.runlibfile eq 3 index /.runlibfileifexists eq or or and { - % This is an inclusion entry. -- pop findlibfile { exch pop } { file } ifelse -- 2 index exch .readFontmap pop -+ 0 index /.runlibfileifexists eq { -+ pop findlibfile { -+ exch pop -+ 2 index exch .readFontmap pop -+ } { -+ pop -+ } ifelse -+ } { -+ pop findlibfile { exch pop } { file } ifelse -+ 2 index exch .readFontmap pop -+ } ifelse - } { - % This is a real entry. - % Read and pop tokens until a semicolon. -diff --git a/Resource/Init/gs_init.ps b/Resource/Init/gs_init.ps -index ab7cfed..f9e035b 100644 ---- a/Resource/Init/gs_init.ps -+++ b/Resource/Init/gs_init.ps -@@ -689,6 +689,14 @@ systemdict /internaldict dup .makeinternaldict .makeoperator - { /undefinedfilename signalerror } - ifelse - } bind def -+/runlibfileifexists -+ { % We don't want to bind 'run' into this procedure, -+ % since run may get redefined. -+ findlibfile -+ { exch pop /run .systemvar exec } -+ { pop } -+ ifelse -+ } bind def - /selectdevice - { finddevice setdevice .setdefaultscreen } bind def - /signalerror % signalerror - -@@ -857,6 +865,7 @@ userdict /.currentresourcefile //null put - } bind def - % Temporarily substitute it for the real runlibfile. - /.runlibfile /runlibfile load def -+/.runlibfileifexists /runlibfileifexists load def - /runlibfile /runlibfile0 load def - - % Create the error handling machinery. --- -2.7.4 - - -From 9878f41a229c67aba2e62ee7ab22ff37c2e5a04f Mon Sep 17 00:00:00 2001 -From: "David Kaspar [Dee'Kej]" -Date: Fri, 7 Oct 2016 12:57:06 +0200 -Subject: [PATCH 2/2] Make sure customizations to - /etc/ghostscript/Fontmap.local are used - - For more info, see: https://bugzilla.redhat.com/show_bug.cgi?id=610301 ---- - Resource/Init/Fontmap | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Resource/Init/Fontmap b/Resource/Init/Fontmap -index ae5af96..72aeb1f 100644 ---- a/Resource/Init/Fontmap -+++ b/Resource/Init/Fontmap -@@ -2,3 +2,5 @@ - % See Fontmap.GS for the syntax of real Fontmap files. - %% Replace 1 (Fontmap.GS) - (Fontmap.GS) .runlibfile -+% must be at the bottom of line to allow people overriding everything. -+(Fontmap.local) .runlibfileifexists --- -2.7.4 - diff --git a/ghostscript-9.22-fix-Fontmap.GS.patch b/ghostscript-9.22-fix-Fontmap.GS.patch new file mode 100644 index 0000000..b06bcd3 --- /dev/null +++ b/ghostscript-9.22-fix-Fontmap.GS.patch @@ -0,0 +1,63 @@ +From efc24229b0ba4b2f6a39fe89a4c9c576dbe7e124 Mon Sep 17 00:00:00 2001 +From: "David Kaspar [Dee'Kej]" +Date: Mon, 27 Nov 2017 10:30:52 +0100 +Subject: [PATCH] Bug 698784: Fix the alias for Helvetica-Narrow-Bold-Oblique + +Init/Fontmap.GS: + +There was a misalignment between the filename of the +NimbusSansNarrow-BdOblique and its /Fontname in the T1 font itself. + +Filename: NimbusSansNarrow-BdOblique +/Fontname: /NimbusSansNarrow-BoldOblique + +This worked correctly if the fonts were located directly in +/usr/share/ghostcript/Resources/Font folder on the filesystem. + +However, on Fedora we are using /usr/share/fonts/urw-base35/ folder, +which is part of Ghostscript's Search Path. In this case it was +causing the Ghostscript being unable to locate the correct font, thus +crashing while opening any document containing Helvetica Narrow Bold +Oblique font... + +*In addition*, rename the font file so it matches. +--- + ...busSansNarrow-BdOblique => NimbusSansNarrow-BoldOblique} | Bin + Resource/Init/Fontmap.GS | 2 +- + psi/psromfs.mak | 2 +- + 3 files changed, 2 insertions(+), 2 deletions(-) + rename Resource/Font/{NimbusSansNarrow-BdOblique => NimbusSansNarrow-BoldOblique} (100%) + +diff --git a/Resource/Font/NimbusSansNarrow-BdOblique b/Resource/Font/NimbusSansNarrow-BoldOblique +similarity index 100% +rename from Resource/Font/NimbusSansNarrow-BdOblique +rename to Resource/Font/NimbusSansNarrow-BoldOblique +diff --git a/Resource/Init/Fontmap.GS b/Resource/Init/Fontmap.GS +index 7770c67..cbda218 100644 +--- a/Resource/Init/Fontmap.GS ++++ b/Resource/Init/Fontmap.GS +@@ -96,7 +96,7 @@ + /Helvetica-Bold /NimbusSans-Bold ; + /Helvetica-BoldOblique /NimbusSans-BoldItalic ; + /Helvetica-Narrow-Bold /NimbusSansNarrow-Bold ; +-/Helvetica-Narrow-BoldOblique /NimbusSansNarrow-BdOblique ; ++/Helvetica-Narrow-BoldOblique /NimbusSansNarrow-BoldOblique ; + /Helvetica-Narrow /NimbusSansNarrow-Regular ; + /Helvetica-Narrow-Oblique /NimbusSansNarrow-Oblique ; + /Helvetica /NimbusSans-Regular ; +diff --git a/psi/psromfs.mak b/psi/psromfs.mak +index cbb1163..34e5b5f 100644 +--- a/psi/psromfs.mak ++++ b/psi/psromfs.mak +@@ -333,7 +333,7 @@ PS_FONT_DEPS=\ + $(PSRESDIR)$(D)Font$(D)NimbusRoman-Regular \ + $(PSRESDIR)$(D)Font$(D)NimbusSans-Bold \ + $(PSRESDIR)$(D)Font$(D)NimbusSans-BoldItalic \ +- $(PSRESDIR)$(D)Font$(D)NimbusSansNarrow-BdOblique \ ++ $(PSRESDIR)$(D)Font$(D)NimbusSansNarrow-BoldOblique \ + $(PSRESDIR)$(D)Font$(D)NimbusSansNarrow-Bold \ + $(PSRESDIR)$(D)Font$(D)NimbusSansNarrow-Oblique \ + $(PSRESDIR)$(D)Font$(D)NimbusSansNarrow-Regular \ +-- +2.9.5 + diff --git a/ghostscript.spec b/ghostscript.spec index 5b8d57d..7de5a32 100644 --- a/ghostscript.spec +++ b/ghostscript.spec @@ -5,7 +5,7 @@ Summary: A PostScript interpreter and renderer Name: ghostscript Version: %{gs_ver} -Release: 2%{?dist} +Release: 3%{?dist} # Included CMap data is Redistributable, no modification permitted, # see http://bugzilla.redhat.com/487510 @@ -13,10 +13,8 @@ License: AGPLv3+ and Redistributable, no modification permitted URL: http://www.ghostscript.com/ Group: Applications/Publishing Source0: ghostscript-9.22.tar.xz -Source1: CIDFnmap -Source2: cidfmap -Patch1: ghostscript-9.20-runlibfileifexists.patch +Patch1: ghostscript-9.22-fix-Fontmap.GS.patch Patch2: ghostscript-9.20-run-dvipdf-securely.patch # Restore flushpage (xdvi also needs it) # http://git.ghostscript.com/?p=ghostpdl.git;a=commitdiff;h=19ebb5f1f497b6f2d50fe13d17d3e627dfb6c868 @@ -109,8 +107,7 @@ A GTK-enabled version of Ghostscript, called 'gsx'. %setup -q -n %{name}-%{gs_ver} rm -rf expat freetype icclib jasper jpeg jpegxr lcms lcms2 libpng openjpeg zlib cups/libs -# Fix error when using 'convert' from ImageMagick, and -# make sure the configuration in /etc/ghostscript/Fonts.local is used: +# Fix the Fontmap.GS having wrong /Fontname for Helvetica-Narrow-Bold-Oblique: %patch1 -p1 # Fix some shell scripts @@ -150,8 +147,6 @@ for path in \ %{_datadir}/fonts/urw-base35/ \ %{_datadir}/fonts/ \ %{_datadir}/%{name}/conf.d \ - %{_sysconfdir}/%{name} \ - %{_sysconfdir}/%{name}/%{gs_dot_ver} \ %{_datadir}/poppler/cMap/* do FONTPATH="$FONTPATH${FONTPATH:+:}$path" @@ -213,13 +208,6 @@ cd .. echo ".so man1/gs.1" > $RPM_BUILD_ROOT/%{_mandir}/man1/ghostscript.1 ln -sf gs $RPM_BUILD_ROOT%{_bindir}/ghostscript -# Rename an original cidfmap to cidfmap.GS -mv $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/Resource/Init/cidfmap{,.GS} -# Install our own cidfmap to allow the separated -# cidfmap which the font packages own. -install -m0644 %{SOURCE1} $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/Resource/Init/CIDFnmap -install -m0644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/%{name}/%{gs_dot_ver}/Resource/Init/cidfmap - # Documentation install -m0644 doc/COPYING $RPM_BUILD_ROOT%{_docdir}/%{name}-%{gs_dot_ver} @@ -232,11 +220,6 @@ rm -f $RPM_BUILD_ROOT%{_bindir}/ijs_{client,server}_example # Don't ship URW fonts; we already have them. rm -rf $RPM_BUILD_ROOT%{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Font -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver} -touch $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver}/Fontmap.local -touch $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver}/cidfmap.local -touch $RPM_BUILD_ROOT%{_sysconfdir}/ghostscript/%{gs_dot_ver}/CIDFnmap.local - # The man/de/man1 symlinks are broken (bug #66238). find $RPM_BUILD_ROOT%{_mandir}/de/man1 -type l | xargs rm -f @@ -260,8 +243,6 @@ rm -rf $RPM_BUILD_ROOT %files core -f rpm.sharelist %defattr(-,root,root) -%dir %{_sysconfdir}/ghostscript -%dir %{_sysconfdir}/ghostscript/%{gs_dot_ver} %dir %{_datadir}/ghostscript/%{gs_dot_ver} %dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource %dir %{_datadir}/ghostscript/%{gs_dot_ver}/Resource/Init @@ -283,7 +264,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libijs-*.so* %dir %{_libdir}/%{name} %dir %{_libdir}/%{name}/%{gs_dot_ver} -%config(noreplace) %{_sysconfdir}/ghostscript/%{gs_dot_ver}/* %files %defattr(-,root,root) @@ -312,6 +292,9 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/libgs.so %changelog +* Mon Dec 04 2017 David Kaspar [Dee'Kej] - 9.22-2 +- Fontmap.GS lookup path for Helvetica-Narrow-Bold-Oblique font fixed (bug #1517518) + * Wed Nov 29 2017 Tom Callaway - 9.22-2 - apply post 9.22 upstream commit to restore flushpage operator (xdvi needs it)