diff --git a/backends/alpm/pk-backend-error.c b/backends/alpm/pk-backend-error.c index 255f1fbfa..ac8fd17dc 100644 --- a/backends/alpm/pk-backend-error.c +++ b/backends/alpm/pk-backend-error.c @@ -33,140 +33,153 @@ pk_backend_error (PkBackend *self, GError *error) g_return_if_fail (self != NULL); g_return_if_fail (error != NULL); - if (error->domain == ALPM_ERROR) { - switch (error->code) { - case PM_ERR_MEMORY: - case PM_ERR_SYSTEM: - code = PK_ERROR_ENUM_OOM; - break; + if (error->domain != ALPM_ERROR) { + pk_backend_error_code (self, code, "%s", error->message); + return; + } - case PM_ERR_BADPERMS: - code = PK_ERROR_ENUM_NOT_AUTHORIZED; - break; + switch (error->code) { + case PM_ERR_MEMORY: + case PM_ERR_SYSTEM: + code = PK_ERROR_ENUM_OOM; + break; - case PM_ERR_NOT_A_FILE: - case PM_ERR_NOT_A_DIR: - code = PK_ERROR_ENUM_FILE_NOT_FOUND; - break; + case PM_ERR_BADPERMS: + code = PK_ERROR_ENUM_NOT_AUTHORIZED; + break; - case PM_ERR_WRONG_ARGS: - case PM_ERR_HANDLE_NULL: - case PM_ERR_DB_NULL: - case PM_ERR_TRANS_NULL: - case PM_ERR_TRANS_NOT_INITIALIZED: - case PM_ERR_TRANS_NOT_PREPARED: - case PM_ERR_TRANS_NOT_LOCKED: - case PM_ERR_INVALID_REGEX: - code = PK_ERROR_ENUM_INTERNAL_ERROR; - break; + case PM_ERR_NOT_A_FILE: + case PM_ERR_NOT_A_DIR: + code = PK_ERROR_ENUM_FILE_NOT_FOUND; + break; - case PM_ERR_DISK_SPACE: - code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE; - break; + case PM_ERR_WRONG_ARGS: + case PM_ERR_HANDLE_NULL: + case PM_ERR_DB_NULL: + case PM_ERR_TRANS_NULL: + case PM_ERR_TRANS_NOT_INITIALIZED: + case PM_ERR_TRANS_NOT_PREPARED: + case PM_ERR_TRANS_NOT_LOCKED: + case PM_ERR_INVALID_REGEX: + code = PK_ERROR_ENUM_INTERNAL_ERROR; + break; - case PM_ERR_HANDLE_NOT_NULL: - case PM_ERR_DB_NOT_NULL: - case PM_ERR_TRANS_NOT_NULL: - code = PK_ERROR_ENUM_FAILED_INITIALIZATION; - break; + case PM_ERR_DISK_SPACE: + code = PK_ERROR_ENUM_NO_SPACE_ON_DEVICE; + break; - case PM_ERR_HANDLE_LOCK: - code = PK_ERROR_ENUM_CANNOT_GET_LOCK; - break; + case PM_ERR_HANDLE_NOT_NULL: + case PM_ERR_DB_NOT_NULL: + case PM_ERR_TRANS_NOT_NULL: + code = PK_ERROR_ENUM_FAILED_INITIALIZATION; + break; - case PM_ERR_DB_OPEN: - case PM_ERR_DB_NOT_FOUND: - case PM_ERR_PKG_REPO_NOT_FOUND: - code = PK_ERROR_ENUM_REPO_NOT_FOUND; - break; + case PM_ERR_HANDLE_LOCK: + code = PK_ERROR_ENUM_CANNOT_GET_LOCK; + break; - case PM_ERR_DB_CREATE: - code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG; - break; + case PM_ERR_DB_OPEN: + case PM_ERR_DB_NOT_FOUND: + case PM_ERR_PKG_REPO_NOT_FOUND: + code = PK_ERROR_ENUM_REPO_NOT_FOUND; + break; - case PM_ERR_DB_VERSION: - case PM_ERR_DB_REMOVE: - code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR; - break; + case PM_ERR_DB_CREATE: + code = PK_ERROR_ENUM_CANNOT_WRITE_REPO_CONFIG; + break; - case PM_ERR_DB_WRITE: - code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE; - break; + case PM_ERR_DB_VERSION: + case PM_ERR_DB_REMOVE: + case PM_ERR_SERVER_BAD_URL: + case PM_ERR_SIG_MISSINGDIR: + code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR; + break; - case PM_ERR_SERVER_BAD_URL: - code = PK_ERROR_ENUM_REPO_CONFIGURATION_ERROR; - break; + case PM_ERR_DB_WRITE: + code = PK_ERROR_ENUM_REPO_NOT_AVAILABLE; + break; - case PM_ERR_SERVER_NONE: - code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY; - break; + case PM_ERR_SERVER_NONE: + code = PK_ERROR_ENUM_NO_MORE_MIRRORS_TO_TRY; + break; - case PM_ERR_TRANS_DUP_TARGET: - case PM_ERR_TRANS_ABORT: - code = PK_ERROR_ENUM_TRANSACTION_ERROR; - break; + case PM_ERR_TRANS_DUP_TARGET: + case PM_ERR_TRANS_ABORT: + code = PK_ERROR_ENUM_TRANSACTION_ERROR; + break; - case PM_ERR_TRANS_TYPE: - code = PK_ERROR_ENUM_CANNOT_CANCEL; - break; + case PM_ERR_TRANS_TYPE: + code = PK_ERROR_ENUM_CANNOT_CANCEL; + break; - case PM_ERR_PKG_NOT_FOUND: - code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND; - break; + case PM_ERR_PKG_NOT_FOUND: + code = PK_ERROR_ENUM_PACKAGE_NOT_FOUND; + break; - case PM_ERR_PKG_IGNORED: - code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED; - break; + case PM_ERR_PKG_IGNORED: + code = PK_ERROR_ENUM_PACKAGE_INSTALL_BLOCKED; + break; - case PM_ERR_PKG_INVALID: - case PM_ERR_PKG_OPEN: - case PM_ERR_PKG_INVALID_NAME: - case PM_ERR_DLT_INVALID: - code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE; - break; + case PM_ERR_PKG_INVALID: + case PM_ERR_PKG_OPEN: + case PM_ERR_PKG_INVALID_NAME: + case PM_ERR_DLT_INVALID: + code = PK_ERROR_ENUM_INVALID_PACKAGE_FILE; + break; - case PM_ERR_PKG_CANT_REMOVE: - code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE; - break; + case PM_ERR_PKG_CANT_REMOVE: + code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_REMOVE; + break; - case PM_ERR_PKG_INVALID_ARCH: - code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE; - break; + case PM_ERR_PKG_INVALID_ARCH: + code = PK_ERROR_ENUM_INCOMPATIBLE_ARCHITECTURE; + break; - case PM_ERR_DLT_PATCHFAILED: - code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD; - break; + case PM_ERR_SIG_INVALID: + code = PK_ERROR_ENUM_BAD_GPG_SIGNATURE; + break; - case PM_ERR_UNSATISFIED_DEPS: - code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED; - break; + case PM_ERR_SIG_UNKNOWN: + code = PK_ERROR_ENUM_MISSING_GPG_SIGNATURE; + break; - case PM_ERR_CONFLICTING_DEPS: - code = PK_ERROR_ENUM_PACKAGE_CONFLICTS; - break; + case PM_ERR_DLT_PATCHFAILED: + code = PK_ERROR_ENUM_PACKAGE_FAILED_TO_BUILD; + break; - case PM_ERR_FILE_CONFLICTS: - code = PK_ERROR_ENUM_FILE_CONFLICTS; - break; + case PM_ERR_UNSATISFIED_DEPS: + code = PK_ERROR_ENUM_DEP_RESOLUTION_FAILED; + break; - case PM_ERR_RETRIEVE: - case PM_ERR_LIBFETCH: - case PM_ERR_EXTERNAL_DOWNLOAD: - code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED; - break; + case PM_ERR_CONFLICTING_DEPS: + code = PK_ERROR_ENUM_PACKAGE_CONFLICTS; + break; - case PM_ERR_LIBARCHIVE: - code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED; - break; + case PM_ERR_FILE_CONFLICTS: + code = PK_ERROR_ENUM_FILE_CONFLICTS; + break; - case PM_ERR_CONFIG_INVALID: - code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE; - break; + case PM_ERR_RETRIEVE: + case PM_ERR_LIBCURL: + case PM_ERR_EXTERNAL_DOWNLOAD: + code = PK_ERROR_ENUM_PACKAGE_DOWNLOAD_FAILED; + break; - case PM_ERR_PKG_HELD: - code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE; - break; - } + case PM_ERR_LIBARCHIVE: + code = PK_ERROR_ENUM_LOCAL_INSTALL_FAILED; + break; + + case PM_ERR_GPGME: + code = PK_ERROR_ENUM_GPG_FAILURE; + break; + + case PM_ERR_CONFIG_INVALID: + code = PK_ERROR_ENUM_FAILED_CONFIG_PARSING; + break; + + case PM_ERR_PKG_HELD: + code = PK_ERROR_ENUM_CANNOT_REMOVE_SYSTEM_PACKAGE; + break; } pk_backend_error_code (self, code, "%s", error->message);