diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2009-12-27 19:39:47 +0100 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2009-12-27 19:39:47 +0100 |
commit | 25396fb06350344996a20d05423562f08a4165db (patch) | |
tree | 6d86e407c280333624b8f9949467f90612258282 /apt-pkg/deb | |
parent | 5dd4c8b811d9c7bc33e50254811f5bc0fc37f872 (diff) |
Split ListParser::NewDepends into two methods to use these new method
for creating the dependencies needed for our groups:
For now for all groups only one package can be installed at the same
time which conflicts with each other packages in the group.
The exceptions are architecture all package.
Also, the Multi-Arch field is now parsed, but not used for now.
Diffstat (limited to 'apt-pkg/deb')
-rw-r--r-- | apt-pkg/deb/deblistparser.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc index b57eca813..f683de423 100644 --- a/apt-pkg/deb/deblistparser.cc +++ b/apt-pkg/deb/deblistparser.cc @@ -104,6 +104,30 @@ bool debListParser::NewVersion(pkgCache::VerIterator Ver) // Parse the architecture Ver->Arch = WriteUniqString(Architecture()); + // Parse multi-arch + if (Section.FindS("Architecture") == "all") + /* Arch all packages can't have a Multi-Arch field, + but we need a special treatment for them nonetheless */ + Ver->MultiArch = pkgCache::Version::All; + else + { + string const MultiArch = Section.FindS("Multi-Arch"); + if (MultiArch.empty() == true) + Ver->MultiArch = pkgCache::Version::None; + else if (MultiArch == "same") + Ver->MultiArch = pkgCache::Version::Same; + else if (MultiArch == "foreign") + Ver->MultiArch = pkgCache::Version::Foreign; + else if (MultiArch == "allowed") + Ver->MultiArch = pkgCache::Version::Allowed; + else + { + _error->Warning("Unknown Multi-Arch type »%s« for package »%s«", + MultiArch.c_str(), Section.FindS("Package").c_str()); + Ver->MultiArch = pkgCache::Version::None; + } + } + // Archive Size Ver->Size = (unsigned)Section.FindI("Size"); |