RPM Package Manager, CVS Repository
http://rpm5.org/cvs/
____________________________________________________________________________
Server: rpm5.org Name: Per Øyvind Karlsen
Root: /v/rpm/cvs Email: pkarlsen@rpm5.org
Module: rpm Date: 09-Dec-2007 18:41:11
Branch: rpm-4_5 Handle: 2007120917411100
Modified files: (Branch: rpm-4_5)
rpm/build parseSpec.c
Log:
Check amd64 vs x86_64, they're the same arch
Summary:
Revision Changes Path
2.100.2.1 +14 -2 rpm/build/parseSpec.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/build/parseSpec.c
============================================================================
$ cvs diff -u -r2.100 -r2.100.2.1 parseSpec.c
--- rpm/build/parseSpec.c 25 May 2007 17:35:56 -0000 2.100
+++ rpm/build/parseSpec.c 9 Dec 2007 17:41:11 -0000 2.100.2.1
@@ -231,6 +231,16 @@
}
/*@=boundswrite@*/
+static const char *getAlternateArch(const char *arch)
+{
+ const char *alternate_arch = NULL;
+ if (! strncmp("x86_64", arch, sizeof("x86_64")-1))
+ alternate_arch = "amd64";
+ else if (! strncmp("amd64", arch, sizeof("amd64")-1))
+ alternate_arch = "x86_64";
+ return alternate_arch;
+}
+
/*@-boundswrite@*/
int readLine(Spec spec, int strip)
{
@@ -314,13 +324,15 @@
match = 0;
} else if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
const char *arch = rpmExpand("%{_target_cpu}", NULL);
+ const char *alternate_arch = getAlternateArch(arch);
s += 7;
- match = matchTok(arch, s);
+ match = matchTok(arch, s) || (alternate_arch && matchTok(alternate_arch, s));
arch = _free(arch);
} else if (! strncmp("%ifnarch", s, sizeof("%ifnarch")-1)) {
const char *arch = rpmExpand("%{_target_cpu}", NULL);
+ const char *alternate_arch = getAlternateArch(arch);
s += 8;
- match = !matchTok(arch, s);
+ match = !matchTok(arch, s) && (!alternate_arch || !matchTok(alternate_arch, s));
arch = _free(arch);
} else if (! strncmp("%ifos", s, sizeof("%ifos")-1)) {
const char *os = rpmExpand("%{_target_os}", NULL);
@@ .
Received on Sun Dec 9 18:41:12 2007