Hello *,

Some time ago, some Gentoo TeX guru (don't remember who) advised to include the following code to the sci-mathematics/maxima ebuild:

        # Calculating MAXIMA_TEXMFDIR
        if use latex; then
                local TEXMFPATH="$(kpsewhich -var-value=TEXMFSITE)"
                local TEXMFCONFIGFILE="$(kpsewhich texmf.cnf)"

                if [ -z "${TEXMFPATH}" ]; then
                        eerror "You haven't defined the TEXMFSITE variable in your 
TeX config."
                        eerror "Please do so in the file 
${TEXMFCONFIGFILE:-/var/lib/texmf/web2c/texmf.cnf}"
                        die "Define TEXMFSITE in TeX configuration!"
                else
                        # go through the colon separated list of directories
                        # (maybe only one) provided in the variable
                        # TEXMFPATH (generated from TEXMFSITE from TeX's config)
                        # and choose only the first entry.
                        # All entries are separated by colons, even when defined
                        # with semi-colons, kpsewhich changes
                        # the output to a generic format, so IFS has to be 
redefined.
                        local IFS="${IFS}:"

                        for strippedpath in ${TEXMFPATH}; do
                                if [ -d ${strippedpath} ]; then
                                        MAXIMA_TEXMFDIR="${strippedpath}"
                                        break
                                fi
                        done

                        # verify if an existing path was chosen to prevent from
                        # installing into the wrong directory
                        if [ -z ${MAXIMA_TEXMFDIR} ]; then
                                eerror "TEXMFSITE does not contain any existing 
directory."
                                eerror "Please define an existing directory in your 
TeX config file"
                                eerror 
"${TEXMFCONFIGFILE:-/var/lib/texmf/web2c/texmf.cnf} or create at least one of the 
there specified directories"
                                die "TEXMFSITE variable did not contain an existing 
directory"
                        fi
                fi
        fi

It is absolutely clear, and should work for arbitrarily configured TeX. Later, I copied it (practically verbatim) to the media-gfx/asymptote ebuild.

With the default Gentoo configuration of either teTeX or TeXlive, this code always produces

/usr/share/texmf-site

There are a lot of packages which have this path hard-coded:

app-emacs/auctex
app-emacs/bbdb
app-text/passivetex
app-text/xetex
dev-tex/culmus-latex
dev-tex/currvita
dev-tex/dot2texi
dev-tex/envlab
dev-tex/europecv
dev-tex/feynmf
dev-tex/g-brief
dev-tex/glossaries
dev-tex/herm-pic
dev-tex/latex2html
dev-tex/latex-beamer
dev-tex/leaflet
dev-tex/listings
dev-tex/mh
dev-tex/oesch
dev-tex/pgf
dev-tex/svninfo
dev-tex/texmfind
dev-tex/translator
dev-tex/xcolor
dev-tex/xkeyval
dev-tex/xmltex
sci-visualization/gnuplot

So, probably, this code is an unneeded over-generalization, and should be simply replaced by the hard-coded /usr/share/texmf-site in both maxima and asymptote. Alternatively, if anybody thinks that this generalization can be useful (in what case?), we could include this code as a function into latex-package.eclass, and fix all the ebuilds listed above to use it. The current inconsistent situation is not good.

I think the first solution is simpler (and I can do it myself). But if somebody thinks this generalization to the case of an arbitrary TEXMFSITE in TEXMFCONFIGFILE is useful, then let's do it properly.

Andrey

Reply via email to