#include <unistd.h>
#include <string>
+#include <pkgmgr/pkgmgr_parser.h>
+#include <pkgmgr-info.h>
+#include <fstream>
#include <dpl/log/log.h>
#include <dpl/errno_string.h>
#include <dpl/foreach.h>
m_context(context)
{
AddStep(&TaskInstallOspsvc::StepInstallOspService);
+ AddStep(&TaskInstallOspsvc::StepUpdateManifestFile);
}
void TaskInstallOspsvc::StepInstallOspService()
InstallerContext::INSTALL_INSTALL_OSPSVC,
"Installed Osp servcie");
}
+
+void TaskInstallOspsvc::StepUpdateManifestFile()
+{
+ std::string pkgid = DPL::ToUTF8String(m_context.widgetConfig.tzPkgid);
+ pkgmgrinfo_pkginfo_h handle;
+
+ int ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid.c_str(), &handle);
+ if (ret != PMINFO_R_OK) {
+ LogDebug("StepUpdateManifestFile");
+ std::ostringstream manifest_file;
+ if (m_context.mode.rootPath == InstallMode::RootPath::RO) {
+ manifest_file << "/usr/share/packages/"; //TODO constant with path
+ } else {
+ manifest_file << "/opt/share/packages/"; //TODO constant with path
+ }
+ manifest_file << pkgid;
+ manifest_file << ".xml";
+ LogDebug("manifest file : " << manifest_file.str());
+
+ int ret = pkgmgr_parser_parse_manifest_for_uninstallation(
+ manifest_file.str().c_str(), NULL);
+
+ if (ret != 0) {
+ LogError("Manifest parser error: " << ret);
+ }
+
+ int code = pkgmgr_parser_parse_manifest_for_installation(
+ manifest_file.str().c_str(), NULL);
+
+ if (code != 0) {
+ LogError("Manifest parser error: " << code);
+ }
+ }
+}
} //namespace WidgetInstall
} //namespace Jobs