diff --git a/eclipse.spec b/eclipse.spec index 4993681..67cf48e 100644 --- a/eclipse.spec +++ b/eclipse.spec @@ -12,6 +12,7 @@ Epoch: 1 %define eclipse_majmin %{eclipse_major}.%{eclipse_minor} %define eclipse_micro 1 %define swtver 3.4.1.v3449c +%define initialize 1 # All arches line up between Eclipse and Linux kernel names except i386 -> x86 %ifarch %{ix86} @@ -970,6 +971,10 @@ LAUNCHERNAME=$(ls plugins | grep equinox.launcher_) ln -s plugins/$LAUNCHERNAME startup.jar popd +# Remove the unnecessary configuration data +rm -r $sdkDir/configuration/org.eclipse.update + +%if %{initialize} # FIXME: investigate why it doesn't work to set this -- configuration data is # always written to /usr/share/eclipse/configuration, even with # -Dosgi.sharedConfiguration.area=$RPM_BUILD_ROOT%{_libdir}/%{name}/configuration @@ -979,8 +984,8 @@ popd # Extract .so files # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90535 pushd $RPM_BUILD_ROOT -mv $RPM_BUILD_ROOT/usr/lib/eclipse/dropins $RPM_BUILD_ROOT/dropins -mkdir $RPM_BUILD_ROOT/usr/lib/eclipse/dropins +mv $RPM_BUILD_ROOT%{_libdir}/eclipse/dropins $RPM_BUILD_ROOT/dropins +mkdir $RPM_BUILD_ROOT%{_libdir}/eclipse/dropins libdir_path=$(echo %{_libdir}/%{name} | sed -e 's/^\///') java -Dosgi.sharedConfiguration.area=$libdir_path/configuration \ -cp $libdir_path/startup.jar \ @@ -989,11 +994,17 @@ java -Dosgi.sharedConfiguration.area=$libdir_path/configuration \ -application org.eclipse.equinox.initializer.configInitializer \ -fileInitializer %{SOURCE19} popd -rm -fr $RPM_BUILD_ROOT/usr/lib/eclipse/dropins -mv $RPM_BUILD_ROOT/dropins $RPM_BUILD_ROOT/usr/lib/eclipse/dropins +rm -fr $RPM_BUILD_ROOT%{_libdir}/eclipse/dropins +mv $RPM_BUILD_ROOT/dropins $RPM_BUILD_ROOT%{_libdir}/eclipse/dropins + +# Do this again after we've run the file initializer +rm -rf $sdkDir/p2/org.eclipse.equinox.p2.core/cache +rm -rf $sdkDir/p2/org.eclipse.equinox.p2.director/rollback/content.xml +pushd $profileDir + sed -i "s|$RPM_BUILD_ROOT||g" *.profile/* +popd # Remove the unnecessary configuration data -rm -r $sdkDir/configuration/org.eclipse.update rm -r $sdkDir/configuration/org.eclipse.core.runtime rm -r $sdkDir/configuration/org.eclipse.equinox.app rm -r $sdkDir/configuration/.settings @@ -1004,12 +1015,30 @@ for dataDir in $dataDirs; do rm -rf `dirname $dataDir` done -# Do this again after we've run the file initializer -rm -rf $sdkDir/p2/org.eclipse.equinox.p2.core/cache -rm -rf $sdkDir/p2/org.eclipse.equinox.p2.director/rollback/content.xml -pushd $profileDir - sed -i "s|$RPM_BUILD_ROOT||g" *.profile/* +# Create file listings for the extracted shared libraries +echo -n "" > %{_builddir}/%{buildsubdir}/%{name}-platform.install; +for id in `ls configuration/org.eclipse.osgi/bundles`; do + if [ "Xconfiguration" = $(echo X`find configuration/org.eclipse.osgi/bundles/$id -name libswt\*.so` | sed "s:/.*::") ]; then + echo "%{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles/$id" > %{_builddir}/%{buildsubdir}/%{name}-swt.install; + else + echo "%{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles/$id" >> %{_builddir}/%{buildsubdir}/%{name}-platform.install; + fi +done +popd + +# Install symlinks to the SWT JNI shared libraries in %%{_libdir}/eclipse +pushd $RPM_BUILD_ROOT%{_libdir}/%{name} +for lib in $(find configuration -name libswt\*.so); do + ln -s $lib `basename $lib` +done + +# Ensure the shared libraries have the correct permissions +pushd $RPM_BUILD_ROOT%{_libdir}/%{name} +for lib in `find configuration -name \*.so`; do + chmod 755 $lib +done popd +%endif # Set eclipse.product to org.fedoraproject.ide.platform sed --in-place "s/plugins\/org.eclipse.platform/plugins\/org.fedoraproject.ide.platform/" \ @@ -1026,12 +1055,6 @@ ln -s %{_libdir}/%{name}/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name} #ECLIPSELIBSUFFIX=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.equinox.launcher.gtk.linux*/*.so | sed "s/.*.launcher.gtk.linux.//") #sed --in-place "s|@ECLIPSELIBSUFFIX@|$ECLIPSELIBSUFFIX|" $RPM_BUILD_ROOT%{_bindir}/eclipse -# Ensure the shared libraries have the correct permissions -pushd $RPM_BUILD_ROOT%{_libdir}/%{name} -for lib in `find configuration -name \*.so`; do - chmod 755 $lib -done - mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}/links # FIXME: We can probably get rid of the links file when we ensure all # plugins are installing into dropins (either in libdir or datadir). @@ -1042,24 +1065,6 @@ echo "path:%{_datadir}" > \ # Ensure the launcher binary has the correct permissions chmod 755 $RPM_BUILD_ROOT/%{_libdir}/%{name}/%{name} -# Create file listings for the extracted shared libraries -echo -n "" > %{_builddir}/%{buildsubdir}/%{name}-platform.install; -for id in `ls configuration/org.eclipse.osgi/bundles`; do - if [ "Xconfiguration" = $(echo X`find configuration/org.eclipse.osgi/bundles/$id -name libswt\*.so` | sed "s:/.*::") ]; then - echo "%{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles/$id" > %{_builddir}/%{buildsubdir}/%{name}-swt.install; - else - echo "%{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles/$id" >> %{_builddir}/%{buildsubdir}/%{name}-platform.install; - fi -done -popd - -# Install symlinks to the SWT JNI shared libraries in %%{_libdir}/eclipse -pushd $RPM_BUILD_ROOT%{_libdir}/%{name} -for lib in $(find configuration -name libswt\*.so); do - ln -s $lib `basename $lib` -done -popd - # Install the SWT jar symlinks in libdir SWTJARVERSION=$(grep v$SWT_VERSION plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}/build.xml | sed "s:.*<.*\"\(.*\)\"/>:\1:") pushd $RPM_BUILD_ROOT%{_libdir}/%{name} @@ -1281,14 +1286,20 @@ fi %{_javadir}/ecj*.jar %{_bindir}/ecj +%if %{initialize} %files swt -f %{name}-swt.install +%else +%files swt +%endif %defattr(-,root,root) %dir %{_libdir}/%{name} -%dir %{_libdir}/%{name}/libswt-*.so %dir %{_libdir}/%{name}/plugins +%if %{initialize} +%dir %{_libdir}/%{name}/libswt-*.so %dir %{_libdir}/%{name}/configuration %dir %{_libdir}/%{name}/configuration/org.eclipse.osgi %dir %{_libdir}/%{name}/configuration/org.eclipse.osgi/bundles +%endif %{_libdir}/%{name}/plugins/org.eclipse.swt_* %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_* %{_libdir}/%{name}/swt-gtk*.jar @@ -1301,10 +1312,12 @@ fi %dir %{_datadir}/%{name} %dir %{_datadir}/%{name}/features %dir %{_datadir}/%{name}/plugins +%if %{initialize} %{_libdir}/%{name}/configuration/org.eclipse.osgi/.bundledata* %{_libdir}/%{name}/configuration/org.eclipse.osgi/.lazy* %{_libdir}/%{name}/configuration/org.eclipse.osgi/.manager %{_libdir}/%{name}/configuration/org.eclipse.osgi/.state* +%endif %config %{_libdir}/%{name}/configuration/config.ini %config %{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info %dir %{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator @@ -1344,7 +1357,11 @@ fi %{_libdir}/%{name}/plugins/org.eclipse.update.configurator_* %{_libdir}/%{name}/plugins/org.eclipse.equinox.simpleconfigurator_* +%if %{initialize} %files platform -f %{name}-platform.install +%else +%files platform +%endif %defattr(-,root,root) %attr(0755,root,root) %{_bindir}/%{name} %config %{_libdir}/%{name}/eclipse.ini @@ -1512,6 +1529,9 @@ fi #%{_libdir}/%{name}/configuration/org.eclipse.equinox.source %changelog +* Wed Oct 15 2008 Andrew Overholt 3.4.1-1 +- Add conditionals around Equinox initialization to enable debugging. + * Fri Oct 13 2008 Alexander Kurtakov 3.4.1-1 - Symlink to ant-apache-bsf and ant-commons-net. - Update branding.