]> git.pld-linux.org Git - packages/poldek.git/blame - poldek-obsoletes_provides.patch
- removed -progress2 -deps-fix -obsoletes_provides -rev-promote -sigsegv2
[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
737bfe25 7+++ rpm.c 27 Aug 2004 19:15:44 -0000
38a4dd2b
JB
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))
dd7fd593 29- continue;
38a4dd2b
JB
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);
737bfe25
JB
51@@ -470,6 +484,11 @@
52 return n;
53 }
54
38a4dd2b
JB
55+int rpm_get_obsoletedby_cap(rpmdb db, tn_array *dbpkgs, struct capreq *cap,
56+ unsigned ldflags)
57+{
737bfe25
JB
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-
38a4dd2b 68+
737bfe25
JB
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);
38a4dd2b 76+#ifdef HAVE_RPM_4_1
737bfe25 77+ n += get_obsoletedby_cap(db, RPMITER_CAP, dbpkgs, cnfl, ldflags);
38a4dd2b 78+#endif
737bfe25
JB
79 }
80
38a4dd2b 81 return n;
This page took 0.07189 seconds and 4 git commands to generate.