Bug#836993: qgis: fails to upgrade from 'jessie': dpkg-divert: error: rename involves overwriting `/usr/bin/qgis'

Sebastiaan Couwenberg sebastic at xs4all.nl
Sat Sep 17 23:03:50 UTC 2016


Control: tags -1 pending

Hi Andreas,

On 09/17/2016 06:39 PM, Andreas Beckmann wrote:
> still not completely resolved,

Will the third time be the charm?

I haven't been able to reproduce this issue with my piuparts setup, not
now and not before, I guess piuparts.d.o. does something more
complicated than:

 piuparts -d jessie -d stretch -a qgis

I have now been able reproduce this issue manually in a jessie
cowbuilder chroot by installing qgis (with recommended dependencies),
and upgrading it to stretch via the usual procedure (apt-get upgrade
followed by apt-get dist-upgrade).

> I'll try to find some time to look there myself.
> 
>   Preparing to unpack .../qgis_2.14.6+dfsg-3_amd64.deb ...
>   Unpacking qgis (2.14.6+dfsg-3) over (2.4.0-1+b1) ...
>   dpkg: error processing archive /var/cache/apt/archives/qgis_2.14.6+dfsg-3_amd64.deb (--unpack):
>    trying to overwrite '/usr/bin/qbrowser.bin', which is the diverted version of '/usr/bin/qbrowser' (package: qgis-plugin-grass)

Do you have a more complete log than the above?
piuparts.debian.org/jessie2stretch still reports:

 successfully-tested 2.14.5+dfsg-2

Since the unpack is already failing, I think the diversion should also
be removed by the maintainer scripts for qgis-plugin-grass, not just
qgis as it is now. I suspect the complete log to confirm that
qgis-plugin-grass is upgraded before qgis is, that's what I'm seeing in
my jessie to stretch upgrade.

Some testing of the above reveals that adding the maintainers scripts to
qgis-plugin-grass to remove the diversion is not sufficient. The jessie
version of qgis-plugin-grass only removes the diversion in postrm which
is called after the new package's files are unpacked which is too late
because the unpackaging causes the error.

I think the jessie version of qgis needs to be fixed to remove the
diversion in qgis-plugin-grass.prerm too, because a version of the
package is already "Installed".

Because the qgis-plugin-grass package is being upgraded, the new preinst
could also remove the diversions before the new package's files are
unpacked. But unfortunately that fails with:

dpkg-divert: error: rename involves overwriting `/usr/bin/qgis.bin' with
  different file `/usr/bin/qgis', not allowed

Just removing without renaming in qgis.preinst could be the actual
solution, it seems to give the desired results:

Preparing to unpack .../qgis_2.14.6+dfsg-4_amd64.deb ...
Removing 'diversion of /usr/bin/qgis to /usr/bin/qgis.bin by
qgis-plugin-grass'
Removing 'diversion of /usr/bin/qbrowser to /usr/bin/qbrowser.bin by
qgis-plugin-grass'
Unpacking qgis (2.14.6+dfsg-4) over (2.4.0-1+b1) ...

It's a much simpler change in addition to the one fixing #817176, I
should have thought of that sooner before you led me astray with your
suggestions in this issue.

I'm going to upload the above which should finally fix this issue.

Kind Regards,

Bas

-- 
 GPG Key ID: 4096R/6750F10AE88D4AF1
Fingerprint: 8182 DE41 7056 408D 6146  50D1 6750 F10A E88D 4AF1



More information about the Pkg-grass-devel mailing list