On Sa, 2010-06-26 at 20:31 +0200, Julian Andres Klode wrote:
> tags 547724 - patch
> thanks
> 
> On Sa, 2010-06-26 at 19:15 +0200, Sebastian Andrzej Siewior wrote:
> > tags 547724 + patch
> > thanks
> > 
> > * Sebastian Andrzej Siewior | 2010-06-23 21:37:26 [+0200]:
> > 
> > >-i$arch" while resolving deps. So I guess I sneak some informations
> > >during the build-process and hack the compare into
> > >debListParser::ParseDepends().
> > 
> > The patch attached does the work.
> Your patch does not make much sense. APT is written in C++, but you are
> writing raw C code (and use different function naming style).
> 
> Furthermore, I think it should be much easier to support this than you
> do in your patch. We just need to do replace 'any' in the architecture
> wildcard by '*' and check if it matches the current arch or the current
> arch prefixed by 'linux-' by calling fnmatch().

I committed the following patch in revision 1995 of the
debian-experimental-ma repository. This fully implements architecture
wildcards (as long as the architecture is named <kernel>-<cpu> or
<cpu>).

=== modified file 'apt-pkg/deb/deblistparser.cc'
--- apt-pkg/deb/deblistparser.cc        2010-06-09 11:15:34 +0000
+++ apt-pkg/deb/deblistparser.cc        2010-06-26 18:53:28 +0000
@@ -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(
               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;
+              if (fnmatch(wildcard.c_str(), ("linux-" + arch).c_str(), 0) == 0)
+                 Found = true;
+           }
            
            if (*End++ == ']') {
               I = End;


-- 
Julian Andres Klode  - Debian Developer, Ubuntu Member

See http://wiki.debian.org/JulianAndresKlode and http://jak-linux.org/.





-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to