]> git.pld-linux.org Git - packages/poldek.git/commitdiff
- support Obsoletes for provided caps (from mis)
authorJakub Bogusz <qboosh@pld-linux.org>
Wed, 25 Aug 2004 12:49:01 +0000 (12:49 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    poldek-obsoletes_provides.patch -> 1.1

poldek-obsoletes_provides.patch [new file with mode: 0644]

diff --git a/poldek-obsoletes_provides.patch b/poldek-obsoletes_provides.patch
new file mode 100644 (file)
index 0000000..d551000
--- /dev/null
@@ -0,0 +1,69 @@
+Index: rpm.c
+===================================================================
+RCS file: /cvsroot/installer/poldek/Attic/rpm.c,v
+retrieving revision 1.41.4.6
+diff -u -r1.41.4.6 rpm.c
+--- rpm.c      14 Aug 2004 20:40:46 -0000      1.41.4.6
++++ rpm.c      25 Aug 2004 12:12:36 -0000
+@@ -446,20 +446,34 @@
+     return n;
+ }
+-
+-int rpm_get_obsoletedby_cap(rpmdb db, tn_array *dbpkgs, struct capreq *cap,
+-                            unsigned ldflags)
++static
++int get_obsoletedby_cap(rpmdb db, int tag, tn_array *dbpkgs, struct capreq *cap,
++                        unsigned ldflags)
+ {
+     struct rpmdb_it it;
+     const struct dbrec *dbrec;
+     int n = 0;
+-    
+-    rpmdb_it_init(db, &it, RPMITER_NAME, capreq_name(cap));
++
++    rpmdb_it_init(db, &it, tag, capreq_name(cap));
+     while ((dbrec = rpmdb_it_get(&it)) != NULL) {
++        int add = 0;
+         if (dbpkg_array_has(dbpkgs, dbrec->recno))
+-           continue;
+-        
+-        if (header_evr_match_req(dbrec->h, cap)) {
++            continue;
++
++        switch (tag) {
++            case RPMITER_NAME:
++                add = header_evr_match_req(dbrec->h, cap);
++                break;
++
++            case RPMITER_CAP:
++                add = header_cap_match_req(dbrec->h, cap, 1);
++                break;
++                
++            default:
++                n_assert(0);
++                break;
++        }
++        if (add) {
+             struct dbpkg *dbpkg = dbpkg_new(dbrec->recno, dbrec->h, ldflags);
+             n_array_push(dbpkgs, dbpkg);
+             n_array_sort(dbpkgs);
+@@ -467,6 +481,18 @@
+         }
+     }
+     rpmdb_it_destroy(&it);
++    return n;
++}
++
++int rpm_get_obsoletedby_cap(rpmdb db, tn_array *dbpkgs, struct capreq *cap,
++                            unsigned ldflags)
++{
++    int n;
++
++    n = get_obsoletedby_cap(db, RPMITER_NAME, dbpkgs, cap, ldflags);
++#ifdef HAVE_RPM_4_1
++    n += get_obsoletedby_cap(db, RPMITER_CAP, dbpkgs, cap, ldflags);
++#endif    
+     return n;
+ }
This page took 0.128819 seconds and 4 git commands to generate.