[CVS] RPM: rpm/ CHANGES rpm/build/ reqprov.c

2011-04-01 Thread Per �yvind Karlsen
  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:   01-Apr-2011 11:51:45
  Branch: HEAD Handle: 2011040109514500

  Modified files:
rpm CHANGES
rpm/build   reqprov.c

  Log:
filter overlapping depencies. leaving under mandriva #ifdef for now,
need to properly determine 'correctness'  sanity..

  Summary:
RevisionChanges Path
1.3593  +1  -0  rpm/CHANGES
1.95+40 -0  rpm/build/reqprov.c
  

  patch -p0 '@@ .'
  Index: rpm/CHANGES
  
  $ cvs diff -u -r1.3592 -r1.3593 CHANGES
  --- rpm/CHANGES   1 Apr 2011 07:29:51 -   1.3592
  +++ rpm/CHANGES   1 Apr 2011 09:51:45 -   1.3593
  @@ -1,4 +1,5 @@
   5.4.0 - 5.4.1:
  +- proyvind: mandriva: filter overlapping depencies.
   - proyvind: rubygems.rb: add/provide ruby(abi) dependencies for non-gems.
   - proyvind: rpmfc: add classifiers for gstreamer plugins  dep generator.
   - proyvind: use pythoneggs.py for python deps generated by internal 
generator.
  @@ .
  patch -p0 '@@ .'
  Index: rpm/build/reqprov.c
  
  $ cvs diff -u -r1.94 -r1.95 reqprov.c
  --- rpm/build/reqprov.c   16 Mar 2011 15:23:45 -  1.94
  +++ rpm/build/reqprov.c   1 Apr 2011 09:51:45 -   1.95
  @@ -103,9 +103,49 @@
len--;
if (strcmp(names[len], N))
continue;
  +
  +#if defined(RPM_VENDOR_MANDRIVA) /* filter-overlapping-dependencies */
  + /* XXX: Potential drawbacks? Need to study  discuess this one a
  +  * bit further, leaving under #ifdef for now...
  +  * TODO: auto-generated deps too
  +  */
  + if (flagtag  versions != NULL) {
  + int overlap;
  +
  + if(*EVR  !*versions[len]) {
  + overlap = 1;
  + flags[len] = Flags;
  + he-tag = flagtag;
  + he-t = RPM_UINT32_TYPE;
  + he-p.argv = (void *) Flags;
  + xx = headerMod(h, he, 0);
  + } else {
  + EVR_t lEVR = rpmEVRnew(RPMSENSE_ANY, 0),
  +   rEVR = rpmEVRnew(RPMSENSE_ANY, 0);
  +
  + rpmEVRparse(EVR, lEVR);
  + rpmEVRparse(versions[len], rEVR);
  + lEVR-Flags = Flags | RPMSENSE_EQUAL;
  + rEVR-Flags = flags[len] | RPMSENSE_EQUAL;
  + overlap = rpmEVRoverlap(lEVR, rEVR);
  + lEVR = rpmEVRfree(lEVR);
  + rEVR = rpmEVRfree(rEVR);
  + }
  + if (overlap) {
  + versions[len] = EVR;
  + he-tag = versiontag;
  + he-t = RPM_STRING_ARRAY_TYPE;
  + he-p.argv = versions;
  + xx = headerMod(h, he, 0);
  + } else
  + continue;
  + }
  +#else
if (flagtag  versions != NULL 
(strcmp(versions[len], EVR) || (rpmsenseFlags)flags[len] != 
Flags))
continue;
  +#endif
  +
if (indextag  indexes != NULL  indexes[len] != index)
continue;
   
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org


[CVS] RPM: rpm/ CHANGES rpm/build/ reqprov.c

2007-10-14 Thread Jeff Johnson
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  

  Server: rpm5.org Name:   Jeff Johnson
  Root:   /v/rpm/cvs   Email:  [EMAIL PROTECTED]
  Module: rpm  Date:   14-Oct-2007 20:29:10
  Branch: HEAD Handle: 2007101419290802

  Modified files:
rpm CHANGES
rpm/build   reqprov.c

  Log:
- reqprov.c: use headerGetExtension everywhere.

  Summary:
RevisionChanges Path
1.1703  +1  -0  rpm/CHANGES
1.70+28 -13 rpm/build/reqprov.c
  

  patch -p0 '@@ .'
  Index: rpm/CHANGES
  
  $ cvs diff -u -r1.1702 -r1.1703 CHANGES
  --- rpm/CHANGES   14 Oct 2007 18:21:56 -  1.1702
  +++ rpm/CHANGES   14 Oct 2007 18:29:08 -  1.1703
  @@ -1,4 +1,5 @@
   4.5 - 5.0:
  +- jbj: reqprov.c: use headerGetExtension everywhere.
   - jbj: parsePreamble.c: use headerGetExtension everywhere.
   - jbj: pack.c: use headerGetExtension everywhere.
   - jbj: files.c: fix: append to pkg-fileList.
  @@ .
  patch -p0 '@@ .'
  Index: rpm/build/reqprov.c
  
  $ cvs diff -u -r1.69 -r1.70 reqprov.c
  --- rpm/build/reqprov.c   16 Jul 2007 01:32:26 -  1.69
  +++ rpm/build/reqprov.c   14 Oct 2007 18:29:10 -  1.70
  @@ -14,10 +14,13 @@
const char * N, const char * EVR, rpmsenseFlags Flags,
int index)
   {
  -HGE_t hge = (HGE_t)headerGetEntryMinMemory;
  -HFD_t hfd = headerFreeData;
  +HGE_t hge = (HGE_t)headerGetExtension;
  +int_32 he_t = 0;
  +hRET_t he_p = { .ptr = NULL };
  +int_32 he_c = 0;
  +HE_s he_s = { .tag = 0, .t = he_t, .p = he_p, .c = he_c, .freeData = 
0 };
  +HE_t he = he_s;
   const char ** names;
  -rpmTagType dnt;
   rpmTag nametag = 0;
   rpmTag versiontag = 0;
   rpmTag flagtag = 0;
  @@ -60,19 +63,29 @@
   /[EMAIL PROTECTED]@*/
   
   /* Check for duplicate dependencies. */
  -if (hge(h, nametag, dnt, names, len)) {
  +he-tag = nametag;
  +xx = hge(h, he-tag, he-t, he-p, he-c);
  +names = he_p.argv;
  +len = he_c;
  +if (xx) {
const char ** versions = NULL;
  - rpmTagType dvt = RPM_STRING_ARRAY_TYPE;
  - int *flags = NULL;
  - int *indexes = NULL;
  + int_32 *flags = NULL;
  + int_32 *indexes = NULL;
int duplicate = 0;
   
if (flagtag) {
  - xx = hge(h, versiontag, dvt, versions, NULL);
  - xx = hge(h, flagtag, NULL, flags, NULL);
  + he-tag = versiontag;
  + xx = hge(h, he-tag, he-t, he-p, he-c);
  + versions = he_p.argv;
  + he-tag = flagtag;
  + xx = hge(h, he-tag, he-t, he-p, he-c);
  + flags = he_p.i32p;
  + }
  + if (indextag) {
  + he-tag = indextag;
  + xx = hge(h, he-tag, he-t, he-p, he-c);
  + indexes = he_p.i32p;
}
  - if (indextag)
  - xx = hge(h, indextag, NULL, indexes, NULL);
   
   /[EMAIL PROTECTED]@*/
while (len  0) {
  @@ -91,8 +104,10 @@
break;
}
   /[EMAIL PROTECTED]@*/
  - names = hfd(names, dnt);
  - versions = hfd(versions, dvt);
  + names = _free(names);
  + versions = _free(versions);
  + flags = _free(flags);
  + indexes = _free(indexes);
if (duplicate)
return 0;
   }
  @@ .
__
RPM Package Managerhttp://rpm5.org
CVS Sources Repositoryrpm-cvs@rpm5.org