unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Ivan Kozlov <kanichos@yandex.ru>
To: 39602@debbugs.gnu.org
Subject: [bug#39602] Generate font catalogues for the X server
Date: Fri, 12 Jun 2020 21:44:44 +0300	[thread overview]
Message-ID: <1222911591987229@mail.yandex.ru> (raw)
In-Reply-To: <2060961581700625@iva4-64850291ca1c.qloud-c.yandex.net>

Is nobody interested in this? I don’t see any problems with the patch.

This must have been of concern at least once, judging by fonts-dir-file’s existence. The fontpath mechanism is the only way today to make the core (server-side) fonts work reasonably.

14.02.2020, 20:17, "Ivan Kozlov" <kanichos@yandex.ru>:
> Actually, I am sending this as a patch.
>
> This should produce a "share/fontpath.d" directory in the profile which is a font catalogue as described in Xserver(1). Then the X server font path can be set to include this catalogue and it will find the installed fonts. This concerns all legacy X11 applications using the core fonts system, and most importantly xterm.
>
> The hook ‘fonts-dir-file’ was originally added for this purpose as the comments can tell; you would include e. g. "share/fonts/X11/misc" from the profile in the font path, which is a union directory with symbolic links to fonts that want to install there and a fonts.dir file describing all of them. This has not been working for ages, since the X.org server stopped following symbolic links to font files for security reasons. It should be removed.
>
> --- a/guix/profiles.scm 2020-01-01 13:03:15.579056969 +0300
> +++ b/guix/profiles.scm 2020-02-14 19:52:51.979902836 +0300
> @@ -1293,6 +1293,37 @@
>                      `((type . profile-hook)
>                        (hook . fonts-dir))))
>
> +(define (fontpath-file manifest)
> + (define build
> + #~(begin
> + (use-modules (srfi srfi-1) (srfi srfi-26) (guix build utils))
> + (let* ((top-font-dirs (filter file-exists?
> + (map (cut string-append <>
> + "/share/fonts")
> + '#$(manifest-inputs manifest))))
> + (font-dirs (append-map (lambda (dir)
> + (find-files dir
> + (lambda (file stat)
> + (and (eq? 'directory (stat:type stat))
> + (file-exists? (string-append file "/fonts.dir"))))
> + #:directories? #t)) top-font-dirs))
> + (fonpath-dir (string-append #$output "/share/fontpath.d")))
> + (mkdir-p fontpath-dir)
> + (chdir fontpath-dir)
> + (for-each (lambda (dir pri)
> + (symlink dir (string-append (basename dir) ":pri=" (number->string pri))))
> + font-dirs
> + (iota (length font-dirs) 1)))))
> + (gexp->derivation "fontpath.d" build
> + #:modules '((guix build utils)
> + (srfi srfi-1)
> + (srfi srfi-26))
> + #:local-build? #t
> + #:substitutable? #f
> + #:properties
> + `((type . profile-hook)
> + (hook . fontpath-dir))))
> +
>  (define (manual-database manifest)
>    "Return a derivation that builds the manual page database (\"mandb\") for
>  the entries in MANIFEST."
> @@ -1430,6 +1461,7 @@
>    (list info-dir-file
>          manual-database
>          fonts-dir-file
> + fontpath-file
>          ghc-package-cache-file
>          ca-certificate-bundle
>          glib-schemas




  reply	other threads:[~2020-06-12 18:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-14 17:17 [bug#39602] Generate font catalogues for the X server Ivan Kozlov
2020-06-12 18:44 ` Ivan Kozlov [this message]
2020-06-22 20:11 ` Marius Bakke

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1222911591987229@mail.yandex.ru \
    --to=kanichos@yandex.ru \
    --cc=39602@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).