[eclipse/f19] Fix the dropins reconciliation.
Krzysztof Daniel
kdaniel at fedoraproject.org
Thu Jun 6 09:09:22 UTC 2013
commit 82a95577fe61e2f306bdf40ed585e401973887fe
Author: Krzysztof Daniel <kdaniel at redhat.com>
Date: Thu Jun 6 11:08:35 2013 +0200
Fix the dropins reconciliation.
eclipse-fix-dropins.patch | 46 +++++++++++++++++++++++++++++++++++++++++---
eclipse.spec | 5 +++-
2 files changed, 46 insertions(+), 5 deletions(-)
---
diff --git a/eclipse-fix-dropins.patch b/eclipse-fix-dropins.patch
index 159445b..d9f3f2e 100644
--- a/eclipse-fix-dropins.patch
+++ b/eclipse-fix-dropins.patch
@@ -27,7 +27,7 @@
+ // therefore dropins reconciliation can't load dropins plugins installed into user configuration
+ // after the user configuration has been dropped.
+ // It is necessary to unset this property.
-+ System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
++ //System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
} else {
//This is the first time we create the shared profile. Tag it as such and also remember the timestamp of the base
internalSetProfileStateProperty(profile, profile.getTimestamp(), IProfile.STATE_PROP_SHARED_INSTALL, IProfile.STATE_SHARED_INSTALL_VALUE_INITIAL);
@@ -38,9 +38,47 @@
+ // if the property is set by OSGI, and there is no new timestamp (because of the previous condition)
+ // ignore current profile. This will happen only once, because SERVICE_SHARED_INSTALL_NEW_TIMESTAMP
+ // is set during profile reset.
-+ if ("true".equals(System.getProperty(PROP_IGNORE_USER_CONFIGURATION))) //$NON-NLS-1$ //$NON-NLS-2$
-+ return true;
-+
++ if ("true".equals(System.getProperty(PROP_IGNORE_USER_CONFIGURATION))){ //$NON-NLS-1$ //$NON-NLS-2$
++ System.setProperty(PROP_IGNORE_USER_CONFIGURATION, "processed_and_unset"); //$NON-NLS-1$ //$NON-NLS-2$
++ return true;}
String baseTimestamp = getBaseTimestamp(profile.getProfileId());
if (baseTimestamp == null)
return false;
+--- rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
++++ rt.equinox.p2/bundles/org.eclipse.equinox.p2.reconciler.dropins/src/org/eclipse/equinox/internal/p2/reconciler/dropins/ProfileSynchronizer.java
+@@ -570,6 +570,7 @@
+
+ // get all IUs from all our repos
+ IQueryResult<IInstallableUnit> allIUs = getAllIUsFromRepos();
++ HashSet<IInstallableUnit> removedFromAllIUs = new HashSet<IInstallableUnit>();
+ for (Iterator<IInstallableUnit> iter = allIUs.iterator(); iter.hasNext();) {
+ final IInstallableUnit iu = iter.next();
+ IInstallableUnit existing = profileIUs.get(iu);
+@@ -583,6 +584,7 @@
+ // (and more expensive) way to find this out is to do an IU profile property query.
+ if (two == null) {
+ // the IU is already installed so don't mark it as a dropin now - see bug 404619.
++ removedFromAllIUs.add(iu);
+ iter.remove();
+ continue;
+ }
+@@ -625,7 +627,7 @@
+ }
+ // if the IU from the profile is in the "all available" list, then it is already added
+ // otherwise if it isn't in the repo then we have to remove it from the profile.
+- if (!all.contains(iu))
++ if (!all.contains(iu) && !removedFromAllIUs.contains(iu))
+ toRemove.add(iu);
+ }
+
+@@ -799,8 +801,8 @@
+ IStatus installerPlanStatus = engine.perform(plan.getInstallerPlan(), phaseSet, monitor);
+ if (!installerPlanStatus.isOK())
+ return installerPlanStatus;
+-
+- applyConfiguration(true);
++ if (isReconciliationApplicationRunning())
++ applyConfiguration(true);
+ }
+ return engine.perform(plan, phaseSet, monitor);
+ }
diff --git a/eclipse.spec b/eclipse.spec
index 242235e..096375a 100644
--- a/eclipse.spec
+++ b/eclipse.spec
@@ -52,7 +52,7 @@ fi;
Summary: An open, extensible IDE
Name: %{?scl_prefix}eclipse
Version: %{eclipse_version}
-Release: 0.59.git7bf397%{?dist}
+Release: 0.60.git7bf397%{?dist}
License: EPL
Group: Development/Tools
URL: http://www.eclipse.org/
@@ -1009,6 +1009,9 @@ fi
%{_libdir}/%{pkg_name}/plugins/org.eclipse.osgi.util_*
%changelog
+* Thu Jun 6 2013 Krzysztof Daniel <kdaniel at redhat.com> 1:4.3.0-0.60.git7bf397
+- Fix the dropins reconciliation.
+
* Tue Jun 4 2013 Alexander Kurtakov <akurtako at redhat.com> 1:4.3.0-0.59.git7bf397
- Fix bogus dates and SWT description.
More information about the scm-commits
mailing list