tags 413397 patch
thanks

Hi Marco,

Ok, the attached patch has the following properties:

- local admin changes are preserved by only removing the entry on package
  purge
- we assume (with reason) that if update-inetd is not present, we're no
  longer responsible for removing any entries from inetd.conf
- the service is disabled on postrm remove.
- the service is /also/ disabled if postrm is called with any other options,
  with unconditional enabling in the postinst; this has the effect of making
  the current version of the package wholly responsible for
  enabling/disabling the service, so that any future version of the package
  which drops support for these particular ports doesn't have to bear the
  responsibility of cleaning up and/or re-adding the service in the event of
  a failed upgrade. (It should, however, still take responsibility for the
  "purge" handling.)
- by using the postrm instead of the prerm, downtime for the service during
  upgrade is kept to a bare mininum within the above constraints.
- the --comment-chars handling for any pre-existing entries for this service
  is preserved; between this and the use of postrm instead of prerm for the
  disabling, this means that the postinst is *not* idempotent with respect
  to dpkg-reconfigure (which calls prerm and postinst only), dpkg -B, or
  failures later in the postinst.

This is not what I would consider ideal update-inetd handling, but it fixes
all of the overt bugs and retains the status quo where any tradeoffs are
concerned.  If it were up to me, I would do away with the special handling
of pre-existing tfido/fido entries in inetd.conf since it seems pretty
improbable to me that a user would have some other version of this service
running, and that would immediately remove all of the idempotency concerns
here.  But I don't think that's a change I should make in an NMU here -- and
as I plan to NMU shortly with this patch, there you have it. :)

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/
diff -u ifmail-2.14tx8.10/debian/changelog ifmail-2.14tx8.10/debian/changelog
--- ifmail-2.14tx8.10/debian/changelog
+++ ifmail-2.14tx8.10/debian/changelog
@@ -1,3 +1,13 @@
+ifmail (2.14tx8.10-19.2) unstable; urgency=high
+
+  * Non-maintainer upload.
+  * High-urgency upload for RC bugfix.
+  * Add missing dependency on update-inetd to ifcico, and fix the 
+    maintainer script handling to only add entries on a new install and 
+    only remove them on purge.  Closes: #413397.
+
+ -- Steve Langasek <[EMAIL PROTECTED]>  Sun, 18 Mar 2007 01:42:26 -0700
+
 ifmail (2.14tx8.10-19.1) unstable; urgency=high
 
   * Non-maintainer upload.
diff -u ifmail-2.14tx8.10/debian/control ifmail-2.14tx8.10/debian/control
--- ifmail-2.14tx8.10/debian/control
+++ ifmail-2.14tx8.10/debian/control
@@ -23,7 +23,7 @@
 
 Package: ifcico
 Architecture: any
-Depends: ${shlibs:Depends}, ifmail
+Depends: ${shlibs:Depends}, ifmail, update-inetd
 Conflicts: suidmanager (<< 0.50)
 Description: Fidonet Technology transport package
  Ifcico is a FidoTech mailer for connecting to other nodes via the phone
diff -u ifmail-2.14tx8.10/debian/ifcico.postrm ifmail-2.14tx8.10/debian/ifcico.postrm
--- ifmail-2.14tx8.10/debian/ifcico.postrm
+++ ifmail-2.14tx8.10/debian/ifcico.postrm
@@ -1,13 +1,17 @@
 #!/bin/sh -e
 
-update-inetd --remove "^tfido"
-update-inetd --comment-chars "#disabled#" --enable tfido
-update-inetd --remove "^fido"
-update-inetd --comment-chars "#disabled#" --enable fido
-
 if [ "$1" = "purge" ]; then
+  if which update-inetd >/dev/null 2>&1; then
+    update-inetd --remove "^tfido.*/usr/lib/ifmail/ifcico"
+    update-inetd --comment-chars "#disabled#" --enable tfido
+    update-inetd --remove "^fido.*/usr/lib/ifmail/ifcico"
+    update-inetd --comment-chars "#disabled#" --enable fido
+  fi
   rm -rf /var/spool/ftn/nl.d/index.dir \
   /var/spool/ftn/nl.d/index.pag  >/dev/null
+else if which update-inetd >/dev/null 2>&1; then
+  update-inetd --disable "^tfido.*/usr/lib/ifmail/ifcico"
+  update-inetd --disable "^fido.*/usr/lib/ifmail/ifcico"
 fi
 
 #DEBHELPER#

Reply via email to