Group :: Publishing
RPM: tetex
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: tetex-3.0-alt1-updmap-cnfdir.patch
Download
Download
diff -ur tetex-src-3.0.orig06/texk/tetex/updmap tetex-src-3.0/texk/tetex/updmap
--- tetex-src-3.0.orig06/texk/tetex/updmap 2005-02-26 06:25:34 +0300
+++ tetex-src-3.0/texk/tetex/updmap 2005-02-26 07:08:58 +0300
@@ -115,7 +115,7 @@
Usage: updmap [option] ... [command]
Valid options:
- --cnffile file specify configuration file
+ --cnfdir directory specify configuration files directory
--dvipsoutputdir directory specify output directory (dvips syntax)
--pdftexoutputdir directory specify output directory (pdftex syntax)
--dvipdfmoutputdir directory specify output directory (dvipdfm syntax)
@@ -198,7 +198,7 @@
###############################################################################
cfgval()
{
- cat "$cnfFile" | sed -n 's/^'"$1"'[ =][ =]*//p' | sed q
+ cat $cnfFiles | sed -n 's/^'"$1"'[ =][ =]*//p' | tail -1
}
###############################################################################
@@ -208,20 +208,20 @@
setupSymlinks()
{
rm -f "$dvipsoutputdir/psfonts.map"
- if test "x$dvipsPreferOutline" = xtrue; then
+ if test "x$dvipsPreferOutline" = "xtrue"; then
ln -s psfonts_t1.map "$dvipsoutputdir/psfonts.map"
else
ln -s psfonts_pk.map "$dvipsoutputdir/psfonts.map"
fi
rm -f "$pdftexoutputdir/pdftex.map"
- if test "x$pdftexDownloadBase14" = xtrue; then
+ if test "x$pdftexDownloadBase14" = "xtrue"; then
ln -s pdftex_dl14.map "$pdftexoutputdir/pdftex.map"
else
ln -s pdftex_ndl14.map "$pdftexoutputdir/pdftex.map"
fi
rm -f "$dvipdfmoutputdir/dvipdfm.map"
- if test "x$dvipdfmDownloadBase14" = xtrue; then
+ if test "x$dvipdfmDownloadBase14" = "xtrue"; then
ln -s dvipdfm_dl14.map "$dvipdfmoutputdir/dvipdfm.map"
else
ln -s dvipdfm_ndl14.map "$dvipdfmoutputdir/dvipdfm.map"
@@ -257,26 +257,32 @@
catMaps()
{
rm -f $catMapsFailed
- egrep "$1" "$cnfFile" \
- | sed 's@#.*@@' \
+
+ for i in $cnfFiles ; do
+ egrep "$1" $i \
+ | sed 's@#.*@@' \
| awk '{print $2}' \
| sort \
| uniq \
- | grep . > $tmp4
+ | grep .
+ done > $tmp4
while read map; do
- file=`locateMap "$map"` || { touch $catMapsFailed; break; }
+ file=`locateMap "$map"` || { if [ ! -f "$catMapsFailed" ]; then catMapsFailed=`mktemp /tmp/catMapsFailed.XXXXXXXXXXXXX`; fi; break; }
# output the file; also output a newline, because the final newline
# might be missing in the map file; Empty lines are filtered out later,
# so it does not really hurt do do this here.
test -n "$file" && { cat "$file"; echo; }
+
done < $tmp4
- if test -f $catMapsFailed; then
+
+ if test -f "$catMapsFailed"; then
false; return 1
else
true; return 0
fi
+
}
###############################################################################
@@ -334,7 +340,9 @@
;;
esac
- configReplace "$cnfFile" "^$opt[ ]" "$opt $val"
+ for i in $cnfFiles ; do
+ configReplace "$i" "^$opt[ ]" "$opt $val"
+ done
}
###############################################################################
@@ -356,10 +364,12 @@
disableMap "$2"
# now enable with the right type:
- configReplace "$cnfFile" "^#![ ]*$1[ ]*$2" "$1 $2"
+ for i in $cnfFiles ; do
+ configReplace "$i" "^#![ ]*$1[ ]*$2" "$1 $2"
+ done
}
-###############################################################################
+##1#############################################################################
# disableMap (map)
# disables map in config file (any type)
###############################################################################
@@ -368,9 +378,11 @@
#mapType=`awk '($1 == "MixedMap" || $1 == "Map") && $2 == map { print $1 }' \
# map=$1 <"$cnfFile" | sort | uniq`
map=$1
- mapType=`egrep "^(MixedMap|Map)[ ]*$map( | |$)" "$cnfFile" | awk '{print $1}' | sort | uniq`
- for type in $mapType; do
- configReplace "$cnfFile" "^$type[ ]*$1" "#! $type $1"
+ for i in $cnfFiles ; do
+ mapType=`egrep "^(MixedMap|Map)[ ]*$map( | |$)" "$i" | awk '{print $1}' | sort | uniq`
+ for type in $mapType; do
+ configReplace "$i" "^$type[ ]*$1" "#! $type $1"
+ done
done
}
@@ -576,18 +588,6 @@
locateMapMigrate "$@"
return $?
fi
-
- # The old version of the code; not used at the moment.
- for map
- do
- file=`kpsewhich --format=map "$map"`
- if test -f "$file"; then
- verboseMsg "$progname: using map file \`$file'"
- echo "$file"
- else
- warn "map file \`$map' not found."
- fi
- done
}
###############################################################################
@@ -669,7 +669,9 @@
$3
Please, consider removing this file.
"
- touch $mapWarnCalled
+ if [ ! -f "$mapWarnCalled" ]; then
+ mapWarnCalled=`mktemp /tmp/mapWarnCalled.XXXXXXXXXXXXX`
+ fi
;;
manualResolve)
warn "
@@ -684,7 +686,9 @@
content of the used map file. Additionally, consider removing the
obsolete file.
"
- touch $mapWarnCalled
+ if [ ! -f "$mapWarnCalled" ]; then
+ mapWarnCalled=`mktemp /tmp/mapWarnCalled.XXXXXXXXXXXXX`
+ fi
;;
badLocation)
map=$2
@@ -736,8 +740,18 @@
cleanup()
{
rc=$?
- $needsCleanup && test -n "$tmpdir" && test -d "$tmpdir" \
- && { cd / && rm -rf "$tmpdir"; }
+ if test -n "$needsCleanup" ; then
+ test -n "$tmp1" && rm -f "$tmp1"
+ test -n "$tmp2" && rm -f "$tmp2"
+ test -n "$tmp3" && rm -f "$tmp3"
+ test -n "$tmp4" && rm -f "$tmp4"
+ test -n "$tmp5" && rm -rf "$tmp5"
+ test -n "$tmp6" && rm -f "$tmp6"
+ test -n "$tmp7" && rm -f "$tmp7"
+ test -n "$tmp8" && rm -f "$tmp8"
+ test -n "$mapWarnCalled" && rm -f "$mapWarnCalled"
+ test -n "$catMapsFailed" && rm -f "$catMapsFailed"
+ fi
(exit $rc); exit $rc
}
@@ -751,7 +765,6 @@
trap 'cleanup' 1 2 3 7 13 15
needsCleanup=true
- mkdir "$tmpdir" || abort "could not create directory \`$tmpdir'"
}
###############################################################################
@@ -849,12 +862,30 @@
###############################################################################
setupCfgFile()
{
- case "$cnfFile" in
- "") cnfFile=`locateWeb2c $cnfFileShort`
- case "$cnfFile" in
- "") abort "config file $cnfFileShort not found"
- esac;;
- esac
+ if test -z "$cnfFiles"; then
+ if test -z "$cnfDir" ; then
+ tf=`kpsewhich -expand-var='$TEXFONTSCNF'`
+ if test -n "${tf}.d" && test ! -f "${tf}.d/$cnfFileShort"; then
+ test -d "${tf}.d" || $TEXMFMAIN/web2c/mktexdir "${tf}.d" 2>/dev/null
+ if test -d "${tf}.d" && test -w "${tf}.d"; then
+ rm -f "${tf}.d/$cnfFileShort"
+ cp $TEXMFMAIN/web2c/$cnfFileOriginal "${tf}.d/$cnfFileShort"
+ $TEXMFMAIN/web2c/mktexupd "${tf}.d" "$cnfFileShort"
+ fi
+ fi
+ else
+ tf="$cnfDir"
+ fi
+
+ cnfFile="${tf}.d/$cnfFileShort"
+ if test -n "$cnfFile"; then
+ verboseMsg "using config file $cnfFile"
+ cnfFiles=`ls -1 ${tf}.d/*.cfg`
+ else
+ abort "config file $cnfFileShort not found"
+ fi
+ fi
+
setupLog
}
@@ -868,10 +899,10 @@
case $1 in
--quiet|-q)
verbose=false;;
- --cnffile)
- cfgparam=1; cnfFile=$2; shift;;
- --cnffile=*)
- cfgparam=1; cnfFile=`echo "$1" | sed 's/--cnffile=//'`;;
+ --cnfdir)
+ cfgparam=1; cnfDir=$2; shift;;
+ --cnfdir=*)
+ cfgparam=1; cnfDir=`echo "$1" | sed 's/--cnfdir=//'`;;
--dvipsoutputdir)
dvipsoutputdirparam=1; dvipsoutputdir=$2; shift;;
--dvipsoutputdir=*)
@@ -963,7 +994,7 @@
do test $# -gt 0 && shift; done
if test -n "$cfgparam"; then
- if test -z "$cnfFile" || test ! -f "$cnfFile"; then
+ if test -z "$cnfDir" || test ! -d "$cnfDir"; then
abort "config file \`$cnfFileShort' not found"
fi
fi
@@ -992,7 +1023,9 @@
###############################################################################
listMaps()
{
- egrep '^(#! *)?(Mixed)?Map' $cnfFile
+ for i in $cnfFiles ; do
+ egrep '^(#! *)?(Mixed)?Map' $i
+ done
}
###############################################################################
@@ -1021,14 +1054,16 @@
###############################################################################
syncWithTrees()
{
- for i in `egrep '^(Mixed)?Map' "$cnfFile" | sed 's@.* @@'`; do
- kpsewhich --format=map "$i" >/dev/null || echo "$i"
- done > $tmp1
+ for file in $cnfFiles; do
+ for i in `egrep '^(Mixed)?Map' "$file" | sed 's@.* @@'`; do
+ kpsewhich --format=map "$i" >/dev/null || echo "$i"
+ done > $tmp1
+ done
{
sed 's@/@\\/@g; s@^@/^MixedMap[ ]*@; s@$@$/s/^/#! /@' <$tmp1
sed 's@/@\\/@g; s@^@/^Map[ ]*@; s@$@$/s/^/#! /@' <$tmp1
} > $tmp2
- sed -f $tmp2 "$cnfFile" > $tmp3 && cat $tmp3 > "$cnfFile"
+ sed -f $tmp2 "$cnfFiles" > $tmp3 && cat $tmp3 > "${cnfFileShort}.new"
}
###############################################################################
@@ -1084,7 +1119,7 @@
dvipsDownloadBase35=`cfgval dvipsDownloadBase35`
pdftexDownloadBase14=`cfgval pdftexDownloadBase14`
dvipdfmDownloadBase14=`cfgval dvipdfmDownloadBase14`
-
+
# defaults
test -z "$mode" && mode=URWkb
test -z "$dvipsPreferOutline" && dvipsPreferOutline=true
@@ -1142,7 +1177,7 @@
verboseMsg
verboseMsg "$progname: Scanning for MixedMap entries:"
- catMaps '^MixedMap' > $tmp1 || cleanup
+ catMaps '^MixedMap' > $tmp1 || { cleanup; }
verboseMsg
verboseMsg "$progname: Scanning for Map entries:"
@@ -1160,6 +1195,7 @@
% Don't change this file directly. Edit texmf/web2c/$cnfFileShort
% and run updmap to recreate this file.
eof
+
done
IFS=$OLDIFS
@@ -1218,7 +1254,7 @@
| awk '{print $(NF-2), $(NF-1), $NF}' | verboseCat
verboseMsg
- if test -f $mapWarnCalled; then
+ if test -f "$mapWarnCalled"; then
m="
!!! NOTICE:
@@ -1246,6 +1282,7 @@
warn "$m"
fi
return 0
+
}
###############################################################################
@@ -1267,22 +1304,27 @@
verbose=true
needsCleanup=false
- cnfFileShort=updmap.cfg
- cnfFile=
- dvipsoutputdir=; pdftexoutputdir=; dvipdfmoutputdir=
+ cnfFileShort=00updmap.cfg
+ cnfFileOriginal=updmap.cfg
+ cnfFiles=
+
+ tfdir=`kpsewhich -expand-var='$TEXFONTSCNF'`
+ dvipsoutputdir=$tfdir
+ pdftexoutputdir=$tfdir
+ dvipdfmoutputdir=$tfdir
: ${TEXMFMAIN=`kpsewhich -var-value=TEXMFMAIN`}
- tmpdir=${TMP-/tmp}/$progname.$$
- tmp1=$tmpdir/a
- tmp2=$tmpdir/b
- tmp3=$tmpdir/c
- tmp4=$tmpdir/d
- tmp5=$tmpdir/e
- tmp6=$tmpdir/f
- tmp7=$tmpdir/g
- tmp8=$tmpdir/h
- mapWarnCalled=$tmpdir/mapWarnCalled
- catMapsFailed=$tmpdir/catMapsFailed
+ tmpdir="/tmp"
+ tmp1=`mktemp /tmp/updmap.XXXXXXXXXXXXX`
+ tmp2=`mktemp /tmp/updmap.XXXXXXXXXXXXX`
+ tmp3=`mktemp /tmp/updmap.XXXXXXXXXXXXX`
+ tmp4=`mktemp /tmp/updmap.XXXXXXXXXXXXX`
+ tmp5=`mktemp -d /tmp/updmap.XXXXXXXXXXXXX`
+ tmp6=`mktemp /tmp/updmap.XXXXXXXXXXXXX`
+ tmp7=`mktemp /tmp/updmap.XXXXXXXXXXXXX`
+ tmp8=`mktemp /tmp/updmap.XXXXXXXXXXXXX`
+ mapWarnCalled=
+ catMapsFailed=
processOptions ${1+"$@"}
@@ -1293,13 +1335,14 @@
setupCfgFile
case "$cmd" in
- listmaps) listMaps; (exit 0); exit;;
+ listmaps) listMaps; cleanup; (exit 0); exit;;
listavailablemaps) listAvailableMaps; (exit 0); exit;;
esac
# keep a copy of config file, so that we can see if the file was modified
setupTmpDir
+
if test -n "$cfgmaint"; then
if test -z "$cfgparam"; then
co=`$TEXMFMAIN/texconfig/tcfmgr --tmp $tmpdir --cmd co --file $cnfFileShort`
@@ -1309,12 +1352,12 @@
verboseMsg "$progname: initial config file is \`$orig'"
else
verboseMsg "$progname: config file is \`$cnfFile'"
- cp "$cnfFile" $tmp5
+ cp "$cnfFiles" $tmp5
fi
-
+
case "$cmd" in
edit)
- ${VISUAL-${EDITOR-vi}} $cnfFile;;
+ ${VISUAL-${EDITOR-vi}} $cnfFiles;;
setoption)
setOption "$setoptionOpt" "$setoptionVal";;
enable)
@@ -1336,8 +1379,15 @@
;;
esac
else
- cmp "$cnfFile" $tmp5 >/dev/null 2>&1 || unchanged=false
+ for i in $cnfFiles ; do
+ if cmp $i $tmp5/`basename $i` >/dev/null 2>&1; then
+ verboseMsg "$i unchanged."
+ else
+ unchanged=false
+ fi
+ done
fi
+
case $unchanged in
true) if $mkmapEnabled; then
verboseMsg "$progname: configuration (updmap.cfg) unchanged. Map files will not be recreated."