xdvi figure rendering broken with gs 9.26

Paul Vojta vojta at math.berkeley.edu
Sat Jul 13 08:03:10 CEST 2019

On Fri, Jul 12, 2019 at 03:43:45PM -0600, Karl Berry wrote:
>     What do you think of xdvi using libgs sometime down the road?
> In short, it's painful.
> dvisvgm uses libgs. What we found is that, for TL, it must be dlopen()d
> at runtime; otherwise, the shared library dependency (and the induced
> dependency on libstdc++) makes the binary unusable on a plurality of
> systems. Whereas distros would like to link with the libgs/libstdc++
> that any particular release provides. You can see the lengths that
> Martin G and I have gone to deal with in the dvisvgm sources in TL.
> So ... if there's any way to keep the interface at the PostScript level,
> that sounds a lot simpler to me. Is /execute et al. still available in
> some private dictionary or something, maybe? Or maybe the gs people
> would be willing to do that, since they said they were willing to "work
> with" application developers affected by the removal of all those
> operators.
> Thanks,
> Karl

Here's a proposed fix.  I haven't tried it in xdvik, only in the non-k xdvi.
But it should work.

(This only fixes the more recent of the two bugs I mentioned.  I'm still
looking into the other one.)


--- a/texk/xdvik/psgs.c	2016-04-05 15:50:13.000000000 -0700
+++ b/texk/xdvik/psgs.c	2019-07-12 22:38:20.221708122 -0700
@@ -561,7 +561,7 @@
 	">> setuserparams .locksafe "
 	"} stopped pop\n";
     static const char str1[] =
-	"/xdvi$run {$error /newerror false put {currentfile cvx execute} stopped pop} "
+	"/xdvi$run {$error /newerror false put {currentfile cvx .execute pop} stopped pop} "
 	"def "
 	"/xdvi$ack (\347\310\376) def "
 	"/xdvi$dslen countdictstack def "

More information about the tex-live mailing list