On 2022-11-17 17:02:47 +0100, Vincent Lefevre wrote:
> When I try to view any Postscript or PDF file with gv, I get the warning
>
> Warning: Cannot convert string
> "-*-Courier-Medium-R-Normal--*-100-*-*-M-*-ISO8859-1" to type FontStruct
>
> then gv hangs on a blank page, with a throbber.
A "strace -f" shows that gv executes /usr/bin/gs, which fails
with exit status 1:
[...]
1949581 openat(AT_FDCWD,
"/usr/share/ghostscript/10.00.0/Resource/Init/gs_init.ps", O_RDONLY) = 3
1949581 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=94573, ...},
AT_EMPTY_PATH) = 0
1949581 lseek(3, 0, SEEK_CUR) = 0
1949581 newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=94573, ...},
AT_EMPTY_PATH) = 0
1949581 lseek(3, 0, SEEK_SET) = 0
1949581 read(3, "% Copyright (C) 2001-2022 Artifex Software, Inc.\n% All Rights
Reserved.\n%\n% This software is provided AS-IS with no warranty, either
express or\n% implied.\n%\n% This software is distributed under license and may
not be copied,\n% modified or distributed excep"..., 4096) = 4096
1949581 read(3, "IDFALLBACK exch def\n/.bind /bind load def\n\n /VMDEBUG\n
INITDEBUG {{print mark\n systemdict /level2dict known\n
{ .currentglobal dup //false .setglobal vmstatus\n //true
.setglobal vmstatus 3 -1 roll pop\n 6"..., 4096) = 4096
1949581 read(3, " by -dOverprint={enable|disable|simulate} ****\\n\\n) print\n
% Set the new variable appropriately.\n /Overprint SimulateOverprint { /enable
} { /disable } ifelse def\n} if\n\n% Acquire environment
variables.\ncurrentdict /DEVICE known not\n { (GS_DEVICE) getenv "..., 4096) =
4096
1949581 read(3, "laycount .delaycount 1 add put\n }\n { pop /.bind
cvx exec\n }\n ifelse\n } .bind odef\n} executeonly
if\n\n.currentglobal //true .setglobal\n/.undefinternalnameslist 10 dict
def\n.setglobal\n\n% Under normal operation .undefinternalnames sim"..., 4096)
= 4096
1949581 read(3, "vice pop\n dup //null ne { /BeginPage .knownget } { pop
//false } ifelse {\n % Stack: ... pagecount proc\n count 2
.execn\n % Stack: ... ..???.. oldcount\n count 1 add exch
sub { pop } repeat\n } {\n pop\n } "..., 4096) = 4096
1949581 read(3, " { /filter .systemvar /undefined signalerror }\n
ifelse\n } odef\n% Internal uses of stopped that aren't going to do a
stop if an error occurs\n% should use .internalstopped to avoid setting
newerror et al.\n/.internalstopped { //null 1 .s"..., 4096) = 4096
1949581 brk(0x55a88f09f000) = 0x55a88f09f000
1949581 read(3, "rix load /typecheck signalerror\n } if\n }
if\n dup length 6 ne { /setmatrix load /rangecheck signalerror } if\n
dup aload pop .setmatrix pop\n} odef\n\n/.confirmread {\n //systemdict
/TTYPAUSE get {\n (/dev/tty) (r) file dup rea"..., 4096) = 4096
1949581 read(3, "r the Level 2 spec even in Level 1.\n/.copydict\t\t%
<fromdict> <todict> .copydict <todict>\n { dup 3 -1 roll { put dup }
forall pop } bind def\n/findlibfile {\n .systemvmlibfile { dup .filename pop
exch //true } { //false } ifelse\n} odef\n/.growdictlengt"..., 4096) = 4096
1949581 read(3, "ecause we want the file to be\n% reopened if a startjob does a
restore.\n/.runstdin {\n { { (%stdin) (r) file cvx } .runexec } execute0\n}
bind def\n% Define the procedure that the C code uses for running commands\n%
given on the command line with -c. We turn "..., 4096) = 4096
1949581 read(3, "ef\n }\n ifelse\n $error /position currentfile
status\n { currentfile { fileposition } //.internalstopped exec { pop
//null } if\n }\n {\t\t% If this was a scanner error, the file is no
longer current,\n % but the command holds "..., 4096) = 4096
1949581 read(3, "only flush\n } ifelse\n //.printerror_long
exec\n }\n ifelse\n //.clearerror exec flush\n }\n {
% newerror is //false, test to see if user has set handleerror to a different\n
% routine, if so execute it, otherwis"..., 4096) = 4096
1949581 read(3, "[only] procedures.\n/.dict 8 dict dup\nbegin def\n /.cvp {1
index exch 1 .writecvp} bind def\n /.p {1 index exch writestring} bind def\n
/.p1 {2 index exch writestring} bind def\n /.p2 {3 index exch writestring}
bind def\n /.print\n { dup type .dict ex"..., 4096) = 4096
1949581 openat(AT_FDCWD,
"/usr/share/ghostscript/10.00.0/Resource/Init/gs_std_e.ps", O_RDONLY) = 5
1949581 newfstatat(5, "", {st_mode=S_IFREG|0644, st_size=3143, ...},
AT_EMPTY_PATH) = 0
1949581 lseek(5, 0, SEEK_CUR) = 0
1949581 newfstatat(5, "", {st_mode=S_IFREG|0644, st_size=3143, ...},
AT_EMPTY_PATH) = 0
1949581 lseek(5, 0, SEEK_SET) = 0
1949581 read(5, "% Copyright (C) 2001-2021 Artifex Software, Inc.\n% All Rights
Reserved.\n%\n% This software is provided AS-IS with no warranty, either
express or\n% implied.\n%\n% This software is distributed under license and may
not be copied,\n% modified or distributed excep"..., 4096) = 3143
1949581 read(5, "", 4096) = 0
[...]
1949580 <... read resumed>"Unknown device: x11\n", 512) = 20
[...]
1949580 writev(3, [{iov_base="-\1\20\0\266\1
\0043\0ll-*-Courier-Medium-R-Normal--*-100-*-*-M-*-ISO8859-1\10/\0\2\0\266\1
\4", iov_len=72}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 72
1949580 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
1949580 recvmsg(3, <unfinished ...>
1949581 +++ exited with 1 +++
1949580 <... recvmsg resumed>{msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\0\17G\t\266\1
\4\0\0-\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7H\t\266\1
\4\0\0/\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}],
msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 64
1949580 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1949581,
si_uid=1000, si_status=1, si_utime=1, si_stime=0} ---
[...]
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 poll([{fd=3, events=POLLIN}], 1, 0) = 0 (Timeout)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
1949580 recvmsg(3, {msg_name=NULL, msg_namelen=0,
msg_iov=[{iov_base="\n\3\264\tX\1
\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}],
msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 poll([{fd=3, events=POLLIN}], 1, 0) = 0 (Timeout)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 poll([{fd=3, events=POLLIN}], 1, 0) = 0 (Timeout)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 recvmsg(3, {msg_namelen=0}, 0) = -1 EAGAIN (Resource temporarily
unavailable)
1949580 poll([{fd=3, events=POLLIN}], 1, 0) = 0 (Timeout)
[...]
So there seems to be an initial error "Unknown device: x11",
which is not reported to the user (does this error matter?).
But it occurs before the failure of the child process (gs).
So there may be several issues...
--
Vincent Lefèvre <[email protected]> - Web: <https://www.vinc17.net/>
100% accessible validated (X)HTML - Blog: <https://www.vinc17.net/blog/>
Work: CR INRIA - computer arithmetic / AriC project (LIP, ENS-Lyon)