From a10e445493f670e3f2396567dce3bdce87beea21 Mon Sep 17 00:00:00 2001 From: Andrew Overholt Date: Nov 04 2006 00:14:24 +0000 Subject: - Make sdk require config.ini itself rather than the package to deal with the bi-arch installation situation. - Move sdk feature and plugin to %%{_libdir} so we can check for its existence in the post scripts. --- diff --git a/eclipse.spec b/eclipse.spec index 162e2d0..1437d22 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: 14%{?dist} +Release: 15%{?dist} License: EPL Group: Text Editors/Integrated Development Environments (IDE) URL: http://www.eclipse.org/ @@ -361,6 +361,8 @@ Requires: %{name}-pde-sdk = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-platform-sdk = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-pde-sdk = %{epoch}:%{version}-%{release} Requires(post,postun): %{name}-jdt-sdk = %{epoch}:%{version}-%{release} +# This file requirement is to deal with the biarch installation case +Requires(post,postun): %{_libdir}/%{name}/configuration/config.ini %if %{gcj_support} Requires: libgcj >= 4.0.2 Requires(post,postun): java-gcj-compat >= 1.0.64 @@ -956,6 +958,7 @@ echo "name=Eclipse Platform" > $RPM_BUILD_ROOT%{_libdir}/%{name}/.eclipseextensi echo "id=org.eclipse.platform" >> $RPM_BUILD_ROOT%{_libdir}/%{name}/.eclipseextension echo "version=%{eclipse_majmin}.%{eclipse_micro}" >> $RPM_BUILD_ROOT%{_libdir}/%{name}/.eclipseextension install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins +install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/features # Install the platform specific fragments in an arch specific dir install -d -m 755 $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins @@ -981,6 +984,15 @@ mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/com.ibm.icu.source_3.4.5 $RPM_BUIL # arches -- specifically -uses.html (e.g. IProblem-uses.html) are not # generated correctly. mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/*doc* $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins +# To ensure that the product is org.eclipse.sdk.ide when eclipse-sdk is +# installed, we must check for its presence at %%post{,un} time. This does not +# work in the biarch case, though, if it is not in an arch-specific location. +# This results in complaints that the sdk plugin is found twice, but this is +# better than always appearing in the about dialog as the Eclipse Platform with +# the platform plugin version number instead of the actual SDK version number. +# -- overholt, 2006-11-03 +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.sdk_* $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins +mv $RPM_BUILD_ROOT%{_datadir}/%{name}/features/org.eclipse.sdk_* $RPM_BUILD_ROOT%{_libdir}/%{name}/features mkdir -p home homedir=$(cd home && pwd) @@ -1000,7 +1012,7 @@ java -Dosgi.sharedConfiguration.area=$libdir_path/configuration \ -fileInitializer %{SOURCE19} popd -# Make propper links file +# Make proper links file echo "path:/usr/lib" > $RPM_BUILD_ROOT%{_datadir}/%{name}/links/fragments.link echo "path:/usr/lib64" > $RPM_BUILD_ROOT%{_datadir}/%{name}/links/fragments64.link @@ -1098,7 +1110,7 @@ install -p -D -m0644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/applications/%{name}. # org.eclipse.platform to show it in # Eclipse about dialog. (courtesy Debian # Eclipse packagers) # FIXME use the third id -pushd $RPM_BUILD_ROOT%{_datadir}/%{name}/plugins/org.eclipse.sdk_%{eclipse_majmin}.* +pushd $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/org.eclipse.sdk_%{eclipse_majmin}.* OS_VERSION=`cat /etc/*-release | head -n 1` sed -e "s/\(0=.*\)/\1 ($OS_VERSION)/" < about.mappings > about.mappings.tmp mv about.mappings.tmp about.mappings @@ -1355,7 +1367,7 @@ if [ -x /usr/bin/gtk-update-icon-cache ]; then gtk-update-icon-cache -q %{_datadir}/icons/hicolor fi -%post sdk +%post sdk %if %{gcj_support} %{_bindir}/rebuild-gcj-db %endif @@ -1364,11 +1376,15 @@ if [ -f %{_libdir}/%{name}/configuration/config.ini ]; then %{_libdir}/%{name}/configuration/config.ini fi -%postun sdk +%postun sdk %if %{gcj_support} %{_bindir}/rebuild-gcj-db %endif -if [ -f %{_libdir}/%{name}/configuration/config.ini ]; then +# Only set the product back to platform.ide if the sdk is actually removed for +# this arch. This SDKDIR check is to deal with the ordering of new %%post +# before old %%postun +SDKDIR=$(ls %{_libdir}/%{name}/features | grep "org\.eclipse\.sdk_") +if [ -z "$SDKDIR" -a -f %{_libdir}/%{name}/configuration/config.ini ]; then sed --in-place "s/[#]*eclipse.product=.*/eclipse.product=org.eclipse.platform.ide/" \ %{_libdir}/%{name}/configuration/config.ini fi @@ -1716,10 +1732,16 @@ rm -f %{_datadir}/%{name}/configuration/org.eclipse.update/platform.xml* %files sdk %defattr(-,root,root) -%{_datadir}/%{name}/features/org.eclipse.sdk_* -%{_datadir}/%{name}/plugins/org.eclipse.sdk_* +%{_libdir}/%{name}/features/org.eclipse.sdk_* +%{_libdir}/%{name}/plugins/org.eclipse.sdk_* %changelog +* Fri Nov 03 2006 Andrew Overholt 3.2.1-15 +- Make sdk require config.ini itself rather than the package to deal with the + bi-arch installation situation. +- Move sdk feature and plugin to %%{_libdir} so we can check for its existence + in the post scripts. + * Thu Nov 02 2006 Andrew Overholt 3.2.1-14 - Remove post sections that munge eclipse.product; always set it to org.eclipse.platform.ide or org.eclipse.sdk.ide.