On 14.04.16 Florian Ernst (f...@lf.net) wrote: Hi Flo,
I'm trying to understand the problem. > please consider the following (abridged) transcript of trying to run > proftpd-basic from inetd, but ending up having it running standalone: > > root@testvz12:~# debconf-get-selections | grep proftpd || echo '# no match' > # no match > root@testvz12:~# echo 'proftpd-basic shared/proftpd/inetd_or_standalone > select from inetd' | debconf-set-selections > root@testvz12:~# debconf-get-selections | grep proftpd || echo '# no match' > proftpd-basic shared/proftpd/inetd_or_standalone select from inetd > root@testvz12:~# apt-get install -y openbsd-inetd > [...] > root@testvz12:~# DEBIAN_FRONTEND=noninteractive apt-get install -y > proftpd-basic > [...] > root@testvz12:~# debconf-get-selections | grep proftpd || echo '# no match' > # Run proftpd: > proftpd-basic shared/proftpd/inetd_or_standalone select standalone > root@testvz12:~# ps auxww | grep '[p]roftpd' > proftpd 2138 0.0 0.2 119900 2524 ? Ss 11:28 0:00 proftpd: > (accepting connections) > root@testvz12:~# netstat -tulpen | grep 21 > tcp6 0 0 :::21 :::* LISTEN > 108 1069993275 2138/proftpd: (acce > > As you can see, the preseeding had no effect. This is due to > /var/lib/dpkg/info/proftpd-basic.config unconditionally calling > "db_set shared/proftpd/inetd_or_standalone standalone" before calling > "db_input high shared/proftpd/inetd_or_standalone", thus overwriting any > previous setting. JFTR, apparently it was debbug#707689 which triggered > adding the explicit db_set. > The patch which "solved" the problem was [1] diff --git a/debian/proftpd-basic.config b/debian/proftpd-basic.config index 9e3b174..d787c4e 100644 --- a/debian/proftpd-basic.config +++ b/debian/proftpd-basic.config @@ -9,6 +9,7 @@ action=$1 version=$2 db_title ProFTPD configuration - +db_set shared/proftpd/inetd_or_standalone standalone db_input high shared/proftpd/inetd_or_standalone || true -db_go +db_go || true + As you already noticed it introduced a simple default before even the question was asked what the end user expects. Unfortunately I'm failing to understand why this change was introduced. At this time we had a template file with a default configured [2]: Template: shared/proftpd/inetd_or_standalone Type: select __Choices: from inetd, standalone Default: standalone Therefore an explicit "db_set shared/proftpd/inetd_or_standalone standalone" should not have been ever necessary...and I don't understand why the problem described in #707689 did even occur. 1. Was there a problem in debconf? 2. Can we simply revert the change made in the past? At least when looking @the samples in debconf.config & debconf.templatesdebconf.templates simply removing the line db_set shared/proftpd/inetd_or_standalone standalone should do the trick. What am I missing? > The same applies to any reconfiguring, of course: > > root@testvz12:~# echo 'proftpd-basic shared/proftpd/inetd_or_standalone > select from inetd' | debconf-set-selections > root@testvz12:~# debconf-get-selections | grep proftpd || echo '# no match' > # Run proftpd: > proftpd-basic shared/proftpd/inetd_or_standalone select from inetd > root@testvz12:~# dpkg-reconfigure -fnoninteractive proftpd-basic > usermod: no changes > root@testvz12:~# debconf-get-selections | grep proftpd || echo '# no match' > # Run proftpd: > proftpd-basic shared/proftpd/inetd_or_standalone select standalone > > As such, the package cannot be preseeded to run from inetd at all. > > Furthermore, given the current .config, any unattended (thus: > noninteractive) upgrade (or even a mere reinstall) will > unconditionally overwrite the local configuration just the same, > leading to proftpd running standalone instead of from inetd. I > consider this to be in violation of Debian policy requiring local > configuration changes to be preserved. > Many thanks! Hilmar [1] https://anonscm.debian.org/cgit/pkg-proftpd/proftpd-dfsg.git/patch/?id=8e07454023648c213ee9f9f3a1f28716b48a1544 [2] https://anonscm.debian.org/cgit/pkg-proftpd/proftpd-dfsg.git/tree/debian/proftpd-basic.templates?id=8e07454023648c213ee9f9f3a1f28716b48a1544 -- sigfault
signature.asc
Description: Digital signature