Support legacy image for backward-compatibility 23/107123/6 accepted/tizen/3.0/common/20170109.195840 accepted/tizen/3.0/ivi/20170109.073416 accepted/tizen/3.0/tv/20170110.055242 accepted/tizen/common/20170112.174439 accepted/tizen/ivi/20170112.222534 accepted/tizen/mobile/20170112.222425 accepted/tizen/tv/20170112.222449 accepted/tizen/wearable/20170112.222512 submit/tizen/20170112.013301 submit/tizen_3.0/20170106.072144 submit/tizen_3.0/20170106.102334 submit/tizen_3.0/20170106.143701
authorjongmyeongko <jongmyeong.ko@samsung.com>
Mon, 26 Dec 2016 16:08:42 +0000 (01:08 +0900)
committerjongmyeongko <jongmyeong.ko@samsung.com>
Thu, 5 Jan 2017 11:37:27 +0000 (20:37 +0900)
Refer to:
https://review.tizen.org/gerrit/#/c/104823/

Change-Id: I384e0b4d3e9a80e12bf1810c791f2fa317e947a1
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
client/include/package-manager.h
client/src/pkgmgr.c
installer/pkgmgr_installer.c
installer/pkgmgr_installer.h
packaging/pkgmgr.spec

index f859bd9..d91872c 100644 (file)
@@ -999,6 +999,19 @@ int pkgmgr_client_usr_set_app_label(pkgmgr_client *pc, char *appid, char *label,
  */
 int pkgmgr_client_set_debug_mode(pkgmgr_client *pc, bool debug_mode);
 
+/**
+ * @brief      Migrate legacy external image which is generated under 3.0
+ *
+ * This API request the migration of external image.\n
+ *
+ * @param[in]  pc      The pointer to pkgmgr_client instance
+ * @param[in]  pkgid   pkg id which have legacy image
+ * @return     0 if success, error code(<0) if fail\n
+ * @retval     PKGMGR_R_OK     success
+ * @retval     PKGMGR_R_EINVAL invalid argument
+ */
+int pkgmgr_client_usr_migrate_external_image(pkgmgr_client *pc, const char *pkgid, uid_t uid);
+
 /** @} */
 
 
index c594e1f..7fd16d5 100644 (file)
@@ -2128,3 +2128,29 @@ API int pkgmgr_client_set_debug_mode(pkgmgr_client *pc, bool debug_mode)
 
        return PKGMGR_R_OK;
 }
+
+API int pkgmgr_client_usr_migrate_external_image(pkgmgr_client *pc,
+               const char *pkgid, uid_t uid)
+{
+       GVariant *result;
+       int ret = PKGMGR_R_ECOMM;
+       struct pkgmgr_client_t *client = (struct pkgmgr_client_t *)pc;
+
+       if (pc == NULL) {
+               ERR("invalid parameter");
+               return PKGMGR_R_EINVAL;
+       }
+
+       ret = pkgmgr_client_connection_send_request(client,
+                       "migrate_external_image",
+                       g_variant_new("(us)", uid, pkgid), &result);
+       if (ret != PKGMGR_R_OK) {
+               ERR("request failed: %d", ret);
+               return ret;
+       }
+
+       g_variant_get(result, "(i)", &ret);
+       g_variant_unref(result);
+
+       return ret;
+}
index bfdd7f5..443bad5 100644 (file)
@@ -58,6 +58,7 @@
 #define OPTVAL_NO_REMOVAL 1003
 #define OPTVAL_KEEP_RWDATA 1004
 #define OPTVAL_PARTIAL_RW 1005
+#define OPTVAL_MIGRATE_EXTIMG 1006
 
 /* Supported options */
 const char *short_opts = "k:l:i:d:c:m:t:o:r:p:s:b:e:M:y:u:w:D:A:qG";
@@ -85,6 +86,7 @@ const struct option long_opts[] = {
        { "no-remove", 0, NULL, OPTVAL_NO_REMOVAL }, /* for preload RW */
        { "keep-rwdata", 0, NULL, OPTVAL_KEEP_RWDATA }, /* for preload RW */
        { "partial-rw", 0, NULL, OPTVAL_PARTIAL_RW }, /* for preload RO */
+        { "migrate-extimg", 1, NULL, OPTVAL_MIGRATE_EXTIMG },
        { 0, 0, 0, 0 }  /* sentinel */
 };
 
@@ -405,6 +407,19 @@ pkgmgr_installer_receive_request(pkgmgr_installer *pi,
                        pi->partial_rw = 1;
                        DBG("partial-rw request [%d]", pi->partial_rw);
                        break;
+               case OPTVAL_MIGRATE_EXTIMG:
+                       /* request for legacy extimg migration */
+                       if (mode) {
+                               r = -EINVAL;
+                               goto RET;
+                       }
+                       mode = OPTVAL_MIGRATE_EXTIMG;
+                       pi->request_type = PKGMGR_REQ_MIGRATE_EXTIMG;
+                       if (pi->pkgmgr_info)
+                               free(pi->pkgmgr_info);
+                       pi->pkgmgr_info = strndup(optarg, MAX_STRLEN);
+                       DBG("legacy extimg migration requested");
+                       break;
                case 'k':       /* session id */
                        if (pi->session_id)
                                free(pi->session_id);
index 11a49d5..c108979 100644 (file)
@@ -92,7 +92,8 @@ enum {
        PKGMGR_REQ_DISABLE_APP_SPLASH_SCREEN = 14,
        PKGMGR_REQ_MOUNT_INSTALL = 15,
        PKGMGR_REQ_DISABLE_PKG = 16,
-       PKGMGR_REQ_ENABLE_PKG = 17
+       PKGMGR_REQ_ENABLE_PKG = 17,
+       PKGMGR_REQ_MIGRATE_EXTIMG = 18
 };
 
 enum {
index 229a957..6b6caa1 100644 (file)
@@ -2,7 +2,7 @@
 
 Name:       pkgmgr
 Summary:    Packager Manager client library package
-Version:    0.2.90
+Version:    0.2.91
 Release:    0
 Group:      Application Framework/Package Management
 License:    Apache-2.0