2 ===================================================================
3 RCS file: /cvsroot/installer/poldek/pkg.c,v
4 retrieving revision 1.51.4.7
5 diff -u -r1.51.4.7 pkg.c
6 --- pkg.c 14 Aug 2004 21:28:12 -0000 1.51.4.7
7 +++ pkg.c 25 Aug 2004 14:31:55 -0000
9 #include <rpm/rpmlib.h>
10 #include <trurl/nstr.h>
11 #include <trurl/nassert.h>
13 +#define ENABLE_TRACE 0
19 #define rel_not_match(cmprc, req) (rel_match(cmprc, req) == 0)
21 +static void promote_epoch_warn(int verbose_level,
22 + const char *title0, const char *p0,
25 + if (verbose > verbose_level)
26 + logn(LOGWARN, "%s '%s' needs an epoch (assuming same "
27 + "epoch as %s)\n", title0, p0, p1);
32 int cap_match_req(const struct capreq *cap, const struct capreq *req,
35 register int cmprc = 0, evr = 0;
37 - DBGMSG_F("cap %s req %s\n", capreq_snprintf_s(cap), capreq_snprintf_s0(req));
38 + DBGF("cap %s req %s\n", capreq_snprintf_s(cap), capreq_snprintf_s0(req));
40 if (strcmp(capreq_name(cap), capreq_name(req)) != 0)
43 if (!capreq_versioned(req))
46 - if (capreq_has_epoch(cap)) {
47 - if (!capreq_has_epoch(req) && poldek_conf_promote_epoch) {
49 - logn(LOGWARN, "req '%s' needs an epoch (assuming same epoch as %s)\n",
50 - capreq_snprintf_s(req), capreq_snprintf_s0(cap));
51 + if (capreq_has_epoch(cap) || capreq_has_epoch(req)) {
54 + if (poldek_conf_promote_epoch) {
55 + if (!capreq_has_epoch(req)) {
56 + promote_epoch_warn(1, "req", capreq_snprintf_s(req),
57 + capreq_snprintf_s0(cap));
61 + if (!capreq_has_epoch(cap)) {
62 + promote_epoch_warn(1, "cap", capreq_snprintf_s(cap),
63 + capreq_snprintf_s0(req));
76 - } else if (capreq_epoch(req) > 0) { /* always promote cap's epoch */
78 +#if 0 /* disabled autopromotion */
79 + else if (capreq_epoch(req) > 0) { /* always promote cap's epoch */
86 if (capreq_has_epoch(req)) {
88 if (promote_epoch == -1)
89 promote_epoch = poldek_conf_promote_epoch;
92 + if (pkg->epoch || capreq_has_epoch(req)) {
94 if (!capreq_has_epoch(req) && promote_epoch) {
96 - logn(LOGWARN, "req '%s' needs an epoch (assuming same epoch as %s)\n",
97 - capreq_snprintf_s(req), pkg_snprintf_epoch_s(pkg));
98 + promote_epoch_warn(1, "req", capreq_snprintf_s(req),
99 + pkg_snprintf_epoch_s(pkg));
103 + if (!pkg->epoch && capreq_epoch(req) > 0 && promote_epoch) {
104 + promote_epoch_warn(1, "package", pkg_snprintf_epoch_s(pkg),
105 + capreq_snprintf_s(req));
113 @@ -813,11 +849,13 @@
117 - } else if (capreq_epoch(req) > 0) { /* always promote package's epoch */
119 +#if 0 /* disabled autopromotion */
120 + else if (capreq_epoch(req) > 0) { /* always promote package's epoch */
127 if (capreq_has_ver(req)) {
128 cmprc = rpmvercmp(pkg->ver, capreq_ver(req));
131 cap = n_array_nth(pkg->caps, n);
132 if (cap_match_req(cap, req, strict)) {
133 - DBGMSG("chk%d (%s-%s-%s) -> match (%d)\n", n, capreq_name(cap),
134 - capreq_ver(cap), capreq_rel(cap), strict);
135 + DBGMSG("chk%d %s -> match (strict %d)\n", n,
136 + capreq_snprintf_s(cap), strict);
140 @@ -896,21 +934,19 @@
142 cap = n_array_nth(pkg->caps, n);
143 if (strcmp(capreq_name(cap), capreq_name(req)) != 0) {
144 - DBGMSG("chk%d %s-%s-%s -> NOT match IRET\n", i,
145 - capreq_name(cap), capreq_ver(cap),
147 + DBGMSG("chk%d %s -> NOT match IRET\n", i,
148 + capreq_snprintf_s(cap));
153 if (cap_match_req(cap, req, strict)) {
154 - DBGMSG("chk %s-%s-%s -> match\n", capreq_name(cap),
155 - capreq_ver(cap), capreq_rel(cap));
156 + DBGMSG("chk%d %s -> match (strict %d)\n", i,
157 + capreq_snprintf_s(cap), strict);
160 - DBGMSG("chk%d %s-%s-%s -> NOT match\n", i,
161 - capreq_name(cap), capreq_ver(cap),
163 + DBGMSG("chk%d %s -> match (strict %d)\n", i,
164 + capreq_snprintf_s(cap), strict);
168 @@ -1020,7 +1056,7 @@
169 cnfl = n_array_nth(pkg->cnfls, n);
171 if (cnfl_is_obsl(cnfl) && pkg_match_req(opkg, cnfl, 1)) {
172 - DBGMSG("chk%d (%s-%s-%s) -> match\n", n,
173 + DBGMSG("chk%d %s -> match\n", n,
174 capreq_snprintf_s(cnfl));
177 @@ -1034,17 +1070,17 @@
180 if (strcmp(capreq_name(cnfl), pkg->name) != 0) {
181 - DBGMSG("chk%d %s-%s-%s -> NOT match IRET\n", i,
182 + DBGMSG("chk%d %s -> NOT match IRET\n", i,
183 capreq_snprintf_s(cnfl));
188 if (pkg_match_req(opkg, cnfl, 1)) {
189 - DBGMSG("chk %s-%s-%s -> match\n", capreq_snprintf_s(cnfl));
190 + DBGMSG("chk %s -> match\n", capreq_snprintf_s(cnfl));
193 - DBGMSG("chk%d %s-%s-%s -> NOT match\n", i,
194 + DBGMSG("chk%d %s -> NOT match\n", i,
195 capreq_snprintf_s(cnfl));