implement partial install/upgrade feature on writable space (such as /opt) 24/100324/3
authorjongmyeongko <jongmyeong.ko@samsung.com>
Sun, 27 Nov 2016 11:04:11 +0000 (20:04 +0900)
committerjongmyeong ko <jongmyeong.ko@samsung.com>
Wed, 30 Nov 2016 09:07:44 +0000 (01:07 -0800)
Change-Id: I6c684115b7f880f97b6d663833461202fa87952e
Signed-off-by: jongmyeongko <jongmyeong.ko@samsung.com>
src/tpk/tpk_installer.cc
src/tpk/tpk_installer.h

index 114d9bc909c3b8fa58f15e9ef7bde341d1d3bcfb..3339865054fd2a4ac9b0af53b251b910c30bfa80 100644 (file)
@@ -139,6 +139,12 @@ void TpkInstaller::Prepare() {
     case ci::RequestType::ManifestDirectUpdate:
       ManifestDirectUpdateSteps();
       break;
+    case ci::RequestType::ManifestPartialInstall:
+      ManifestPartialInstallSteps();
+      break;
+    case ci::RequestType::ManifestPartialUpdate:
+      ManifestPartialUpdateSteps();
+      break;
     case ci::RequestType::Clear:
       ClearSteps();
       break;
@@ -498,6 +504,33 @@ void TpkInstaller::ManifestDirectUpdateSteps() {
   AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
 }
 
+void TpkInstaller::ManifestDirectRWInstallSteps() {
+  AddStep<ci::configuration::StepConfigure>(pkgmgr_);
+  AddStep<ci::configuration::StepParseManifest>(
+      ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+      ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+  AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
+  AddStep<ci::configuration::StepParsePreload>();
+  AddStep<ci::security::StepRegisterSecurity>();
+  AddStep<ci::pkgmgr::StepRegisterApplication>();
+  AddStep<ci::pkgmgr::StepRunParserPlugin>(ci::Plugin::ActionType::Install);
+  AddStep<ci::filesystem::StepCreatePerUserStorageDirectories>();
+  AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
+}
+
+void TpkInstaller::ManifestDirectRWUpdateSteps() {
+  AddStep<ci::configuration::StepConfigure>(pkgmgr_);
+  AddStep<ci::configuration::StepParseManifest>(
+      ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+      ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+  AddStep<ci::filesystem::StepRemoveGlobalAppSymlinks>();
+  AddStep<ci::configuration::StepParsePreload>();
+  AddStep<ci::security::StepRegisterSecurity>();
+  AddStep<ci::pkgmgr::StepUpdateApplication>();
+  AddStep<ci::pkgmgr::StepRunParserPlugin>(ci::Plugin::ActionType::Upgrade);
+  AddStep<ci::filesystem::StepCreateGlobalAppSymlinks>();
+}
+
 void TpkInstaller::ClearSteps() {
   AddStep<ci::configuration::StepConfigure>(pkgmgr_);
   AddStep<ci::configuration::StepParseManifest>(
index e940ecc7af956ad100dd3202940433b3af8f5234..89fc60deb4fbd107796db92553d94a41f27b7e9d 100644 (file)
@@ -42,6 +42,8 @@ class TPK_BACKEND_EXPORT_API TpkInstaller
   void MountUpdateSteps();
   void ManifestDirectInstallSteps();
   void ManifestDirectUpdateSteps();
+  void ManifestDirectRWInstallSteps();
+  void ManifestDirectRWUpdateSteps();
   void ClearSteps();
 
   SCOPE_LOG_TAG(TpkInstaller)