On Fri, Mar 11, 2016 at 10:25:17PM +0900, Mike Hommey wrote: > This all makes no sense. First, it worked when I tried before uploading, > but it doesn't work anymore. Second, these dpkg-query messages make no > sense, and I don't know where they are coming from. Third, just taking > one of the files, there *are* commands to remove the conffiles in > iceweasel's post/pre rm/inst, like the following: > > dpkg-maintscript-helper rm_conffile /etc/iceweasel/pref/iceweasel.js -- "$@" > > Now... looking at dpkg-maintscript-helper, it would seem it is the one > doing those dpkg-query requests. So maybe dpkg-maintscript-helper is > just broken? Help, dpkg maintainers?
Some more info from dpkg --debug output: D000001: ensure_diversions: new, (re)loading D000001: ensure_statoverrides: new, (re)loading D000010: ensure_pathname_nonexisting '/var/lib/dpkg/tmp.ci' dpkg: regarding .../firefox-esr_45.0esr-1_amd64.deb containing firefox-esr: firefox-esr breaks iceweasel (<< 45) iceweasel (version 44.0.2-1) is present and installed. dpkg: error processing archive /tmp/firefox-esr_45.0esr-1_amd64.deb (--install): installing firefox-esr would break iceweasel, and deconfiguration is not permitted (--auto-deconfigure might help) D000010: ensure_pathname_nonexisting '/var/lib/dpkg/tmp.ci' D000010: ensure_pathname_nonexisting running rm -rf '/var/lib/dpkg/tmp.ci' D000010: ensure_pathname_nonexisting '/var/lib/dpkg/reassemble.deb' D000010: ensure_pathname_nonexisting '/var/lib/dpkg/tmp.ci' (Reading database ... 13915 files and directories currently installed.) Preparing to unpack .../iceweasel_45.0esr-1_all.deb ... D020000: trigproc_activate_packageprocessing pkg=iceweasel:amd64 D000200: oldconffsetflags '/etc/iceweasel/pref/iceweasel.js' namenode '/etc/iceweasel/pref/iceweasel.js' flags 4 D000200: oldconffsetflags '/etc/iceweasel/profile/chrome/userChrome-example.css' namenode '/etc/iceweasel/profile/chrome/userChrome-exa mple.css' flags 4 D000200: oldconffsetflags '/etc/iceweasel/profile/chrome/userContent-example.css' namenode '/etc/iceweasel/profile/chrome/userContent-e xample.css' flags 4 D000200: oldconffsetflags '/etc/iceweasel/profile/localstore.rdf' namenode '/etc/iceweasel/profile/localstore.rdf' flags 4 D000200: oldconffsetflags '/etc/iceweasel/profile/mimeTypes.rdf' namenode '/etc/iceweasel/profile/mimeTypes.rdf' flags 4 D000200: oldconffsetflags '/etc/iceweasel/profile/prefs.js' namenode '/etc/iceweasel/profile/prefs.js' flags 4 D000200: oldconffsetflags '/etc/iceweasel/searchplugins/common/debsearch.xml' namenode '/etc/iceweasel/searchplugins/common/debsearch.x ml' flags 4 D000001: process_archive oldversionstatus=installed D000002: fork/exec /var/lib/dpkg/info/iceweasel.prerm ( upgrade 45.0esr-1 ) D020000: post_script_tasks - ensure_diversions D000001: ensure_diversions: same, skipping D020000: post_script_tasks - trig_incorporate D000002: fork/exec /var/lib/dpkg/tmp.ci/preinst ( upgrade 44.0.2-1 ) dpkg-query: package 'iceweasel' is not installed Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. dpkg-query: package 'iceweasel' is not installed Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. dpkg-query: package 'iceweasel' is not installed Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. dpkg-query: package 'iceweasel' is not installed Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. dpkg-query: package 'iceweasel' is not installed Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. dpkg-query: package 'iceweasel' is not installed Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. dpkg-query: package 'iceweasel' is not installed Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents. D020000: post_script_tasks - ensure_diversions D000001: ensure_diversions: same, skipping D020000: post_script_tasks - trig_incorporate Unpacking iceweasel (45.0esr-1) over (44.0.2-1) ... So what happens here is that for some reason, dpkg-query, run by dpkg-maintscript-helper during preinst, thinks the package is not installed, despite the preinst being invoked for an upgrade. This makes no sense from the perspective of the preinst, but that could be a side effect of the versioned Breaks. Anyways, even if dpkg is fixed for this, I need this to work in stable, so I'll have to find a workaround. I think I can get away with it by not having the usual package transition pattern. Mike