[tlbuild] PostScript support in dvisvgm for darwin(legacy)

Mojca Miklavec mojca.miklavec.lists at gmail.com
Thu Mar 15 12:13:56 CET 2018


Hi,

Jean-François asked me if I could link dvisvgm in TeX Live against
libgs. Linux binaries apparently work out of the box, while mac (at
least the legacy ones) binaries currently require manually specifying
the path to the library (which works, but causes some inconvenience
when calling).

I need to admit that I never even realised this was a problem because
I never use that program.

On Linux:

$ which dvisvgm
/path/to/texlive/2018/bin/x86_64-linux/dvisvgm

$ dvisvgm -V1
dvisvgm 2.3.3 (x86_64-pc-linux-gnu)
-----------------------------------
brotli:      1.0.2
clipper:     6.2.1
fontforge:   20160721
freetype:    2.9.0
Ghostscript: 9.18
kpathsea:    6.3.0
potrace:     1.15
woff2:       1.0.1
xxhash:      0.6.4
zlib:        1.2.11

On Mac (this is from Dick's binaries):

$ dvisvgm -V1
dvisvgm 2.3.3 (x86_64-apple-darwin15.6.0)
-----------------------------------------
brotli:    1.0.2
clipper:   6.2.1
fontforge: 20160721
freetype:  2.9.0
kpathsea:  6.3.0
potrace:   1.15
woff2:     1.0.1
xxhash:    0.6.4
zlib:      1.2.11

$ otool -L x86_64-darwin/dvisvgm
x86_64-darwin/dvisvgm:
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 307.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1238.0.0)

In contrast, from MacPorts:

$ otool -L /opt/local/bin/dvisvgm
/opt/local/bin/dvisvgm:
/opt/local/lib/libfreetype.6.dylib (compatibility version 21.0.0,
current version 21.0.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current
version 1.2.11)
/opt/local/lib/libgs.9.22.dylib (compatibility version 0.0.0, current
version 0.0.0)
/opt/local/lib/libpotrace.0.dylib (compatibility version 1.0.0,
current version 1.5.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1252.0.0)
/opt/local/lib/libkpathsea.6.dylib (compatibility version 9.0.0,
current version 9.3.0)
/usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 400.9.0)

$ /opt/local/bin/dvisvgm -V1
dvisvgm 2.3.3 (x86_64-apple-darwin17.4.0)
-----------------------------------------
brotli:      1.0.2
clipper:     6.2.1
fontforge:   20160721
freetype:    2.8.0
Ghostscript: 9.22
kpathsea:    6.2.3
potrace:     1.15
woff2:       1.0.1
xxhash:      0.6.4
zlib:        1.2.11

I then checked the libraries that are required by ghostscript and the
list is loooooooong:

$ otool -L /opt/local/lib/libgs.9.22.dylib
/opt/local/lib/libgs.9.22.dylib:
/opt/local/lib/libgs.9.22.dylib (compatibility version 0.0.0, current
version 0.0.0)
/opt/local/lib/libXt.6.dylib (compatibility version 7.0.0, current
version 7.0.0)
/opt/local/lib/libSM.6.dylib (compatibility version 7.0.0, current
version 7.1.0)
/opt/local/lib/libICE.6.dylib (compatibility version 10.0.0, current
version 10.0.0)
/opt/local/lib/libXext.6.dylib (compatibility version 11.0.0, current
version 11.0.0)
/opt/local/lib/libX11.6.dylib (compatibility version 10.0.0, current
version 10.0.0)
/opt/local/lib/libtiff.5.dylib (compatibility version 8.0.0, current
version 8.6.0)
/opt/local/lib/libpng16.16.dylib (compatibility version 49.0.0,
current version 49.0.0)
/opt/local/lib/libjbig2dec.0.dylib (compatibility version 1.0.0,
current version 1.0.0)
/opt/local/lib/libjpeg.9.dylib (compatibility version 12.0.0, current
version 12.0.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current
version 1.2.11)
/opt/local/lib/liblcms2.2.dylib (compatibility version 3.0.0, current
version 3.8.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1252.0.0)
/opt/local/lib/libiconv.2.dylib (compatibility version 9.0.0, current
version 9.0.0)
/opt/local/lib/libidn.11.dylib (compatibility version 18.0.0, current
version 18.16.0)
/opt/local/lib/libpaper.1.dylib (compatibility version 3.0.0, current
version 3.2.0)
/opt/local/lib/libfontconfig.1.dylib (compatibility version 12.0.0,
current version 12.1.0)
/opt/local/lib/libfreetype.6.dylib (compatibility version 21.0.0,
current version 21.0.0)


I would like to make the binaries better, but I'm not super eager to
manually compile a zillion dependencies of ghostscript. What's the
official standpoint of this? As far as I know asymptote would call
ghostscript command rather than link against its library.

How does that work on Windows (in TL)? (I assume Akira compiles
everything though, with a lot of additional effort.)

Mojca



More information about the tlbuild mailing list