summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Andres Klode <jak@debian.org>2010-06-26 20:56:44 +0200
committerJulian Andres Klode <jak@debian.org>2010-06-26 20:56:44 +0200
commitd4af23c2d81116b8f7557ee795059bca126ae9f4 (patch)
tree7c36602dbdb8dbee92964d5e74af5dd34117cc0a
parent330463dd2374bd11757c6f2662f279fc31f035a0 (diff)
* apt-pkg/deb/deblistparser.cc:
- Handle architecture wildcards (Closes: #547724).
-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