Author: frank Date: 2006-10-09 18:41:34 +0000 (Mon, 09 Oct 2006) New Revision: 1748
Modified: tex-common/trunk/debian/changelog tex-common/trunk/debian/rules tex-common/trunk/scripts/debianize-updmap Log: * Fix syntax error in debianize-updmap (closes: #391976). Also, the logic in the script has been fixed, so that it actually works [frank] * remove line dupe from rules Modified: tex-common/trunk/debian/changelog =================================================================== --- tex-common/trunk/debian/changelog 2006-10-09 17:12:36 UTC (rev 1747) +++ tex-common/trunk/debian/changelog 2006-10-09 18:41:34 UTC (rev 1748) @@ -1,3 +1,10 @@ +tex-common (0.33~1) unreleased; urgency=medium + + * Fix syntax error in debianize-updmap (closes: #391976). Also, the + logic in the script has been fixed, so that it actually works [frank] + + -- Frank Küster <[EMAIL PROTECTED]> Mon, 9 Oct 2006 20:40:45 +0200 + tex-common (0.32) unstable; urgency=medium * adapted sanity check in update-fontlang to TEXMFSYSCONFIG = /etc/texmf Modified: tex-common/trunk/debian/rules =================================================================== --- tex-common/trunk/debian/rules 2006-10-09 17:12:36 UTC (rev 1747) +++ tex-common/trunk/debian/rules 2006-10-09 18:41:34 UTC (rev 1748) @@ -16,7 +16,6 @@ bin_manpages=$(foreach script,$(bin_scripts), scripts/$(script).1) scripts/update-updmap.1 nonbin_installfiles=$(foreach script,$(nonbin_scripts), scripts/$(script)) -nonbin_installfiles=$(foreach script,$(nonbin_scripts), scripts/$(script)) # create maintainer scripts etc. EPERL_FILES := debian/common.functions debian/postinst debian/postrm debian/config debian/preinst Modified: tex-common/trunk/scripts/debianize-updmap =================================================================== --- tex-common/trunk/scripts/debianize-updmap 2006-10-09 17:12:36 UTC (rev 1747) +++ tex-common/trunk/scripts/debianize-updmap 2006-10-09 18:41:34 UTC (rev 1748) @@ -52,6 +52,8 @@ # find the directory containing user-specific updmap snippets ############################################################################### FindDebianUserdir(){ +# verboseMsg "entering FindDebianUserdir" + defaultuserdir=$HOME/.texmf-config/updmap.d # this should read a config item in updmap.cfg, but for now we just @@ -68,6 +70,8 @@ # we are going to act on these ############################################################################### createDebianConffilelist(){ +# verboseMsg "entering createDebianConffilelist" + local DebianConffilelist="" syswideFiles=`find /etc/texmf/updmap.d -maxdepth 1 -type f -name '*.cfg'` if ! DebianSyswideMode; then @@ -77,13 +81,19 @@ fi fi if [ -n "$userFiles" ]; then - userBasenames=`for file in $userFiles; do basename $file; done` - for file in $syswideFiles; do + for sysfile in $syswideFiles; do local copyInUserdir=false - + for userfile in $userFiles; do + if [ ! "$userfile" = "$sysfile" ]; then + DebianConffilelist="$DebianConffilelist $sysfile" + fi + done done + DebianConffilelist="$DebianConffilelist $userFiles" else + DebianConffilelist="$syswideFiles" fi + echo $DebianConffilelist } ############################################################################### @@ -158,7 +168,12 @@ { map=$1 file="$2" - egrep "^(MixedMap|Map)[ ]*$map( | |$)" "$file" | awk '{print $1}' | sort | uniq + + if egrep -q "^(MixedMap|Map)[ ]*$map( | |$)" "$file" ; then + egrep "^(MixedMap|Map)[ ]*$map( | |$)" "$file" | awk '{print $1}' | sort | uniq + else + return 1 + fi } @@ -180,16 +195,58 @@ } ############################################################################### +# snippetFileIsWritable (debCnfFile) +# checks whether we are (supposed to be) able to write to a file +############################################################################### +snippetFileIsWritable(){ + local file=$1 + + if DebianSyswideMode; then + return 0 + else + # /etc/texmf/updmap.d shouldn't be hardcoded + if [ "${file#/etc/texmf}" = "${file}" ]; then + # file is not in systemwide dir + return 0 + else + return 1 + fi + fi +} + +############################################################################### +# makeUserCopy (filename) +# create a copy in the user dir +############################################################################### +makeUserCopy(){ + local debCnfFile="$1" + + # create a copy of that file in the user dir + debianuserdir=`FindDebianUserdir` + newdebCnfFile="$debianuserdir/`basename $debCnfFile`" + verboseMsg "Not allowed to handle $map in $debCnfFile." + verboseMsg "Creating copy in $debianuserdir instead." + cp $debCnfFile $newdebCnfFile + echo "$newdebCnfFile" +} + +############################################################################### # findRightMatchfile (mapname,filelist) # find the right file from filelist to enable mapname ############################################################################### findRightMatchfile(){ mapName=$1; shift matchfiles="$@" + local debCnfFile="" + if [ $# -eq 1 ]; then - # it is only one, enable map in it - echo $matchfiles - verboseMsg "Enabling map file in $matchfiles" + # it is only one, enable map in it. May we write it? + debCnfFile=$matchfiles + if ! snippetFileIsWritable $debCnfFile; then + debCnfFile=`makeUserCopy $debCnfFile` + fi + echo $debCnfFile + verboseMsg "Enabling map file in $debCnfFile." return 0 else # there are more than one; @@ -199,7 +256,7 @@ if [ `(set $usermatchfiles; echo $#)` -eq 1 ]; then # exactly one of them is a user-specific file echo $usermatchfiles - verboseMsg "Enabling map file in user-specific file $matchfiles" + verboseMsg "Enabling map file in user-specific file $usermatchfiles." return 0 else # two files in the user directory (as bad as two in the site-wide @@ -289,22 +346,37 @@ ############################################################################### disableMapInner() { +# verboseMsg "entering disableMapInner" map=$1 + noverbose="$2" + oldverbose="$verbose" + if [ -n "$noverbose" ]; then + # don't confuse users with disable messages when they called --enable +# verboseMsg "disabling verbosity" + verbose=false + fi + local mapType if [ -z "$DebianConffilelist" ]; then DebianConffilelist=`createDebianConffilelist` fi - # act on all files that contain an entry + # create list of all files that contain an entry for debCnfFile in $DebianConffilelist; do if mapType=`grepType $map "$debCnfFile"`; then + if ! snippetFileIsWritable $debCnfFile; then + debCnfFile=`makeUserCopy $debCnfFile` + fi # although it's a bug, there might be two types enabled - we disable both for type in $mapType; do + verboseMsg "Disabling $map in $debCnfFile." configReplace "$debCnfFile" "^$type[[:space:]]*$1" "#! $type $1" done fi done + + verbose="$oldverbose" } ############################################################################### @@ -339,7 +411,7 @@ # a map can only have one type, so we carefully disable everything # about map here: - disableMapInner "$mapName" + disableMapInner "$mapName" noverbose # now enable with the right type. # But we have to determine where to enable. _______________________________________________ Pkg-tetex-commits mailing list Pkg-tetex-commits@lists.alioth.debian.org http://lists.alioth.debian.org/mailman/listinfo/pkg-tetex-commits