} Map;
#define MAPZERO(m) (memset((m)->map, 0, (m)->size))
-#define MAPSET(m, n) ((m)->map[(n) >> 3] |= 1 << ((n) & 7))
-#define MAPCLR(m, n) ((m)->map[(n) >> 3] &= ~(1 << ((n) & 7)))
-#define MAPTST(m, n) ((m)->map[(n) >> 3] & (1 << ((n) & 7)))
+#define MAPSET(m, n) ((m)->map[(n) >> 3] |= 1 << ((n) & 7)) // Set Bit
+#define MAPCLR(m, n) ((m)->map[(n) >> 3] &= ~(1 << ((n) & 7))) // Reset Bit
+#define MAPTST(m, n) ((m)->map[(n) >> 3] & (1 << ((n) & 7))) // Test Bit
extern void map_init(Map *m, int n);
extern void map_free(Map *m);
}
r->n1 = 0;
r->n2 = 0;
+
+ if (solv->pool->verbose > 3) {
+ printf (" Add rule: ");
+ printrule (solv, r);
+ }
+
return r;
}
/*
* add (install) rules for solvable
- *
+ * for unfulfilled requirements, conflicts, obsoletes,....
+ * "unflag" a resolvable if it is not installable via "addrule(solv, -n, 0)"
*/
static void
Id *dp;
Id n;
+ if (solv->pool->verbose > 3) {
+ printf ("----- addrpmrulesforsolvable -----\n");
+ }
+
queue_init_buffer(&q, qbuf, sizeof(qbuf)/sizeof(*qbuf));
queue_push(&q, s - pool->solvables); /* push solvable Id */
s = pool->solvables + n; /* s = Solvable in question */
dontfix = 0;
- if (installed
- && !solv->fixsystem
- && n >= installed->start /* is it installed? */
+ if (installed /* Installed system available */
+ && !solv->fixsystem /* NOT repair errors in rpm dependency graph */
+ && n >= installed->start /* is it installed? */
&& n < installed->start + installed->nsolvables)
{
dontfix = 1; /* dont care about broken rpm deps */
if (s->requires)
{
reqp = s->repo->idarraydata + s->requires;
- while ((req = *reqp++) != 0)
+ while ((req = *reqp++) != 0) /* go throw all requires */
{
if (req == SOLVABLE_PREREQMARKER) /* skip the marker */
continue;
- dp = GET_PROVIDESP(req, p); /* get providers of req */
+ dp = GET_PROVIDESP(req, p); /* get providers of req; p is a dummy only */
if (*dp == SYSTEMSOLVABLE) /* always installed */
continue;
Id sup, *supp;
int i, n;
- if (pool->verbose) printf("addrpmrulesforweak... (%d)\n", solv->nrules);
+ if (pool->verbose) printf("----- addrpmrulesforweak ----- (nrules %d)\n", solv->nrules);
for (i = n = 1; n < pool->nsolvables; i++, n++)
{
if (i == pool->nsolvables)
Queue qs;
Id qsbuf[64];
+ if (solv->pool->verbose > 3) {
+ printf ("----- addrpmrulesforupdaters -----\n");
+ }
+
if (!MAPTST(m, s - pool->solvables)) /* add rule for s if not already done */
addrpmrulesforsolvable(solv, s, m);
queue_init_buffer(&qs, qsbuf, sizeof(qsbuf)/sizeof(*qsbuf));
Queue qs;
Id qsbuf[64];
+ if (solv->pool->verbose > 3) {
+ printf ("----- addupdaterule -----\n");
+ }
+
queue_init_buffer(&qs, qsbuf, sizeof(qsbuf)/sizeof(*qsbuf));
policy_findupdatepackages(solv, s, &qs, allowall);
if (qs.count == 0) /* no updaters found */
* so called: rpm rules
*
*/
-
+ if (solv->pool->verbose > 3) {
+ printf ("*** create rules for installed solvables -> keep them installed ***\n");
+ }
for (i = solv->installed->start; i < solv->installed->start + solv->installed->nsolvables; i++)
addrpmrulesforsolvable(solv, pool->solvables + i, &addedmap);
* solvable rules
* process job rules for solvables
*/
+ if (solv->pool->verbose > 3) {
+ printf ("*** create install rules ***\n");
+ }
for (i = 0; i < job->count; i += 2)
{