summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/deblistparser.cc
diff options
context:
space:
mode:
authorDavid Kalnischkies <david@kalnischkies.de>2016-01-14 20:13:16 +0100
committerDavid Kalnischkies <david@kalnischkies.de>2016-01-14 23:08:02 +0100
commit62428dbc17ffa7b5b8188e88609a9438428d6024 (patch)
tree5b4fb96209bd4f2bd8af80e09389d7ccc3222289 /apt-pkg/deb/deblistparser.cc
parentfa47f406cf434e175885c5920175c0cedcd62746 (diff)
fix M-A:foreign provides creation for unknown archs
Architectures for packages which do not belong to the native nor a foreign architecture (dubbed barbarian for now) which are marked M-A:foreign still provide in their own architecture even if not for others. Also, other M-A:foreign (and allowed) packages provide in these barbarian architectures.
Diffstat (limited to 'apt-pkg/deb/deblistparser.cc')
-rw-r--r--apt-pkg/deb/deblistparser.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc
index edd18c5a1..8dca27a2a 100644
--- a/apt-pkg/deb/deblistparser.cc
+++ b/apt-pkg/deb/deblistparser.cc
@@ -907,8 +907,12 @@ bool debListParser::ParseProvides(pkgCache::VerIterator &Ver)
return false;
} else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign) {
if (APT::Configuration::checkArchitecture(Arch))
+ {
if (NewProvidesAllArch(Ver, Package, Version, 0) == false)
return false;
+ }
+ else if (NewProvides(Ver, Package, Arch, Version, 0) == false)
+ return false;
} else {
if ((Ver->MultiArch & pkgCache::Version::Allowed) == pkgCache::Version::Allowed)
{