[eclipse] Fix .so removal issue.

swagiaal swagiaal at fedoraproject.org
Tue Nov 29 20:02:36 UTC 2011


commit 1eeb3a573cd062e73c74576c2f567d1b902d724b
Author: Sami Wagiaalla <swagiaal at redhat.com>
Date:   Tue Nov 29 14:08:58 2011 -0500

    Fix .so removal issue.
    
    - Stop using -clean option.
    - Use -Dosgi.checkConfiguration=true when updating the platform.
    - Remove cache.timestamps and .bundledata* when running the reconciler
      with -Dosgi.checkConfiguration=true.
    - Do not verify %{_libdir}/%{name}/artifacts.xml.

 eclipse-reconciler.sh |   32 +++++++++++++++++++-------------
 eclipse.spec          |   22 ++++++++++++++--------
 2 files changed, 33 insertions(+), 21 deletions(-)
---
diff --git a/eclipse-reconciler.sh b/eclipse-reconciler.sh
index 0905a76..d51850b 100755
--- a/eclipse-reconciler.sh
+++ b/eclipse-reconciler.sh
@@ -9,7 +9,14 @@
 # A list of the files of directory that are to be backed up
 config_files=("artifacts.xml" "eclipse.ini" "p2" "configuration")
 
-if [ ! -e /var/run/eclipse/run-reconciler ]
+# If the reconciler was run with the -clean options rerun the initializer.
+if [[ "$@" == *-clean* ]]
+then
+    echo "Do not run the reconciler with -clean option use -vmargs -Dosgi.checkConfiguration=true instead"
+    exit 0;
+fi
+
+if [ ! -e /var/run/eclipse/run-reconciler ] && [[ "$@" != *-Dosgi.checkConfiguration=true* ]]
 then
     echo "run-reconciler file not present. No need to run the reconciler"
     exit 0
@@ -27,6 +34,15 @@ fi
 echo "Removing run-reconciler file"
 rm -f /var/run/eclipse/run-reconciler
 
+# if we are running the reconciler with -Dosgi.checkConfiguration=true
+# probably doing an upgrade remove time stamp file(s).
+if [[ "$@" == *-Dosgi.checkConfiguration=true* ]]
+then
+    find $eclipse_dir -name cache.timestamps -delete
+    find $eclipse_dir -name .bundledata* -delete
+
+fi
+
 echo "backing up configuration files"
 for file in ${config_files[@]}
 do
@@ -39,18 +55,8 @@ pushd $eclipse_dir
 ./eclipse --launcher.suppressErrors -nosplash -consolelog -application org.eclipse.equinox.p2.reconciler.application "$@"
 r_exit_value=$?
 
-# If the reconciler was run with the -clean options rerun the initializer.
-if [[ "$@" == *-clean* ]]
-then
-    echo "Running the initializer"
-    ./eclipse --launcher.suppressErrors -cosolelog -nosplash -application org.eclipse.equinox.initializer.configInitializer -fileInitializer extract_patterns.txt 
-    i_exit_value=$?
-else
-    i_exit_value=0
-fi
-
-    # Check exit value
-if [ ! $i_exit_value -eq 0 ] || [ ! $r_exit_value -eq 0 ]
+# Check exit value
+if [ ! $r_exit_value -eq 0 ]
 then
     # Restore files
     echo "Reconciler failed. Restoring files"
diff --git a/eclipse.spec b/eclipse.spec
index fc413ac..7ecfdf0 100644
--- a/eclipse.spec
+++ b/eclipse.spec
@@ -16,7 +16,7 @@ Epoch:  1
 Summary:        An open, extensible IDE
 Name:           eclipse
 Version:        %{eclipse_majmin}.%{eclipse_micro}
-Release:        7%{?dist}
+Release:        8%{?dist}
 License:        EPL
 Group:          Text Editors/Integrated Development Environments (IDE)
 URL:            http://www.eclipse.org/
@@ -317,7 +317,7 @@ install -d -m 0710 %{buildroot}%{_localstatedir}/run/%{name}/
 mkdir $RPM_BUILD_ROOT%{_sysconfdir}/rpm/
 install -m 0644 %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/rpm/
 
-%pre rcp
+%pre platform
 # Remove all the profiles that were created by the reconciler.
 # this rpm will install a new profile and it will be reconciled
 # by running the reconciler in %post platform
@@ -347,13 +347,12 @@ rm -rf %{_libdir}/%{name}/configuration/org.eclipse.osgi/.state*
 find %{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles/ -depth -type d -empty -delete
 
 # Delete orphaned profile files
-find %{_libdir}/%{name}/p2/org.eclipse.equinox.p2.engine/profileRegistry/PlatformProfile.profile/* | while read file
+find %{_libdir}/%{name}/p2/org.eclipse.equinox.p2.engine/profileRegistry/PlatformProfile.profile/ | while read file
 do
-  rpm -qf "$file" >/dev/null
+  rpm -qf "$file" >& /dev/null
   if [ $? != 0 ]; then rm -f $file; fi
 done
 
-
 %post platform
 touch --no-create %{_datadir}/icons/hicolor
 if [ -x /usr/bin/gtk-update-icon-cache ]; then
@@ -363,8 +362,8 @@ fi
 # If this is an update, we run the reconciler not to provision the
 # platform but to reprovision all other plugins which may have 
 # already been installed in the system.
-if [ $1 -gt 2 ]; then
-  eclipse-reconciler.sh -clean > /dev/null
+if [ $1 -gt 1 ]; then
+  eclipse-reconciler.sh -debug -vmargs -Dosgi.checkConfiguration=true >& /dev/null
 fi
 
 
@@ -633,7 +632,7 @@ rm -rf %{_bindir}/efj/
 %{_libdir}/%{name}/plugins/org.sat4j.core_*
 %{_libdir}/%{name}/plugins/org.sat4j.pb_*
 # Put this in -platform since we're putting the p2 stuff here
-%{_libdir}/%{name}/artifacts.xml
+%verify(not md5 size mtime) %{_libdir}/%{name}/artifacts.xml
 # FIXME: should we ship content.xml for the platform?
 #%{_libdir}/%{name}/metadata
 %verify(not md5 size mtime) %{_libdir}/%{name}/p2
@@ -647,6 +646,13 @@ rm -rf %{_bindir}/efj/
 %{_libdir}/%{name}/dropins/sdk
 
 %changelog
+* Tue Nov 29 2011 Sami Wagiaalla <swagiaal at redhat.com> 1:3.7.0-8
+- Stop using -clean option.
+- Use -Dosgi.checkConfiguration=true when updating the platform.
+- Remove cache.timestamps and .bundledata* when running the reconciler
+  with -Dosgi.checkConfiguration=true.
+- Do not verify %{_libdir}/%{name}/artifacts.xml.
+
 * Tue Nov 29 2011 Roland Grunberg <rgrunber at redhat.com> 1:3.7.1-7
 - Bump release.
 


More information about the scm-commits mailing list