Package: ucf
Version: 3.0036
Severity: important

Hi,

apt-listchanges uses debconf-based interface to generate a new version
of config file, and then calls ucf to update the config file with the
new version. I've just noticed that this does not work properly when
the generated file is the same as the file that was previously chosen by
a user to be kept unchanged.

To explain this behaviour in details let me use the following example 
steps the user can made:

1. Let's assume that the user changes something in listchanges.conf
   file manually, e.g.
      echo "someoption = value" >> /etc/apt/listchanges.conf

2. Then he or she  uses `dpkg-reconfigure apt-listchanges' command to
   change some apt-listchanges settings. For simplicity let's assume that the
   dpkg-reconfigure does something like:
     sed -e 's/value/VALUE/' < /etc/apt/listchanges.conf > 
/etc/apt/listchanges.conf.new

3. Now dpkg-reconfigure calls ucf:
     /usr/bin/ucf --debconf-ok /etc/apt/listchanges.conf.new 
/etc/apt/listchanges.conf
   Ucf shows a file modification prompt, and that's OK.

4. But now let's assume that the the user selects "keep the local version 
currently
   installed" for example by mistake, because this is the default option.

5. If he or she wants to correct the mistake, runs the dpkg-reonfigure
   command again, and selects exactly the same options, what makes 
   dpkg-reconfigure to create exactly the same new config file as previously. 
   Obviously the same ucf command will be called, but this time 
   *ucf will happily exit without prompting the user* for anything - and this 
   is the bug this report is about.

Regards,
robert


-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (990, 'unstable-debug'), (990, 'unstable'), (990, 'testing'), 
(990, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.11.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8), 
LANGUAGE=pl_PL.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages ucf depends on:
ii  coreutils  8.26-3
ii  debconf    1.5.62

ucf recommends no packages.

ucf suggests no packages.

-- debconf information:
  ucf/title:
* ucf/show_diff:
* ucf/changeprompt_threeway: keep_current
  ucf/conflicts_found:
  ucf/changeprompt: keep_current

Reply via email to