From 57df390b05a52494b9090d0fdc49ab7d22c6a4d1 Mon Sep 17 00:00:00 2001
From: Piotr Ganicz
Date: Wed, 30 Nov 2016 13:48:52 +0100
Subject: [PATCH 01/16] Addition of main attribute for widget-application
This commit repairs the issue with generating proper main attribute
for widget-application element in manifest. Only one attribute can
be set to "true" for list of apps (widget-application).
Submit together:
- https://review.tizen.org/gerrit/#/c/101269/
- https://review.tizen.org/gerrit/#/c/101267/
- https://review.tizen.org/gerrit/#/c/101266/
Change-Id: Icdc622d05b0d2b5787db8e099f1db978f130af97
---
src/wgt/step/pkgmgr/step_generate_xml.cc | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/wgt/step/pkgmgr/step_generate_xml.cc b/src/wgt/step/pkgmgr/step_generate_xml.cc
index 50a538d..b34417b 100644
--- a/src/wgt/step/pkgmgr/step_generate_xml.cc
+++ b/src/wgt/step/pkgmgr/step_generate_xml.cc
@@ -94,6 +94,10 @@ bool WriteWidgetApplicationAttributesAndElements(
if (app->multiple)
xmlTextWriterWriteAttribute(writer, BAD_CAST "multiple",
BAD_CAST app->multiple);
+ if (app->mainapp)
+ xmlTextWriterWriteAttribute(writer, BAD_CAST "main",
+ BAD_CAST app->mainapp);
+
// FIXME: For hotfix, must be removed
if (app->support_sizes) {
for (auto& ss : GListRange(app->support_sizes)) {
@@ -115,8 +119,6 @@ bool WriteWidgetApplicationAttributesAndElements(
}
// Add extra elements for wgt widget-application
- xmlTextWriterWriteAttribute(writer, BAD_CAST "main",
- BAD_CAST (appwidget->primary ? "true" : "false")); // NOLINT
if (!appwidget->update_period.empty()) {
xmlTextWriterWriteAttribute(writer, BAD_CAST "update-period", BAD_CAST
std::to_string(static_cast(
--
2.7.4
From 1629a3589d9f0545115d72c67fceb412936c5a76 Mon Sep 17 00:00:00 2001
From: Sangyoon Jang
Date: Tue, 15 Nov 2016 14:30:45 +0900
Subject: [PATCH 02/16] Add new steps for readonly update
Change-Id: Iff1ffcd4cecea510b4a91ab3d0730e9f09c30db5
Signed-off-by: Sangyoon Jang
---
src/wgt/CMakeLists.txt | 1 +
src/wgt/step/configuration/step_parse.cc | 14 +++++
.../step_set_old_signature_files_location.cc | 35 +++++++++++
.../step_set_old_signature_files_location.h | 30 ++++++++++
src/wgt/wgt_app_query_interface.h | 5 ++
src/wgt/wgt_installer.cc | 68 ++++++++++++++++++++++
6 files changed, 153 insertions(+)
create mode 100644 src/wgt/step/configuration/step_set_old_signature_files_location.cc
create mode 100644 src/wgt/step/configuration/step_set_old_signature_files_location.h
diff --git a/src/wgt/CMakeLists.txt b/src/wgt/CMakeLists.txt
index 678dc70..8b21686 100755
--- a/src/wgt/CMakeLists.txt
+++ b/src/wgt/CMakeLists.txt
@@ -3,6 +3,7 @@ SET(SRCS
step/configuration/step_check_rds_manifest.cc
step/configuration/step_check_start_files.cc
step/configuration/step_parse.cc
+ step/configuration/step_set_old_signature_files_location.cc
step/encryption/step_encrypt_resources.cc
step/encryption/step_remove_encryption_data.cc
step/filesystem/step_copy_preview_icons.cc
diff --git a/src/wgt/step/configuration/step_parse.cc b/src/wgt/step/configuration/step_parse.cc
index 8fcbcec..d2908fa 100644
--- a/src/wgt/step/configuration/step_parse.cc
+++ b/src/wgt/step/configuration/step_parse.cc
@@ -10,6 +10,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -45,6 +46,7 @@
#include "wgt/wgt_backend_data.h"
namespace bf = boost::filesystem;
+namespace ci = common_installer;
namespace {
@@ -271,6 +273,18 @@ bool StepParse::FillWidgetInfo(manifest_x* manifest) {
manifest->installlocation = strdup("auto");
}
+ // set update true if package is updated preload package
+ ci::RequestType req_type = context_->request_type.get();
+ if (req_type == ci::RequestType::ReadonlyUpdateInstall)
+ manifest->update = strdup("true");
+ else if (req_type == ci::RequestType::ReadonlyUpdateUninstall)
+ manifest->update = strdup("false");
+ else if (ci::QueryIsUpdatedReadonlyPackage(context_->pkgid.get(),
+ context_->uid.get()))
+ manifest->update = strdup("true");
+ else
+ manifest->update = strdup("false");
+
return true;
}
diff --git a/src/wgt/step/configuration/step_set_old_signature_files_location.cc b/src/wgt/step/configuration/step_set_old_signature_files_location.cc
new file mode 100644
index 0000000..11ec209
--- /dev/null
+++ b/src/wgt/step/configuration/step_set_old_signature_files_location.cc
@@ -0,0 +1,35 @@
+// Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by a apache 2.0 license that can be
+// found in the LICENSE file.
+
+#include
+
+#include
+
+#include
+
+namespace bf = boost::filesystem;
+namespace ci = common_installer;
+
+namespace {
+
+const char kWgtPath[] = "res/wgt";
+
+} // namespace
+
+namespace wgt {
+namespace configuration {
+
+ci::Step::Status StepSetOldSignatureFilesLocation::process() {
+ // This step is required for checking signature files at StepCheckSignature.
+ // StepCheckSignature gets path of signature files from unpacked_dir from
+ // unpacked_dir, which is root directory of package, but signature files
+ // are not at root directory.
+ bf::path oldpath = context_->unpacked_dir_path.get();
+ bf::path newpath = oldpath / kWgtPath;
+ context_->unpacked_dir_path.set(newpath);
+ return Status::OK;
+}
+
+} // namespace configuration
+} // namespace wgt
diff --git a/src/wgt/step/configuration/step_set_old_signature_files_location.h b/src/wgt/step/configuration/step_set_old_signature_files_location.h
new file mode 100644
index 0000000..4d8b5e4
--- /dev/null
+++ b/src/wgt/step/configuration/step_set_old_signature_files_location.h
@@ -0,0 +1,30 @@
+// Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by a apache 2.0 license that can be
+// found in the LICENSE file.
+
+#ifndef WGT_STEP_CONFIGURATION_STEP_SET_OLD_SIGNATURE_FILES_LOCATION_H_
+#define WGT_STEP_CONFIGURATION_STEP_SET_OLD_SIGNATURE_FILES_LOCATION_H_
+
+#include
+
+#include
+
+namespace wgt {
+namespace configuration {
+
+class StepSetOldSignatureFilesLocation : public common_installer::Step {
+ public:
+ using Step::Step;
+
+ Status process() override;
+ Status clean() override { return Status::OK; }
+ Status undo() override { return Status::OK; }
+ Status precheck() override { return Status::OK; }
+
+ STEP_NAME(SetOldSignatureFilesLocation)
+};
+
+} // namespace configuration
+} // namespace wgt
+
+#endif // WGT_STEP_CONFIGURATION_STEP_SET_OLD_SIGNATURE_FILES_LOCATION_H_
diff --git a/src/wgt/wgt_app_query_interface.h b/src/wgt/wgt_app_query_interface.h
index c7ca0ea..b8ed790 100644
--- a/src/wgt/wgt_app_query_interface.h
+++ b/src/wgt/wgt_app_query_interface.h
@@ -36,6 +36,11 @@ class WgtAppQueryInterface : public common_installer::AppQueryInterface {
*/
bool IsHybridApplication(const std::string& arg, uid_t uid);
+ /**
+ * \brief method for getting package id from package file
+ *
+ * \return package id
+ */
std::string GetPkgId(const std::string& arg) override;
};
diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc
index dcb6910..63d8906 100755
--- a/src/wgt/wgt_installer.cc
+++ b/src/wgt/wgt_installer.cc
@@ -16,6 +16,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -79,6 +80,7 @@
#include "wgt/step/configuration/step_check_rds_manifest.h"
#include "wgt/step/configuration/step_check_start_files.h"
#include "wgt/step/configuration/step_parse.h"
+#include "wgt/step/configuration/step_set_old_signature_files_location.h"
#include "wgt/step/encryption/step_encrypt_resources.h"
#include "wgt/step/encryption/step_remove_encryption_data.h"
#include "wgt/step/filesystem/step_copy_preview_icons.h"
@@ -449,6 +451,72 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
break;
}
+ case ci::RequestType::ReadonlyUpdateInstall: {
+ AddStep(pkgmgr_);
+ AddStep();
+ AddStep(
+ wgt::configuration::StepParse::ConfigLocation::PACKAGE, true);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep(
+ ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::BACKUP);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep(ci::Plugin::ActionType::Upgrade);
+ AddStep();
+ AddStep();
+ break;
+ }
+ case ci::RequestType::ReadonlyUpdateUninstall: {
+ AddStep(pkgmgr_);
+ AddStep();
+ AddStep();
+ AddStep(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::BACKUP);
+ AddStep();
+ AddStep(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep(ci::Plugin::ActionType::Upgrade);
+ break;
+ }
case ci::RequestType::Move: {
AddStep(pkgmgr_);
AddStep(
--
2.7.4
From 394de90cbc1480cd26c144066cf2a9e0bd9d90ea Mon Sep 17 00:00:00 2001
From: Sangyoon Jang
Date: Fri, 2 Dec 2016 17:42:37 +0900
Subject: [PATCH 03/16] Fix CMakeLists.txt
To make extendible for adding source & header files.
Change-Id: I54198360f67882b6c644d13f027f155855e57d12
Signed-off-by: Sangyoon Jang
---
src/hybrid/CMakeLists.txt | 14 +++++++-------
src/wgt/CMakeLists.txt | 41 +++++++++++++----------------------------
2 files changed, 20 insertions(+), 35 deletions(-)
diff --git a/src/hybrid/CMakeLists.txt b/src/hybrid/CMakeLists.txt
index ccc7f4a..e65d713 100644
--- a/src/hybrid/CMakeLists.txt
+++ b/src/hybrid/CMakeLists.txt
@@ -1,10 +1,10 @@
-SET(SRCS
- step/configuration/step_merge_tpk_config.cc
- step/configuration/step_stash_tpk_config.cc
- step/encryption/step_encrypt_resources.cc
- hybrid_installer.cc
-)
-ADD_LIBRARY(${TARGET_LIBNAME_HYBRID} STATIC ${SRCS})
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} HYBRID_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/step/configuration HYBRID_STEP_CONFIGURATION_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/step/encryption HYBRID_STEP_ENCRYPTION_SRCS)
+ADD_LIBRARY(${TARGET_LIBNAME_HYBRID} STATIC
+ ${HYBRID_SRCS}
+ ${HYBRID_STEP_CONFIGURATION_SRCS}
+ ${HYBRID_STEP_ENCRYPTION_SRCS})
TARGET_INCLUDE_DIRECTORIES(${TARGET_LIBNAME_HYBRID} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../")
diff --git a/src/wgt/CMakeLists.txt b/src/wgt/CMakeLists.txt
index 8b21686..8334362 100755
--- a/src/wgt/CMakeLists.txt
+++ b/src/wgt/CMakeLists.txt
@@ -1,31 +1,10 @@
# Target - sources
-SET(SRCS
- step/configuration/step_check_rds_manifest.cc
- step/configuration/step_check_start_files.cc
- step/configuration/step_parse.cc
- step/configuration/step_set_old_signature_files_location.cc
- step/encryption/step_encrypt_resources.cc
- step/encryption/step_remove_encryption_data.cc
- step/filesystem/step_copy_preview_icons.cc
- step/filesystem/step_create_symbolic_link.cc
- step/filesystem/step_wgt_patch_icons.cc
- step/filesystem/step_wgt_patch_storage_directories.cc
- step/filesystem/step_wgt_prepare_package_directory.cc
- step/filesystem/step_wgt_resource_directory.cc
- step/filesystem/step_wgt_update_package_directory.cc
- step/pkgmgr/step_generate_xml.cc
- step/security/step_add_default_privileges.cc
- step/security/step_check_settings_level.cc
- step/security/step_check_wgt_background_category.cc
- step/security/step_check_wgt_notification_category.cc
- step/security/step_check_wgt_ime_privilege.cc
- step/security/step_direct_manifest_check_signature.cc
- step/security/step_check_extension_privileges.cc
- step/security/step_wgt_recover_signature.cc
- wgt_app_query_interface.cc
- wgt_installer.cc
- extension_config_parser.cc
-)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR} WGT_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/step/configuration WGT_STEP_CONFIGURATION_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/step/encryption WGT_STEP_ENCRYPTION_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/step/filesystem WGT_STEP_FILESYSTEM_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/step/pkgmgr WGT_STEP_PKGMGR_SRCS)
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/step/security WGT_STEP_SECURITY_SRCS)
IF(WRT_LAUNCHER)
ADD_DEFINITIONS("-DWRT_LAUNCHER=\"${WRT_LAUNCHER}\"")
@@ -35,7 +14,13 @@ ELSE(WRT_LAUNCHER)
ENDIF(WRT_LAUNCHER)
# Target - definition
-ADD_LIBRARY(${TARGET_LIBNAME_WGT} STATIC ${SRCS})
+ADD_LIBRARY(${TARGET_LIBNAME_WGT} STATIC
+ ${WGT_SRCS}
+ ${WGT_STEP_CONFIGURATION_SRCS}
+ ${WGT_STEP_ENCRYPTION_SRCS}
+ ${WGT_STEP_FILESYSTEM_SRCS}
+ ${WGT_STEP_PKGMGR_SRCS}
+ ${WGT_STEP_SECURITY_SRCS})
# Target - includes
TARGET_INCLUDE_DIRECTORIES(${TARGET_LIBNAME_WGT} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../")
# Target - deps
--
2.7.4
From f61c56c2ae73489fb31b95d551d558d07e961b13 Mon Sep 17 00:00:00 2001
From: Sangyoon Jang
Date: Wed, 7 Dec 2016 15:42:00 +0900
Subject: [PATCH 04/16] Adjust to change of support ambient
Requires:
- https://review.tizen.org/gerrit/102774
Change-Id: I0f64c7eeb825fd82f25940c0829c4725356c2c9b
Signed-off-by: Sangyoon Jang
---
src/wgt/step/configuration/step_parse.cc | 8 ++++----
src/wgt/step/pkgmgr/step_generate_xml.cc | 4 ++--
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/wgt/step/configuration/step_parse.cc b/src/wgt/step/configuration/step_parse.cc
index d2908fa..e1f817c 100644
--- a/src/wgt/step/configuration/step_parse.cc
+++ b/src/wgt/step/configuration/step_parse.cc
@@ -347,10 +347,10 @@ bool StepParse::FillMainApplicationInfo(manifest_x* manifest) {
SetApplicationXDefaults(application);
if (has_watch_category)
- application->ambient_support =
+ application->support_ambient =
strdup(app_info->ambient_support() ? "true" : "false");
else
- application->ambient_support = strdup("false");
+ application->support_ambient = strdup("false");
application->package = strdup(app_info->package().c_str());
application->exec =
@@ -398,7 +398,7 @@ bool StepParse::FillServiceApplicationInfo(manifest_x* manifest) {
application->nodisplay = strdup("false");
application->taskmanage = strdup("true");
SetApplicationXDefaults(application);
- application->ambient_support = strdup("false");
+ application->support_ambient = strdup("false");
application->package = strdup(manifest->package);
for (auto& pair : service_info.names()) {
@@ -452,7 +452,7 @@ bool StepParse::FillWidgetApplicationInfo(manifest_x* manifest) {
application->nodisplay = strdup("true");
application->taskmanage = strdup("false");
SetApplicationXDefaults(application);
- application->ambient_support = strdup("false");
+ application->support_ambient = strdup("false");
application->package = strdup(manifest->package);
if (!app_widget.label.default_value.empty()) {
diff --git a/src/wgt/step/pkgmgr/step_generate_xml.cc b/src/wgt/step/pkgmgr/step_generate_xml.cc
index b34417b..a23e71e 100644
--- a/src/wgt/step/pkgmgr/step_generate_xml.cc
+++ b/src/wgt/step/pkgmgr/step_generate_xml.cc
@@ -161,9 +161,9 @@ bool WriteWidgetApplicationAttributesAndElements(
void WriteWatchApplicationAttributes(
xmlTextWriterPtr writer, application_x* app) {
- if (app->ambient_support)
+ if (app->support_ambient)
xmlTextWriterWriteAttribute(writer, BAD_CAST "ambient-support",
- BAD_CAST app->ambient_support);
+ BAD_CAST app->support_ambient);
}
} // namespace
--
2.7.4
From 068064e3410b19831e47bba6ff7a27fbd2b67f31 Mon Sep 17 00:00:00 2001
From: Sangyoon Jang
Date: Thu, 8 Dec 2016 15:29:31 +0900
Subject: [PATCH 05/16] Fix package icon path
It should be under at shared/res for access by other applications.
Change-Id: I1cdb835db681a98ea05987a52b9e55b23d5c8f17
Signed-off-by: Sangyoon Jang
---
src/wgt/step/filesystem/step_wgt_patch_icons.cc | 53 ++++++++++++++++---------
1 file changed, 34 insertions(+), 19 deletions(-)
diff --git a/src/wgt/step/filesystem/step_wgt_patch_icons.cc b/src/wgt/step/filesystem/step_wgt_patch_icons.cc
index ade10df..1a5b3cb 100644
--- a/src/wgt/step/filesystem/step_wgt_patch_icons.cc
+++ b/src/wgt/step/filesystem/step_wgt_patch_icons.cc
@@ -17,6 +17,33 @@ namespace {
const char kDefaultIconPath[] = "/usr/share/wgt-backend/default.png";
+bool PatchIcon(icon_x* icon, const bf::path& dst_path) {
+ bs::error_code error;
+ bf::path icon_text(icon->text);
+ bf::path icon_path = dst_path;
+ if (strcmp(icon->lang, DEFAULT_LOCALE)) {
+ icon_path += ".";
+ icon_path += icon->lang;
+ }
+ if (icon_text.has_extension())
+ icon_path += icon_text.extension();
+ else
+ icon_path += ".png";
+
+ bf::copy_file(icon->text, icon_path,
+ bf::copy_option::overwrite_if_exists, error);
+ if (error) {
+ LOG(ERROR) << "Failed to move icon from " << icon->text << " to "
+ << icon_path;
+ return false;
+ }
+ if (icon->text)
+ free(const_cast(icon->text));
+ icon->text = strdup(icon_path.c_str());
+
+ return true;
+}
+
} // namespace
namespace wgt {
@@ -26,6 +53,12 @@ common_installer::Step::Status StepWgtPatchIcons::process() {
bf::path common_icon_location = context_->pkg_path.get() / "shared" / "res";
bs::error_code error;
bf::create_directories(common_icon_location, error);
+ for (icon_x* icon :
+ GListRange(context_->manifest_data.get()->icon)) {
+ bf::path icon_path = common_icon_location / context_->pkgid.get();
+ if (!PatchIcon(icon, icon_path))
+ return Status::ICON_ERROR;
+ }
for (application_x* app :
GListRange(context_->manifest_data.get()->application)) {
if (strcmp(app->type, "webapp") != 0)
@@ -33,27 +66,9 @@ common_installer::Step::Status StepWgtPatchIcons::process() {
if (app->icon) {
// edit icon->text and copy icons to common location
for (auto& icon : GListRange(app->icon)) {
- bf::path icon_text(icon->text);
bf::path icon_path = common_icon_location / app->appid;
- if (strcmp(icon->lang, DEFAULT_LOCALE)) {
- icon_path += ".";
- icon_path += icon->lang;
- }
- if (icon_text.has_extension())
- icon_path += icon_text.extension();
- else
- icon_path += ".png";
-
- bf::copy_file(icon->text, icon_path,
- bf::copy_option::overwrite_if_exists, error);
- if (error) {
- LOG(ERROR) << "Failed to move icon from " << icon->text << " to "
- << icon_path;
+ if (!PatchIcon(icon, icon_path))
return Status::ICON_ERROR;
- }
- if (icon->text)
- free(const_cast(icon->text));
- icon->text = strdup(icon_path.c_str());
}
} else {
LOG(INFO) << "Application provides no icon. Using Tizen default icon.";
--
2.7.4
From 1ca8c3c81dcc7cf0ccb3c3ef05a2ea318d31cf46 Mon Sep 17 00:00:00 2001
From: jongmyeongko
Date: Thu, 8 Dec 2016 21:42:38 +0900
Subject: [PATCH 06/16] change the name of StepChageOwner to
StepChangeOwnershipAndPermission
Change-Id: I6d6dc6bcf83b5be91b1bc4cb50aaf88a3a4e7742
Signed-off-by: jongmyeongko
---
src/hybrid/hybrid_installer.cc | 16 ++++++++--------
src/wgt/wgt_installer.cc | 20 ++++++++++----------
2 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/src/hybrid/hybrid_installer.cc b/src/hybrid/hybrid_installer.cc
index dbd4244..8da9357 100644
--- a/src/hybrid/hybrid_installer.cc
+++ b/src/hybrid/hybrid_installer.cc
@@ -17,7 +17,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
@@ -141,7 +141,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep(
ci::Plugin::ActionType::Install);
AddStep();
- AddStep();
+ AddStep();
AddStep();
break;
case ci::RequestType::Update:
@@ -188,7 +188,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
case ci::RequestType::Uninstall:
@@ -267,7 +267,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
case ci::RequestType::Recovery:
@@ -336,7 +336,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep(
ci::Plugin::ActionType::Install);
AddStep();
- AddStep();
+ AddStep();
AddStep();
break;
case ci::RequestType::MountUpdate:
@@ -382,7 +382,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
case ci::RequestType::ManifestDirectInstall:
@@ -410,7 +410,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep(
ci::Plugin::ActionType::Install);
AddStep();
- AddStep();
+ AddStep();
AddStep();
break;
case ci::RequestType::ManifestDirectUpdate:
@@ -441,7 +441,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
case ci::RequestType::EnablePkg:
diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc
index 63d8906..7ca8306 100755
--- a/src/wgt/wgt_installer.cc
+++ b/src/wgt/wgt_installer.cc
@@ -19,7 +19,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
@@ -146,7 +146,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep(
ci::Plugin::ActionType::Install);
AddStep();
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -190,7 +190,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -238,7 +238,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep();
AddStep();
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -286,7 +286,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -352,7 +352,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Install);
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -393,7 +393,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -418,7 +418,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep();
AddStep(ci::Plugin::ActionType::Install);
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -447,7 +447,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep(
ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
}
@@ -488,7 +488,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr)
AddStep();
AddStep();
AddStep(ci::Plugin::ActionType::Upgrade);
- AddStep();
+ AddStep();
AddStep();
break;
}
--
2.7.4
From 156b74e8dd6cc21e740cca99780d8f58b9aa6a98 Mon Sep 17 00:00:00 2001
From: jongmyeongko
Date: Sun, 4 Dec 2016 18:26:07 +0900
Subject: [PATCH 07/16] apply new features : partial install/update/uninstall,
force-clean
Submit with:
https://review.tizen.org/gerrit/#/c/103359/
https://review.tizen.org/gerrit/#/c/103361/
Change-Id: I63a24f916d1e8b8a379d579962513ba1551904dc
Signed-off-by: jongmyeongko
---
src/hybrid/hybrid_installer.cc | 61 +++++++++++++++++++++++++++++++++++++++++-
src/wgt/wgt_installer.cc | 54 +++++++++++++++++++++++++++++++++++++
2 files changed, 114 insertions(+), 1 deletion(-)
diff --git a/src/hybrid/hybrid_installer.cc b/src/hybrid/hybrid_installer.cc
index 8da9357..ccdd3f7 100644
--- a/src/hybrid/hybrid_installer.cc
+++ b/src/hybrid/hybrid_installer.cc
@@ -47,6 +47,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -195,6 +196,7 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep(pkgmgr_);
AddStep();
AddStep();
+ AddStep();
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
ci::configuration::StepParseManifest::StoreLocation::NORMAL);
@@ -415,7 +417,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
break;
case ci::RequestType::ManifestDirectUpdate:
AddStep(pkgmgr_);
- AddStep();
AddStep(
ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
ci::configuration::StepParseManifest::StoreLocation::NORMAL);
@@ -444,6 +445,64 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr)
AddStep();
AddStep();
break;
+ case ci::RequestType::ManifestPartialInstall: {
+ AddStep(pkgmgr_);
+ AddStep(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+ AddStep();
+ AddStep(
+ wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep(
+ ci::Plugin::ActionType::Install);
+ AddStep();
+ AddStep();
+ break;
+ }
+ case ci::RequestType::ManifestPartialUpdate: {
+ AddStep(pkgmgr_);
+ AddStep(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+ AddStep();
+ AddStep(
+ wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
+ AddStep();
+ AddStep();
+ AddStep(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::BACKUP);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep(
+ ci::Plugin::ActionType::Upgrade);
+ AddStep();
+ break;
+ }
+ case ci::RequestType::PartialUninstall: {
+ AddStep(pkgmgr_);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep(
+ ci::configuration::StepParseManifest::ManifestLocation::INSTALLED,
+ ci::configuration::StepParseManifest::StoreLocation::NORMAL);
+ AddStep(
+ ci::Plugin::ActionType::Uninstall);
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ AddStep();
+ break;
+ }
case ci::RequestType::EnablePkg:
AddStep(pkgmgr_);
AddStep(
diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc
index 7ca8306..e087ea7 100755
--- a/src/wgt/wgt_installer.cc
+++ b/src/wgt/wgt_installer.cc
@@ -51,6 +51,7 @@
#include
#include
#include
+#include
#include
#include