On Do, 20 Sep 2012, Hideki Yamane wrote:
> > I am currently testing such an approach, but I am not sure what is the
> > better option for getting it into wheezy ...
Did loads of tests now:
install from purged state: ok
update from old installed/unchanged: ok
update from old removed/unchanged: ok
update from old install/changed: debconf question
update from old removed/changed (in .bak): debconf question
I have added a bit of code to
latex209-bin.preinst
to make sure that debconf is asking only in actually changed cases.
THe new conffile has an additional header (necessary) and that
should not create debconf questions.
Attached is a debdiff, if someone has interest.
Best wishes
Norbert
------------------------------------------------------------------------
Norbert Preining preining@{jaist.ac.jp, logic.at, debian.org}
JAIST, Japan TeX Live & Debian Developer
DSA: 0x09C5B094 fp: 14DF 2E6C 0307 BE6D AD76 A9C0 D2BF 4AA3 09C5 B094
------------------------------------------------------------------------
BEALINGS
The unsavoury parts of a moat which a knight has to pour out of his
armour after being the victim of an araglin (q.v.). In medieval
Flanders, soup made from bealins was a very slightly sought-after
delicacy.
--- Douglas Adams, The Meaning of Liff
diff -Nru latex209-25.mar.1992/debian/changelog latex209-25.mar.1992/debian/changelog
--- latex209-25.mar.1992/debian/changelog 2012-05-18 15:08:59.000000000 +0900
+++ latex209-25.mar.1992/debian/changelog 2012-09-20 14:26:01.000000000 +0900
@@ -1,3 +1,15 @@
+latex209 (25.mar.1992-12.6) UNRELEASED; urgency=low
+
+ * Non-maintainer upload.
+ * fix RC bug (Closes: #669382) (create files that are not removed) by:
+ - remove all maintainer scripts
+ - create the necessary code with dh_installtex
+ - add necessary build-dep on tex-common
+ * add latex209-bin.preinst to fix up old conffile so that debconf does
+ not ask unnecessary questions
+
+ -- Norbert Preining <[email protected]> Thu, 20 Sep 2012 14:24:28 +0900
+
latex209 (25.mar.1992-12.5) unstable; urgency=low
* Non-maintainer upload.
diff -Nru latex209-25.mar.1992/debian/control latex209-25.mar.1992/debian/control
--- latex209-25.mar.1992/debian/control 2012-05-15 15:25:27.000000000 +0900
+++ latex209-25.mar.1992/debian/control 2012-09-20 14:24:26.000000000 +0900
@@ -2,7 +2,7 @@
Section: tex
Priority: optional
Maintainer: TSUCHIYA Masatoshi <[email protected]>
-Build-Depends: debhelper (>> 5.0.0)
+Build-Depends: debhelper (>> 5.0.0), tex-common (>= 3)
Standards-Version: 3.8.4
Uploaders: Atsuhito Kohda <[email protected]>
diff -Nru latex209-25.mar.1992/debian/latex209-base.postinst latex209-25.mar.1992/debian/latex209-base.postinst
--- latex209-25.mar.1992/debian/latex209-base.postinst 2012-05-15 15:17:15.000000000 +0900
+++ latex209-25.mar.1992/debian/latex209-base.postinst 1970-01-01 09:00:00.000000000 +0900
@@ -1,44 +0,0 @@
-#! /bin/sh
-# postinst script for latex209-base
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-TEXMF=/usr/share/texmf
-
-case "$1" in
- configure)
- mktexlsr $TEXMF
- ;;
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff -Nru latex209-25.mar.1992/debian/latex209-base.postrm latex209-25.mar.1992/debian/latex209-base.postrm
--- latex209-25.mar.1992/debian/latex209-base.postrm 2012-05-15 15:16:28.000000000 +0900
+++ latex209-25.mar.1992/debian/latex209-base.postrm 1970-01-01 09:00:00.000000000 +0900
@@ -1,39 +0,0 @@
-#! /bin/sh
-# postrm script for latex209-base
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postrm> `remove'
-# * <postrm> `purge'
-# * <old-postrm> `upgrade' <new-version>
-# * <new-postrm> `failed-upgrade' <old-version>
-# * <new-postrm> `abort-install'
-# * <new-postrm> `abort-install' <old-version>
-# * <new-postrm> `abort-upgrade' <old-version>
-# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
-# for details, see /usr/doc/packaging-manual/
-
-TEXMF=/usr/share/texmf
-
-case "$1" in
- remove|purge)
- if [ -x /usr/bin/mktexlsr ]; then
- mktexlsr $TEXMF
- fi
- ;;
- upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- ;;
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 0
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff -Nru latex209-25.mar.1992/debian/latex209-bin.postinst latex209-25.mar.1992/debian/latex209-bin.postinst
--- latex209-25.mar.1992/debian/latex209-bin.postinst 2010-04-07 20:51:51.000000000 +0900
+++ latex209-25.mar.1992/debian/latex209-bin.postinst 1970-01-01 09:00:00.000000000 +0900
@@ -1,86 +0,0 @@
-#! /bin/sh
-# postinst script for latex209-bin
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/doc/packaging-manual/
-#
-# quoting from the policy:
-# Any necessary prompting should almost always be confined to the
-# post-installation script, and should be protected with a conditional
-# so that unnecessary prompting doesn't happen if a package's
-# installation fails and the `postinst' is called with `abort-upgrade',
-# `abort-remove' or `abort-deconfigure'.
-
-update_fmtutil()
-{
- d=/etc/texmf/fmt.d
- f=${d}/25latex209.cnf
- b=${d}/25latex209.bak
- if [ ! -f ${f} ] ; then
- if [ -f ${b} ] ; then
- echo "Preserved \`25latex209.bak' is found."
- mv -f ${b} ${f}
- else
- cat <<EOF >${f}
-#
-# LaTeX 2.09
-#
-# format engine pattern-file arguments
-latex209 tex - latex209.ini
-
-EOF
- fi
- fi
- update-fmtutil
-}
-
-make_format()
-{
- if [ -x /usr/bin/fmtutil-sys ]; then
- UTIL=fmtutil-sys
- else
- UTIL=fmtutil
- fi
- target=$1
- formats=/var/lib/texmf/web2c/tex
- echo "Make the format file of \`${target}'. This may take some time. ..."
- if ( ${UTIL} --byfmt ${target} ) ; then
- ${MT_MKTEXUPD=`kpsewhich --format='web2c files' mktexupd`} \
- ${formats} ${target}.fmt
- echo "The format file of \`${target}' is built successfully." 1>&2
- else
- echo "The format file of \`${target}' is NOT built successfully." 1>&2
- exit 1
- fi
-}
-
-case "$1" in
- configure)
- update_fmtutil
- make_format latex209
- ;;
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff -Nru latex209-25.mar.1992/debian/latex209-bin.postrm latex209-25.mar.1992/debian/latex209-bin.postrm
--- latex209-25.mar.1992/debian/latex209-bin.postrm 2010-04-06 10:50:14.000000000 +0900
+++ latex209-25.mar.1992/debian/latex209-bin.postrm 1970-01-01 09:00:00.000000000 +0900
@@ -1,48 +0,0 @@
-#!/bin/sh
-# postrm script for latex209-bin
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postrm> `remove'
-# * <postrm> `purge'
-# * <old-postrm> `upgrade' <new-version>
-# * <new-postrm> `failed-upgrade' <old-version>
-# * <new-postrm> `abort-install'
-# * <new-postrm> `abort-install' <old-version>
-# * <new-postrm> `abort-upgrade' <old-version>
-# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
-# for details, see /usr/doc/packaging-manual/
-
-case "$1" in
- purge)
- rm -f /etc/texmf/fmt.d/25latex209.cnf
- rm -f /etc/texmf/fmt.d/25latex209.bak
- if [ -x /usr/sbin/update-fmtutil ]; then
- update-fmtutil
- fi
- ;;
- remove)
- if [ -f /etc/texmf/fmt.d/25latex209.cnf ] ; then
- mv -f /etc/texmf/fmt.d/25latex209.cnf /etc/texmf/fmt.d/25latex209.bak
- fi
- if [ -x /usr/sbin/update-fmtutil ]; then
- update-fmtutil
- fi
- ;;
- upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
- ;;
- *)
- echo "postrm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff -Nru latex209-25.mar.1992/debian/latex209-bin.preinst latex209-25.mar.1992/debian/latex209-bin.preinst
--- latex209-25.mar.1992/debian/latex209-bin.preinst 1970-01-01 09:00:00.000000000 +0900
+++ latex209-25.mar.1992/debian/latex209-bin.preinst 2012-09-20 14:19:43.000000000 +0900
@@ -0,0 +1,63 @@
+#!/bin/sh -e
+#
+# latex209-bin preinst script
+#
+#
+
+# if the config file from previous versions is present and matches the
+# md5sum, add the new dh_installtex header to make sure that no debconf
+# questions are asked, otherwise just let the user decide.
+#
+
+cnffile=/etc/texmf/fmt.d/25latex209.cnf
+bakfile=/etc/texmf/fmt.d/25latex209.bak
+correctmd=7c958ab4f8bf7a0080bc46c48d137bd1
+
+fix_it_up=0
+
+case "$1" in
+ upgrade|install)
+ old_version=$2
+ if [ -n "$old_version" ] && dpkg --compare-versions "$old_version" lt 25.mar.1992-12.6 ; then
+ if [ -r $cnffile ] ; then
+ # if an old conffile is found and matches the md5 sum, we fix it up
+ # otherwise we leave it alone
+ oldmd=`md5sum $cnffile | sed -e 's/ .*//'`
+ if [ "$oldmd" = $correctmd ] ; then
+ fix_it_up=1
+ fi
+ elif [ -r $bakfile ] ; then
+ # if the backup file is found, and matches the md5 sum, we simply delete
+ # it, as it will be reinstatiated by dpkg
+ oldmd=`md5sum $bakfile | sed -e 's/ .*//'`
+ if [ "$oldmd" = $correctmd ] ; then
+ rm $bakfile
+ else
+ mv $bakfile $cnffile
+ fi
+ fi
+
+ if [ $fix_it_up = 1 ] ; then
+ echo '# 25latex209.cnf
+# You can change/add entries to this file and changes will be preserved
+# over upgrades, even if you have removed the main package prior
+# (not if you purged it). You should leave the following pseudo comment
+# present in the file!
+# -_- DebPkgProvidedMaps -_-
+#
+#
+# LaTeX 2.09
+#
+# format engine pattern-file arguments
+latex209 tex - latex209.ini
+' > $cnffile
+ fi
+ fi
+ ;;
+esac
+
+#DEBHELPER#
+
+exit 0
+
+
diff -Nru latex209-25.mar.1992/debian/latex209-bin.prerm latex209-25.mar.1992/debian/latex209-bin.prerm
--- latex209-25.mar.1992/debian/latex209-bin.prerm 2010-04-06 10:50:48.000000000 +0900
+++ latex209-25.mar.1992/debian/latex209-bin.prerm 1970-01-01 09:00:00.000000000 +0900
@@ -1,39 +0,0 @@
-#!/bin/sh
-# prerm script for latex209-bin
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see /usr/share/doc/packaging-manual/
-
-case "$1" in
- remove|upgrade|deconfigure)
- rm -f /var/lib/texmf/web2c/latex209.fmt
- rm -f /var/lib/texmf/web2c/latex209.log
- if [ -x /usr/bin/mktexlsr ]; then
- mktexlsr
- fi
- ;;
- failed-upgrade)
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 0
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff -Nru latex209-25.mar.1992/debian/latex209.cnf latex209-25.mar.1992/debian/latex209.cnf
--- latex209-25.mar.1992/debian/latex209.cnf 1970-01-01 09:00:00.000000000 +0900
+++ latex209-25.mar.1992/debian/latex209.cnf 2012-09-20 13:31:19.000000000 +0900
@@ -0,0 +1,6 @@
+#
+# LaTeX 2.09
+#
+# format engine pattern-file arguments
+latex209 tex - latex209.ini
+
diff -Nru latex209-25.mar.1992/debian/rules latex209-25.mar.1992/debian/rules
--- latex209-25.mar.1992/debian/rules 2012-05-18 14:45:45.000000000 +0900
+++ latex209-25.mar.1992/debian/rules 2012-09-20 09:26:11.000000000 +0900
@@ -46,6 +46,7 @@
mv $(BASE)/splain.tex $(INI)
mv $(BASE)/latex.ins $(DOC)
cp -p readme.* $(DOC)
+ dh_installtex
install-bin: prefix=$(CURDIR)/debian/latex209-bin/usr
install-bin: DH_OPTIONS=-platex209-bin
@@ -55,6 +56,8 @@
dh_testroot
mkdir -p $(BIN)
cd $(BIN) && ln -s tex latex209
+ dh_installtex --priority=25 formatfile=debian/latex209.cnf \
+ --flavor=format:no_links
install-src: prefix=$(CURDIR)/debian/latex209-src/usr
install-src: DH_OPTIONS=-platex209-src