Bug 32427

Summary: Ghostscript does not find base fonts
Product: Sisyphus Reporter: Andrey Liakhovets <a.o.liakh>
Component: fontconfig-infinalityAssignee: cow <cow>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P3 CC: cow, mike, vladimir.didenko
Version: unstable   
Hardware: all   
OS: Linux   

Description Andrey Liakhovets 2016-08-24 21:13:58 MSK
fontconfig-infinality-1-alt6.git20130126
ghostscript-9.16-alt0.M70P.1

(для Сизифа и P8 это тоже должно проявляться)

В файле /etc/fonts/infinality/infinality.conf запрещены шрифты Type 1.
В результате ghostscript фактически не работает (для ps-файлов с текстом,
требующим не встроенных базовых шрифтов, -- наиболее частый случай).

В командной строке это можно увидеть так:

$ gs -sDEVICE=nullpage -dBATCH -c '(Times-Bold) findfont'
GPL Ghostscript 9.16 (2015-03-30)
Copyright (C) 2015 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Can't find (or can't open) font file /usr/share/ghostscript/9.16/Resource/Font/NimbusRomNo9L-Medi.
Can't find (or can't open) font file NimbusRomNo9L-Medi.
Can't find (or can't open) font file /usr/share/ghostscript/9.16/Resource/Font/NimbusRomNo9L-Medi.
Can't find (or can't open) font file NimbusRomNo9L-Medi.
Querying operating system for font files...
Can't find (or can't open) font file /usr/share/ghostscript/9.16/Resource/Font/NimbusRomNo9L-Medi.
Can't find (or can't open) font file NimbusRomNo9L-Medi.
Didn't find this font on the system!
Substituting font Courier for NimbusRomNo9L-Medi.
Can't find (or can't open) font file /usr/share/ghostscript/9.16/Resource/Font/NimbusMonL-Regu.
Can't find (or can't open) font file NimbusMonL-Regu.
Can't find (or can't open) font file /usr/share/ghostscript/9.16/Resource/Font/NimbusMonL-Regu.
Can't find (or can't open) font file NimbusMonL-Regu.
Didn't find this font on the system!
Unable to substitute for font.
Error: /invalidfont in /findfont
Operand stack:
   Times-Bold
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   1903   1   3   %oparray_pop
Dictionary stack:
   --dict:1185/1684(ro)(G)--   --dict:0/20(G)--   --dict:78/200(L)--
Current allocation mode is local
Last OS error: No such file or directory
GPL Ghostscript 9.16: Unrecoverable error, exit code 1

Есть несколько вариантов "исправления":
- удалить fontconfig-infinality
- закомментировать запрет Type 1 в /etc/fonts/infinality/infinality.conf
 (и перестроить кэш)
- положить нужные шрифты локально для ghostscript'а
- экспортировать GS_FONTPATH с подходящими директориями, например,
 с /usr/share/fonts/type1
- запускать gs, например, с -sFONTPATH=/usr/share/fonts/type1

По-моему, убрать запрет Type 1 в конфиге лучше всего.

Ссылки:
http://ghostscript.com/irclogs/2014/03/12.html
https://forums.gentoo.org/viewtopic-t-989836-start-0.html
http://tex.stackexchange.com/questions/151607/epstopdf-ghostscript-cant-find-fonts
https://bbs.archlinux.org/viewtopic.php?pid=1512496#p1512496
https://bbs.archlinux.org/viewtopic.php?id=162098&p=65
...

И в нашей bugzilla'е есть несколько багов, причина которых может быть именно
в этом запрете Type 1:
https://bugzilla.altlinux.org/show_bug.cgi?id=30962 -- закрыт
https://bugzilla.altlinux.org/show_bug.cgi?id=30892
https://bugzilla.altlinux.org/show_bug.cgi?id=30870 -- при печати (attachment)
https://bugzilla.altlinux.org/show_bug.cgi?id=30410
Comment 1 Repository Robot 2016-08-25 09:57:11 MSK
fontconfig-infinality-1-alt7.git20130126 -> sisyphus:

* Thu Aug 25 2016 Vladimir Didenko <cow@altlinux> 1-alt7.git20130126
- don't ban Type-1 fonts (closes: #32427)
Comment 2 Michael Shigorin 2016-08-30 16:35:10 MSK
Отметил изменение шрифтов по умолчанию в сегодняшней сборке regular-cinnamon.