[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#607857: texlive-base: don't put files under /usr/local (proposed patch)



HI Hilmar!

On Sa, 25 Dez 2010, Hilmar Preusse wrote:
> I hade a short look: texhash is only called one time shortly before
> the end of the mkMaps function, which is only called one time at the
> end of the main function. This means the updmap script itself does
> not need an ls-R db update during the run, it just has to mek sure

Yes, that was clear to me. The problem is if the updmap call
*generates*new* files then we have to call mktexlsr.

> updmap-sys --nohash
> mktexlsr /usr/share/texmf /var/lib/texmf /usr/share/texmf-texlive

Only
	mktexlsr /var/lib/texmf
since updmap does not write anywhere else.

So that means we only have to adapt the trigger action of tex-common.
What do you say about that one:

Index: postinst.in
===================================================================
--- postinst.in	(revision 4741)
+++ postinst.in	(working copy)
@@ -141,9 +141,31 @@
                     else
                         tempfile=$(mktemp -p /tmp updmap.XXXXXXXX)
                         printf "Running updmap-sys. This may take some time... "
-                        if updmap-sys > $tempfile 2>&1 ; then
+                        # call updmap with --nohash so that no ls-R files
+                        # are created in /usr/local/share/texmf/
+                        # see bug report #607857
+                        # instead of that we call mktexlsr /var/lib/texmf
+                        # afterwards. This can be done without checks as
+                        # we know that dhit_libkpathsea_configured and
+                        # since mktexlsr and updmap are in the same package
+                        # and we checked for updmap already
+                        if updmap-sys --nohash > $tempfile 2>&1 ; then
                             rm -f $tempfile
                             echo "done."
+                            tempfile=$(mktemp -p /tmp mktexlsr.XXXXXXXX)
+                            printf "Running mktexlsr /var/lib/texmf ... "
+                            if mktexlsr /var/lib/texmf > $tempfile 2>&1 ; then
+                                rm -f $tempfile
+                                echo "done."
+                            else
+                                exec >&2
+                                echo
+                                echo "mktexlsr /var/lib/texmf failed. Output has been stored in"
+                                echo "$tempfile"
+                                echo "Please include this file if you report a bug."
+                                echo
+                                exit 1
+                            fi
                         else
                             exec >&2
                             echo



> Perhaps make an own bash function for it.

I was thinking to introduce a separate function for the mktexlsr and warning
call, but that will not make it into testing, but the above might make it.

Any comments?

Best wishes

Norbert
------------------------------------------------------------------------
Norbert Preining            preining@{jaist.ac.jp, logic.at, debian.org}
JAIST, Japan                                 TeX Live & Debian Developer
DSA: 0x09C5B094   fp: 14DF 2E6C 0307 BE6D AD76  A9C0 D2BF 4AA3 09C5 B094
------------------------------------------------------------------------
FEAKLE (vb.)
To make facial expressions similar to those that old gentlemen make to
young girls in the playground.
			--- Douglas Adams, The Meaning of Liff



Reply to: