Dear release managers, if there is anything I can do about the following unblock requests please let me know.
THe package is now 10 days in unstable. On Mo, 26 Nov 2012, Norbert Preining wrote: > Package: release.debian.org > Severity: normal > User: release.debian....@packages.debian.org > Usertags: unblock > > Dear release managers, > > as a follow up to the many emails that went around the RC bug #669382 > I have now uploaded a fix for it that is radical, but it is the way > to go, IMNHO. > > The problem with the mentioned bug was that mktexlsr was called in > some unprotected ways. Normally packages use dh_installtex (from > tex-common) to auto-generate necessary maintainer script snippets. > These packages are all fine. > > latex209 packages (-base, -bin) were in a state since long with hand > written maintainer scripts, probably long before dh_installtex was > conceived, but properly handling these case is tiresome. > Furthermore, also the format handling (latex format based on the > shipped files) was hand written and did not conform to the standards > set forth in tex-common. > > After email contact with the current maintainer TSUCHIYA Masatoshi > he agreed to hand over the package to the Debian TeX Group, and I have > prepared a package that fixes this bug by the following actions: > latex209 (25.mar.1992-13) unstable; urgency=low > > * Take over maintenance into the Debian TeX Group > * 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 <prein...@debian.org> Tue, 13 Nov 2012 14:50:17 +0900 > > > Let us look at the actual code (dropping trivialities like the > control changes to maintainers etc). We have to deal with two > things: > 1* auto-generation of mktexlsr and format generation calls > 2* take over old postinst-generated configuration files without > necessarily bothering the admin > > > First of all we dropped > postinst, postrm > for both packages and changed the rules files to include the necessary > calls to dh_installtex: > 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-11-13 14:52:53.000000000 +0900 > @@ -22,7 +22,9 @@ > rm -f build-stamp > dh_clean > > -build: build-stamp > +build: build-arch build-indep > +build-arch: build-stamp > +build-indep: build-stamp > build-stamp: > touch $@ > > @@ -46,6 +48,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 +58,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 > > > The second call links to the new file debian/latex209.cnf. THis file > was previously generated in the postinst and removed/renamed in the > prerm scripts of the latex209-bin packages. > 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-11-13 14:52:53.000000000 > +0900 > @@ -0,0 +1,6 @@ > +# > +# LaTeX 2.09 > +# > +# format engine pattern-file arguments > +latex209 tex - latex209.ini > + > > > Finally, we added one preinst script that tries to carry over information > from the old package to the new package without asking unnecessary > questions to the user: > > +#!/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 > + > + > > > > This way we make sure that only if the admin has changed something in > the configuration file he will get asked questions about upgrade. > > ------------------- > > Although it is a rather bulky debdiff for a unblock, I still hope to > get these changes as fixes for the above mentioned rc bug into testing. > > Thanks a lot for your understanding, and don't hesitate to ask me > if you have any further questions. > > The full debdiff is attached. > > Norbert > > > > unblock latex209/25.mar.1992-13 > > -- System Information: > Debian Release: wheezy/sid > APT prefers unstable > APT policy: (500, 'unstable'), (1, 'experimental') > Architecture: amd64 (x86_64) > > Kernel: Linux 3.7.0-rc6+ (SMP w/4 CPU cores; PREEMPT) > Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) > Shell: /bin/sh linked to /bin/bash > 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-11-13 14:52:53.000000000 > +0900 > @@ -1,3 +1,15 @@ > +latex209 (25.mar.1992-13) unstable; urgency=low > + > + * Take over maintenance into the Debian TeX Group > + * 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 <prein...@debian.org> Tue, 13 Nov 2012 14:50:17 +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-11-13 14:52:53.000000000 > +0900 > @@ -1,10 +1,10 @@ > Source: latex209 > Section: tex > Priority: optional > -Maintainer: TSUCHIYA Masatoshi <tsuch...@namazu.org> > -Build-Depends: debhelper (>> 5.0.0) > +Maintainer: Debian TeX maintainers <debian-tex-ma...@lists.debian.org> > +Build-Depends: debhelper (>> 5.0.0), tex-common (>= 3) > Standards-Version: 3.8.4 > -Uploaders: Atsuhito Kohda <ko...@debian.org> > +Uploaders: Atsuhito Kohda <ko...@debian.org>, Norbert Preining > <prein...@debian.org> > > Package: latex209-base > Architecture: all > diff -Nru latex209-25.mar.1992/debian/copyright > latex209-25.mar.1992/debian/copyright > --- latex209-25.mar.1992/debian/copyright 2010-04-06 09:44:17.000000000 > +0900 > +++ latex209-25.mar.1992/debian/copyright 2012-11-13 14:52:53.000000000 > +0900 > @@ -1,8 +1,8 @@ > This package was debianized by Nakahara Hayao > <nakah...@mis.hiroshima-u.ac.jp> > for Debian JP Project on Sat, 29 Nov 1997 19:33:58 +0900. > > -Currently maintained by TSUCHIYA Masatoshi <tsuch...@namazu.org>, who > -is sponsored by Masayuki Hatta <mha...@debian.org>. > +Currently maintained by the Debian TeX Maintainer, > +former maintainer was TSUCHIYA Masatoshi <tsuch...@namazu.org>. > > It was downloaded from ftp.riken.go.jp (one of CTAN sites). > URL is > ftp://ftp.riken.go.jp/pub/tex-archive/obsolete/macros/latex209/distribs/latex209.tar > 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-11-13 > 14:52:53.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-11-13 14:52:53.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-11-13 14:52:53.000000000 +0900 > @@ -22,7 +22,9 @@ > rm -f build-stamp > dh_clean > > -build: build-stamp > +build: build-arch build-indep > +build-arch: build-stamp > +build-indep: build-stamp > build-stamp: > touch $@ > > @@ -46,6 +48,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 +58,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 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 ------------------------------------------------------------------------ HOYLAKE (n.) The pool of edible gravy which surrounds an inedible and disgusting lump of meat - eaten to give the impression that the person is 'just not very hungry, but mmm this is delicious'. Cf. Peaslake - a similar experience had by vegetarians. --- Douglas Adams, The Meaning of Liff -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org