]> git.pld-linux.org Git - packages/poldek.git/blame - poldek-obsoletes_provides.patch
- added obsoletes_provides patch from author, release 10
[packages/poldek.git] / poldek-obsoletes_provides.patch
CommitLineData
38a4dd2b
JB
1Index: rpm.c
2===================================================================
3RCS file: /cvsroot/installer/poldek/Attic/rpm.c,v
4retrieving revision 1.41.4.6
5diff -u -r1.41.4.6 rpm.c
6--- rpm.c 14 Aug 2004 20:40:46 -0000 1.41.4.6
7+++ rpm.c 25 Aug 2004 12:12:36 -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@@ -467,6 +481,18 @@
52 }
53 }
54 rpmdb_it_destroy(&it);
55+ return n;
56+}
57+
58+int rpm_get_obsoletedby_cap(rpmdb db, tn_array *dbpkgs, struct capreq *cap,
59+ unsigned ldflags)
60+{
61+ int n;
62+
63+ n = get_obsoletedby_cap(db, RPMITER_NAME, dbpkgs, cap, ldflags);
64+#ifdef HAVE_RPM_4_1
65+ n += get_obsoletedby_cap(db, RPMITER_CAP, dbpkgs, cap, ldflags);
66+#endif
67 return n;
68 }
69
This page took 0.035393 seconds and 4 git commands to generate.