texlive-bin-extra and texlive-latex-extra conflict?

Mojca Miklavec mojca at macports.org
Sun Jul 6 05:26:46 PDT 2014


On Sun, Jul 6, 2014 at 11:10 AM, Lenore Horner wrote:
> Upgraded outdated after not having done so for a few months (on Mavericks).
> The following.
>
> --->  Activating texlive-latex-extra @34239_0+doc
> Error: org.macports.activate for port texlive-latex-extra returned: Image
> error: /opt/local/bin/ps4pdf is being used by the active texlive-bin-extra
> port.  Please deactivate this port first, or use 'port -f activate
> texlive-latex-extra' to force the activation.
>
> I used -f but it seems odd that I should have had to do this.  I tried to
> find a bug report and failed.  I don’t know if I have something weird going
> on or my search skills stink.

I didn't look closely yet, but my blind guess is that ps4pdf used to
be part of texlive-bin-extra and is now part of texlive-latex-extra.
That's a common problem with TeX Live packaging on MacPorts (upstream
sometimes moves files from one collection to another and it's a
problem during upgrade on MP when one package gets upgraded while
other packages from 2013 are still active).

For example if you take a look at texlive-latex/Portfile you'll find
the following code:

# TL 2014: miscdoc moved from texlive-latex-recommended to texlive-latex
pre-activate {
    if { ![catch {set vers [lindex [registry_active
texlive-latex-recommended] 0]}]
         && ([vercmp [lindex $vers 1] 32420] < 0
             || [vercmp [lindex $vers 1] 32420] == 0
             && [lindex $vers 2] < 1)} {
        registry_deactivate_composite texlive-latex-recommended ""
[list ports_nodepcheck 1]
    }
}

There is a high chance that the same trick needs to be used in
texlive-latex-extra.

A workaround should be to upgrade texlive-bin-extra before activating
texlive-latex-extra.


There is another pretty annoying "limitation" of MacPorts when
installing TeX Live. After a TeX Live installation is complete, one
needs to run "mktexlsr" and remake the formats and that takes a while.
TeX Live provides roughly 90 packages. In MacPorts those commands are
being run after every single package. There are 35 texlive-lang-*
packages plus a bunch of others that require remaking formats, but
that "remake" should only be done once. MacPorts probably regenerates
the format about 40 times when installing TeX Live. That process alone
could easily lead to extra 20 minutes of installation time for no good
reason.

It would be nice if MacPorts offered a hook similar to
post-(de)activate, but something that would be executed only once the
whole batch of packages gets removed, installed or upgraded, not after
every single package.

The second useful feature would be to first deactivate all active TeX
Live package from 2013 and only then install packages from 2014. Then
the above mentioned hack would only have to be implemented once.

Mojca


More information about the macports-users mailing list