[ubuntu-dev] Bug#717858: gdebi-core: gdebi-gtk/kde crashes if the package is already installed for another architecture

Francois Gouget fgouget at free.fr
Thu Jul 25 17:38:48 UTC 2013


Package: gdebi-core
Version: 0.9
Severity: normal

Dear Maintainer,

Here is how to reproduce this bug:
 * Download http://fgouget.free.fr/bugs/testdep.tar.bz2
   This is a small archive that contains a set of test, empty, Debian 
   package files along with their source.
   (run ./build to rebuild them)

 * Assuming you have a 64-bit system, install the
   testdep-same_1.0-1_amd64.deb package.
   (if you have a 32-bit system exchange amd64 and i386 everywhere)

 * Then run:
   gdebi-gtk testdep-same_1.0-1_i386.deb

The gdebi-gtk GUI will come up and then disappear and you will get the
following backtrace on the terminal:

$ gdebi-gtk testdep-same_1.0-1_i386.deb 
Traceback (most recent call last):
  File "/usr/bin/gdebi-gtk", line 82, in <module>
    app = GDebiGtk(datadir=data,options=options,file=afile)
  File "/usr/share/gdebi/GDebi/GDebiGtk.py", line 151, in __init__
    self.open(file)
  File "/usr/share/gdebi/GDebi/GDebiGtk.py", line 353, in open
    self.compareDebWithCache()
  File "/usr/share/gdebi/GDebi/GDebiCommon.py", line 109, in compareDebWithCache
    pkg = self._cache[self._deb.pkgname]
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 204, in __getitem__
    raise KeyError('The cache has no package named %r' % key)
KeyError: "The cache has no package named 'testdep-same:i386'"

gdebi-kde shows a very similar backtrace:

$ gdebi-kde ~/testdep-same_1.0-1_i386.deb 
Traceback (most recent call last):
  File "/usr/bin/gdebi-kde", line 101, in <module>
    gdebi = GDebiKDE(datadir=data,options=options,file=afile)
  File "/usr/share/gdebi/GDebi/GDebiKDE.py", line 162, in __init__
    self.open(file)
  File "/usr/share/gdebi/GDebi/GDebiKDE.py", line 237, in open
    self.compareDebWithCache()
  File "/usr/share/gdebi/GDebi/GDebiCommon.py", line 100, in compareDebWithCache
    pkg = self._cache[self._deb.pkgname]
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 185, in __getitem__
    raise KeyError('The cache has no package named %r' % key)
KeyError: "The cache has no package named 'testdep-same:i386'"

This is why I'm reporting this bug against gdebi-core rather than gdebi
and gdebi-kde separately.

Also note that, still on a 64-bit system, this bug does not happen if one
installs the i386 package first and then run gdebi-gtk on the amd64
package.

Finally one can also reproduce this bug with the other types of multiarch
packages. For instance from the set of test packages:

* Install testdep-foreign_1.0-1_amd64.deb
  Then run gdebi-gtk testdep-foreign_1.0-1_i386.deb
  This should replace the amd64 package with the i386 one.

* Install testdep-allowed_1.0-1_amd64.deb  
  Then run gdebi-gtk testdep-allowed_1.0-1_i386.deb
  This should replace the amd64 package with the i386 one.


-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages gdebi-core depends on:
ii  file           1:5.14-2
ii  python         2.7.5-2
ii  python-apt     0.8.9
ii  python-debian  0.1.21+nmu2

gdebi-core recommends no packages.

Versions of packages gdebi-core suggests:
ii  xz-utils  5.1.1alpha+20120614-2

-- no debconf information



More information about the ubuntu-dev-team mailing list