Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37509072
en ru br
ALT Linux repos
D:3.0-alt1
5.0: 2.0-alt5
4.1: 2.0-alt4
4.0: 2.0-alt3
3.0: 2.0-alt2.1

Group :: Publishing
RPM: tetex

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: tetex-3.0-alt1-updmap-cnfdir.patch
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."
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin