- Generate metadata and provision each sub-package

- Do crazy config.ini, bundles.info, and *.profile shuffling
- Add post and postun sections to update the config.ini, bundles.info, and
*.profile files
This commit is contained in:
Andrew Overholt 2008-07-17 22:13:01 +00:00
parent eec3b54252
commit 8a2c6f45a3
4 changed files with 467 additions and 45 deletions

147
eclipse-copy-JDT.sh Normal file
View File

@ -0,0 +1,147 @@
#!/bin/sh
baseDir=$1
mkdir -p features plugins
cp -rp $baseDir/about* .
cp -rp $baseDir/configuration/ .
cp -rp $baseDir/eclipse{,.ini} .
cp -rp $baseDir/.eclipseproduct .
cp -rp $baseDir/epl-v10.html .
cp -rp $baseDir/notice.html .
cp -rp $baseDir/readme/ .
cp -rp $baseDir/features/org.eclipse.platform_* features
cp -rp $baseDir/features/org.eclipse.help_* features
cp -rp $baseDir/features/org.eclipse.equinox.p2.user.ui_* features
cp -rp $baseDir/plugins/*linux* plugins
cp -rp $baseDir/plugins/com.jcraft.jsch_* plugins
cp -rp $baseDir/plugins/org.eclipse.compare_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.boot_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.filebuffers_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.filesystem_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.net_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.resources_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.resources.compatibility_* plugins
cp -rp $baseDir/plugins/org.eclipse.osgi.util_* plugins
cp -rp $baseDir/plugins/org.eclipse.debug.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.debug.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.appserver_* plugins
cp -rp $baseDir/plugins/org.eclipse.ltk.core.refactoring_* plugins
cp -rp $baseDir/plugins/org.eclipse.ltk.ui.refactoring_* plugins
cp -rp $baseDir/plugins/org.eclipse.platform_* plugins
cp -rp $baseDir/plugins/org.eclipse.platform.doc.user_* plugins
cp -rp $baseDir/plugins/org.eclipse.search_* plugins
cp -rp $baseDir/plugins/org.eclipse.team.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.team.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.text_* plugins
cp -rp $baseDir/plugins/org.eclipse.jface.text_* plugins
cp -rp $baseDir/plugins/org.eclipse.jsch.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.jsch.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.console_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.presentations.r21_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.intro_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.intro.universal_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.cheatsheets_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.browser_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.navigator_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.navigator.resources_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.net_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.workbench.texteditor_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.views_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.editors_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.externaltools_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.ide_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.ide.application_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.scheduler_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.workbench.compatibility_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.views.properties.tabbed_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.security_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.security.ui_* plugins
cp -rp $baseDir/features/org.eclipse.rcp_* features
cp -rp $baseDir/plugins/com.ibm.icu_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.commands_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.databinding_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.databinding.beans_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.jobs_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.expressions_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime.compatibility.auth_* plugins
cp -rp $baseDir/plugins/org.eclipse.osgi_* plugins
cp -rp $baseDir/plugins/org.eclipse.help_* plugins
cp -rp $baseDir/plugins/org.eclipse.swt_* plugins
cp -rp $baseDir/plugins/org.eclipse.jface_* plugins
cp -rp $baseDir/plugins/org.eclipse.jface.databinding_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.workbench_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.configurator_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.simpleconfigurator_* plugins
cp -rp $baseDir/plugins/org.eclipse.rcp_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.contenttype_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.app_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.common_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.preferences_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.launcher_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime.compatibility.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.variables_* plugins
cp -rp $baseDir/plugins/javax.servlet_* plugins
cp -rp $baseDir/plugins/javax.servlet.jsp_* plugins
cp -rp $baseDir/plugins/org.apache.ant_* plugins
cp -rp $baseDir/plugins/org.apache.commons.el_* plugins
cp -rp $baseDir/plugins/org.apache.commons.logging_* plugins
cp -rp $baseDir/plugins/org.apache.jasper_* plugins
cp -rp $baseDir/plugins/org.apache.lucene_* plugins
cp -rp $baseDir/plugins/org.apache.lucene.analysis_* plugins
cp -rp $baseDir/plugins/org.eclipse.ant.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime.compatibility_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.filetransfer_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.identity_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.provider.filetransfer_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.provider.filetransfer.ssl_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.ssl_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.frameworkadmin_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.frameworkadmin.equinox_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.http.jetty_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.http.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.http.servlet_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.jsp.jasper_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.jsp.jasper.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.artifact.repository_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.console_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.director_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.director.app_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.directorywatcher_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.engine_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.exemplarysetup_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.extensionlocation_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.garbagecollector_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.jarprocessor_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.metadata_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.metadata.generator_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.metadata.repository_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.reconciler.dropins_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.touchpoint.eclipse_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.touchpoint.natives_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.ui.sdk_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.updatechecker_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.updatesite_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.base_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.webapp_* plugins
cp -rp $baseDir/plugins/org.eclipse.osgi.services_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.forms_* plugins
cp -rp $baseDir/plugins/org.mortbay.jetty_* plugins
cp -rp $baseDir/plugins/org.sat4j.core_* plugins
cp -rp $baseDir/plugins/org.sat4j.pb_* plugins
cp -rp $baseDir/plugins/org.eclipse.jdt* plugins
cp -rp $baseDir/plugins/org.eclipse.ant.ui_* plugins
cp -rp $baseDir/plugins/org.junit_* plugins
cp -rp $baseDir/plugins/org.junit4_* plugins
rm -rf plugins/*.source_*
sed -i 's/org.eclipse.sdk.ide/org.eclipse.platform.ide/' configuration/config.ini

142
eclipse-copy-Platform.sh Normal file
View File

@ -0,0 +1,142 @@
#!/bin/sh
baseDir=$1
mkdir -p features plugins
cp -rp $baseDir/about* .
cp -rp $baseDir/configuration/ .
cp -rp $baseDir/eclipse{,.ini} .
cp -rp $baseDir/.eclipseproduct .
cp -rp $baseDir/epl-v10.html .
cp -rp $baseDir/notice.html .
cp -rp $baseDir/readme/ .
cp -rp $baseDir/features/org.eclipse.platform_* features
cp -rp $baseDir/features/org.eclipse.help_* features
cp -rp $baseDir/features/org.eclipse.equinox.p2.user.ui_* features
cp -rp $baseDir/plugins/*linux* plugins
cp -rp $baseDir/plugins/com.jcraft.jsch_* plugins
cp -rp $baseDir/plugins/org.eclipse.compare_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.boot_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.filebuffers_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.filesystem_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.net_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.resources_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.resources.compatibility_* plugins
cp -rp $baseDir/plugins/org.eclipse.osgi.util_* plugins
cp -rp $baseDir/plugins/org.eclipse.debug.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.debug.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.appserver_* plugins
cp -rp $baseDir/plugins/org.eclipse.ltk.core.refactoring_* plugins
cp -rp $baseDir/plugins/org.eclipse.ltk.ui.refactoring_* plugins
cp -rp $baseDir/plugins/org.eclipse.platform_* plugins
cp -rp $baseDir/plugins/org.eclipse.platform.doc.user_* plugins
cp -rp $baseDir/plugins/org.eclipse.search_* plugins
cp -rp $baseDir/plugins/org.eclipse.team.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.team.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.text_* plugins
cp -rp $baseDir/plugins/org.eclipse.jface.text_* plugins
cp -rp $baseDir/plugins/org.eclipse.jsch.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.jsch.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.console_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.presentations.r21_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.intro_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.intro.universal_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.cheatsheets_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.browser_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.navigator_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.navigator.resources_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.net_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.workbench.texteditor_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.views_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.editors_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.externaltools_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.ide_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.ide.application_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.scheduler_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.workbench.compatibility_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.views.properties.tabbed_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.security_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.security.ui_* plugins
cp -rp $baseDir/features/org.eclipse.rcp_* features
cp -rp $baseDir/plugins/com.ibm.icu_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.commands_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.databinding_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.databinding.beans_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.jobs_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.expressions_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime.compatibility.auth_* plugins
cp -rp $baseDir/plugins/org.eclipse.osgi_* plugins
cp -rp $baseDir/plugins/org.eclipse.help_* plugins
cp -rp $baseDir/plugins/org.eclipse.swt_* plugins
cp -rp $baseDir/plugins/org.eclipse.jface_* plugins
cp -rp $baseDir/plugins/org.eclipse.jface.databinding_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.workbench_* plugins
cp -rp $baseDir/plugins/org.eclipse.update.configurator_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.simpleconfigurator_* plugins
cp -rp $baseDir/plugins/org.eclipse.rcp_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.contenttype_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.app_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.common_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.preferences_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.launcher_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime.compatibility.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.variables_* plugins
cp -rp $baseDir/plugins/javax.servlet_* plugins
cp -rp $baseDir/plugins/javax.servlet.jsp_* plugins
cp -rp $baseDir/plugins/org.apache.ant_* plugins
cp -rp $baseDir/plugins/org.apache.commons.el_* plugins
cp -rp $baseDir/plugins/org.apache.commons.logging_* plugins
cp -rp $baseDir/plugins/org.apache.jasper_* plugins
cp -rp $baseDir/plugins/org.apache.lucene_* plugins
cp -rp $baseDir/plugins/org.apache.lucene.analysis_* plugins
cp -rp $baseDir/plugins/org.eclipse.ant.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.core.runtime.compatibility_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.filetransfer_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.identity_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.provider.filetransfer_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.provider.filetransfer.ssl_* plugins
cp -rp $baseDir/plugins/org.eclipse.ecf.ssl_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.frameworkadmin_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.frameworkadmin.equinox_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.http.jetty_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.http.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.http.servlet_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.jsp.jasper_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.jsp.jasper.registry_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.artifact.repository_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.console_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.core_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.director_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.director.app_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.directorywatcher_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.engine_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.exemplarysetup_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.extensionlocation_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.garbagecollector_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.jarprocessor_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.metadata_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.metadata.generator_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.metadata.repository_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.reconciler.dropins_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.touchpoint.eclipse_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.touchpoint.natives_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.ui.sdk_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.updatechecker_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.p2.updatesite_* plugins
cp -rp $baseDir/plugins/org.eclipse.equinox.simpleconfigurator.manipulator_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.base_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.ui_* plugins
cp -rp $baseDir/plugins/org.eclipse.help.webapp_* plugins
cp -rp $baseDir/plugins/org.eclipse.osgi.services_* plugins
cp -rp $baseDir/plugins/org.eclipse.ui.forms_* plugins
cp -rp $baseDir/plugins/org.mortbay.jetty_* plugins
cp -rp $baseDir/plugins/org.sat4j.core_* plugins
cp -rp $baseDir/plugins/org.sat4j.pb_* plugins
sed -i 's/org.eclipse.sdk.ide/org.eclipse.platform.ide/' configuration/config.ini

17
eclipse-updateSymlinks.sh Normal file
View File

@ -0,0 +1,17 @@
#!/bin/sh
pushd @INSTALLDIR@/configuration
rm org.eclipse.equinox.simpleconfigurator/bundles.info
biggest=$(ls -1 bundleInfos/ | tail -n 1)
ln -s $biggest org.eclipse.equinox.simpleconfigurator/bundles.info
rm config.ini
biggest=$(ls -1 configInis/ | tail -n 1)
ln -s $biggest config.ini
popd
profilesDir=@INSTALLDIR@/profilesDir
pushd @INSTALLDIR@/p2/org.eclipse.equinox.engine/profileRegistry
rm -rf *
biggest=$(ls -1 $profilesDir | tail -n 1)
ln -s ../../../profilesDir/$biggest $(echo $biggest | cut -c 3-)
popd

View File

@ -4,6 +4,7 @@
# - update stuff for building on secondary arches
# - get Ganymede update site pre-configured
# - investigate bi-arch requirements
# - sub-packages ... do we need config.ini for -rcp?
Epoch: 1
%define eclipse_major 3
@ -22,7 +23,7 @@ Epoch: 1
Summary: An open, extensible IDE
Name: eclipse
Version: %{eclipse_majmin}.%{eclipse_micro}
Release: 2%{?dist}
Release: 3%{?dist}
License: EPL
Group: Text Editors/Integrated Development Environments (IDE)
URL: http://www.eclipse.org/
@ -65,6 +66,10 @@ Source25: ecf-filetransfer-v20080611-1715.tar.bz2
# Create a simple feature for building ECF's filetransfer plugins
Source26: ecf-filetransfer-feature.xml
Source27: ecf-filetransfer-build.properties
# These scripts copy sub-sets of the SDK for generating metadata
Source28: %{name}-copy-Platform.sh
Source29: %{name}-copy-JDT.sh
Source30: %{name}-updateSymlinks.sh
# Build swttools.jar
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=90364
@ -682,11 +687,7 @@ unzip -d $RPM_BUILD_ROOT%{_libdir} \
rm -rf \
$RPM_BUILD_ROOT%{_libdir}/%{name}/features/org.eclipse.ecf.filetransfer_feature_*
installDir=$RPM_BUILD_ROOT%{_libdir}/%{name}
metadataDir=$installDir/metadata
installFolder=$RPM_BUILD_ROOT%{_libdir}/%{name}-tmp
LAUNCHERVERSION=$(ls $installDir/plugins | grep equinox.launcher_ | sed 's/org.eclipse.equinox.launcher_//')
LAUNCHERVERSION=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins | grep equinox.launcher_ | sed 's/org.eclipse.equinox.launcher_//')
# Install the file initializer app
cp -p equinox-incubator/org.eclipse.equinox.initializer/org.eclipse.equinox.initializer_*.jar \
@ -697,6 +698,31 @@ unzip -qq -d $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins %{SOURCE4}
# Install the Fedora Eclipse product feature
unzip -qq -d $RPM_BUILD_ROOT%{_libdir}/%{name}/features %{SOURCE5}
scriptDir=`pwd`
cp %{SOURCE28} .
cp %{SOURCE29} .
for subPkg in Platform JDT; do
mkdir $RPM_BUILD_ROOT%{_libdir}/%{name}-$subPkg
pushd $RPM_BUILD_ROOT%{_libdir}/%{name}-$subPkg
sh $scriptDir/%{name}-copy-$subPkg.sh $RPM_BUILD_ROOT%{_libdir}/%{name}
popd
done
ln -s $RPM_BUILD_ROOT%{_libdir}/%{name}{,-SDK}
bundlesInfoDir=$RPM_BUILD_ROOT%{_libdir}/%{name}-bundleInfos
profilesDir=$RPM_BUILD_ROOT%{_libdir}/%{name}-profiles
configIniDir=$RPM_BUILD_ROOT%{_libdir}/%{name}-configInis
mkdir -p $bundlesInfoDir $profilesDir $configIniDir
for subPkg in Platform JDT SDK; do
installDir=$RPM_BUILD_ROOT%{_libdir}/%{name}-$subPkg
metadataDir=$installDir/metadata-$subPkg
installFolder=$RPM_BUILD_ROOT%{_libdir}/%{name}-tmp-$subPkg
SDKinstallFolder=$RPM_BUILD_ROOT%{_libdir}/%{name}-tmp
# Generate metadata
java \
-cp $installDir/plugins/org.eclipse.equinox.launcher_$LAUNCHERVERSION \
@ -706,8 +732,8 @@ org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \
-metadataRepository file:$metadataDir \
-artifactRepository file:$metadataDir \
-source $installDir \
-root sdk \
-rootVersion 3.4.0 \
-root "Fedora Eclipse $subPkg" \
-rootVersion %{version} \
-flavor tooling \
-publishArtifacts \
-append \
@ -715,21 +741,21 @@ org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \
-metadataRepositoryName "Fedora Eclipse"
# Director config.ini
mv $installDir/configuration/config.ini{,.bak}
cp -p %{SOURCE22} $installDir/configuration/config.ini
chmod u+x $installDir/eclipse
profileId=SDKProfile
profileId=${subPkg}Profile
# Provision SDK with director
# Debugging? Add -debug and -consolelog
# Provision with director
$installDir/eclipse \
-application \
org.eclipse.equinox.p2.director.app.application \
-nosplash \
-debug \
-consolelog \
-flavor tooling \
-installIU sdk \
-installIU "Fedora Eclipse $subPkg" \
-version %{version} \
-p2.os linux \
-p2.ws gtk \
@ -744,36 +770,95 @@ org.eclipse.equinox.p2.director.app.application \
-vmargs \
-Declipse.p2.data.area=$installFolder/p2
# Some extra stuff
for f in about_files {about,epl-v10,notice}.html readme metadata; do
cp -rp $installDir/$f $installFolder
# Copy the sub-bundles.info file
mv $installFolder/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info \
$bundlesInfoDir/${subPkg}-bundles.info
# Copy the sub-profile
profileDir=$installFolder/p2/org.eclipse.equinox.p2.engine/profileRegistry
mv $profileDir/* $profilesDir
# Copy the sub-config.ini (for profile= line)
mv $installFolder/configuration/config.ini \
$configIniDir/${subPkg}-config.ini
# Reset config.ini
mv $installDir/configuration/config.ini{.bak,}
done
# Some extra stuff. installFolder will still be -SDK here
for f in about_files {about,epl-v10,notice}.html readme; do
mv $RPM_BUILD_ROOT%{_libdir}/%{name}/$f $installFolder
done
rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}/metadata-SDK
# Ship the provisioned SDK
installDir=$RPM_BUILD_ROOT%{_libdir}/%{name}
rm -rf $installDir
mv $installFolder $installDir
rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}*tmp*
rm -rf $RPM_BUILD_ROOT%{_libdir}/%{name}-{Platform,JDT}
rm $RPM_BUILD_ROOT%{_libdir}/%{name}-SDK
mv $configIniDir $installDir/configuration/configInis
configIniDir=$installDir/configuration/configInis
mv $bundlesInfoDir $installDir/configuration/bundleInfos
bundlesInfoDir=$installDir/configuration/bundleInfos
mv $profilesDir $installDir/profilesDir
profilesDir=$installDir/profilesDir
pushd $configIniDir
mv Platform-config.ini 0-Platform-config.ini
mv JDT-config.ini 1-JDT-config.ini
mv SDK-config.ini 2-SDK-config.ini
for f in `ls *.ini`; do
sed --in-place "s/plugins\/org.eclipse.platform/plugins\/org.fedoraproject.ide.platform/" $f
sed --in-place "s/eclipse.product=.*/eclipse.product=org.fedoraproject.ide.platform.product/" $f
done
popd
pushd $installDir/configuration
ln -s configInis/2-SDK-config.ini config.ini
popd
pushd $bundlesInfoDir
mv Platform-bundles.info 0-Platform-bundles.info
mv JDT-bundles.info 1-JDT-bundles.info
mv SDK-bundles.info 2-SDK-bundles.info
popd
pushd $installDir/configuration/org.eclipse.equinox.simpleconfigurator
ln -s ../bundleInfos/2-SDK-bundles.info bundles.info
popd
pushd $profilesDir
for f in Platform JDT SDK; do
profileFiles=${f}Profile.profile/*
for g in Platform JDT SDK; do
installFolder=$RPM_BUILD_ROOT%{_libdir}/%{name}-tmp-$g
sed -i "s|$installFolder|%{_libdir}/%{name}|g" $profileFiles
done
done
mv PlatformProfile.profile 0-PlatformProfile.profile
mv JDTProfile.profile 1-JDTProfile.profile
mv SDKProfile.profile 2-SDKProfile.profile
# This is a weird one - extension location?
sed -i "s|$RPM_BUILD_ROOT||g" 2-SDKProfile.profile/*
popd
pushd $installDir/p2/org.eclipse.equinox.p2.engine/profileRegistry
ln -s ../../../profilesDir/2-SDKProfile.profile SDKProfile.profile
popd
# Fix paths in p2 data
rm -rf $installDir/p2/org.eclipse.equinox.p2.core/cache
rm -rf $installDir/p2/org.eclipse.equinox.p2.director/rollback/content.xml
sed -i "s|file\:$installFolder/\ -\ bundle\ pool|Eclipse\ SDK|g" \
sed -i "s|file\:$installFolder/\ -\ bundle\ pool|Fedora Eclipse|g" \
$installDir/artifacts.xml
# FIXME: remove the older entry?
profileDir=$installDir/p2/org.eclipse.equinox.p2.engine/profileRegistry
pushd $profileDir
for f in `ls $profileId.profile`; do
sed -i "s|$installFolder|%{_libdir}/%{name}|g" $profileId.profile/$f
done
popd
%ifarch ppc64 sparc sparcv9 sparc64 alpha ia64
cp -p features/org.eclipse.platform/gtk/eclipse.ini $RPM_BUILD_ROOT%{_libdir}/eclipse
cp -p features/org.eclipse.platform/gtk/eclipse.ini $installDir
%endif
cp -p features/org.eclipse.platform/gtk/eclipse.ini.patched \
$RPM_BUILD_ROOT%{_libdir}/eclipse/eclipse.ini
$installDir/eclipse.ini
# Add a compatibility symlink to startup.jar
pushd $RPM_BUILD_ROOT%{_libdir}/%{name}
pushd $installDir
LAUNCHERNAME=$(ls plugins | grep equinox.launcher_)
ln -s plugins/$LAUNCHERNAME startup.jar
popd
@ -797,11 +882,11 @@ java -Dosgi.sharedConfiguration.area=$libdir_path/configuration \
popd
# Remove the unnecessary configuration data
rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/org.eclipse.update
rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/org.eclipse.core.runtime
rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/org.eclipse.equinox.app
rm -r $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/.settings
dataDirs=$(find $RPM_BUILD_ROOT%{_libdir}/%{name}/configuration \
rm -r $installDir/configuration/org.eclipse.update
rm -r $installDir/configuration/org.eclipse.core.runtime
rm -r $installDir/configuration/org.eclipse.equinox.app
rm -r $installDir/configuration/.settings
dataDirs=$(find $installDir/configuration \
-type d -name data)
for dataDir in $dataDirs; do
rm -rf `dirname $dataDir`
@ -810,17 +895,10 @@ done
# Do this again after we've run the file initializer
rm -rf $installDir/p2/org.eclipse.equinox.p2.core/cache
rm -rf $installDir/p2/org.eclipse.equinox.p2.director/rollback/content.xml
pushd $profileDir
grep -rl $RPM_BUILD_ROOT $profileId.profile | xargs rm
pushd $installDir/p2/org.eclipse.equinox.p2.engine/profileRegistry
sed -i "s|$RPM_BUILD_ROOT||g" *.profile/*
popd
# Set eclipse.product to org.fedoraproject.ide.platform
sed --in-place "s/plugins\/org.eclipse.platform/plugins\/org.fedoraproject.ide.platform/" \
$RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/config.ini
sed --in-place "s/eclipse.product=org.eclipse.sdk.ide/eclipse.product=org.fedoraproject.ide.platform.product/" \
$RPM_BUILD_ROOT%{_libdir}/%{name}/configuration/config.ini
# Install the Eclipse binary wrapper
install -d -m 755 $RPM_BUILD_ROOT%{_bindir}
ln -s %{_libdir}/%{name}/%{name} $RPM_BUILD_ROOT%{_bindir}/%{name}
@ -934,6 +1012,12 @@ cp -p copy-platform $RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts
install -p -D -m0755 %{SOURCE21} \
$RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/pdebuild
# Script to update config.ini, bundles.info, and *.profile
install -p -D -m0755 %{SOURCE30} \
$RPM_BUILD_ROOT%{_libdir}/%{name}/.updateSymlinks
sed --in-place "s|@INSTALLDIR@|%{_libdir}/eclipse|g" \
$RPM_BUILD_ROOT%{_libdir}/%{name}/.updateSymlinks
pushd $RPM_BUILD_ROOT%{_libdir}/%{name}
rm plugins/org.sat4j*
ln -s %{_javadir}/org.sat4j.core_* plugins/
@ -1045,17 +1129,24 @@ popd
%clean
rm -rf $RPM_BUILD_ROOT
%post jdt -p %{_libdir}/%{name}/.updateForSubPackages
%postun jdt -p %{_libdir}/%{name}/.updateForSubPackages
%post pde -p %{_libdir}/%{name}/.updateForSubPackages
%postun pde -p %{_libdir}/%{name}/.updateForSubPackages
%post platform
touch --no-create %{_datadir}/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
gtk-update-icon-cache -q %{_datadir}/icons/hicolor
fi
%{_libdir}/%{name}/.updateForSubPackages
%postun platform
touch --no-create %{_datadir}/icons/hicolor
if [ -x /usr/bin/gtk-update-icon-cache ]; then
gtk-update-icon-cache -q %{_datadir}/icons/hicolor
fi
%{_libdir}/%{name}/.updateForSubPackages
%files ecj
%defattr(-,root,root)
@ -1088,9 +1179,11 @@ fi
%{_libdir}/%{name}/configuration/org.eclipse.osgi/.lazy*
%{_libdir}/%{name}/configuration/org.eclipse.osgi/.manager
%{_libdir}/%{name}/configuration/org.eclipse.osgi/.state*
%{_libdir}/%{name}/configuration/config.ini
# FIXME: where should this go?
%{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator
%config %{_libdir}/%{name}/configuration/config.ini
%config %{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
%dir %{_libdir}/%{name}/configuration/configInis
%dir %{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator
#%{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
%{_libdir}/%{name}/notice.html
%{_libdir}/%{name}/epl-v10.html
%{_libdir}/%{name}/about.html
@ -1127,10 +1220,15 @@ fi
%defattr(-,root,root)
%attr(0755,root,root) %{_bindir}/%{name}
%config %{_libdir}/%{name}/eclipse.ini
%{_libdir}/%{name}/configuration/configInis/0-Platform-config.ini
%dir %{_libdir}/%{name}/configuration/bundleInfos
%{_libdir}/%{name}/configuration/bundleInfos/0-Platform-bundles.info
%{_datadir}/applications/*
%{_datadir}/pixmaps/*
%{_datadir}/icons/*/*/apps/*
%{_libdir}/%{name}/eclipse
%dir %{_libdir}/%{name}/profilesDir
%{_libdir}/%{name}/profilesDir/0-PlatformProfile.profile
%{_libdir}/%{name}/features/org.eclipse.platform_*
%{_libdir}/%{name}/plugins/com.jcraft.jsch_*
%{_libdir}/%{name}/plugins/javax.servlet_*
@ -1247,11 +1345,20 @@ fi
%{_libdir}/%{name}/plugins/org.sat4j.pb_*
# Put this in -platform since we're putting the p2 stuff here
%{_libdir}/%{name}/artifacts.xml
%{_libdir}/%{name}/metadata
# FIXME: should we ship content.xml?
#%{_libdir}/%{name}/metadata
%dir %{_libdir}/%{name}/p2
%dir %{_libdir}/%{name}/p2/org.eclipse.equinox.p2.engine
%dir %{_libdir}/%{name}/p2/org.eclipse.equinox.p2.engine/profileRegistry
%config %{_libdir}/%{name}/p2/org.eclipse.equinox.p2.engine/profileRegistry/*.profile
%{_libdir}/%{name}/.updateSymlinks
%files jdt
%defattr(-,root,root)
%{_bindir}/efj
%{_libdir}/%{name}/configuration/configInis/1-JDT-config.ini
%{_libdir}/%{name}/profilesDir/1-JDTProfile.profile
%{_libdir}/%{name}/configuration/bundleInfos/1-JDT-bundles.info
%{_libdir}/%{name}/features/org.eclipse.jdt_*
%{_libdir}/%{name}/plugins/org.eclipse.ant.ui_*
%{_libdir}/%{name}/plugins/org.junit_*
@ -1274,6 +1381,9 @@ fi
%files pde
%defattr(-,root,root)
%{_libdir}/%{name}/configuration/configInis/2-SDK-config.ini
%{_libdir}/%{name}/profilesDir/2-SDKProfile.profile
%{_libdir}/%{name}/configuration/bundleInfos/2-SDK-bundles.info
%{_libdir}/%{name}/features/org.eclipse.sdk_*
%{_libdir}/%{name}/features/org.eclipse.pde_*
%{_libdir}/%{name}/features/org.eclipse.pde.p2_*
@ -1325,6 +1435,12 @@ fi
%{_libdir}/%{name}/plugins/org.eclipse.pde.runtime_*
%changelog
* Thu Jul 17 2008 Andrew Overholt <overholt@redhat.com> 3.4.0-3
- Generate metadata and provision each sub-package
- Do crazy config.ini, bundles.info, and *.profile shuffling
- Add post and postun sections to update the config.ini, bundles.info, and
*.profile files
* Wed Jul 16 2008 Andrew Overholt <overholt@redhat.com> 3.4.0-1
- Fix files lists