RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm-4_5: rpm/build/ parseSpec.c

From: Per Øyvind Karlsen <pkarlsen@rpm5.org>
Date: Sun 09 Dec 2007 - 18:41:11 CET
Message-Id: <20071209174111.EDF34348457@rpm5.org>
  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
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.