GNU bug report logs -
#65741
The URW fontconfig dilemma
Previous Next
To reply to this bug, email your comments to 65741 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#65741
; Package
guix
.
(Mon, 04 Sep 2023 17:42:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Bruno Victal <mirai <at> makinata.eu>
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Mon, 04 Sep 2023 17:42:01 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
During my attempt to build the enblend-enfuse documentation [1],
it would fail and display the following message:
--8<---------------cut here---------------start------------->8---
Error: fontconfig: Didn't find expected font family. Perhaps URW Type 1 fonts need installing?
--8<---------------cut here---------------end--------------->8---
Naturally searching for the URW fonts in guix didn't yield anything
other than some texlive packages so I ended up writing a definition
for it.
It turned out to be unnecessary as I later found out 'font-ghostscript'
provides just that. (an issue of discoverability perhaps?)
Nonetheless my newly written package (which should be “merged” into
the definition of 'font-ghostscript' with a better description and
perhaps a rename) is an update of what font-ghostscript provides and
should work just the same, in theory. (spoilers: it doesn't)
Intrigued by this difference and after some doc reading and several
arcane commands thrown in desperation, I've distilled them to this:
With the existing font-ghostscript package:
--8<---------------cut here---------------start------------->8---
$ guix shell -C font-ghostscript fontconfig
[env]$ fc-match 'Nimbus Sans L'
n019003l.pfb: "Nimbus Sans L" "Regular"
--8<---------------cut here---------------end--------------->8---
With the new font-urw-base35 package (definition below):
--8<---------------cut here---------------start------------->8---
$ ~/src/guix/pre-inst-env guix shell -C font-urw-base35 fontconfig
[env]$ fc-match 'Nimbus Sans L'
DejaVuSans.ttf: "DejaVu Sans" "Book"
--8<---------------cut here---------------end--------------->8---
The source of the font-urw-base35 has a file for fontconfig at
'fontconfig/urw-fallback-backwards.conf' that contains this:
--8<---------------cut here---------------start------------->8---
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!--
This file is used to alias/map previous versions of font families from (URW)++
to similar/metric-conmpatible font families of latest font versions from
(URW)++ itself.
Most likely this aliasing/mapping will be useful for people who:
* have latest versions of (URW)++ fonts, but their documents still reference
or requires older versions of these fonts
latest URW fonts: previous URW fonts:
==================== =============================================
Nimbus Mono PS Nimbus Mono L | Nimbus Mono
URW Gothic URW Gothic L
URW Bookman URW Bookman L | Bookman URW
Z003 URW Chancery L | Chancery URW
D050000L Dingbats
Nimbus Sans Nimbus Sans L
Nimbus Sans Narrow Nimbus Sans Narrow (same as current name)
C059 Century Schoolbook L | Century SchoolBook URW
P052 URW Palladio L | Palladio URW
Standard Symbols PS Standard Symbols L
Nimbus Roman Nimbus Roman No9 L
-->
…
<alias binding="same">
<family>Nimbus Sans L</family>
<accept>
<family>Nimbus Sans</family>
</accept>
</alias>
…
--8<---------------cut here---------------end--------------->8---
So unless I misunderstood the fontconfig documentation and the comment,
'fc-match' should have found the newer Nimbus Sans, not DejaVu Sans.
What gives?
The definition for this font-urw-base35 package:
--8<---------------cut here---------------start------------->8---
;; Note: add #:use-module (guix build-system copy) to gnu/packages/fonts.scm.
;; when trying this out.
;; See <https://src.fedoraproject.org/rpms/urw-base35-fonts/blob/ed09bf27915269b454df3efb36b2e0cf45accd26/f/urw-base35-fonts.spec> for more information.
(define-public font-urw-base35
(let ((commit "3c0ba3b5687632dfc66526544a4e811fe0ec0cd9")
(revision "0")
(base-version "20200910"))
(package
(name "font-urw-base35")
(version (git-version base-version revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/ArtifexSoftware/urw-base35-fonts")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"11mc9r2ap80jmh0w5jmypyq9hzyi9g9g4hcj45d5xn66m3jnlgjq"))))
(build-system copy-build-system)
(arguments
(list
#:install-plan
#~`(("fonts/" "share/fonts/urw-base35"
#:exclude ("README" "COPYING"))
("appstream/" "share/metainfo"
#:exclude ("README.md"))
("fontconfig/" "share/fontconfig/conf.avail/"
#:exclude ("README.md")))
#:phases
#~(modify-phases %standard-phases
(add-before 'install 'configure
(lambda _
;; Set font priority for fontconfig.
(with-directory-excursion "fontconfig"
(for-each (lambda (f)
;; As recommended in the README.md.
(rename-file f
(string-append "61-"
(basename f))))
(find-files "." "\\.conf$"
#:fail-on-error? #t))))))))
(home-page "https://github.com/ArtifexSoftware/urw-base35-fonts")
(synopsis "URW++ base 35 font set.")
(description "This package provides substitutes for the 35 fonts
required by Adobe Postscript(c) Language Level 2 specification.")
(license license:agpl3))))
--8<---------------cut here---------------end--------------->8---
[1]: <https://issues.guix.gnu.org/65706>
--
Furthermore, I consider that nonfree software must be eradicated.
Cheers,
Bruno.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#65741
; Package
guix
.
(Thu, 07 Sep 2023 16:49:01 GMT)
Full text and
rfc822 format available.
Message #8 received at 65741 <at> debbugs.gnu.org (full text, mbox):
Hi Bruno,
I also noticed that message. Thanks for proposing a fix!
Kind regards
Felix
This bug report was last modified 1 year and 281 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.