summaryrefslogtreecommitdiff
path: root/apt-pkg/deb/deblistparser.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2025-10-25 18:42:24 +0000
committerJulian Andres Klode <jak@debian.org>2025-10-25 18:42:24 +0000
commit2698c1e186accebefa320ebacde7ec3c40c66c29 (patch)
tree100d5321f364b389100928e927639e852c52ff48 /apt-pkg/deb/deblistparser.cc
parenta92a5ecc465055027d9fbb899f359ec7eab110bd (diff)
parent9d62eef571ffd1fd2df8b97884d3689fced27fb1 (diff)
Merge branch 'variants-submit' into 'main'
Merge Architecture variants from Ubuntu See merge request apt-team/apt!526
Diffstat (limited to 'apt-pkg/deb/deblistparser.cc')
-rw-r--r--apt-pkg/deb/deblistparser.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc
index b62c1a84f..b98198430 100644
--- a/apt-pkg/deb/deblistparser.cc
+++ b/apt-pkg/deb/deblistparser.cc
@@ -215,6 +215,9 @@ bool debListParser::NewVersion(pkgCache::VerIterator &Ver)
Ver->NextInSource = G->VersionsInSource;
G->VersionsInSource = Ver.MapPointer();
+ if (auto ArchVar = Section.Find(pkgTagSection::Key::Architecture_Variant); not ArchVar.empty())
+ Ver.ArchVariant(StoreString(pkgCacheGenerator::MIXED, ArchVar));
+
Ver->MultiArch = ParseMultiArch(true);
// Archive Size
Ver->Size = Section.FindULL(pkgTagSection::Key::Size);
@@ -1017,6 +1020,9 @@ bool debListParser::SameVersion(uint32_t Hash, /*{{{*/
unsigned char MultiArch = ParseMultiArch(false);
if (MultiArch != Ver->MultiArch)
return false;
+
+ if (ArchVariant() != Ver.ArchVariant())
+ return false;
// for all practical proposes (we can check): same version
return true;
}