const auto* old_pkg = FindPkgById(old_pkgs, new_pkg.GetId());
if (old_pkg != nullptr) {
// UPDATE
+ pkgmgrinfo_version_compare_type result;
+ if (pkgmgrinfo_compare_package_version(
+ old_pkg->GetVersion().c_str(),
+ new_pkg.GetVersion().c_str(),
+ &result) != PMINFO_R_OK)
+ continue;
+
+ if (old_pkg->IsReadOnly() == new_pkg.IsReadOnly() &&
+ result == PMINFO_VERSION_SAME)
+ continue;
+
if (old_pkg->IsReadOnly() && new_pkg.IsReadOnly()) {
// RO to RO
pkgs.emplace_back(new SimpleUpgrader(new_pkg, PkgOperation::UPDATE));