Hi, the patch as in the NMU is in the attachment. (Proposed changes + changelog entry.)
bye, Roland
diff -ruN update-inetd-4.27.orig/debian/changelog update-inetd-4.27/debian/changelog --- update-inetd-4.27.orig/debian/changelog 2006-09-10 12:24:46.000000000 +0200 +++ update-inetd-4.27/debian/changelog 2006-11-12 13:55:03.000000000 +0100 @@ -1,3 +1,11 @@ +update-inetd (4.27-0.1) unstable; urgency=low + + * Non-maintainer upload + * Changes interactive configuration acknowledgements to debconf questions + (Closes: #282147) + + -- Roland Stigge <[EMAIL PROTECTED]> Sun, 12 Nov 2006 13:30:32 +0100 + update-inetd (4.27) unstable; urgency=low * First upload. diff -ruN update-inetd-4.27.orig/debian/control update-inetd-4.27/debian/control --- update-inetd-4.27.orig/debian/control 2006-09-10 21:53:05.000000000 +0200 +++ update-inetd-4.27/debian/control 2006-11-12 13:54:45.000000000 +0100 @@ -10,6 +10,7 @@ Package: update-inetd Architecture: all Conflicts: netbase (<< 4.27) +Depends: debconf Description: inetd.conf updater This package provides a program used by other packages to automatically update /etc/inetd.conf. diff -ruN update-inetd-4.27.orig/debian/postinst update-inetd-4.27/debian/postinst --- update-inetd-4.27.orig/debian/postinst 1970-01-01 01:00:00.000000000 +0100 +++ update-inetd-4.27/debian/postinst 2006-11-12 13:54:45.000000000 +0100 @@ -0,0 +1,9 @@ +#! /bin/sh + +# Abort if any command returns an error value +set -e + +if [ "$1" == "configure" -o "$1" == "reconfigure" ] ; then + . /usr/share/debconf/confmodule + db_capb +fi diff -ruN update-inetd-4.27.orig/debian/rules update-inetd-4.27/debian/rules --- update-inetd-4.27.orig/debian/rules 2006-09-10 21:53:01.000000000 +0200 +++ update-inetd-4.27/debian/rules 2006-11-12 13:54:45.000000000 +0100 @@ -22,6 +22,7 @@ dh_installchangelogs dh_installdocs + dh_installdebconf dh_installman DebianNet.3pm update-inetd.8 dh_compress dh_fixperms diff -ruN update-inetd-4.27.orig/debian/templates update-inetd-4.27/debian/templates --- update-inetd-4.27.orig/debian/templates 1970-01-01 01:00:00.000000000 +0100 +++ update-inetd-4.27/debian/templates 2006-11-12 13:54:45.000000000 +0100 @@ -0,0 +1,37 @@ +Template: update-inetd/ask-several-entries +Type: select +Choices: yes, no +Default: yes +Description: Ignore multiple entries and continue without changes? + There are several entries for ${sservice} in ${inetdcf}. + +Template: update-inetd/ask-entry-present +Type: select +Choices: yes, no +Default: yes +Description: Leave existing entry and continue without changes? + Trying to add the following entry: + . + ${newentry} + . + There is already an entry for ${sservice} in ${inetdcf}, + but I don't recognise it. Here is what it looks like: + . + ${lookslike} + +Template: update-inetd/ask-remove-entries +Type: select +Choices: yes, no +Default: no +Description: Remove inetd entries? + ${inetdcf} contains multiple entries for + the `${service}' service. You're about to remove these entries. + +Template: update-inetd/ask-disable-entries +Type: select +Choices: yes, no +Default: no +Description: Disable inetd entries? + ${inetdcf} contains multiple entries for + the `${service}' service. You're about to disable these entries. + diff -ruN update-inetd-4.27.orig/DebianNet.pm update-inetd-4.27/DebianNet.pm --- update-inetd-4.27.orig/DebianNet.pm 2005-03-21 19:54:31.000000000 +0100 +++ update-inetd-4.27/DebianNet.pm 2006-11-12 13:54:45.000000000 +0100 @@ -14,6 +14,8 @@ require 5.000; +use Debconf::Client::ConfModule ':all'; + $inetdcf="/etc/inetd.conf"; $sep = "#<off># "; $version = "1.11"; @@ -46,12 +48,31 @@ } else { if (grep(m/^$sservice\s+/,@inetd)) { if (grep(m/^$sservice\s+/,@inetd) > 1) { - &inetde("There are several entries for $sservice in $inetdcf\n"); + set("update-inetd/ask-several-entries", "yes"); + fset("update-inetd/ask-several-entries", "seen", "false"); + subst("update-inetd/ask-several-entries", "sservice", "$sservice"); + subst("update-inetd/ask-several-entries", "inetdcf", "$inetdcf"); + input("high", "update-inetd/ask-several-entries"); + @ret = go(); + if ($ret[0] == 0) { + @ret = get("update-inetd/ask-several-entries"); + exit(1) if ($ret[1] !~ m/y/i); + } } elsif (!grep(m:^#?.*$searchentry.*:, @inetd)) { - print"\nTrying to add the following entry:\n\n $newentry\n\n"; - &inetde("There is already an entry for $sservice in $inetdcf, -but I don't recognise it. Here is what it looks like:\n - ".join(' ',grep(m/^$sservice\s+/,@inetd))); + set("update-inetd/ask-entry-present", "yes"); + fset("update-inetd/ask-entry-present", "seen", "false"); + subst("update-inetd/ask-entry-present", "newentry", "$newentry"); + subst("update-inetd/ask-entry-present", "sservice", "$sservice"); + subst("update-inetd/ask-entry-present", "inetdcf", "$inetdcf"); + my $lookslike = (grep(m/^$sservice\s+/,@inetd))[0]; + $lookslike =~ s/\n//g; + subst("update-inetd/ask-entry-present", "lookslike", "$lookslike"); + input("high", "update-inetd/ask-entry-present"); + @ret = go(); + if ($ret[0] == 0) { + @ret = get("update-inetd/ask-entry-present"); + exit(1) if ($ret[1] !~ m/y/i); + } } } elsif (grep(m/^#\s*$sservice\s+/, @inetd) >= 1 or (($service =~ s/^#//) and grep(m/^$service\s+/, @inetd)>=1)) { @@ -90,17 +111,6 @@ } } - sub inetde { - my($response); - do { - print @_, -"\nDo you want to ignore this potential problem and continue, or would -you rather not do so now ? Continue? (n/y) "; - $!=0; defined($response=<STDIN>) || die "netconfig: EOF/error on stdin: $!\n"; - } while ($response !~ m/^\s*[yn]?\s*$/i); - return(1) if($response =~ m/y/i); - exit(1); - } return(1); } @@ -109,21 +119,20 @@ unless(defined($service)) { return(-1) }; chomp($service); if($service eq "") { - print "DebianNet::remove_service called with empty argument\n"; + print STDERR "DebianNet::remove_service called with empty argument\n"; return(-1); } if ((&scan_entries("$service") > 1) and (not defined($multi))) { - print "\nWARNING!!!!!! $inetdcf contains multiple entries for \n"; - print "the \`$service' service. You're about to remove these entries.\n"; - print "Do you want to continue? [n] "; - if (<STDIN> =~ /^[^y]/i) { - print "\nOk, I'll stop ...\n"; - return(1); - } else { - if ($want_continue == 0) { - print "\nOk, I'll continue ...\n"; - } + set("update-inetd/ask-remove-entries", "no"); + fset("update-inetd/ask-remove-entries", "seen", "false"); + subst("update-inetd/ask-remove-entries", "service", "$service"); + subst("update-inetd/ask-remove-entries", "inetdcf", "$inetdcf"); + input("high", "update-inetd/ask-remove-entries"); + @ret = go(); + if ($ret[0] == 0) { + @ret = get("update-inetd/ask-remove-entries"); + return(1) if ($ret[1] =~ /^[^y]/i); } } @@ -154,16 +163,15 @@ chomp($service); if ((&scan_entries("$service", $pattern) > 1) and (not defined($multi))) { - print "\nWARNING!!!!!! $inetdcf contains multiple entries for \n"; - print "the \`$service' service. You're about to disable these entries.\n"; - print "Do you want to continue? [n] "; - if (<STDIN> =~ /^[^y]/i) { - print "\nOk, I'll stop ...\n"; - return(1); - } else { - if ($want_continue == 0) { - print "\nOk, I'll continue ...\n"; - } + set("update-inetd/ask-disable-entries", "no"); + fset("update-inetd/ask-disable-entries", "seen", "false"); + subst("update-inetd/ask-disable-entries", "service", "$service"); + subst("update-inetd/ask-disable-entries", "inetdcf", "$inetdcf"); + input("high", "update-inetd/ask-disable-entries"); + @ret = go(); + if ($ret[0] == 0) { + @ret = get("update-inetd/ask-disable-entries"); + return(1) if ($ret[1] =~ /^[^y]/i); } } @@ -240,7 +248,7 @@ } sub printv { - print @_ if (defined($verbose)); + print STDERR @_ if (defined($verbose)); } 1; diff -ruN update-inetd-4.27.orig/update-inetd update-inetd-4.27/update-inetd --- update-inetd-4.27.orig/update-inetd 2005-03-21 19:21:53.000000000 +0100 +++ update-inetd-4.27/update-inetd 2006-11-12 13:54:45.000000000 +0100 @@ -22,15 +22,6 @@ require 5.000; require DebianNet; -# hack to make update-inetd work in a script which calls debconf -if($ENV{DEBIAN_HAS_FRONTEND}) { - my $file = ($ENV{DEBIAN_FRONTEND} eq 'noninteractive') ? - '/dev/null' : '/dev/tty'; # see 4.13 changelog entry - open(STDIN, "<$file") or die "Couldn't reopen stdin($file): $!"; - open(STDOUT, ">$file") or die "Couldn't reopen stdout($file): $!"; - open(STDERR, ">$file") or die "Couldn't reopen stderr($file): $!"; -} - $| = 1; $version = "1.12"; @@ -73,8 +64,8 @@ $pattern = shift(@ARGV); die "$0: Option \`--pattern' requires an argument\n" unless ($pattern and not ($pattern =~ m/^--/)); } else { - print "$0: Unknown option: $_\n"; - print "Try \`$0 --help' for more information.\n"; + print STDERR "$0: Unknown option: $_\n"; + print STDERR "Try \`$0 --help' for more information.\n"; exit(1); } } @@ -86,29 +77,29 @@ # die "You must be root to run this script.\n" if ($> != 0); if ($#ARGV > 0) { - print "Too many arguments!\n"; + print STDERR "Too many arguments!\n"; } elsif ($#ARGV == -1) { - print "Too few arguments!\n"; + print STDERR "Too few arguments!\n"; } else { $modearg = $ARGV[0]; die "The service name may not include a whitespace character!\n" if (($mode eq "enable" or $mode eq "disable") and ($modearg =~ /\s+|\\t/)); die "The entry definition does not contain any whitespace characters!\n" if ($mode eq "add" and not ($modearg =~ /\s+|\\t/)); } -print "Processing $DebianNet::inetdcf\n" if (defined($DebianNet::verbose)); -print "Using mode \"$mode\", group \"$group\", pattern \"$pattern\" and seperator \"$DebianNet::sep\"\n" if (defined($debug)); -print "Multiple remove/disable: $DebianNet::multi\n" if (defined($debug) and defined($DebianNet::multi)); -print "ARGUMENT: $modearg\n" if (defined($debug)); +print STDERR "Processing $DebianNet::inetdcf\n" if (defined($DebianNet::verbose)); +print STDERR "Using mode \"$mode\", group \"$group\", pattern \"$pattern\" and seperator \"$DebianNet::sep\"\n" if (defined($debug)); +print STDERR "Multiple remove/disable: $DebianNet::multi\n" if (defined($debug) and defined($DebianNet::multi)); +print STDERR "ARGUMENT: $modearg\n" if (defined($debug)); if ($mode eq "add") { if (( -f "/etc/xinetd.conf" ) && ( -x "/usr/sbin/xinetd" )) { - print "--------- IMPORTANT INFORMATION FOR XINETD USERS ----------\n"; - print "The following line will be added to your /etc/inetd.conf file:\n\n"; - print "$modearg\n\n"; - print "If you are indeed using xinetd, you will have to convert the\n"; - print "above into /etc/xinetd.conf format, and add it manually. See\n"; - print "/usr/share/doc/xinetd/README.Debian for more information.\n"; - print "-----------------------------------------------------------\n\n"; + print STDERR "--------- IMPORTANT INFORMATION FOR XINETD USERS ----------\n"; + print STDERR "The following line will be added to your /etc/inetd.conf file:\n\n"; + print STDERR "$modearg\n\n"; + print STDERR "If you are indeed using xinetd, you will have to convert the\n"; + print STDERR "above into /etc/xinetd.conf format, and add it manually. See\n"; + print STDERR "/usr/share/doc/xinetd/README.Debian for more information.\n"; + print STDERR "-----------------------------------------------------------\n\n"; } DebianNet::add_service($modearg, $group); @@ -131,13 +122,13 @@ } sub version { - print "$0 $version\n"; - print "DebianNet module $DebianNet::version\n"; + print STDERR "$0 $version\n"; + print STDERR "DebianNet module $DebianNet::version\n"; exit(0); } sub usage { - print <<EOF; + print STDERR <<EOF; Usage: $0 [OPTION] MODE ARGUMENT Options: