Control: tags -1 + patch [Ludovic Drolez] > Yes proper auto-configuration of this package is a nightmare, maybe the > better is to drop all auto-config and suggest people to manually > configure it.
Probably not. Here is a draft patch (untested) which make sure the atftpd.config script load the current settings from /etc/ before asking during installation and upgrades, to ensure the current settings on disk do not change. I'm a but unsure how robust the inetd option loading is, but suspect it should work. I disabled the rewrite of /etc/logrotate.d/atftpd, as I am not quite sure how to do that best. It might be good to print a warning if the log file name is changed. -- Happy hacking Petter Reinholdtsen
diff --git a/debian/atftpd.config b/debian/atftpd.config index 46acf03..b19ae22 100644 --- a/debian/atftpd.config +++ b/debian/atftpd.config @@ -3,6 +3,46 @@ . /usr/share/debconf/confmodule db_version 2.0 +opts2debconf() { + while "$1" ; do + case "$opt" in + --daemon) ;; + --port) db_set atftpd/port "$2"; shift ;; + --tftpd-timeout) db_set atftpd/tftpd-timeout "$2"; shift ;; + --retry-timeout) db_set atftpd/retry-timeout "$2"; shift ;; + --maxthread) db_set atftpd/maxthread "$2"; shift ;; + --no-timeout) db_set atftpd/timeout "false"; shift ;; + --no-tsize) db_set atftpd/tsize "false"; shift ;; + --no-blksize) db_set atftpd/blksize "false"; shift ;; + --no-multicast) db_set atftpd/multicast "false"; shift ;; + --mcast-port) db_set atftpd/mcast_port "$2"; shift ;; + --mcast-addr) db_set atftpd/mcast_addr "$2"; shift ;; + --mcast-ttl) db_set atftpd/ttl "$2"; shift ;; + --verbose=*) + db_set atftpd/verbosity $(echo "$1" | cut -d= -f2-) + ;; + --logfile) + db_set atftpd/logtofile true + db_set atftpd/logfile "$2" + ;; + /*) db_set atftpd/basedir "$1" ;; + esac + shift + done +} + +# Load current settings from file +if [ -f /etc/default/atftpd ]; then + . /etc/default/atftpd + db_set atftpd/use_inetd "$USE_INETD" + if [ "$USE_INETD" = "false" ]; then + opts2debconf $OPTIONS + else + # FIXME should work with xinetd too + INETOPTS="$(grep /usr/sbin/in.tftpd /etc/inetd.conf | sed 's%.*/usr/sbin/in.tftpd %%')" + opts2debconf $INETOPTS + fi +fi # Do not ask if you need to configure atftp (Bug#266329) #db_beginblock diff --git a/debian/atftpd.postinst b/debian/atftpd.postinst index 6a8d0cc..c07dbc6 100644 --- a/debian/atftpd.postinst +++ b/debian/atftpd.postinst @@ -94,8 +94,9 @@ db_version 2.0 chown nobody:nogroup $RET chmod 640 $RET fi - # modify the logrotate file - cat >/etc/logrotate.d/atftpd <<EOF + # create the logrotate file + if [ ! -f /etc/logrotate.d/atftpd ] ; then + cat >/etc/logrotate.d/atftpd <<EOF $RET { daily rotate 5 @@ -104,6 +105,7 @@ $RET { missingok } EOF + fi fi else LOGFILE=""