python-smartpm: fix sometimes reporting no provider instead of conflict

If a requirement of a package is conflicted, depending on how the
solution is reached, Smart's transaction code may eliminate all
providers of the requirement and then error out because nothing provides
them without saying why. To work around this, store a reason and report
that back if we need to, so for example instead of:

  error: Can't install packagegroup-core-ssh-dropbear-1.0-r1@all: no package provides dropbear

we will now get:

  error: Can't install packagegroup-core-ssh-dropbear-1.0-r1@all: unable to install provider for dropbear:
  error:     dropbear-2013.58-r1.0@armv5te is conflicted by openssh-sshd-6.2p2-r0@armv5te

Fixes [YOCTO #4305].

(From OE-Core rev: 1ed09b87fc8780d4a99f6516493fae2e0c92862c)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton
2013-07-24 11:15:57 +01:00
committed by Richard Purdie
parent 1cbabdbd06
commit e8dfbb092c
2 changed files with 197 additions and 0 deletions

View File

@@ -26,6 +26,7 @@ SRC_URI = "\
file://smart-multilib-fixes.patch \
file://smart-yaml-error.patch \
file://smart-channelsdir.patch \
file://smart-conflict-provider.patch \
"
SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"