]> git.pld-linux.org Git - packages/poldek.git/blob - poldek-obsoletes_provides.patch
- release 13
[packages/poldek.git] / poldek-obsoletes_provides.patch
1 Index: rpm.c
2 ===================================================================
3 RCS file: /cvsroot/installer/poldek/Attic/rpm.c,v
4 retrieving revision 1.41.4.6
5 diff -u -r1.41.4.6 rpm.c
6 --- rpm.c       14 Aug 2004 20:40:46 -0000      1.41.4.6
7 +++ rpm.c       27 Aug 2004 19:15:44 -0000
8 @@ -446,20 +446,34 @@
9      return n;
10  }
11  
12 -
13 -int rpm_get_obsoletedby_cap(rpmdb db, tn_array *dbpkgs, struct capreq *cap,
14 -                            unsigned ldflags)
15 +static
16 +int get_obsoletedby_cap(rpmdb db, int tag, tn_array *dbpkgs, struct capreq *cap,
17 +                        unsigned ldflags)
18  {
19      struct rpmdb_it it;
20      const struct dbrec *dbrec;
21      int n = 0;
22 -    
23 -    rpmdb_it_init(db, &it, RPMITER_NAME, capreq_name(cap));
24 +
25 +    rpmdb_it_init(db, &it, tag, capreq_name(cap));
26      while ((dbrec = rpmdb_it_get(&it)) != NULL) {
27 +        int add = 0;
28          if (dbpkg_array_has(dbpkgs, dbrec->recno))
29 -           continue;
30 -        
31 -        if (header_evr_match_req(dbrec->h, cap)) {
32 +            continue;
33 +
34 +        switch (tag) {
35 +            case RPMITER_NAME:
36 +                add = header_evr_match_req(dbrec->h, cap);
37 +                break;
38 +
39 +            case RPMITER_CAP:
40 +                add = header_cap_match_req(dbrec->h, cap, 1);
41 +                break;
42 +                
43 +            default:
44 +                n_assert(0);
45 +                break;
46 +        }
47 +        if (add) {
48              struct dbpkg *dbpkg = dbpkg_new(dbrec->recno, dbrec->h, ldflags);
49              n_array_push(dbpkgs, dbpkg);
50              n_array_sort(dbpkgs);
51 @@ -470,6 +484,11 @@
52      return n;
53  }
54  
55 +int rpm_get_obsoletedby_cap(rpmdb db, tn_array *dbpkgs, struct capreq *cap,
56 +                            unsigned ldflags)
57 +{
58 +    return get_obsoletedby_cap(db, RPMITER_NAME, dbpkgs, cap, ldflags);
59 +}
60  
61  int rpm_get_obsoletedby_pkg(rpmdb db, tn_array *dbpkgs, const struct pkg *pkg,
62                              unsigned ldflags)
63 @@ -482,7 +501,7 @@
64                            REL_EQ | REL_LT, 0);
65      n = rpm_get_obsoletedby_cap(db, dbpkgs, self_cap, ldflags);
66      capreq_free(self_cap);
67 -    
68 +
69      if (pkg->cnfls == NULL)
70          return n;
71      
72 @@ -493,6 +512,9 @@
73              continue;
74  
75          n += rpm_get_obsoletedby_cap(db, dbpkgs, cnfl, ldflags);
76 +#ifdef HAVE_RPM_4_1
77 +        n += get_obsoletedby_cap(db, RPMITER_CAP, dbpkgs, cnfl, ldflags);
78 +#endif    
79      }
80      
81      return n;
This page took 0.040755 seconds and 3 git commands to generate.