From 09314103f9341d1eec5a73f82053dc101c1f1e58 Mon Sep 17 00:00:00 2001 From: Jinkun Jang Date: Sat, 16 Mar 2013 01:12:59 +0900 Subject: [PATCH] merge with master --- backend/src/rpm/rpm-installer.c | 50 +++++++++++++++++++++++++++++++++++++- backend/src/vconf/rpm-vconf-intf.c | 22 ++++++++++++----- inc/rpm-installer-util.h | 45 +++++++++++++++++----------------- packaging/rpm-installer.spec | 2 +- 4 files changed, 89 insertions(+), 30 deletions(-) diff --git a/backend/src/rpm/rpm-installer.c b/backend/src/rpm/rpm-installer.c index a2aae62..6df475e 100755 --- a/backend/src/rpm/rpm-installer.c +++ b/backend/src/rpm/rpm-installer.c @@ -282,6 +282,54 @@ FINISH_OFF: return NULL; } +static GList * __rpm_move_dir_list() +{ + GList *dir_list = NULL; + GList *list = NULL; + app2ext_dir_details* dir_detail = NULL; + int i; + char pkg_ro_content_rpm[3][5] = { "bin", "res", }; + + + for (i=0; i<3; i++) { + dir_detail = (app2ext_dir_details*) calloc(1, sizeof(app2ext_dir_details)); + if (dir_detail == NULL) { + printf("\nMemory allocation failed\n"); + goto FINISH_OFF; + } + dir_detail->name = (char*) calloc(1, sizeof(char)*(strlen(pkg_ro_content_rpm[i])+2)); + if (dir_detail->name == NULL) { + printf("\nMemory allocation failed\n"); + free(dir_detail); + goto FINISH_OFF; + } + snprintf(dir_detail->name, (strlen(pkg_ro_content_rpm[i])+1), "%s", pkg_ro_content_rpm[i]); + dir_detail->type = APP2EXT_DIR_RO; + dir_list = g_list_append(dir_list, dir_detail); + } + if (dir_list) { + list = g_list_first(dir_list); + while (list) { + dir_detail = (app2ext_dir_details *)list->data; + list = g_list_next(list); + } + } + return dir_list; +FINISH_OFF: + if (dir_list) { + list = g_list_first(dir_list); + while (list) { + dir_detail = (app2ext_dir_details *)list->data; + if (dir_detail && dir_detail->name) { + free(dir_detail->name); + } + list = g_list_next(list); + } + g_list_free(dir_list); + } + return NULL; +} + int _rpm_uninstall_pkg(char *pkgid) { int ret = 0; @@ -765,7 +813,7 @@ int _rpm_move_pkg(char *pkgid, int move_type) hdl = app2ext_init(APP2EXT_SD_CARD); if ((hdl != NULL) && (hdl->interface.move != NULL)){ - dir_list = __rpm_populate_dir_list(); + dir_list = __rpm_move_dir_list(); if (dir_list == NULL) { _d_msg(DEBUG_ERR, "\nError in populating the directory list\n"); return RPM_INSTALLER_ERR_RPM_SCRIPT_WRONG_ARGS; diff --git a/backend/src/vconf/rpm-vconf-intf.c b/backend/src/vconf/rpm-vconf-intf.c index 3dab0d9..12a38d9 100755 --- a/backend/src/vconf/rpm-vconf-intf.c +++ b/backend/src/vconf/rpm-vconf-intf.c @@ -42,6 +42,8 @@ #define VCONF_RPM_INSTALLER_LAST_REQUESTINFO_OPTIONS \ VCONF_RPM_INSTALLER"/requestinfo/options" +#define ERR_RETURN_LEN 32 + extern pkgmgr_installer *pi; extern char *gpkgname; @@ -161,17 +163,25 @@ void _ri_save_last_input_info(char *pkgid, int reqcommand, int options) void _ri_broadcast_status_notification(char *pkgid, char *key, char *val) { char *pkgid_tmp = NULL; + char buf[ERR_RETURN_LEN] = {'\0'}; + int ret_val = 0; if (gpkgname != NULL) pkgid_tmp = gpkgname; else pkgid_tmp = pkgid; - _d_msg(DEBUG_INFO, "pkgid = %s, key = %s, val = %s\n", - pkgid_tmp, key, val); + ret_val = _ri_string_to_error_no(val); + _d_msg(DEBUG_INFO, "pkgid = %s, key = %s, val = %s, ret_val = %d\n", pkgid_tmp, key, val, ret_val); - if (pi != NULL) - pkgmgr_installer_send_signal(pi, PKGTYPE, pkgid_tmp, key, val); - else - _d_msg(DEBUG_ERR, "Failure in sending broadcast message\n"); + if (ret_val == RPM_INSTALLER_ERR_UNKNOWN){ + if (pi != NULL) + pkgmgr_installer_send_signal(pi, PKGTYPE, pkgid_tmp, key, val); + else + _d_msg(DEBUG_ERR, "Failure in sending broadcast message\n"); + } + else{ + snprintf(buf, ERR_RETURN_LEN - 1, "%d", ret_val); + pkgmgr_installer_send_signal(pi, PKGTYPE, pkgid_tmp, key, buf); + } } diff --git a/inc/rpm-installer-util.h b/inc/rpm-installer-util.h index 0218632..3a1bcc1 100755 --- a/inc/rpm-installer-util.h +++ b/inc/rpm-installer-util.h @@ -40,28 +40,28 @@ extern "C" { #define PKGTYPE "rpm" -#define RPM_INSTALLER_SUCCESS 0 -#define RPM_INSTALLER_ERR_WRONG_PARAM 3 -#define RPM_INSTALLER_ERR_DBUS_PROBLEM 4 -#define RPM_INSTALLER_ERR_NOT_ENOUGH_MEMORY 5 -#define RPM_INSTALLER_ERR_PACKAGE_EXIST 7 -#define RPM_INSTALLER_ERR_PACKAGE_NOT_INSTALLED 8 -#define RPM_INSTALLER_ERR_RESOURCE_BUSY 9 -#define RPM_INSTALLER_ERR_UNKNOWN 10 -#define RPM_INSTALLER_ERR_PKG_NOT_FOUND 11 -#define RPM_INSTALLER_ERR_NOT_SUPPOTED_VERSION 12 -#define RPM_INSTALLER_ERR_NO_RPM_FILE 13 -#define RPM_INSTALLER_ERR_DB_ACCESS_FAILED 14 -#define RPM_INSTALLER_ERR_RPM_OPERATION_FAILED 15 -#define RPM_INSTALLER_ERR_PACKAGE_NOT_UPGRADED 16 -#define RPM_INSTALLER_ERR_RPM_SCRIPT_WRONG_ARGS 17 -#define RPM_INSTALLER_ERR_NEED_USER_CONFIRMATION 18 -#define RPM_INSTALLER_ERR_PACKAGE_INSTALLATION_DISABLED 19 -#define RPM_INSTALLER_ERR_PACKAGE_UNINSTALLATION_DISABLED 20 -#define RPM_INSTALLER_ERR_CLEAR_DATA_FAILED 21 -#define RPM_INSTALLER_ERR_INTERNAL 22 -#define RPM_INSTALLER_ERR_NO_MANIFEST 23 -#define RPM_INSTALLER_ERR_INVALID_MANIFEST 24 +#define RPM_INSTALLER_SUCCESS 0 +#define RPM_INSTALLER_ERR_WRONG_PARAM 101 +#define RPM_INSTALLER_ERR_DBUS_PROBLEM 102 +#define RPM_INSTALLER_ERR_NOT_ENOUGH_MEMORY 62 +#define RPM_INSTALLER_ERR_PACKAGE_EXIST 103 +#define RPM_INSTALLER_ERR_PACKAGE_NOT_INSTALLED 104 +#define RPM_INSTALLER_ERR_RESOURCE_BUSY 105 +#define RPM_INSTALLER_ERR_UNKNOWN 120 +#define RPM_INSTALLER_ERR_PKG_NOT_FOUND 1 +#define RPM_INSTALLER_ERR_NOT_SUPPOTED_VERSION 107 +#define RPM_INSTALLER_ERR_NO_RPM_FILE 108 +#define RPM_INSTALLER_ERR_DB_ACCESS_FAILED 109 +#define RPM_INSTALLER_ERR_RPM_OPERATION_FAILED 110 +#define RPM_INSTALLER_ERR_PACKAGE_NOT_UPGRADED 111 +#define RPM_INSTALLER_ERR_RPM_SCRIPT_WRONG_ARGS 112 +#define RPM_INSTALLER_ERR_NEED_USER_CONFIRMATION 113 +#define RPM_INSTALLER_ERR_PACKAGE_INSTALLATION_DISABLED 114 +#define RPM_INSTALLER_ERR_PACKAGE_UNINSTALLATION_DISABLED 115 +#define RPM_INSTALLER_ERR_CLEAR_DATA_FAILED 116 +#define RPM_INSTALLER_ERR_INTERNAL 117 +#define RPM_INSTALLER_ERR_NO_MANIFEST 11 +#define RPM_INSTALLER_ERR_INVALID_MANIFEST 12 #define RPM_INSTALLER_SUCCESS_STR "Success" #define RPM_INSTALLER_ERR_WRONG_PARAM_STR "Wrong Input Param" @@ -85,6 +85,7 @@ extern "C" { #define RPM_INSTALLER_ERR_NO_MANIFEST_STR "Manifest File Not Found" #define RPM_INSTALLER_ERR_INVALID_MANIFEST_STR "Manifest Validation Failed" + #define DEBUG_ERR 0x0001 #define DEBUG_INFO 0x0002 #define DEBUG_RESULT 0x0004 diff --git a/packaging/rpm-installer.spec b/packaging/rpm-installer.spec index d9cc2ca..7608bd5 100755 --- a/packaging/rpm-installer.spec +++ b/packaging/rpm-installer.spec @@ -1,7 +1,7 @@ Name: rpm-installer Summary: Native rpm installer Version: 0.1.25 -Release: 1 +Release: 2 Group: System/Libraries License: Apache License, Version 2.0 Source0: %{name}-%{version}.tar.gz -- 2.7.4