RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Per Øyvind Karlsen
  Root:   /v/rpm/cvs                       Email:  pkarl...@rpm5.org
  Module: rpm                              Date:   06-Mar-2011 15:10:49
  Branch: rpm-5_3                          Handle: 2011030614104801

  Modified files:           (Branch: rpm-5_3)
    rpm                     CHANGES
    rpm/build               reqprov.c

  Log:
    check whether provides are duplicate of package first

  Summary:
    Revision    Changes     Path
    1.3296.2.172+2  -0      rpm/CHANGES
    1.90.4.2    +18 -0      rpm/build/reqprov.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3296.2.171 -r1.3296.2.172 CHANGES
  --- rpm/CHANGES       5 Mar 2011 17:33:15 -0000       1.3296.2.171
  +++ rpm/CHANGES       6 Mar 2011 14:10:48 -0000       1.3296.2.172
  @@ -1,4 +1,6 @@
   5.3.9 -> 5.3.10
  +    - proyvind: check whether provides are duplicate of package first 
(without
  +     distepoch), also ensures that package is always at end of 
%provideversion.
       - jbj: add "| cpio -dim" to the rpm2cpio.8 examples.
       - mdawkins: tagged 5.3.9 release in configure.ac
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/build/reqprov.c
  ============================================================================
  $ cvs diff -u -r1.90.4.1 -r1.90.4.2 reqprov.c
  --- rpm/build/reqprov.c       18 Oct 2010 07:03:08 -0000      1.90.4.1
  +++ rpm/build/reqprov.c       6 Mar 2011 14:10:49 -0000       1.90.4.2
  @@ -56,6 +56,24 @@
   
       if (EVR == NULL)
        EVR = "";
  +    /* Check that provide isn't duplicate of package */
  +    else if (nametag == RPMTAG_PROVIDENAME) {
  +     const char *pName,
  +           *pEVR;
  +     int duplicate;
  +
  +     he->tag = RPMTAG_NAME;
  +     xx = headerGet(h, he, 0);
  +     pName = he->p.str;
  +     pEVR = headerSprintf(h, "%|EPOCH?{%{EPOCH}:}|%{VERSION}-%{RELEASE}", 
NULL, NULL, NULL);
  +     duplicate = !strcmp(pName, N) && !strcmp(pEVR, EVR);
  +
  +     _free(pName);
  +     _free(pEVR);
  +
  +     if (duplicate)
  +         return 0;
  +    }
   
       /* Check for duplicate dependencies. */
       he->tag = nametag;
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to