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

Re: Bug#343545: tetex-bin: config fails; updmap cannot find arabtex.map



reassign 343545 arabtex
tags 343545 patch
thanks

Hi Clint,

Frank Küster <frank@debian.org> wrote:

> It's a bug in arabtex, but in fact it's the code
> that Norbert and I suggested that causes the problem.  This is what
> happens:
>
> - arabtex 3.11-7 has its map file in /etc/texmf/dvips/map/arabtex.map,
>   and an updmap.cfg snippet in /etc/texmf/updmap.d/10arabtex.cfg that
>   references that map file.  But the magic comment is missing in
>   10arabtex.cfg in 3.11-7
>
> - before arabtex is unpacked, the preinst detects that arabtex.map is
>   unchanged and removes it
>
> - arabtex and the tetex apckages are unpacked, the new arabtex.map is
>   still arabtex.map.dpkg-new, and the new 10arabtex.cfg (with the magic
>   comment) is still 10arabtex.cfg.dpkg-new, while the old 10arabtex.cfg
>   is still there
>
> - tetex-bin is configured and runs update-updmap and updmap, and now it
>   looks for arabtex.map but cannot find it.
>
> So far for the analysis.  I don't have enough time to think of a clean
> solution.  Maybe, since the conffile placements change, anyway, we
> should do the removals and moves in postinst?

Not the moves, since then we would overwrite the conffiles after dpkg
has moved them from *.dpkg-new to the real name, but we can keep the old
file until the postinst is run; we just have to remove it before updmap
is called.

So I propose the attached patch, and we should document this in the TeX
Policy, too.

Regards, Frank
-- 
Frank Küster
Inst. f. Biochemie der Univ. Zürich
Debian Developer

diff -Nur arabtex-3.11.orig/debian/postinst arabtex-3.11/debian/postinst
--- arabtex-3.11.orig/debian/postinst	2005-12-17 11:23:57.392918104 +0100
+++ arabtex-3.11/debian/postinst	2005-12-16 18:10:21.000000000 +0100
@@ -13,8 +13,22 @@
     return 0
 }
 
+remove_oldconffile(){
+  file="$1"
+  dir=`dirname $file`
+  if [ -f $file ]; then
+    echo "Removing obsolete, unchanged conffile $file"
+    rm $file
+  fi
+  rmdir $dir 2>/dev/null || true
+}
+
 case "$1" in
-    configure|abort-upgrade|abort-remove|abort-deconfigure)
+    configure)
+        remove_oldconffile /etc/texmf/dvips/arabtex.map
+        update_fontmaps
+    ;;
+    abort-upgrade|abort-remove|abort-deconfigure)
         update_fontmaps
     ;;
 
diff -Nur arabtex-3.11.orig/debian/preinst arabtex-3.11/debian/preinst
--- arabtex-3.11.orig/debian/preinst	2005-12-17 11:23:57.392918104 +0100
+++ arabtex-3.11/debian/preinst	2005-12-17 11:25:35.374022712 +0100
@@ -12,8 +12,7 @@
     oldloc=`dirname $1`
     newmd5sum=`md5sum $oldfile |  cut -d ' ' -f 1`
     if [ "$newmd5sum" = "$oldmd5sum" ] ; then
-        echo "Removing obsolete, unchanged conffile $oldfile"
-        rm $oldfile
+      :
     else
         if [ "X$newloc" = "X" ] ; then
             echo "Conffile $oldfile was changed, leaving it at the same place"

Reply to: