From a729223f7143f2ff31e3f8b6ee508a6e51a242f9 Mon Sep 17 00:00:00 2001 From: Bartlomiej Kunikowski Date: Thu, 20 Oct 2016 10:34:21 +0200 Subject: [PATCH 01/16] Fix for MountUpdateMode_Rollback Requires: - https://review.tizen.org/gerrit/#/c/97897/ To verify run wgt-backend smoke test Change-Id: I08198a4003acd457f2a8282d143a8272df53feb2 --- src/wgt/step/filesystem/step_wgt_update_package_directory.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/wgt/step/filesystem/step_wgt_update_package_directory.cc b/src/wgt/step/filesystem/step_wgt_update_package_directory.cc index 17e07d9..c762dc4 100644 --- a/src/wgt/step/filesystem/step_wgt_update_package_directory.cc +++ b/src/wgt/step/filesystem/step_wgt_update_package_directory.cc @@ -77,6 +77,12 @@ StepWgtUpdatePackageDirectory::RecoverBackupOfDirectories() { if (!bf::exists(directory_backup)) continue; LOG(DEBUG) << "Recover directory entry: " << entry; + bs::error_code error; + bf::remove_all(directory, error); + if (error) { + LOG(ERROR) << "Failed to remove fail-update directory: " << directory; + return Status::APP_DIR_ERROR; + } if (!ci::MoveDir(directory_backup, directory)) { LOG(ERROR) << "Failed to restore directory backup " << directory_backup; -- 2.7.4 From 5efd5d210268c584984dc8b1072c37270f16fe11 Mon Sep 17 00:00:00 2001 From: Bartlomiej Kunikowski Date: Fri, 18 Nov 2016 11:48:41 +0100 Subject: [PATCH 02/16] Fix for UpdateMode_Rollback_Hybrid and MountUpdateMode_Rollback_Hybrid There are unneeded step that remove all smack rules. There should be all smack rules as before an update. Verify: - # su - app_fw - $ /usr/bin/wgt-backend-ut/smoke-test Submit together: - https://review.tizen.org/gerrit/#/c/98725/ Requires: - https://review.tizen.org/gerrit/#/c/97903/ Change-Id: I5a0f4c929c9f90f06f67a68c3a1bcfc4939f9cc8 --- src/hybrid/hybrid_installer.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/hybrid/hybrid_installer.cc b/src/hybrid/hybrid_installer.cc index 324c771..0cd47f6 100644 --- a/src/hybrid/hybrid_installer.cc +++ b/src/hybrid/hybrid_installer.cc @@ -164,7 +164,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); AddStep( ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, ci::configuration::StepParseManifest::StoreLocation::BACKUP); @@ -360,7 +359,6 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); AddStep( ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, ci::configuration::StepParseManifest::StoreLocation::BACKUP); -- 2.7.4 From d331e90ba010054f9188371556678b209ccfadba Mon Sep 17 00:00:00 2001 From: Piotr Dabrowski Date: Mon, 28 Nov 2016 17:06:05 +0100 Subject: [PATCH 03/16] Change order of steps in wgt as in tpk StepRegisterSecurity StepRegisterApplication StepRunParserPlugin StepUpdateSecurity StepUpdateApplication StepRunParserPlugin Change-Id: I92c30d65c7af2b50c2ae2f32b8343ef522db2249 --- src/hybrid/hybrid_installer.cc | 6 +++--- src/wgt/wgt_installer.cc | 20 ++++++++++---------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/hybrid/hybrid_installer.cc b/src/hybrid/hybrid_installer.cc index 0cd47f6..dbd4244 100644 --- a/src/hybrid/hybrid_installer.cc +++ b/src/hybrid/hybrid_installer.cc @@ -136,8 +136,8 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Install); AddStep(); @@ -331,8 +331,8 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Install); AddStep(); @@ -405,8 +405,8 @@ HybridInstaller::HybridInstaller(common_installer::PkgMgrPtr pkgmgr) AddStep(); AddStep(); AddStep(); - AddStep(); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Install); AddStep(); diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc index e87ec01..dcb6910 100755 --- a/src/wgt/wgt_installer.cc +++ b/src/wgt/wgt_installer.cc @@ -139,10 +139,10 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(); - AddStep( - ci::Plugin::ActionType::Install); AddStep(); AddStep(); + AddStep( + ci::Plugin::ActionType::Install); AddStep(); AddStep(); AddStep(); @@ -185,9 +185,9 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); - AddStep(); AddStep(); AddStep(); break; @@ -281,9 +281,9 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); - AddStep(); AddStep(); AddStep(); break; @@ -344,12 +344,12 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(); - AddStep(); - AddStep( - ci::Plugin::ActionType::Install); AddStep(); AddStep(); AddStep(); + AddStep(); + AddStep( + ci::Plugin::ActionType::Install); AddStep(); AddStep(); break; @@ -388,9 +388,9 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); - AddStep(); AddStep(); AddStep(); break; @@ -413,9 +413,9 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(); + AddStep(); AddStep(); AddStep(ci::Plugin::ActionType::Install); - AddStep(); AddStep(); AddStep(); break; @@ -442,9 +442,9 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(); + AddStep(); AddStep( ci::Plugin::ActionType::Upgrade); - AddStep(); AddStep(); AddStep(); break; -- 2.7.4 From a7dbc9bdb0c8b9e6070bd15214d111abdba381c7 Mon Sep 17 00:00:00 2001 From: jongmyeongko Date: Thu, 1 Dec 2016 00:01:47 +0900 Subject: [PATCH 04/16] fix build error - this override function will be used. Change-Id: I7d28e1e8b0dbf98dda4482eb8bbbe62390f50eab Signed-off-by: jongmyeongko --- src/wgt/wgt_app_query_interface.cc | 4 ++++ src/wgt/wgt_app_query_interface.h | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/wgt/wgt_app_query_interface.cc b/src/wgt/wgt_app_query_interface.cc index be08ae1..8c75226 100644 --- a/src/wgt/wgt_app_query_interface.cc +++ b/src/wgt/wgt_app_query_interface.cc @@ -127,4 +127,8 @@ bool WgtAppQueryInterface::IsHybridApplication(const std::string& arg, return false; } +std::string WgtAppQueryInterface::GetPkgId(const std::string& arg) { + return GetPkgIdFromPath(arg); +} + } // namespace wgt diff --git a/src/wgt/wgt_app_query_interface.h b/src/wgt/wgt_app_query_interface.h index fe075fe..c7ca0ea 100644 --- a/src/wgt/wgt_app_query_interface.h +++ b/src/wgt/wgt_app_query_interface.h @@ -35,6 +35,8 @@ class WgtAppQueryInterface : public common_installer::AppQueryInterface { * \return true if package is hybrid */ bool IsHybridApplication(const std::string& arg, uid_t uid); + + std::string GetPkgId(const std::string& arg) override; }; } // namespace wgt -- 2.7.4 From eeff6059746db645244a60d612d314f2375bbd17 Mon Sep 17 00:00:00 2001 From: jongmyeongko Date: Thu, 1 Dec 2016 01:53:01 +0900 Subject: [PATCH 05/16] change disable_pkg test Change-Id: Ie821fea7e3697e1f0381b1d76778f7b31fe29c40 Signed-off-by: jongmyeongko --- src/unit_tests/smoke_test.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/unit_tests/smoke_test.cc b/src/unit_tests/smoke_test.cc index 4dab080..c696ad8 100644 --- a/src/unit_tests/smoke_test.cc +++ b/src/unit_tests/smoke_test.cc @@ -538,9 +538,7 @@ TEST_F(SmokeTest, DisablePkg) { ci::AppInstaller::Result::OK); ASSERT_EQ(DisablePackage(pkgid, PackageType::WGT), ci::AppInstaller::Result::OK); - ASSERT_FALSE(ci::QueryIsPackageInstalled(pkgid, - ci::GetRequestMode(kTestUserId), - kTestUserId)); + ASSERT_TRUE(ci::QueryIsDisabledPackage(pkgid, kTestUserId)); ValidatePackageFS(pkgid, {appid}); } -- 2.7.4 From e8512c751441b6e15272764aef56e6ff234707eb Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Fri, 2 Dec 2016 17:05:01 +0900 Subject: [PATCH 06/16] Set missing manifest attribute: readonly, preload Change-Id: I4a9395a7f646dae6f67723c95b7e1d5cb2496e91 Signed-off-by: Sangyoon Jang --- src/wgt/step/pkgmgr/step_generate_xml.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/wgt/step/pkgmgr/step_generate_xml.cc b/src/wgt/step/pkgmgr/step_generate_xml.cc index d1d1e6f..50a538d 100644 --- a/src/wgt/step/pkgmgr/step_generate_xml.cc +++ b/src/wgt/step/pkgmgr/step_generate_xml.cc @@ -420,6 +420,12 @@ void StepGenerateXml::GenerateManifestElementAttributes( BAD_CAST context_->manifest_data.get()->api_version); xmlTextWriterWriteAttribute(writer, BAD_CAST "nodisplay-setting", BAD_CAST context_->manifest_data.get()->nodisplay_setting); + if (context_->is_readonly_package.get()) { + xmlTextWriterWriteAttribute(writer, BAD_CAST "readonly", BAD_CAST "true"); + xmlTextWriterWriteAttribute(writer, BAD_CAST "preload", BAD_CAST "true"); + } else if (context_->is_preload_rw_package.get()) { + xmlTextWriterWriteAttribute(writer, BAD_CAST "preload", BAD_CAST "true"); + } } void StepGenerateXml::GenerateLangLabels(xmlTextWriterPtr writer) { -- 2.7.4 From 09628a8787ce460521356b2fb2164861eb95755e Mon Sep 17 00:00:00 2001 From: Sangyoon Jang Date: Thu, 1 Dec 2016 15:44:15 +0900 Subject: [PATCH 07/16] Fix smoke test Now gid of data, shared/data dir is system_share. Change-Id: Id69017b75af1f12cb61d6aa2fd24c1d528a43963 Signed-off-by: Sangyoon Jang --- src/unit_tests/smoke_test.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/unit_tests/smoke_test.cc b/src/unit_tests/smoke_test.cc index c696ad8..7b185d3 100644 --- a/src/unit_tests/smoke_test.cc +++ b/src/unit_tests/smoke_test.cc @@ -15,6 +15,7 @@ #include #include #include +#include #include #include @@ -43,6 +44,7 @@ namespace { const uid_t kTestUserId = tzplatform_getuid(TZ_SYS_DEFAULT_USER); const gid_t kTestGroupId = tzplatform_getgid(TZ_SYS_DEFAULT_USER); +const char kTestGroupName[] = "system_share"; const std::string kTestUserIdStr = std::to_string(kTestUserId); @@ -229,7 +231,12 @@ void ValidatePackageFS(const std::string& pkgid, struct stat stats; stat(iter->path().c_str(), &stats); ASSERT_EQ(kTestUserId, stats.st_uid) << "Invalid uid: " << iter->path(); - ASSERT_EQ(kTestGroupId, stats.st_gid) << "Invalid gid: " << iter->path(); + if (iter->path().filename() == "data") { + boost::optional gid = ci::GetGidByGroupName(kTestGroupName); + ASSERT_EQ(*gid, stats.st_gid) << "Invalid gid: " << iter->path(); + } else { + ASSERT_EQ(kTestGroupId, stats.st_gid) << "Invalid gid: " << iter->path(); + } } } -- 2.7.4 From 57df390b05a52494b9090d0fdc49ab7d22c6a4d1 Mon Sep 17 00:00:00 2001 From: Piotr Ganicz Date: Wed, 30 Nov 2016 13:48:52 +0100 Subject: [PATCH 08/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 09/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 10/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 11/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 12/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 13/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 14/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 #include @@ -198,6 +199,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(pkgmgr_); AddStep(); AddStep(); + AddStep(); AddStep( ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, ci::configuration::StepParseManifest::StoreLocation::NORMAL); @@ -418,6 +420,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(ci::Plugin::ActionType::Install); + AddStep(); AddStep(); AddStep(); break; @@ -515,6 +518,57 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(ci::Plugin::ActionType::Upgrade); + case ci::RequestType::ManifestPartialInstall: { + AddStep(pkgmgr_); + AddStep( + wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); + AddStep(); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); + AddStep(); + AddStep(); + AddStep(); + AddStep(); + AddStep(ci::Plugin::ActionType::Install); + AddStep(); + AddStep(); + break; + } + case ci::RequestType::ManifestPartialUpdate: { + AddStep(pkgmgr_); + AddStep( + wgt::configuration::StepParse::ConfigLocation::INSTALLED, true); + AddStep(); + AddStep( + ci::configuration::StepParseManifest::ManifestLocation::INSTALLED, + ci::configuration::StepParseManifest::StoreLocation::BACKUP); + AddStep( + ci::security::StepPrivilegeCompatibility::InternalPrivType::WGT); + AddStep(); + 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(); + AddStep(); + AddStep( + ci::Plugin::ActionType::Uninstall); + AddStep(); + AddStep(); + AddStep(); + AddStep(); break; } case ci::RequestType::Move: { -- 2.7.4 From 2263e92bcc42520c944c66fae97170d9b318a27d Mon Sep 17 00:00:00 2001 From: jongmyeongko Date: Fri, 9 Dec 2016 17:21:11 +0900 Subject: [PATCH 15/16] fix missing brace Change-Id: I1d2d6137481f9a2a53fbfd2823fa5398a2375387 Signed-off-by: jongmyeongko --- src/wgt/wgt_installer.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc index e087ea7..4623c28 100755 --- a/src/wgt/wgt_installer.cc +++ b/src/wgt/wgt_installer.cc @@ -518,6 +518,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(ci::Plugin::ActionType::Upgrade); + } case ci::RequestType::ManifestPartialInstall: { AddStep(pkgmgr_); AddStep( -- 2.7.4 From 5bb13da02f9fa8e1f50f7abe1b00aba229f20c90 Mon Sep 17 00:00:00 2001 From: Junghyun Yeon Date: Tue, 13 Dec 2016 15:15:21 +0900 Subject: [PATCH 16/16] Add missed 'break' Change-Id: Iea19cafbf53d996c1b0123bb9bafd230a105a006 Signed-off-by: Junghyun Yeon --- src/wgt/wgt_installer.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/src/wgt/wgt_installer.cc b/src/wgt/wgt_installer.cc index 4623c28..5929586 100755 --- a/src/wgt/wgt_installer.cc +++ b/src/wgt/wgt_installer.cc @@ -518,6 +518,7 @@ WgtInstaller::WgtInstaller(ci::PkgMgrPtr pkgrmgr) AddStep(); AddStep(); AddStep(ci::Plugin::ActionType::Upgrade); + break; } case ci::RequestType::ManifestPartialInstall: { AddStep(pkgmgr_); -- 2.7.4