[MacPorts] #53974: Dvips on macOS 10.12.4 exits with trap 6 building asymptote 2.41 documentation

Mojca Miklavec mojca at macports.org
Mon Apr 24 13:18:56 UTC 2017


On 24 April 2017 at 14:11, Andrew L. Moore wrote:
> On Apr 21, 2017, at 10:48 PM, MacPorts wrote:
>>
>> #53974: Dvips on macOS 10.12.4 exits with trap 6 building asymptote 2.41
>> documentation
>
> DVIs have been attached to the ticket.

Thank you.

> Now please allow me a tangent rant.  Or maybe just PDN (Press Delete Now).  A cursory comparison of MacPorts and MacTeX dvips configurations already looks problematic.
>
> $ diff -u ~/macports.OUT ~/mactex.OUT | head -20
> --- /Users/macports/macports.OUT        2017-04-23 17:15:49.000000000 -0400
> +++ /Users/macports/mactex.OUT  2017-04-23 17:16:21.000000000 -0400
> @@ -1,10 +1,10 @@
>  kdebug:Search path for cnf files (from compile-time paths.h)
> -kdebug:  = /opt/etc/texmf
> -kdebug:  before expansion = /opt/etc/texmf
> +kdebug:  = /opt/texlive/2016/bin/x86_64-darwin:/opt/texlive/2016/bin/x86_64-darwin/share/texmf-local/web2c:/opt/texlive/2016/bin/x86_64-darwin/share/texmf-dist/web2c:/opt/texlive/2016/bin/x86_64-darwin/share/texmf/web2c:/opt/texlive/2016/bin/x86_64-darwin/texmf-local/web2c:/opt/texlive/2016/bin/x86_64-darwin/texmf-dist/web2c:/opt/texlive/2016/bin/x86_64-darwin/texmf/web2c:/opt/texlive/2016/bin:/opt/texlive/2016/bin/share/texmf-local/web2c:/opt/texlive/2016/bin/share/texmf-dist/web2c:/opt/texlive/2016/bin/share/texmf/web2c:/opt/texlive/2016/bin/texmf-local/web2c:/opt/texlive/2016/bin/texmf-dist/web2c:/opt/texlive/2016/bin/texmf/web2c:/opt/texlive/texmf-local/web2c:/opt/texlive/2016:/opt/texlive/2016/share/texmf-local/web2c:/opt/texlive/2016/share/texmf-dist/web2c:/opt/texlive/2016/share/texmf/web2c:/opt/texlive/2016/texmf-local/web2c:/opt/texlive/2016/texmf-dist/web2c:/opt/texlive/2016/texmf/web2c
> +kdebug:  before expansion = {$SELFAUTOLOC,$SELFAUTOLOC/share/texmf-local/web2c,$SELFAUTOLOC/share/texmf-dist/web2c,$SELFAUTOLOC/share/texmf/web2c,$SELFAUTOLOC/texmf-local/web2c,$SELFAUTOLOC/texmf-dist/web2c,$SELFAUTOLOC/texmf/web2c,$SELFAUTODIR,$SELFAUTODIR/share/texmf-local/web2c,$SELFAUTODIR/share/texmf-dist/web2c,$SELFAUTODIR/share/texmf/web2c,$SELFAUTODIR/texmf-local/web2c,$SELFAUTODIR/texmf-dist/web2c,$SELFAUTODIR/texmf/web2c,$SELFAUTOGRANDPARENT/texmf-local/web2c,$SELFAUTOPARENT,$SELFAUTOPARENT/share/texmf-local/web2c,$SELFAUTOPARENT/share/texmf-dist/web2c,$SELFAUTOPARENT/share/texmf/web2c,$SELFAUTOPARENT/texmf-local/web2c,$SELFAUTOPARENT/texmf-dist/web2c,$SELFAUTOPARENT/texmf/web2c}
>  kdebug:  application override path = (none)
...
> -kdebug:  compile-time path = /opt/etc/texmf
> +kdebug:  compile-time path = {$SELFAUTOLOC,$SELFAUTOLOC/share/texmf-local/web2c,$SELFAUTOLOC/share/texmf-dist/web2c,$SELFAUTOLOC/share/texmf/web2c,$SELFAUTOLOC/texmf-local/web2c,$SELFAUTOLOC/texmf-dist/web2c,$SELFAUTOLOC/texmf/web2c,$SELFAUTODIR,$SELFAUTODIR/share/texmf-local/web2c,$SELFAUTODIR/share/texmf-dist/web2c,$SELFAUTODIR/share/texmf/web2c,$SELFAUTODIR/texmf-local/web2c,$SELFAUTODIR/texmf-dist/web2c,$SELFAUTODIR/texmf/web2c,$SELFAUTOGRANDPARENT/texmf-local/web2c,$SELFAUTOPARENT,$SELFAUTOPARENT/share/texmf-local/web2c,$SELFAUTOPARENT/share/texmf-dist/web2c,$SELFAUTOPARENT/share/texmf/web2c,$SELFAUTOPARENT/texmf-local/web2c,$SELFAUTOPARENT/texmf-dist/web2c,$SELFAUTOPARENT/texmf/web2c}
>
> The dvips search path in MacPorts is truncated to /opt/etc/texmf/.  This isn’t the cause of trap 6 (I don’t think), but it's worrisome.

No, in my opinion it's not. TeX Live binaries as provided by upstream
and designed to be fully relocatable and to accommodate various
scenarios of different configurations. In MacPorts one knows where the
configuration file is supposed to be located.

If you just miss any specific PATH, please ask for that path
specifically and we'll try to figure out if there's anything we can do
about it. Just insisting that kpathsea from MacPorts *should* be able
to find any file in /texmf-local (where /texmf-local is literally in
root position of the file system) doesn't make any sense to me.

> Second example comes from comparing config.ps files  between MacPorts and MacTeX:
>
> $ diff -u /opt/etc/texmf/dvips/config/config.ps  /opt/texlive/2016/texmf-dist/dvips/config/config.ps | head
> --- /opt/etc/texmf/dvips/config/config.ps       2017-04-23 17:00:29.000000000 -0400
> +++ /opt/texlive/2016/texmf-dist/dvips/config/config.ps 2016-07-14 18:33:33.000000000 -0400
> @@ -1,4 +1,4 @@
> -% $Id: config.ps 24459 2011-11-02 15:13:04Z preining $
> +% $Id: config.ps 41704 2016-07-14 22:33:33Z karl $
>  % config.ps - configuration file for dvips.
>  % Tomas Rokicki, Thomas Esser, Karl Berry, et al., 1986ff, public domain.

The only difference is this one:

http://tug.org/svn/texlive/trunk/Master/texmf-dist/dvips/config/config.ps?r1=29715&r2=41704

which has been added in July 206, which is *after* the TeX Live 2016
release date. And it's only there to support ieeecs, I strongly doubt
that this would influence dvips when running Asymptote in any way.

However, note that my files are coming from

/opt/local/share/texmf-texlive/dvips/config/config.ps
/usr/local/texlive/2016/texmf-config/dvips/config/config.ps

They are both different from what you are citing:

/opt/etc/texmf/dvips/config/config.ps
/opt/texlive/2016/texmf-dist/dvips/config/config.ps

even after accounting for different prefixes.

Can you please try to add the output of
    /opt/bin/kpsewhich config.ps
    /opt/texlive/2016/bin/x86_64-darwin/kpsewhich config.ps
For anyone else, that's:
    /opt/local/bin/kpsewhich config.ps
    /usr/local/texlive/2016/bin/x86_64-darwin/kpsewhich config.ps
and potentially upload those two files to the ticket as well?

> In this case, MacPorts version of config.ps is six years behind that of MacTeX.

No, it's actually just 9-10 months. That's totally expected provided
that TL 2016 was released last spring/summer.

> Along these lines, it’s unclear to me why MacPorts distribution of TeX Live doesn’t provide a way of syncing sources from CTAN.  By analogy, it's like distributing Ruby without gem(1),

The packaging of anything ruby-related in MacPorts is in a horrible
state. I'm not even sure if that comparison qualifies.

> or Perl without cpan(1).

I'm not sure to what extent out cpan is functional. (It might be, but
I'm also not sure at what point you'll run into troubles.)

But thanks to David Evans we have a lot more than 1000 up-to-date Perl modules.

(TeX Live doesn't provide any means to download older packages.)

> TeX Live provides tlmgr(1), but it appears to have been removed from MacPorts distribution, and  I see only traces left of tlmgr documentation in texlive-basic.

That's semi-expected. Packing tlmgr would require a great deal of
careful thinking and proper implementation. I would dare to bet that
Debian doesn't package tlmgr either, and note that packaging of TeX
Live into Debian is done by the author of tlmgr.

It's a can of worms if you start mixing packages provided by the
distribution and packages provided by tlmgr. Suppose that MacPorts
maintainer of TeX Live doesn't manage to update packages for 6 months
after the official release of TL. In that case tlmgr and most likely
your TeX installation will be broken for half a year (packages
installed by tlmgr will require newer binaries etc.).

This is meant entirely seriously, not as cynical reply: if you think
you can come up with a way to package this properly, please come up
with a proposal (including some code). But not just "package tlmgr".
Something like a very detailed plan and showing some understanding how
packaging TeX Live works.

Just packaging tlmgr won't help anyone in any way. If you need the
latest TeX packages, install MacTeX. You are free to have both MacTeX
(or vanilla TeX Live, installed from command line or via the Perl/Tk
GUI) *and* TL from MacPorts installed. That's what I have here.

> None of this helps resolve the immediate question of why dvips is failing, but TeX Live is the product of decades of effort.  MacPorts brings to TeX the benefit of a powerful build system.  But need the end result diverge so widely from the official (binary) distributions?

They don't diverge so widely as you make it sound.
But packaging TeX Live is a pain no matter what you do and the
situation is not any better in any other Linux distribution. Usually
it's way worse. I used to be happy if I could find anything newer than
teTeX. OpenCSW packages TeX Live from 2012 for example, not sure about
other distros.

Next week we'll probably discuss some ways to make packing slightly
less painfull, but it might take years (or someone brave) to actually
change something fundamental.

You can also try to play with MikTeX:

    https://github.com/mojca/macports-user-mojca/tree/master/ports/tex/miktex

Warning: it's not it a fully functional state yet.

Mojca


More information about the macports-dev mailing list