diff options
author | Daniel Nicoletti <dantti12@gmail.com> | 2012-04-18 11:50:05 -0300 |
---|---|---|
committer | Daniel Nicoletti <dantti12@gmail.com> | 2012-04-18 11:50:05 -0300 |
commit | 21aef7cf7f39e5ca47c95e323732acd105b37446 (patch) | |
tree | 7523900bb2735c0ff2a4a27dc674226c30550525 | |
parent | 9f893b55bc932a9be22dd194be33b3f657135108 (diff) |
packagekit: Add PK_ERROR_ENUM_UNFINISHED_TRANSACTION and PK_EXIT_ENUM_REPAIR_REQUIRED so that UI can know when to repair the system
-rw-r--r-- | lib/packagekit-glib2/pk-enum.c | 2 | ||||
-rw-r--r-- | lib/packagekit-glib2/pk-enum.h | 2 | ||||
-rw-r--r-- | lib/packagekit-qt2/transaction.h | 6 | ||||
-rw-r--r-- | src/pk-backend.c | 5 |
4 files changed, 13 insertions, 2 deletions
diff --git a/lib/packagekit-glib2/pk-enum.c b/lib/packagekit-glib2/pk-enum.c index 903ca9e5c..e84b54ff6 100644 --- a/lib/packagekit-glib2/pk-enum.c +++ b/lib/packagekit-glib2/pk-enum.c @@ -47,6 +47,7 @@ static const PkEnumMatch enum_exit[] = { {PK_EXIT_ENUM_NEED_UNTRUSTED, "need-untrusted"}, {PK_EXIT_ENUM_CANCELLED_PRIORITY, "cancelled-priority"}, {PK_EXIT_ENUM_SKIP_TRANSACTION, "skip-transaction"}, + {PK_EXIT_ENUM_REPAIR_REQUIRED, "repair-required"}, {0, NULL} }; @@ -200,6 +201,7 @@ static const PkEnumMatch enum_error[] = { {PK_ERROR_ENUM_INSTALL_ROOT_INVALID, "install-root-invalid"}, {PK_ERROR_ENUM_CANNOT_FETCH_SOURCES, "cannot-fetch-sources"}, {PK_ERROR_ENUM_CANCELLED_PRIORITY, "cancelled-priority"}, + {PK_ERROR_ENUM_UNFINISHED_TRANSACTION, "unfinished-transaction"}, {0, NULL} }; diff --git a/lib/packagekit-glib2/pk-enum.h b/lib/packagekit-glib2/pk-enum.h index 7c96d8a6d..92c91e46e 100644 --- a/lib/packagekit-glib2/pk-enum.h +++ b/lib/packagekit-glib2/pk-enum.h @@ -168,6 +168,7 @@ typedef enum { PK_EXIT_ENUM_NEED_UNTRUSTED, PK_EXIT_ENUM_CANCELLED_PRIORITY, PK_EXIT_ENUM_SKIP_TRANSACTION, + PK_EXIT_ENUM_REPAIR_REQUIRED, PK_EXIT_ENUM_LAST } PkExitEnum; @@ -333,6 +334,7 @@ typedef enum { PK_ERROR_ENUM_INSTALL_ROOT_INVALID, PK_ERROR_ENUM_CANNOT_FETCH_SOURCES, PK_ERROR_ENUM_CANCELLED_PRIORITY, + PK_ERROR_ENUM_UNFINISHED_TRANSACTION, PK_ERROR_ENUM_LAST } PkErrorEnum; diff --git a/lib/packagekit-qt2/transaction.h b/lib/packagekit-qt2/transaction.h index 2d0ffb408..969201256 100644 --- a/lib/packagekit-qt2/transaction.h +++ b/lib/packagekit-qt2/transaction.h @@ -194,7 +194,8 @@ public: ErrorProvideTypeNotSupported, ErrorInstallRootInvalid, ErrorCannotFetchSources, - ErrorCancelledPriority + ErrorCancelledPriority, + ErrorUnfinishedTransaction } Error; /** @@ -211,7 +212,8 @@ public: ExitKilled, /* when we forced the cancel, but had to sigkill */ ExitMediaChangeRequired, ExitNeedUntrusted, - ExitCancelledPriority + ExitCancelledPriority, + ExitRepairRequired } Exit; /** diff --git a/src/pk-backend.c b/src/pk-backend.c index bacd07bb4..652497a56 100644 --- a/src/pk-backend.c +++ b/src/pk-backend.c @@ -2195,6 +2195,11 @@ pk_backend_error_code (PkBackend *backend, PkErrorEnum error_code, const gchar * else pk_backend_set_exit_code (backend, PK_EXIT_ENUM_FAILED); + /* set the hint that RepairSystem is needed */ + if (error_code == PK_ERROR_ENUM_UNFINISHED_TRANSACTION) { + pk_backend_set_exit_code (backend, PK_EXIT_ENUM_REPAIR_REQUIRED); + } + /* form PkError struct */ item = pk_error_new (); g_object_set (item, |