From: Kristian Høgsberg Date: Wed, 9 Apr 2008 03:53:57 +0000 (-0400) Subject: Make transaction resolve step optional. X-Git-Tag: 0.1~154 X-Git-Url: http://project.juiblex.co.uk/git/?a=commitdiff_plain;h=d3771ab9d72a70648bb2ab09d663d6042592d9ee;p=razor.git Make transaction resolve step optional. --- diff --git a/main.c b/main.c index 23f08c8..e15c511 100644 --- a/main.c +++ b/main.c @@ -421,7 +421,7 @@ command_update(int argc, const char *argv[]) } } - errors = razor_transaction_describe(trans); + errors = razor_transaction_resolve(trans); if (errors) return 1; @@ -453,7 +453,7 @@ command_remove(int argc, const char *argv[]) } } - errors = razor_transaction_describe(trans); + errors = razor_transaction_resolve(trans); if (errors) return 1; @@ -626,7 +626,12 @@ command_install(int argc, const char *argv[]) struct razor_set *system, *upstream, *next; struct razor_transaction *trans; char path[PATH_MAX], new_path[PATH_MAX]; - int i, errors, fd; + int i = 0, errors, fd, dependencies = 1; + + if (i < argc && strcmp(argv[i], "--no-dependencies") == 0) { + dependencies = 0; + i++; + } /* Create the new next repo file up front to ensure exclusive * access. */ @@ -653,7 +658,7 @@ command_install(int argc, const char *argv[]) return 1; } trans = razor_transaction_create(system, upstream); - for (i = 0; i < argc; i++) { + for (; i < argc; i++) { if (mark_packages_for_update(trans, upstream, argv[i]) == 0) { fprintf(stderr, "no package matched %s\n", argv[i]); unlink(new_path); @@ -661,10 +666,12 @@ command_install(int argc, const char *argv[]) } } - errors = razor_transaction_describe(trans); - if (errors) { - unlink(new_path); - return 1; + if (dependencies) { + errors = razor_transaction_resolve(trans); + if (errors) { + unlink(new_path); + return 1; + } } next = razor_transaction_finish(trans); diff --git a/razor.c b/razor.c index e21e5bf..23ce5e3 100644 --- a/razor.c +++ b/razor.c @@ -2696,7 +2696,7 @@ print_requirement(struct razor_transaction_package *p) } int -razor_transaction_describe(struct razor_transaction *trans) +razor_transaction_resolve(struct razor_transaction *trans) { struct razor_transaction_package *p, *pend, *tps; int errors_only = 0; @@ -2841,8 +2841,6 @@ razor_transaction_unsatisfied_property(struct razor_transaction *trans, { struct razor_transaction_package *p, *end; - resolve_transaction(trans); - end = trans->packages.data + trans->packages.size; for (p = trans->packages.data; p < end; p++) { if (p->state != RAZOR_PACKAGE_UNSATISFIABLE) @@ -2871,8 +2869,6 @@ razor_transaction_finish(struct razor_transaction *trans) struct razor_transaction_package *p, *end; int cmp; - resolve_transaction(trans); - /* FIXME */ if (trans->errors) return NULL; diff --git a/razor.h b/razor.h index b64d661..30268e4 100644 --- a/razor.h +++ b/razor.h @@ -118,7 +118,7 @@ void razor_transaction_install_package(struct razor_transaction *transaction, void razor_transaction_remove_package(struct razor_transaction *transaction, struct razor_package *package); void razor_transaction_update_all(struct razor_transaction *transaction); -int razor_transaction_describe(struct razor_transaction *trans); +int razor_transaction_resolve(struct razor_transaction *trans); struct razor_set *razor_transaction_finish(struct razor_transaction *trans); void razor_transaction_destroy(struct razor_transaction *trans); diff --git a/test-driver.c b/test-driver.c index 2bdc3e6..8ff184e 100644 --- a/test-driver.c +++ b/test-driver.c @@ -267,7 +267,7 @@ end_transaction(struct test_context *ctx) razor_transaction_remove_package(ctx->trans, pkg); } - errors = razor_transaction_describe(ctx->trans); + errors = razor_transaction_resolve(ctx->trans); printf("\n"); while (ctx->n_install_pkgs--)