merge with master tizen_2.1 2.1b_release accepted/tizen/20130520.100959 accepted/tizen_2.1/20130425.035333 submit/tizen/20130517.044848 submit/tizen_2.1/20130424.231038
authorJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:12:59 +0000 (01:12 +0900)
committerJinkun Jang <jinkun.jang@samsung.com>
Fri, 15 Mar 2013 16:12:59 +0000 (01:12 +0900)
backend/src/rpm/rpm-installer.c
backend/src/vconf/rpm-vconf-intf.c
inc/rpm-installer-util.h
packaging/rpm-installer.spec

index a2aae62..6df475e 100755 (executable)
@@ -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;
index 3dab0d9..12a38d9 100755 (executable)
@@ -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);
+       }
 }
index 0218632..3a1bcc1 100755 (executable)
@@ -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
index d9cc2ca..7608bd5 100755 (executable)
@@ -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