system-installed emacs does not find system-installed fonts

  • Done
  • quality assurance status badge
Details
3 participants
  • Alex Kost
  • Ludovic Courtès
  • myglc2
Owner
unassigned
Submitted by
myglc2
Severity
normal
M
M
myglc2 wrote on 6 Mar 2016 19:57
system-installed emacs does not find system-installed fonts
(address . bug-guix@gnu.org)
87a8mb5t8t.fsf@gmail.com
Not technically not a bug because the doc says ...

2.6.2 X11 Fonts

The ‘fontconfig’ package in Guix looks for fonts in
‘$HOME/.guix-profile’ by default. Thus, to allow graphical applications
installed with Guix to display fonts, you have to install fonts with
Guix as well.

But it does seem counter-intuitive that emacs 'M-x list-fontsets' gives ...

Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default
Fontset: -*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard
Fontset: -urw-Nimbus Mono L-normal-normal-normal-*-13-*-*-*-m-0-fontset-startup

... when the system package list is ...

% *Guix Package L... 5437 Guix-Output-List
[...]
emacs 24.5 out Yes The extensible, customizable, self-documenting text editor
[...]
font-dejavu 2.34 out Yes Vera font family derivate with additional characters
[...]
A
A
Alex Kost wrote on 7 Mar 2016 10:27
Re: bug#22927: system-installed emacs does not find system-installed fonts
(name . myglc2)(address . myglc2@gmail.com)(address . 22927@debbugs.gnu.org)
87wppehc33.fsf@gmail.com
myglc2 (2016-03-06 21:57 +0300) wrote:

Toggle quote (9 lines)
> Not technically not a bug because the doc says ...
>
> 2.6.2 X11 Fonts
>
> The ‘fontconfig’ package in Guix looks for fonts in
> ‘$HOME/.guix-profile’ by default. Thus, to allow graphical applications
> installed with Guix to display fonts, you have to install fonts with
> Guix as well.

(I have not checked but) I believe this can be fixed by adding
"/run/current-system/profile/share/fonts" to '--with-add-fonts'
configure flag of the 'fontconfig' package.

For now I think the following recipe should work:

1. Make a file "~/.config/fontconfig/fonts.conf" with the following
contents:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>/run/current-system/profile/share/fonts</dir>
</fontconfig>
2. Run "fc-cache -fv".

--
Alex
L
L
Ludovic Courtès wrote on 2 Apr 2016 19:29
(name . Alex Kost)(address . alezost@gmail.com)
87inzzgbqp.fsf@gnu.org
Alex Kost <alezost@gmail.com> skribis:

Toggle quote (26 lines)
> myglc2 (2016-03-06 21:57 +0300) wrote:
>
>> Not technically not a bug because the doc says ...
>>
>> 2.6.2 X11 Fonts
>>
>> The ‘fontconfig’ package in Guix looks for fonts in
>> ‘$HOME/.guix-profile’ by default. Thus, to allow graphical applications
>> installed with Guix to display fonts, you have to install fonts with
>> Guix as well.
>
> (I have not checked but) I believe this can be fixed by adding
> "/run/current-system/profile/share/fonts" to '--with-add-fonts'
> configure flag of the 'fontconfig' package.
>
> For now I think the following recipe should work:
>
> 1. Make a file "~/.config/fontconfig/fonts.conf" with the following
> contents:
>
> <?xml version="1.0"?>
> <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
> <fontconfig>
> <dir>/run/current-system/profile/share/fonts</dir>
> </fontconfig>

Indeed. I realize I did this independently in
e71ef7adaece7e132a5059139122b45083ea1b39.

The better fix will be to rebuild Fontconfig as you suggest. Would you
like to try that and apply it to ‘core-updates’?

Thanks,
Ludo’.
A
A
Alex Kost wrote on 3 Apr 2016 09:44
(name . Ludovic Courtès)(address . ludo@gnu.org)
87pou7t9ut.fsf@gmail.com
Ludovic Courtès (2016-04-02 20:29 +0300) wrote:

Toggle quote (34 lines)
> Alex Kost <alezost@gmail.com> skribis:
>
>> myglc2 (2016-03-06 21:57 +0300) wrote:
>>
>>> Not technically not a bug because the doc says ...
>>>
>>> 2.6.2 X11 Fonts
>>>
>>> The ‘fontconfig’ package in Guix looks for fonts in
>>> ‘$HOME/.guix-profile’ by default. Thus, to allow graphical applications
>>> installed with Guix to display fonts, you have to install fonts with
>>> Guix as well.
>>
>> (I have not checked but) I believe this can be fixed by adding
>> "/run/current-system/profile/share/fonts" to '--with-add-fonts'
>> configure flag of the 'fontconfig' package.
>>
>> For now I think the following recipe should work:
>>
>> 1. Make a file "~/.config/fontconfig/fonts.conf" with the following
>> contents:
>>
>> <?xml version="1.0"?>
>> <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
>> <fontconfig>
>> <dir>/run/current-system/profile/share/fonts</dir>
>> </fontconfig>
>
> Indeed. I realize I did this independently in
> e71ef7adaece7e132a5059139122b45083ea1b39.
>
> The better fix will be to rebuild Fontconfig as you suggest. Would you
> like to try that and apply it to ‘core-updates’?

Yes, the patch is attached.
From fc239dda52244d6bd3b645660ca0827aa17afc05 Mon Sep 17 00:00:00 2001
From: Alex Kost <alezost@gmail.com>
Date: Sun, 3 Apr 2016 10:27:45 +0300
Subject: [PATCH] gnu: fontconfig: Find fonts in the system profile.

Reported by myglc2 <myglc2@gmail.com>.

This also reverts commit e71ef7adaece7e132a5059139122b45083ea1b39.

* gnu/packages/fontutils.scm (fontconfig)[arguments]: Add
/run/current-system/profile/share/fonts to --with-add-fonts configure flag.
* gnu/system/shadow.scm (default-skeletons): Do not create "fonts.conf" file.
---
gnu/packages/fontutils.scm | 8 ++++----
gnu/system/shadow.scm | 23 -----------------------
2 files changed, 4 insertions(+), 27 deletions(-)

Toggle diff (69 lines)
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index ff10a4a..8d33211 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -95,10 +95,10 @@ anti-aliased glyph bitmap generation with 256 gray levels.")
(assoc-ref %build-inputs "gs-fonts")
"/share/fonts")
- ;; register fonts from user profile
- ;; TODO: Add /run/current-system/profile/share/fonts and remove
- ;; the skeleton that works around it from 'default-skeletons'.
- "--with-add-fonts=~/.guix-profile/share/fonts"
+ ;; Register fonts from user and system profiles.
+ (string-append "--with-add-fonts="
+ "~/.guix-profile/share/fonts,"
+ "/run/current-system/profile/share/fonts")
;; python is not actually needed
"PYTHON=false")
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index a13ef11..6e62aee 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -131,12 +131,6 @@
(define (default-skeletons)
"Return the default skeleton files for /etc/skel. These files are copied by
'useradd' in the home directory of newly created user accounts."
- (define fonts.conf-content
- ;; SXML for ~/.config/fontconfig/fonts.conf. This works around the fact
- ;; that Fontconfig currently does not such this directory by default,
- ;; thereby ignoring fonts installed system-wide (FIXME).
- `(fontconfig (dir "/run/current-system/profile/share/fonts")))
-
(define copy-guile-wm
#~(begin
(use-modules (guix build utils))
@@ -180,22 +174,6 @@ source /etc/profile\n"))
(xdefaults (plain-file "Xdefaults" "\
XTerm*utf8: always
XTerm*metaSendsEscape: true\n"))
- (fonts.conf (computed-file
- "fonts.conf"
- #~(begin
- (use-modules (guix build utils)
- (sxml simple))
-
- (define dir
- (string-append #$output
- "/fontconfig"))
-
- (mkdir-p dir)
- (call-with-output-file (string-append dir
- "/fonts.conf")
- (lambda (port)
- (sxml->xml '#$fonts.conf-content port))))
- #:modules '((guix build utils))))
(gdbinit (plain-file "gdbinit" "\
# Tell GDB where to look for separate debugging files.
set debug-file-directory ~/.guix-profile/lib/debug\n")))
@@ -204,7 +182,6 @@ set debug-file-directory ~/.guix-profile/lib/debug\n")))
(".zlogin" ,zlogin)
(".Xdefaults" ,xdefaults)
(".guile-wm" ,guile-wm)
- (".config" ,fonts.conf)
(".gdbinit" ,gdbinit))))
(define (skeleton-directory skeletons)
--
2.7.3
L
L
Ludovic Courtès wrote on 3 Apr 2016 22:39
(name . Alex Kost)(address . alezost@gmail.com)
87wpoectql.fsf@gnu.org
Alex Kost <alezost@gmail.com> skribis:

Toggle quote (14 lines)
> From fc239dda52244d6bd3b645660ca0827aa17afc05 Mon Sep 17 00:00:00 2001
> From: Alex Kost <alezost@gmail.com>
> Date: Sun, 3 Apr 2016 10:27:45 +0300
> Subject: [PATCH] gnu: fontconfig: Find fonts in the system profile.
>
> Fixes <http://bugs.gnu.org/22927>.
> Reported by myglc2 <myglc2@gmail.com>.
>
> This also reverts commit e71ef7adaece7e132a5059139122b45083ea1b39.
>
> * gnu/packages/fontutils.scm (fontconfig)[arguments]: Add
> /run/current-system/profile/share/fonts to --with-add-fonts configure flag.
> * gnu/system/shadow.scm (default-skeletons): Do not create "fonts.conf" file.

[...]

Toggle quote (9 lines)
> - ;; register fonts from user profile
> - ;; TODO: Add /run/current-system/profile/share/fonts and remove
> - ;; the skeleton that works around it from 'default-skeletons'.
> - "--with-add-fonts=~/.guix-profile/share/fonts"
> + ;; Register fonts from user and system profiles.
> + (string-append "--with-add-fonts="
> + "~/.guix-profile/share/fonts,"
> + "/run/current-system/profile/share/fonts")

If you’ve confirmed that passing a comma-separated list here works as
expected, then please push to ‘core-updates’.

Thank you!

Ludo’.
A
A
Alex Kost wrote on 4 Apr 2016 20:11
(name . Ludovic Courtès)(address . ludo@gnu.org)
87k2kdtfbd.fsf@gmail.com
Ludovic Courtès (2016-04-03 23:39 +0300) wrote:

Toggle quote (30 lines)
> Alex Kost <alezost@gmail.com> skribis:
>
>> From fc239dda52244d6bd3b645660ca0827aa17afc05 Mon Sep 17 00:00:00 2001
>> From: Alex Kost <alezost@gmail.com>
>> Date: Sun, 3 Apr 2016 10:27:45 +0300
>> Subject: [PATCH] gnu: fontconfig: Find fonts in the system profile.
>>
>> Fixes <http://bugs.gnu.org/22927>.
>> Reported by myglc2 <myglc2@gmail.com>.
>>
>> This also reverts commit e71ef7adaece7e132a5059139122b45083ea1b39.
>>
>> * gnu/packages/fontutils.scm (fontconfig)[arguments]: Add
>> /run/current-system/profile/share/fonts to --with-add-fonts configure flag.
>> * gnu/system/shadow.scm (default-skeletons): Do not create "fonts.conf" file.
>
> [...]
>
>> - ;; register fonts from user profile
>> - ;; TODO: Add /run/current-system/profile/share/fonts and remove
>> - ;; the skeleton that works around it from 'default-skeletons'.
>> - "--with-add-fonts=~/.guix-profile/share/fonts"
>> + ;; Register fonts from user and system profiles.
>> + (string-append "--with-add-fonts="
>> + "~/.guix-profile/share/fonts,"
>> + "/run/current-system/profile/share/fonts")
>
> If you’ve confirmed that passing a comma-separated list here works as
> expected, then please push to ‘core-updates’.

Yes, I confirmed, pushed.

--
Alex
L
L
Ludovic Courtès wrote on 4 Jun 2016 16:30
control message for bug #22927
(address . control@debbugs.gnu.org)
87r3cdyqk3.fsf@gnu.org
tags 22927 fixed
close 22927 0.10.1
?
Your comment

This issue is archived.

To comment on this conversation send an email to 22927@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 22927
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch