- Operations like ManifestDirectInstall will parse merged manifest so
it does not have to merge configurations for hybrid pkg, so add options
to determine merge or overwrites configurations.
Change-Id: I14af1674769daea48499ae7ce4856cb5dc00a671
Signed-off-by: Ilho Kim <ilho159.kim@samsung.com>
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepRegisterApplication>();
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepRegisterApplication>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::security::StepRegisterTrustAnchor>(
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::security::StepRegisterTrustAnchor>(
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepRegisterApplication>();
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepRegisterApplication>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
AddStep<ci::pkgmgr::StepRegisterApplication>();
AddStep<ci::security::StepRegisterTrustAnchor>(
ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
AddStep<ci::pkgmgr::StepRegisterApplication>();
AddStep<ci::security::StepRegisterTrustAnchor>(
ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<ci::security::StepRegisterTrustAnchor>(
ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<ci::security::StepRegisterTrustAnchor>(
ci::security::StepRegisterTrustAnchor::RegisterType::UPDATE);
AddStep<wgt::configuration::StepParse>(
wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
AddStep<wgt::configuration::StepParse>(
wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
AddStep<ci::configuration::StepParsePreload>();
AddStep<ci::security::StepCheckSignature>();
AddStep<ci::security::StepSaveSignature>();
AddStep<ci::configuration::StepParsePreload>();
AddStep<ci::security::StepCheckSignature>();
AddStep<ci::security::StepSaveSignature>();
AddStep<wgt::configuration::StepParse>(
wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
AddStep<wgt::configuration::StepParse>(
wgt::configuration::StepParse::ConfigLocation::INSTALLED, true);
AddStep<hybrid::configuration::StepMergeTpkPrivileges>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::OVERWRITE);
AddStep<ci::configuration::StepParsePreload>();
AddStep<ci::security::StepCheckSignature>();
AddStep<ci::security::StepSaveSignature>();
AddStep<ci::configuration::StepParsePreload>();
AddStep<ci::security::StepCheckSignature>();
AddStep<ci::security::StepSaveSignature>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
AddStep<wgt::pkgmgr::StepGenerateXml>();
AddStep<hybrid::pkgmgr::StepGenerateXml>();
AddStep<tpk::pkgmgr::StepManifestAdjustment>();
- AddStep<hybrid::configuration::StepMergeTpkConfig>();
+ AddStep<hybrid::configuration::StepMergeTpkConfig>(
+ hybrid::configuration::StepMergeTpkConfig::MergeType::CONCAT);
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
AddStep<wgt::filesystem::StepCreateSymbolicLink>();
AddStep<tpk::filesystem::StepCreateSymbolicLink>();
AddStep<ci::pkgmgr::StepUpdateApplication>();
namespace hybrid {
namespace configuration {
namespace hybrid {
namespace configuration {
+StepMergeTpkConfig::StepMergeTpkConfig(
+ common_installer::InstallerContext* context,
+ MergeType type) : Step(context), merge_type_(type) {
+}
+
common_installer::Step::Status StepMergeTpkConfig::process() {
HybridBackendData* data =
static_cast<HybridBackendData*>(context_->backend_data.get());
manifest_x* tpk_data = data->tpk_manifest_data.get();
manifest_x* wgt_data = context_->manifest_data.get();
common_installer::Step::Status StepMergeTpkConfig::process() {
HybridBackendData* data =
static_cast<HybridBackendData*>(context_->backend_data.get());
manifest_x* tpk_data = data->tpk_manifest_data.get();
manifest_x* wgt_data = context_->manifest_data.get();
- wgt_data->application =
- g_list_concat(wgt_data->application, tpk_data->application);
- tpk_data->application = nullptr;
+ if (merge_type_ == MergeType::CONCAT)
+ wgt_data->application =
+ g_list_concat(wgt_data->application, tpk_data->application);
+ else
+ wgt_data->application = tpk_data->application;
+ tpk_data->application = nullptr;
*/
class StepMergeTpkConfig : public common_installer::Step {
public:
*/
class StepMergeTpkConfig : public common_installer::Step {
public:
+ enum class MergeType {
+ CONCAT, // Concatenate configurations
+ OVERWRITE // Overwrite one with others
+ };
+
+ explicit StepMergeTpkConfig(common_installer::InstallerContext* context,
+ MergeType type);
+
using Step::Step;
Status process() override;
using Step::Step;
Status process() override;
Status undo() override { return Status::OK; }
Status precheck() override { return Status::OK; }
Status undo() override { return Status::OK; }
Status precheck() override { return Status::OK; }
+ private:
+ MergeType merge_type_;
+
STEP_NAME(MergeTpkConfig)
};
STEP_NAME(MergeTpkConfig)
};