1.1 --- a/razor.h Tue Mar 04 10:55:01 2008 -0500
1.2 +++ b/razor.h Wed Mar 05 19:01:51 2008 -0500
1.3 @@ -76,22 +76,25 @@
1.4
1.5 enum razor_transaction_package_state {
1.6 /* Basic states */
1.7 - RAZOR_PACKAGE_INSTALL = 0x01,
1.8 - RAZOR_PACKAGE_REMOVE = 0x02,
1.9 -
1.10 - /* (Flags used to define the error states) */
1.11 - RAZOR_PACKAGE_UNAVAILABLE = 0x04,
1.12 - RAZOR_PACKAGE_UNSATISFIABLE = 0x08,
1.13 - RAZOR_PACKAGE_BLOCKED = 0x10,
1.14 - RAZOR_PACKAGE_CONFLICT = 0x20,
1.15 + RAZOR_PACKAGE_INSTALL,
1.16 + RAZOR_PACKAGE_REMOVE,
1.17
1.18 /* Error states */
1.19 - RAZOR_PACKAGE_INSTALL_UNAVAILABLE = RAZOR_PACKAGE_INSTALL | RAZOR_PACKAGE_UNAVAILABLE,
1.20 - RAZOR_PACKAGE_INSTALL_UNSATISFIABLE = RAZOR_PACKAGE_INSTALL | RAZOR_PACKAGE_UNSATISFIABLE,
1.21 - RAZOR_PACKAGE_INSTALL_CONFLICT = RAZOR_PACKAGE_INSTALL | RAZOR_PACKAGE_CONFLICT,
1.22 - RAZOR_PACKAGE_REMOVE_NOT_INSTALLED = RAZOR_PACKAGE_REMOVE | RAZOR_PACKAGE_UNAVAILABLE,
1.23 - RAZOR_PACKAGE_REMOVE_BLOCKED = RAZOR_PACKAGE_REMOVE | RAZOR_PACKAGE_BLOCKED,
1.24 - RAZOR_PACKAGE_REMOVE_CONFLICT = RAZOR_PACKAGE_REMOVE | RAZOR_PACKAGE_CONFLICT
1.25 +
1.26 + /* Package requested for install does not exist */
1.27 + RAZOR_PACKAGE_INSTALL_UNAVAILABLE,
1.28 + /* Package requested for removal does not exist */
1.29 + RAZOR_PACKAGE_REMOVE_NOT_INSTALLED,
1.30 + /* No newer version of package is available */
1.31 + RAZOR_PACKAGE_UP_TO_DATE,
1.32 + /* Package marked for both install and remove */
1.33 + RAZOR_PACKAGE_CONTRADICTION,
1.34 + /* Package would add a conflict with an already-installed package */
1.35 + RAZOR_PACKAGE_NEW_CONFLICT,
1.36 + /* Already-installed package has a conflict against this package */
1.37 + RAZOR_PACKAGE_OLD_CONFLICT,
1.38 + /* Requirement of to-be-installed package can't be satisfied */
1.39 + RAZOR_PACKAGE_UNSATISFIABLE
1.40 };
1.41
1.42 struct razor_transaction_package {
1.43 @@ -99,11 +102,34 @@
1.44 const char *name, *version;
1.45 enum razor_transaction_package_state state;
1.46
1.47 - const char *req_package;
1.48 - enum razor_property_type req_type;
1.49 - const char *req_property;
1.50 - enum razor_version_relation req_relation;
1.51 - const char *req_version;
1.52 + /* dep_package is the name of the package that resulted in
1.53 + * this entry being created (or NULL if the user requested the
1.54 + * install/remove), with the other dep_ fields providing
1.55 + * additional information.
1.56 + *
1.57 + * For INSTALL, if dep_type is REQUIRES, then dep_package
1.58 + * required something that this package provides. If dep_type
1.59 + * is CONFLICTS, then dep_package is a package that conflicted
1.60 + * with an older version of this package, forcing an upgrade.
1.61 + *
1.62 + * For REMOVE, if dep_type is REQUIRES, then dep_package is a
1.63 + * package that is being removed. If dep_type is OBSOLETES,
1.64 + * then dep_package is a package that obsoletes this one.
1.65 + *
1.66 + * For OLD_CONFLICT or NEW_CONFLICT, dep_package is an
1.67 + * existing package that conflicts with this one. The
1.68 + * conflicting property comes from the already-installed
1.69 + * package for OLD_CONFLICT, or the to-be-installed package
1.70 + * for NEW_CONFLICT.
1.71 + *
1.72 + * For UNSATISFIABLE, the dep_ fields are as for an INSTALL,
1.73 + * but the name field will be NULL.
1.74 + */
1.75 + const char *dep_package;
1.76 + enum razor_property_type dep_type;
1.77 + const char *dep_property;
1.78 + enum razor_version_relation dep_relation;
1.79 + const char *dep_version;
1.80 };
1.81
1.82 struct razor_transaction {