Subject: bug#24279: Bug in xterm and/or fontconfig

From: [email-masked] (Ludovic Courtès)
Date: Sun, 28 Aug 2016 16:45:39 +0200

Alex Kost <[email-masked]> skribis:

> John Darrington (2016-08-21 16:18 +0300) wrote:

[...]

>> Now in the xterm, hold down Ctrl and press any mouse button.
>> The xterm aborts with the following messages:
>>  Warning: Unable to load any usable ISO8859 font
>>  Error: Aborting: no font found

Same here.

> Pressing Ctrl with any mouse button displays menus for me without any
> error.  Did you install any font in your profile?

Xterm uses server-side font rendering, so this cannot be a Fontconfig
issue.  Could it be related to 9eb5a449eed7297fdc2e6f3e77c2f625b07fddd1?

‘strace xterm’ suggests that xterm queries Xft, and eventually bails
out:

--8<---------------cut here---------------start------------->8---
writev(3, [{"-\1\f\0+\0 \1$\0\0\0-*-*-*-R-*-*-*-120-*"..., 56}, {NULL, 0}, {"", 0}], 3) = 56
poll([{fd=3, events=POLLIN}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\0\17\364\1+\0 \1\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64
open("/gnu/store/2fxgv78y9ngm31s10cb12pbjxwhdkvlb-libxt-1.1.5/share/X11/XtErrorDB", O_RDONLY) = -1 ENOENT (No such file or directory)
write(2, "Warning: Unable to load any usab"..., 48Warning: Unable to load any usable ISO8859 font
) = 48
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"1\1\v\0\1\0$\0", 8}, {"-*-*-*-R-*-*-*-120-*-*-*-*-ISO88"..., 36}, {"", 0}], 3) = 44
poll([{fd=3, events=POLLIN}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0\366\1\17\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 92
recvmsg(3, 0x7ffeea61d370, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"1\1\v\0\1\0$\0", 8}, {"-*-*-*-R-*-*-*-120-*-*-*-*-ISO88"..., 36}, {"", 0}], 3) = 44
poll([{fd=3, events=POLLIN}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0\367\1\17\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 92
recvmsg(3, 0x7ffeea61d310, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, 0x7ffeea61d310, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"-\1\22\0,\0 \0019\0\0\0-adobe-courier-bold-"..., 80}, {NULL, 0}, {"", 0}], 3) = 80
poll([{fd=3, events=POLLIN}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0\371\0017\3\0\0\0\0\1\0\7\0\377\377\371\377\0\0\0\0\0\0\3\0\10\0\7\0\v\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 3324
recvmsg(3, 0x7ffeea61d4b0, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, 0x7ffeea61d4b0, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, 0x7ffeea61d4b0, 0)           = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"-\1\22\0-\0 \0019\0\0\0-adobe-courier-bold-"..., 80}, {NULL, 0}, {"", 0}], 3) = 80
poll([{fd=3, events=POLLIN}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0\373\0017\3\0\0\0\0\1\0\7\0\377\377\371\377\0\0\0\0\0\0\3\0\10\0\7\0\v\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 3324
recvmsg(3, 0x7ffeea61d490, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, 0x7ffeea61d490, 0)           = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(3, 0x7ffeea61d490, 0)           = -1 EAGAIN (Resource temporarily unavailable)
write(2, "Error: Aborting: no font found\n\n", 32Error: Aborting: no font found
--8<---------------cut here---------------end--------------->8---

Strangely, “guix environment --ad-hoc xlsfonts -- xlsfonts” does work
and lists many fonts.

Thoughts?

Ludo’.