When uniquifying properties, also sort them on the owning package.
authorKristian Høgsberg <krh@redhat.com>
Sat, 21 Jun 2008 03:13:09 +0000 (23:13 -0400)
committerKristian Høgsberg <krh@redhat.com>
Sat, 21 Jun 2008 03:13:09 +0000 (23:13 -0400)
This ensures that whenever two packages provide or (or require, obsolete
or conflict) the same property, they appear in the same order in the
propertys list of packages.

librazor/importer.c
librazor/transaction.c

index b8132cf..eb75605 100644 (file)
@@ -135,8 +135,10 @@ compare_properties(const void *p1, const void *p2, void *data)
                return strcmp(&pool[prop1->name], &pool[prop2->name]);
        else if (prop1->flags != prop2->flags)
                return prop1->flags - prop2->flags;
-       else
+       else if (prop1->version != prop2->version)
                return razor_versioncmp(&pool[prop1->version], &pool[prop2->version]);
+       else
+               return prop1->packages.list_ptr - prop2->packages.list_ptr;
 }
 
 static uint32_t *
index 93b1bf2..6633a7a 100644 (file)
@@ -649,9 +649,11 @@ pull_in_requirements(struct razor_transaction *trans,
 
                rpi->present[rp - rpi->start] |= TRANS_PROPERTY_SATISFIED;
 
-               fprintf(stderr, "pulling in %s which provides %s %s %s "
+               fprintf(stderr, "pulling in %s-%s.%s which provides %s %s %s "
                        "to satisfy %s %s %s\n",
                        ppi->pool + pkg->name,
+                       ppi->pool + pkg->version,
+                       ppi->pool + pkg->arch,
                        ppi->pool + pp->name,
                        razor_property_relation_to_string(pp),
                        ppi->pool + pp->version,