diff --git a/eclipse-launcher-addplatformtotildeeclipse.patch b/eclipse-launcher-addplatformtotildeeclipse.patch
new file mode 100644
index 0000000..ec1eccc
--- /dev/null
+++ b/eclipse-launcher-addplatformtotildeeclipse.patch
@@ -0,0 +1,99 @@
+### Eclipse Workspace Patch 1.0
+#P platform-launcher
+Index: library/gtk/eclipseGtk.c
+===================================================================
+RCS file: /cvsroot/eclipse/platform-launcher/library/gtk/eclipseGtk.c,v
+retrieving revision 1.27
+diff -u -r1.27 eclipseGtk.c
+--- library/gtk/eclipseGtk.c 27 Mar 2006 18:25:42 -0000 1.27
++++ library/gtk/eclipseGtk.c 28 Nov 2006 19:50:03 -0000
+@@ -335,3 +335,73 @@
+ gtk_main_quit();
+ return FALSE;
+ }
++
++/* Add the platform to ~/.eclipse/org.eclipse.platform_3.2.0/configuration/org.eclipse.update/platform.xml */
++void addPlatformToTildeDotEclipse()
++{
++ gchar *platform_xml, *touched;
++ gchar *config_end_position;
++ gsize old_length;
++ gchar *old_contents, *new_contents;
++ GError *error = NULL;
++ const gchar *site_element = "\n\n\n\n\0";
++
++ platform_xml = g_strconcat(g_get_home_dir(), "/.eclipse/org.eclipse.platform_3.2.0/configuration/org.eclipse.update/platform.xml", NULL);
++ touched = g_strconcat(g_get_home_dir(), "/.eclipse/.homedirmodified-fedora", NULL);
++
++ /* If platform.xml doesn't exist, Eclipse has yet to be started
++ * so don't worry about doing anything. Also, guard against doing
++ * this more than once with a dot file. */
++ if (!g_file_test(platform_xml, G_FILE_TEST_EXISTS) || \
++ g_file_test(touched, G_FILE_TEST_EXISTS)) {
++ g_free(platform_xml);
++ g_free(touched);
++ return;
++ }
++
++
++ if (g_file_get_contents (platform_xml,
++ &old_contents, &old_length, &error) == FALSE)
++ {
++ g_print("Error reading platform.xml in ~/.eclipse.\
++ You should remove ~/.eclipse before restarting Eclipse:\0");
++ g_print(g_strconcat(error->message, "\n\0", NULL));
++ g_free(error);
++ g_free(platform_xml);
++ g_free(touched);
++ return;
++ }
++
++ config_end_position = g_strrstr_len(old_contents, old_length, "");
++ *config_end_position = '\0';
++ new_contents = g_strconcat(old_contents, site_element, "\n\0", NULL);
++
++ if (g_file_set_contents(platform_xml,
++ new_contents, -1, &error) == FALSE)
++ {
++ g_print("Error writing platform.xml in ~/.eclipse.\
++ You should remove ~/.eclipse before restarting Eclipse:\0");
++ g_print(g_strconcat(error->message, "\n\0", NULL));
++ g_free(error);
++ g_free(touched);
++ g_free(platform_xml);
++ g_free(new_contents);
++ g_free(old_contents);
++ return;
++ }
++
++ if (g_file_set_contents(touched, "\0", -1, &error) == FALSE)
++ {
++ g_print("Error touching ~/.eclipse/.homedirmodified-fedora.\
++ You should remove ~/.eclipse before restarting Eclipse:\0");
++ g_print(g_strconcat(error->message, "\n\0", NULL));
++ g_free(error);
++ }
++
++ g_free(platform_xml);
++ g_free(touched);
++ g_free(new_contents);
++ g_free(old_contents);
++
++ return;
++}
+Index: library/eclipse.c
+===================================================================
+RCS file: /cvsroot/eclipse/platform-launcher/library/eclipse.c,v
+retrieving revision 1.71
+diff -u -r1.71 eclipse.c
+--- library/eclipse.c 25 Apr 2006 14:31:50 -0000 1.71
++++ library/eclipse.c 28 Nov 2006 19:50:03 -0000
+@@ -512,6 +512,8 @@
+ /* Get the command to start the Java VM. */
+ vmCommandArgs = getVMCommand( argc, argv );
+
++ addPlatformToTildeDotEclipse();
++
+ /* While the Java VM should be restarted */
+ vmCommand = vmCommandArgs;
+ while (vmCommand != NULL)
diff --git a/eclipse-updatehomedir.patch b/eclipse-updatehomedir.patch
index db6f4e2..b05f120 100644
--- a/eclipse-updatehomedir.patch
+++ b/eclipse-updatehomedir.patch
@@ -73,7 +73,7 @@ diff -u -r1.81.2.1 TargetPage.java
+ if (csite == null && Platform.getInstallLocation().isReadOnly() && isUpdate == false) {
+ // there are no updateable sites, the installation location is read-only and we are installing a new feature
+ // make an update site in the user's home direcotry
-+ File site = new File(System.getProperty("user.home") + File.separator + ".eclipseplugins" + File.separator + //$NON-NLS-1$ //$NON-NLS-2$
++ File site = new File(System.getProperty("user.home") + File.separator + ".eclipse" + File.separator + //$NON-NLS-1$ //$NON-NLS-2$
+ Platform.getProduct().getId() + File.separator + "updates"); //$NON-NLS-1$
+
+ try {
diff --git a/eclipse.spec b/eclipse.spec
index a493f1a..b04d05b 100644
--- a/eclipse.spec
+++ b/eclipse.spec
@@ -26,7 +26,7 @@ Epoch: 1
Summary: An open, extensible IDE
Name: eclipse
Version: %{eclipse_majmin}.%{eclipse_micro}
-Release: 22%{?dist}
+Release: 23%{?dist}
License: EPL
Group: Text Editors/Integrated Development Environments (IDE)
URL: http://www.eclipse.org/
@@ -118,6 +118,9 @@ Patch100: customBuildCallbacks.xml-add-pre.gather.bin.parts.patch
# Add ppc64 to the list of arches with gre64.conf
# part of https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=207016
Patch101: %{name}-ppc64gre64.patch
+# This allows us to remove the configuration platform.xml in /usr/share/eclipse
+# yet still maintain user-installed plugins in ~/.eclipse
+Patch102: %{name}-launcher-addplatformtotildeeclipse.patch
%if %{gcj_support}
@@ -429,6 +432,7 @@ unzip -qq -d launchertmp plugins/org.eclipse.platform/launchersrc.zip
pushd launchertmp
%patch47 -p0
%patch101 -p0
+%patch102 -p0
# put the configuration directory in an arch specific location
sed --in-place "s:/usr/lib/eclipse/configuration:%{_libdir}/%{name}/configuration:" library/eclipse.c
# make the eclipse install relocatable
@@ -440,6 +444,7 @@ rm -rf launchertmp
pushd features/org.eclipse.platform.launchers
%patch47 -p0
%patch101 -p0
+%patch102 -p0
# put the configuration directory in an arch specific location
sed --in-place "s:/usr/lib/eclipse:%{_libdir}/%{name}:" library/eclipse.c
# make the eclipse install relocatable
@@ -1743,6 +1748,12 @@ rm -f %{_datadir}/%{name}/configuration/org.eclipse.update/platform.xml*
%{_libdir}/%{name}/plugins/org.eclipse.sdk_*
%changelog
+* Tue Nov 28 2006 Andrew Overholt 3.2.1-23
+- Move back to ~/.eclipse for update site pending upstream comments.
+- Add patch to add platform to ~/.eclipse's platform.xml. This maintains
+ user-installed plugins but allows us to move arch-specific stuff into
+ %%{_libdir}.
+
* Mon Nov 20 2006 Andrew Overholt 3.2.1-22
- Use ~/.eclipseplugins instead of ~/.eclipse in update site - homedir patch.
- Bump release.