X-Loop: help-debbugs@HIDDEN
Subject: bug#65741: The URW fontconfig dilemma
Resent-From: Bruno Victal <mirai@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-guix@HIDDEN
Resent-Date: Mon, 04 Sep 2023 17:42:01 +0000
Resent-Message-ID: <handler.65741.B.16938493123220 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 65741
X-GNU-PR-Package: guix
X-GNU-PR-Keywords:
To: 65741 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-guix <bug-guix@HIDDEN>
Received: via spool by submit <at> debbugs.gnu.org id=B.16938493123220
(code B ref -1); Mon, 04 Sep 2023 17:42:01 +0000
Received: (at submit) by debbugs.gnu.org; 4 Sep 2023 17:41:52 +0000
Received: from localhost ([127.0.0.1]:52513 helo=debbugs.gnu.org)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
id 1qdDaB-0000pr-Pa
for submit <at> debbugs.gnu.org; Mon, 04 Sep 2023 13:41:52 -0400
Received: from lists.gnu.org ([2001:470:142::17]:36350)
by debbugs.gnu.org with esmtp (Exim 4.84_2)
(envelope-from <mirai@HIDDEN>) id 1qdDa9-0000pd-Lf
for submit <at> debbugs.gnu.org; Mon, 04 Sep 2023 13:41:50 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <mirai@HIDDEN>) id 1qdDa3-0008WC-L8
for bug-guix@HIDDEN; Mon, 04 Sep 2023 13:41:43 -0400
Received: from smtpmciv1.myservices.hosting ([185.26.107.237])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <mirai@HIDDEN>) id 1qdDa0-0001aK-So
for bug-guix@HIDDEN; Mon, 04 Sep 2023 13:41:43 -0400
Received: from mail1.netim.hosting (unknown [185.26.106.173])
by smtpmciv1.myservices.hosting (Postfix) with ESMTP id F37D220CAE
for <bug-guix@HIDDEN>; Mon, 4 Sep 2023 19:41:25 +0200 (CEST)
Received: from localhost (localhost [127.0.0.1])
by mail1.netim.hosting (Postfix) with ESMTP id C4B408005B;
Mon, 4 Sep 2023 19:33:55 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mail1.netim.hosting
Received: from mail1.netim.hosting ([127.0.0.1])
by localhost (mail1-2.netim.hosting [127.0.0.1]) (amavisd-new, port 10026)
with ESMTP id C_QdVo413P-W; Mon, 4 Sep 2023 19:33:54 +0200 (CEST)
Received: from [192.168.1.116] (unknown [10.192.1.83])
(Authenticated sender: lumen@HIDDEN)
by mail1.netim.hosting (Postfix) with ESMTPSA id BF02F80060;
Mon, 4 Sep 2023 19:33:54 +0200 (CEST)
Message-ID: <e9c47e35-1b50-4db3-b1ee-6659b22b2381@HIDDEN>
Date: Mon, 4 Sep 2023 18:33:50 +0100
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Content-Language: en-US
From: Bruno Victal <mirai@HIDDEN>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=185.26.107.237; envelope-from=mirai@HIDDEN;
helo=smtpmciv1.myservices.hosting
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001,
SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 1.0 (+)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>,
<mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)
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.
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Bruno Victal <mirai@HIDDEN> Subject: bug#65741: Acknowledgement (The URW fontconfig dilemma) Message-ID: <handler.65741.B.16938493123220.ack <at> debbugs.gnu.org> References: <e9c47e35-1b50-4db3-b1ee-6659b22b2381@HIDDEN> X-Gnu-PR-Message: ack 65741 X-Gnu-PR-Package: guix Reply-To: 65741 <at> debbugs.gnu.org Date: Mon, 04 Sep 2023 17:42:01 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-guix@HIDDEN If you wish to submit further information on this problem, please send it to 65741 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 65741: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D65741 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.