Subject: Re: bug#30655: xset(1) not accepting symlink to font path

From: [email-masked] (Ludovic Courtès)
Date: Fri, 02 Mar 2018 13:45:41 +0100

Hello,

Marco van Hulten <[email-masked]> skribis:

> Ludovic—
>
> Je  1 mrt 17:52 skribis Ludovic:
>> Marco van Hulten <[email-masked]> skribis:
>> 
>> > When I follow the manual at
>> > https://www.gnu.org/software/guix/manual/html_node/Application-Setup.html#X11-Fonts ,
>> > I get the message that there is something wrong with the directory I'm
>> > trying to add it:
>> >
>> >
>> > gast@graviton ~$ xset +fp ~/.guix-profile/share/fonts/truetype
>> > xset:  bad font path element (#0), possible causes are:
>> >     Directory does not exist or has wrong permissions
>> >     Directory missing fonts.dir
>> >     Incorrect font server address or syntax
>> > gast@graviton ~$ ls -l ~/.guix-profile/share/fonts/truetype/fonts.dir 
>> > lrwxrwxrwx 2 root root 84 Jan  1  1970 /home/gast/.guix-profile/share/fonts/truetype/fonts.dir -> /gnu/store/5kp6hj8mk6pgfl4x3cgabl7z379jyyrl-fonts-dir/share/fonts/truetype/fonts.dir
>> > gast@graviton ~$ xset +fp /gnu/store/5kp6hj8mk6pgfl4x3cgabl7z379jyyrl-fonts-dir/share/fonts/truetype
>> >
>> >
>> > The last command exits with code 0.  Apparently, xset(1) does not want
>> > me to add symlink(2)s that point to valid directories.  
>> 
>> Would this be a good fix:
>
> More or less, but it is fonts.dir that points to the right location
> though we need the base dir of that, so the patch must be:
>
>
> diff --git a/doc/guix.texi b/doc/guix.texi
> index 24db16761..35221ff94 100644
> --- a/doc/guix.texi
> +++ b/doc/guix.texi
> @@ -1572,7 +1572,7 @@ To be able to use such full names for the
> TrueType fonts installed in your Guix profile, you need to extend the
> font path of the X server: 
>  @example
> -xset +fp ~/.guix-profile/share/fonts/truetype
> +xset +fp $(dirname $(readlink -f ~/.guix-profile/share/fonts/truetype/fonts.dir))
>  @end example

Actually commit 07ec349229 that I just pushed fixes this very line.  So
I guess we’re done?

Thanks,
Ludo’.