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

Bug#299762: jadetex: Does not preserve user changes upon upgrade



Package: jadetex
Version: 3.13-3.2
Severity: serious
Tags: patch
Justification: Violates policy 10.7.3 

Every time the postinst is called with "configure", be it upon upgrade,
install after remove, or dpkg-reconfigure, the file
/etc/texmf/fmt.d/40jadetex.cnf is restored.  If the file is deleted or
renamed by adding an additional suffix, it is restored.  This violates
Policy 10.7.3, 

,----
| Configuration file handling must conform to the following behavior:
| 
|     * local changes must be preserved during a package upgrade, 
`----

The attached patch fixes this behavior. 40jadetex.cnf is made a
conffile, and just left on the system when jadetex is removed, but not
purged.  fmtutil has no problem with this, it simply ignores formats in
fmtutil.cnf for which the ini files cannot be found.  

I have added one additional feature in the patch: It uses fmtutil-sys if
it is available, fmtutil otherwise.  This is the script to be used with
teTeX-3.0, now in experimental, but it's not important at all, because
I've patched fmtutil in teTeX-3.0 to do the right thing.

Regards, Frank

-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (900, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.4.27
Locale: LANG=de_DE@euro, LC_CTYPE=de_DE@euro (charmap=ISO-8859-15)

Versions of packages jadetex depends on:
ii  debianutils                   2.8.4      Miscellaneous utilities specific t
ii  tetex-bin                     3.0-2      The teTeX binary files
ii  tetex-extra                   3.0-2      Additional library files of teTeX

-- no debconf information

diff -Nur jadetex-3.13.orig/debian/changelog jadetex-3.13/debian/changelog
--- jadetex-3.13.orig/debian/changelog	2005-03-16 08:10:47.000000000 +0100
+++ jadetex-3.13/debian/changelog	2005-03-15 22:30:33.000000000 +0100
@@ -1,11 +1,12 @@
-jadetex (3.13-3) unstable; urgency=low
+jadetex (3.13-3.2) unstable; urgency=low
 
+  * NMU version number for local testing
   * New Maintainer. (Closes: #288204)
   * debian/control: Update Standards-Version.
   * Acknowledge NMU. (Closes: #266630).
   * debian/control: Drop Build-Dependency to openjade1.3, use openjade.
 
- -- OHURA Makoto <ohura@debian.org>  Sat, 15 Jan 2005 16:20:53 +0900
+ -- Frank Küster <frank@debian.org>  Tue, 15 Mar 2005 18:05:45 +0100
 
 jadetex (3.13-2.1) unstable; urgency=high
 
diff -Nur jadetex-3.13.orig/debian/postinst jadetex-3.13/debian/postinst
--- jadetex-3.13.orig/debian/postinst	2005-03-16 08:10:47.000000000 +0100
+++ jadetex-3.13/debian/postinst	2005-03-16 08:14:19.000000000 +0100
@@ -56,8 +56,10 @@
 make_and_check_fmt ( ) {
     local fmt
     fmt=$1
+    fmtutil=fmtutil
+    if [ -x /usr/bin/fmtutil-sys ]; then fmtutil=fmtutil-sys; fi
 
-    if [ ! -f /etc/texmf/jadetex/$fmt.ini ]; then
+    if ! kpsewhich --progname=jadetex jadetex.ini; then
         warn "/etc/texmf/jadetex/$fmt.ini not found, skipping $fmt memory dump"
         warn "If you wish to use JadeTeX, you will have to create the dump manually"
         warn "or else purge then reinstall this package to restore default configuration."
@@ -65,14 +67,9 @@
     elif [ ! -f ${FMTCNF} ]; then
         warn "$FMTCNF is missing but should be there; report this bug please"
         return 1
-    elif ! grep -qw "^$fmt" ${FMTCNF}; then
-        warn "$FMTCNF doesn't contain '$fmt', skipping memory dump"
-        warn "If you wish to use JadeTeX, you will have to create the dump manually"
-        warn "or else purge then reinstall this package to restore default configuration."
-        return 0
     else
-        log "running 'fmtutil --cnffile ${FMTCNF} --byfmt $fmt'..."
-        if ! fmtutil --cnffile ${FMTCNF} --byfmt $fmt >> $MYTMPFILE; then
+        log "running '$fmtutil --byfmt $fmt'..."
+        if ! $fmtutil --byfmt $fmt >> $MYTMPFILE; then
             warn "ERROR: $fmt fmtutil failed"
             return 1
         elif ! kpsewhich $fmt.fmt > /dev/null ; then
@@ -125,30 +122,7 @@
     MYTMPFILE=`mktemp -t jadetex-postinst.XXXXXX`
     : > $MYTMPFILE
 
-    # new fmt.d handling; we have to handle this in postinst rather
-    # than conffiles so that we can disable it when pkg is removed
-    #
-    # first we check if the file or any jadetex.cnf file is already there, 
-    #   if not, is there is a disabled version of the script available?
-    #   if not, is there a globbed version of the disabled file available?
-    #   if not, copy in the file from the template area
-    if [ -f ${FMTDIR}/40jadetex.cnf ]; then
-        :
-    elif ls ${FMTDIR}/*jadetex.cnf 2>/dev/null; then
-        FMTCNF=`ls ${FMTDIR}/*jadetex.cnf | tail -1`
-    elif [ -f ${FMTDIR}/40jadetex.cnf.disable ]; then
-        mv ${FMTDIR}/40jadetex.cnf.disable ${FMTCNF}
-    else
-        OLD=`ls -1 ${FMTDIR}/*jadetex.cnf* 2>/dev/null | tail -1`
-        if [ ${OLD} -a -f ${OLD} ]; then
-            FMTCNF=`echo $OLD | sed -e 's/.cnf.*/.cnf/'`
-            warn "re-enabling $FMTCNF from $OLD"
-            mv ${OLD} ${FMTCNF}
-        else
-            cp ${TEMPLDIR}/fmtutil.cnf ${FMTCNF}
-        fi
-    fi
-
+    # 40jadetex.cnf is now a conffile
     update-fmtutil
     update-texmf
 
diff -Nur jadetex-3.13.orig/debian/rules jadetex-3.13/debian/rules
--- jadetex-3.13.orig/debian/rules	2005-03-16 08:10:47.000000000 +0100
+++ jadetex-3.13/debian/rules	2005-03-15 18:04:35.000000000 +0100
@@ -9,7 +9,7 @@
 docdir		:= $(prefix)/usr/share/doc/$(package)
 mandir		:= $(prefix)/usr/share/man
 texdir		:= $(prefix)/usr/share/texmf/tex/$(package)
-templdir	:= $(texdir)/config-templates
+fmtdir		:= $(prefix)/etc/texmf/fmt.d
 confdir		:= $(prefix)/etc/texmf/$(package)
 texmfdir	:= $(prefix)/etc/texmf/texmf.d
 
@@ -51,7 +51,7 @@
 	rm -rf $(prefix)
 
 	$(make_dir) $(bindir) $(docdir) $(mandir)/man1			\
-	  $(texdir)/base $(confdir) $(templdir) $(texmfdir)
+	  $(texdir)/base $(confdir) $(fmtdir) $(texmfdir)
 
 #	 conffile handling
 	ln -sf /etc/texmf/jadetex $(texdir)/config
@@ -64,7 +64,7 @@
 	echo $(subst $(prefix),,$(texmfdir))/96JadeTeX.cnf     >> debian/conffiles
 
 #	 the fmtutil snippet is managed in the postinst
-	$(install_file) debian/fmtutil.cnf $(templdir)/
+	$(install_file) debian/fmtutil.cnf $(fmtdir)/40jadetex.cnf
 
 	$(install_file)	jadetex.1 pdfjadetex.1 $(mandir)/man1/
 

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

Reply to: