[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#772613: python-apt: apt_pkg.Dependency().target_pkg should be native version for multi-arch: Foreign



Package: python-apt Version: 0.9.3.11 Severity: normal

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Dear Maintainer,

apt_pkg.Dependency objects returned by apt_pkg.Version.depends_list
select a apt_pkg.Dependency.target_pkg that has the same architecture
as the apt_pkg.Version that generated it (Architecture: all packages
aside).  Usually this is the right thing do to.

The one time is isn't is when target_pkg is "multi-arch: Foreign".
In that case you always want the native package, if it is available.

Eg consider a system that wants both libgcc1:amd64 and libgcc1:i386
installed.  libgcc1 PreDepends on multiarch-support.
multiarch-support:amd64 conflicts with multiarch-support:i386, so
you can't have both installed.  But currently if you just use the
suggested target_pkg, you will attempt to install both.  apt-get and
aptitude resolve this by only installing the native version, and it
would be nice if apk_pkg did the same.

Example:

  import apt_pkg
  apt_pkg.init()
  cache = apt_pkg.Cache()
  dep_cache = apt_pkg.DepCache(cache)
  libgcc1_i386 = cache["libgcc1:i386"]
  version = dep_cache.get_candidate_ver(libgcc1_i386)
  depends = version.depends_list["PreDepends"][0][0]
  target_pkg = depends.target_pkg
  print target_pkg.name, target_pkg.architecture
  print depends.all_targets()[0].multi_arch == apt_pkg.Version.MULTI_ARCH_FOREIGN
  print cache["multiarch-support"].architecture, cache["dpkg"].architecture

Prints:
  multiarch-support i386
  True
  amd64 amd64

A better result would be:
  multiarch-support amd64
  True
  amd64 amd64

- -- System Information: Debian Release: 8.0
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing') Architecture: amd64 (x86_64) Foreign 
Architectures: i386

Kernel: Linux 3.16.0-4-amd64 (SMP w/4 CPU cores) Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 
(charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system)

Versions of packages python-apt depends on: ii libapt-inst1.5 1.0.9.3 ii libapt-pkg4.12 1.0.9.3 ii 
libc6 2.19-13 ii libgcc1 1:4.9.1-19 ii libstdc++6 4.9.1-19 ii python 2.7.8-2 ii python-apt-common 
0.9.3.11

Versions of packages python-apt recommends: ii iso-codes 3.57-1 ii lsb-release 4.1+Debian13+nmu1 ii 
xz-utils 5.1.1alpha+20120614-2+b2

Versions of packages python-apt suggests: pn python-apt-dbg <none> ii python-apt-doc 0.9.3.11 ii 
python-gtk2 2.24.0-4 pn python-vte <none>

- -- no debconf information

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIVAwUBVIadxqzUn4heVFJuAQpMRA/+P30MjoHRHz6BvVQW74LSUk+GZdO+mW62
yE5+Zp8jahDIaM6bg0CXnItfRI53jFRteQIxTVUBi3WUdQi5lMRxyRvkH523na3U
apln9Juxdr5O8gu2WsPA2Aasv3sR1sD8+19BAQwYWtuqxisglV3ZG8v/pcV7wdVk
lGX2vYgw3nhao1Ad9jmV8oIxLvkhK7OhxBe9F8oaf8PhsUfWuJulxWwM3COxe6SE
igo3mzjfDHY8dvtdXndac0ZVXE6CKd2TPQtRslqPOEjiGvp/9E7O3Q8Rul+92NQi
H4G6XJ2wgyKSB6yLnClvHKS+LOSNoPTvGsy6cAQ/TQk2qCDcKE8/HgUa555TdTyz
sxmYywPt+2MiB+OzpqqSmIaPch4vclpce0lwD83jS0lWqe2PH+tHFnv8jVc/aWkg
iiT+w6qLHWtArqH+hX/hn/R+ObkSvy+dsvAvpCfGdJwukIo12LIRuPQ//HUw2drH
4ya+JTLd+LqlzrVVUMlzpCaXnXXew+54P8TuhUU7ZMjGpaI25XVYxVry9hY52OR5
tkazM0bF8jOsnPaS/a9rKY5IS4NsaD8ahpTqNVqNmvHh0BCOdEzMGUOGTEu2MjjN
hKAaxdaGKWVhbZY23aMZWQ9AtycNMk96t78Lk1czRmrEb2z48+66Ge5d82Z2z5ah
SxPbjHLmGk4=
=hwNm
-----END PGP SIGNATURE-----


Reply to: