Comment 2 for bug 863675

Revision history for this message
Raphaël Hertzog (hertzog) wrote : Re: [Bug 863675] [NEW] dpkg wrongly claims that a foreign-arch package is disappeared by a removed native-arch package

On Fri, 30 Sep 2011, Steve Langasek wrote:
> 3. Confirm that skype is now removed, but not purged.
> $ dpkg -l skype:*
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name Version Description
> +++-==============-==============-============================================
> rc skype 2.2.0.35-1 Skype
> ii skype:i386 2.2.0.35-0onei VOIP and instant messaging client

Even this result is not entirely normal. The state "config-files" doesn't
mean much at this point since the .list file has been taken over by
skype:i386.

> 5. See that skype:i386 really has been disappeared, and skype:amd64 is still in state 'rc'.
> $ dpkg -l skype:*
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
> |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
> ||/ Name Version Description
> +++-==============-==============-============================================
> rc skype 2.2.0.35-1 Skype
> un skype:i386 <none> (no description available)

This is the result of two bugs:
1/ The .list file is incorrectly rewritten at the end of the installation
of skype:i386. The one of "skype:amd64" overwrites the one of skype:i386
resulting in an almost empty packages from the point of view of dpkg.
2/ The fact the same .list file is loaded twice and associated to
skype:amd64 and skype:i386 which in turns leads the code that checks
for disappearing packages to believe that the files for skype:amd64
are taken over by skype:i386...

The 2 attached patchs should fix this. They are against the current
pu/multiarch/full branch but they should hopefully apply fine on the
ubuntu package or be trivial to adapt.

But I will go further than this in the upstream branch and will make
sure that the conflicting package are properly "disappeared" as soon
as the replacement package is unpacked.

  tag patch
  status inprogress

Cheers,
--
Raphaël Hertzog ◈ Debian Developer

Pre-order a copy of the Debian Administrator's Handbook and help
liberate it: http://debian-handbook.info/go/ulule-rh/