diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2011-05-02 09:40:26 +0200 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2011-05-02 09:40:26 +0200 |
commit | f4fd0a1c34babf8fbac71bc3471b41b411e414b2 (patch) | |
tree | 505cc791de97dbfd8d1f979c651bb3336f69028a /apt-pkg/policy.cc | |
parent | ecc8d43394155ea99960f66ed35713c701801c3f (diff) | |
parent | a63bbd7e93ec5e231d5d9b0b33cffec5cf6192d0 (diff) |
* merged from the debian-sid bzr branch
* apt-pkg/depcache.cc:
- Really release action groups only once (Closes: #622744)
- Make purge work again for config-files (LP: #244598) (Closes: #150831)
* debian/apt.cron.daily:
- Check power after wait, patch by manuel-soto (LP: #705269)
* debian/control:
- Move ${shlibs:Depends} to Pre-Depends, as we do not want APT
unpacked if a library is too old and thus break upgrades
* doc/apt-key.8.xml:
- Document apt-key net-update (LP: #192810)
* apt-pkg/acquire-item.cc:
- Only try to rename existing Release files (Closes: #622912)
* apt-pkg/indexcopy.cc:
- Use RealFileExists() instead of FileExists(), allows amongst other
things a directory named Sources to exist on a CD-ROM (LP: #750694).
* apt-pkg/acquire-item.cc:
- Use Release files even if they cannot be verified (LP: #704595)
* cmdline/apt-get.cc:
- Do not install recommends for build-dep (Closes: #454479) (LP: #245273)
* apt-pkg/deb/deblistparser.cc:
- Handle no space before "[" in build-dependencies (LP: #72344)
* apt-pkg/policy.cc:
- Allow pinning by glob() expressions, and regular expressions
surrounded by slashes (the "/" character) (LP: #399474)
(Closes: #121132)
* debian/control:
- Set Standards-Version to 3.9.2
* mirror method:
- do not crash if the mirror file fails to download
* apt-pkg/aptconfiguration.cc:
- fix comparing for a empty string
* debian/apt.cron.daily:
- run unattended-upgrades even if there was a error during
the apt-get update (LP: #676295)
* apt-pkg/pkgcache.cc:
- use the native Architecture stored in the cache header instead of
loading it from configuration as suggested by Julian Andres Klode
Diffstat (limited to 'apt-pkg/policy.cc')
-rw-r--r-- | apt-pkg/policy.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/apt-pkg/policy.cc b/apt-pkg/policy.cc index 94c7fd4af..3d6ec1cdc 100644 --- a/apt-pkg/policy.cc +++ b/apt-pkg/policy.cc @@ -216,6 +216,21 @@ void pkgPolicy::CreatePin(pkgVersionMatch::MatchType Type,string Name, P->Data = Data; return; } + + // Allow pinning by wildcards + // TODO: Maybe we should always prefer specific pins over non- + // specific ones. + if (Name.find("*") != string::npos || Name.find("[") != string::npos + || Name.find("?") != string::npos || Name[0] == '/') { + pkgVersionMatch match(Data, Type); + for (pkgCache::PkgIterator P = Cache->PkgBegin(); + P != Cache->PkgEnd(); P++) { + if (match.ExpressionMatches(Name, P.Name())) { + CreatePin(Type, P.Name(), Data, Priority); + } + } + return; + } // Get a spot to put the pin pkgCache::GrpIterator Grp = Cache->FindGrp(Name); |