While doing a test-upgrade from squeeze to sid, the following conffiles were not cleaned up during the upgrade and marked as obsolete in the dpkg status file: Conffiles: /etc/console-setup/remap.inc 775b76c6c04cd18f8c72563e413a36aa obsolete /etc/console-setup/compose.VISCII.inc 0741db54ddb6268e476010a44f219f03 obsolete /etc/console-setup/compose.TIS-620.inc 31b73af83ef3993c128e2b983b9eaf89 obsolete /etc/console-setup/compose.KOI8-U.inc 217ee62f6982736276f41f760f8622f8 obsolete /etc/console-setup/compose.KOI8-R.inc 8cfd7766b86e5e55d6e71d0d95519c92 obsolete /etc/console-setup/compose.ISO-8859-9.inc 1893bc3994c24917c907a17ceb2f284b obsolete /etc/console-setup/compose.ISO-8859-8.inc 9cceaa9f3312f89aba371d3c893f4e7b obsolete /etc/console-setup/compose.ISO-8859-7.inc aa280de25f20e82f58da707101b24d48 obsolete /etc/console-setup/compose.ISO-8859-6.inc 41ea36ea1c1a1c0c9bebdf0016395e1f obsolete /etc/console-setup/compose.ISO-8859-5.inc f861a4b0403490677e6d400f2d7129da obsolete /etc/console-setup/compose.ISO-8859-4.inc 4092be9556db0ac82e96eae413f1bd47 obsolete /etc/console-setup/compose.ISO-8859-3.inc e70d7b634791b9c97db75bddf6dcc5fa obsolete /etc/console-setup/compose.ISO-8859-2.inc a56cb83dbe0cd88e4deef52d966d30e4 obsolete /etc/console-setup/compose.ISO-8859-16.inc 8245c19b5262d8d23ca856587739eb20 obsolete /etc/console-setup/compose.ISO-8859-15.inc cfa9b04fec26afa1debc17ce09d46a0a obsolete /etc/console-setup/compose.ISO-8859-14.inc a19822b59629ea7af7682d9247de807f obsolete /etc/console-setup/compose.ISO-8859-13.inc 9c2f47a52091515749fefc62fc8efd63 obsolete /etc/console-setup/compose.ISO-8859-11.inc ad2f3cc7ee64602a790bad8a2a989243 obsolete /etc/console-setup/compose.ISO-8859-10.inc e5fce59617c839b56574c9e323d34686 obsolete /etc/console-setup/compose.ISO-8859-1.inc 719a4300a50dcb168d7de921bab338e9 obsolete /etc/console-setup/compose.ISIRI-3342.inc 5ada7fbba750192f11fa238add232ba9 obsolete /etc/console-setup/compose.IBM1133.inc a31102602f7e7cab9738022b6c5469ae obsolete /etc/console-setup/compose.GEORGIAN-PS.inc cf45272b6bf35a22223b132600dc36c3 obsolete /etc/console-setup/compose.GEORGIAN-ACADEMY.inc b6d80f40abff7e8af236796ebaca0247 obsolete /etc/console-setup/compose.CP1256.inc 5ea5e4d41da7a88f742863810e86144b obsolete /etc/console-setup/compose.CP1255.inc c972a2e90938657e97b643366b98b2ed obsolete /etc/console-setup/compose.CP1251.inc fef88d8c8dd4c726498003fd3cd84a7f obsolete /etc/console-setup/compose.ARMSCII-8.inc fef36b61fb8b1cacc151ad3db127f777 obsolete See http://wiki.debian.org/DpkgConffileHandling and man dpkg-maintscript-helper for how to handle obsolete conffiles. Cheers, Michael
The conffiles are not obsoleted, now they belong to another package - console-setup-linux. I am sure this is not the first time conffiles have been transferred from one Debian package to another, but I don't know what is the proper way to handle this. I suppose this bug belongs to dpkg, should I reassign? Anton Zinoviev
retitle 645849 dpkg should better manage the Conffiles field
thanks
Well, dpkg certainly handles conffiles moving from one package to the
other if you use the proper "Replaces" field like for any other file.
Michael, what does your system say for "dpkg -S
/etc/console-setup/remap.inc" ?
I think it will give the new package. And the file will only appear in
dpkg -L of the new package too. However it's true that the "Conffiles"
field is not always properly updated. The conffile often ends up being
listed on both packages.
I instrumented the "t-conffile-replaces" test case like this:
--- a/t-conffile-replaces/Makefile
+++ b/t-conffile-replaces/Makefile
@@ -9,6 +9,9 @@ define VERIFY
test "`$(PKG_STATUS) pkg-conff-original`" = "install ok installed"
test "`$(PKG_STATUS) pkg-conff-takeover`" = "install ok installed"
test "`$(DPKG_QUERY) -S /test-conffile`" = "pkg-conff-takeover: /test-conffile"
+$(DPKG_QUERY) -W -f'$${Conffiles}\n' pkg-conff-original
+echo "Takeover:"
+$(DPKG_QUERY) -W -f'$${Conffiles}\n' pkg-conff-takeover
cmp ref-conffile /test-conffile
endef
It gives various results depending on how dpkg is called:
test-two-run-ordered & test-two-run-reverse:
/test-conffile e8a2f071ccdf836fc77865fba3ee8558
Takeover:
/test-conffile 45a18cfae67be6e80a5ec2ee60579bf3
test-one-run-ordered:
/test-conffile 45a18cfae67be6e80a5ec2ee60579bf3
Takeover:
/test-conffile newconffile
test-one-run-reverse:
/test-conffile newconffile
Takeover:
/test-conffile 45a18cfae67be6e80a5ec2ee60579bf3
There's room for improvements here.
Cheers,
Currently console-setup-linux doesn't "Replace" console-setup. If this was the real cause of the problem, then perhaps the bug can be reassigned back to console-setup? Regardless of the reassigning, thanks for the hint! I will change this in the next version of console-setup. Anton Zinoviev
But it conflicts with old version of it, so it's enough to take over the conffile since at no point in time is the conffile owned by 2 packages. An obsolete conffile can always be taken over without any explicit Replaces field. There's no real bug except the fact that the files are listed in the Conffiles field of two packages at the same time. So I'll keep this bug on dpkg. Cheers,