Browse Source

* apt-pkg/pkgcache.cc:

- prefer non-virtual packages in FindPreferredPkg
tags/debian/0.8.0
David Kalnischkies 11 years ago
parent
commit
3db58cf417
3 changed files with 13 additions and 6 deletions
  1. +5
    -2
      apt-pkg/cacheiterators.h
  2. +5
    -3
      apt-pkg/pkgcache.cc
  3. +3
    -1
      debian/changelog

+ 5
- 2
apt-pkg/cacheiterators.h View File

@@ -115,8 +115,11 @@ class pkgCache::GrpIterator: public Iterator<Group, GrpIterator> {
/** \brief find the package with the "best" architecture

The best architecture is either the "native" or the first
in the list of Architectures which is not an end-Pointer */
PkgIterator FindPreferredPkg() const;
in the list of Architectures which is not an end-Pointer

\param PreferNonVirtual tries to respond with a non-virtual package
and only if this fails returns the best virtual package */
PkgIterator FindPreferredPkg(bool const &PreferNonVirtual = true) const;
PkgIterator NextPkg(PkgIterator const &Pkg) const;

// Constructors


+ 5
- 3
apt-pkg/pkgcache.cc View File

@@ -349,19 +349,21 @@ pkgCache::PkgIterator pkgCache::GrpIterator::FindPkg(string Arch) const {
// GrpIterator::FindPreferredPkg - Locate the "best" package /*{{{*/
// ---------------------------------------------------------------------
/* Returns an End-Pointer on error, pointer to the package otherwise */
pkgCache::PkgIterator pkgCache::GrpIterator::FindPreferredPkg() const {
pkgCache::PkgIterator pkgCache::GrpIterator::FindPreferredPkg(bool const &PreferNonVirtual) const {
pkgCache::PkgIterator Pkg = FindPkg("native");
if (Pkg.end() == false)
if (Pkg.end() == false && (PreferNonVirtual == false || Pkg->VersionList != 0))
return Pkg;

std::vector<std::string> const archs = APT::Configuration::getArchitectures();
for (std::vector<std::string>::const_iterator a = archs.begin();
a != archs.end(); ++a) {
Pkg = FindPkg(*a);
if (Pkg.end() == false)
if (Pkg.end() == false && (PreferNonVirtual == false || Pkg->VersionList != 0))
return Pkg;
}

if (PreferNonVirtual == true)
return FindPreferredPkg(false);
return PkgIterator(*Owner, 0);
}
/*}}}*/


+ 3
- 1
debian/changelog View File

@@ -7,8 +7,10 @@ apt (0.7.26~exp11) experimental; urgency=low
- be able to omit dependency types in (r)depends (Closes: #319006)
* apt-pkg/cacheset.cc:
- move them back to the library as they look stable now
* apt-pkg/pkgcache.cc:
- prefer non-virtual packages in FindPreferredPkg

-- David Kalnischkies <kalnischkies@gmail.com> Sat, 17 Jul 2010 19:56:47 +0200
-- David Kalnischkies <kalnischkies@gmail.com> Sun, 25 Jul 2010 08:20:41 +0200

apt (0.7.26~exp10) experimental; urgency=low



Loading…
Cancel
Save