[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#822671: initramfs-tools: preserves unmodified /etc/initramfs-tools/initramfs.conf on upgrades from jessie



Package: initramfs-tools
Version: 0.125
Severity: serious
User: debian-qa@lists.debian.org
Usertags: piuparts

Hi,

during a test with piuparts I noticed your package causes some trouble
with /etc/initramfs-tools/initramfs.conf upon upgrades from jessie:

1m18.3s ERROR: FAIL: debsums reports modifications inside the chroot:
  /etc/initramfs-tools/initramfs.conf

Rerunning the test manually and analyzing the situation lead to this
conclusion:

The initramfs.conf from jessie is always preserved, regardless of whether
it contained user modifications.

This will cause a dpkg modified-conffile prompt the next time an upgrade
to initramfs-tools-core with an updated version of that conffile is
performed. (This is a policy violation if the conffile was not modified
by the admin.)

Taking over conffiles (and modifying them at the same time) is not an
easy task :-) You probably need to do something even more resembling
dpkg-maintscript-helper mv_conffile in your maintainer scripts, quoting
from the manpage:

  Current  implementation:  the preinst checks if the conffile has been
  modified, if yes it's left on place otherwise it's renamed to
  old-conffile.dpkg-remove. On configuration, the postinst removes old-
  conffile.dpkg-remove and renames old-conffile to new-conffile if
  old-conffile is still available. On abort-upgrade/abort-install, the
  postrm renames old-conffile.dpkg-remove  back  to  old-conffile  if
  required.

You currently use .dpkg-backup for the old conffile, but you should
probably use .dpkg-remove instead *if the old conffile was unmodified*.
The postinst should then probably move .dpkg-backup back (as done now),
delete .dpkg-remove. And in the abort-upgrade case, you have two choices
to restore (but only one will exist).

There is probably no easy way to recover systems that have upgraded from
jessie (with pristine initramfs.conf) to stretch. (To avoid unneccessary
future dpkg prompting.)
(Maybe: compare md5sum againt the version shipped in jessie, restore the
conffile from /usr/share/initramfsfoo in case that matches ...)


Andreas


Reply to: