summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/deb/deblistparser.cc10
-rw-r--r--debian/changelog2
2 files changed, 11 insertions, 1 deletions
diff --git a/apt-pkg/deb/deblistparser.cc b/apt-pkg/deb/deblistparser.cc
index 83c5b8d2e..ddbd0d31a 100644
--- a/apt-pkg/deb/deblistparser.cc
+++ b/apt-pkg/deb/deblistparser.cc
@@ -19,6 +19,7 @@
#include <apt-pkg/md5.h>
#include <apt-pkg/macros.h>
+#include <fnmatch.h>
#include <ctype.h>
/*}}}*/
@@ -572,8 +573,15 @@ const char *debListParser::ParseDepends(const char *Start,const char *Stop,
I++;
}
- if (stringcmp(arch,I,End) == 0)
+ if (stringcmp(arch,I,End) == 0) {
Found = true;
+ } else {
+ std::string wildcard = SubstVar(string(I, End), "any", "*");
+ if (fnmatch(wildcard.c_str(), arch.c_str(), 0) == 0)
+ Found = true;
+ else if (fnmatch(wildcard.c_str(), ("linux-" + arch).c_str(), 0) == 0)
+ Found = true;
+ }
if (*End++ == ']') {
I = End;
diff --git a/debian/changelog b/debian/changelog
index 037dfa7bd..8de7d18e3 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,6 +2,8 @@ apt (0.7.26~exp8) experimental; urgency=low
* methods/ftp.h:
- Handle different logins are on the same server (Closes: #586904).
+ * apt-pkg/deb/deblistparser.cc:
+ - Handle architecture wildcards (Closes: #547724).
-- Julian Andres Klode <jak@debian.org> Thu, 24 Jun 2010 10:56:39 +0200