- Move JDT and PDE/SDK bits to dropins/{jdt,sdk}

- Drop versionless PDE Build symlink (put logic into pdebuild script)
- Make SWT JAR symlinks relative
- Fold pde-runtime into pde
- Add patch to add root files for non-upstream arches
This commit is contained in:
Andrew Overholt 2008-07-29 13:40:46 +00:00
parent 7d7140aa93
commit c9ccf4f8b5
5 changed files with 419 additions and 293 deletions

View File

@ -0,0 +1,11 @@
diff -up ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties.nonupstreamarches ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties
--- ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties.nonupstreamarches 2008-07-29 09:36:30.000000000 -0400
+++ ./plugins/org.eclipse.pde.build/templates/packager/packaging.properties 2008-07-29 09:37:19.000000000 -0400
@@ -21,6 +21,7 @@ root.linux.motif.x86=eclipse,libcairo-sw
root.linux.gtk.x86=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm
root.linux.gtk.x86_64=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm
root.linux.gtk.ia64=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm
+root.linux.gtk.s390x=eclipse,libcairo-swt.so,about_files/,about.html,icon.xpm
root.linux.gtk.ppc=eclipse
root.macosx.carbon.ppc=eclipse,Eclipse.app/
root.macosx.carbon.ppc.link=Eclipse.app/Contents/MacOS/eclipse,eclipse,../../../MacOS,Eclipse.app/Contents/Resources/Splash.app/Contents/MacOS

View File

@ -12,6 +12,14 @@ mv $baseDir/notice.html .
mv $baseDir/readme/ .
mv $baseDir/features/org.eclipse.platform_* features
mv $baseDir/features/org.eclipse.help_* features
mv $baseDir/features/org.eclipse.cvs_* features
mv $baseDir/plugins/org.eclipse.cvs_* plugins
mv $baseDir/plugins/org.eclipse.team.cvs.core_* plugins
mv $baseDir/plugins/org.eclipse.team.cvs.ssh_* plugins
mv $baseDir/plugins/org.eclipse.team.cvs.ssh2_* plugins
mv $baseDir/plugins/org.eclipse.team.cvs.ui_* plugins
mv $baseDir/features/org.eclipse.equinox.p2.user.ui_* features
mv $baseDir/features/org.fedoraproject* features
mv $baseDir/features/org.eclipse.equinox.p2.user.ui_* features
mv $baseDir/features/org.fedoraproject* features
mv $baseDir/plugins/org.fedoraproject* plugins
@ -83,6 +91,7 @@ mv $baseDir/plugins/org.eclipse.rcp_* plugins
mv $baseDir/plugins/org.eclipse.core.contenttype_* plugins
mv $baseDir/plugins/org.eclipse.equinox.app_* plugins
mv $baseDir/plugins/org.eclipse.equinox.common_* plugins
mv $baseDir/plugins/org.eclipse.equinox.initializer_* plugins
mv $baseDir/plugins/org.eclipse.equinox.preferences_* plugins
mv $baseDir/plugins/org.eclipse.equinox.registry_* plugins
mv $baseDir/plugins/org.eclipse.equinox.launcher_* plugins

View File

@ -1,192 +1,5 @@
Index: templates/package-build/build.properties
===================================================================
RCS file: templates/package-build/build.properties
diff -N templates/package-build/build.properties
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ templates/package-build/build.properties 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,12 @@
+buildDirectory=${sourceDirectory}/build
+buildLabel=rpmBuild
+archivePrefix=eclipse
+skipFetch=true
+javacFailOnError=true
+collectingFolder=eclipse
+archivesFormat=*,*,*-zip
+zipargs=-y
+javacDebugInfo=true
+archiveName=${id}.zip
+runPackager=false
+baseLocation=/usr/share/eclipse
Index: templates/package-build/customTargets-assemble-target.xml
===================================================================
RCS file: templates/package-build/customTargets-assemble-target.xml
diff -N templates/package-build/customTargets-assemble-target.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ templates/package-build/customTargets-assemble-target.xml 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,12 @@
+<project>
+ <!-- ===================================================================== -->
+ <!-- Targets to assemble the built elements for particular configurations -->
+ <!-- These generally call the generated assemble scripts (named in -->
+ <!-- ${assembleScriptName}) but may also add pre and post processing -->
+ <!-- Add one target for each root element and each configuration -->
+ <!-- ===================================================================== -->
+
+ <target name="assemble.@id@">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
+ </target>
+</project>
Index: templates/package-build/customTargets.xml
===================================================================
RCS file: templates/package-build/customTargets.xml
diff -N templates/package-build/customTargets.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ templates/package-build/customTargets.xml 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,144 @@
+<project name="Build specific targets and properties" default="noDefault">
+
+ <fail unless="type" message="Please set the ${type} property to 'feature', 'plugin' or 'fragment'." />
+ <fail unless="id" message="Please set the ${id} property to the feature, plugin or fragment id of the plugin you are building." />
+ <fail unless="sourceDirectory" message="Please set the ${sourceDirectory} property to the directory that has the source plugins." />
+
+ <!-- we need to do this because you can't expand variables in target names -->
+ <copy file="${builder}/customTargets-assemble-target.xml" tofile="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
+ <replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@id@" value="${id}" />
+ <import file="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
+
+ <!-- ===================================================================== -->
+ <!-- Run a given ${target} on all elements being built -->
+ <!-- Add on <ant> task for each top level element being built. -->
+ <!-- ===================================================================== -->
+ <target name="allElements">
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="${type}" />
+ <property name="id" value="${id}" />
+ </ant>
+ </target>
+
+
+ <!-- ===================================================================== -->
+ <!-- Check out map files from correct repository -->
+ <!-- ===================================================================== -->
+ <target name="getMapFiles">
+ </target>
+
+ <!-- ===================================================================== -->
+
+ <target name="clean" unless="noclean">
+ <antcall target="allElements">
+ <param name="target" value="cleanElement" />
+ </antcall>
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before setup -->
+ <!-- ===================================================================== -->
+ <target name="preSetup">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after setup but before starting the build proper -->
+ <!-- ===================================================================== -->
+ <target name="postSetup">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="preFetch">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="postFetch">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="preGenerate">
+ <!-- Eclipse expects the feature projects to be in the 'features' directory and
+ plugin projects to be in the 'plugins' directory. The build infrastructure
+ normally arranges the projects during the fetch stage. Since we aren't doing
+ the fetch stage, we have to manually arrange the files -->
+ <exec dir="${builder}" executable="/bin/sh">
+ <arg line="prepare-build-dir.sh ${sourceDirectory} ${buildDirectory}" />
+ </exec>
+
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="postGenerate">
+ <antcall target="clean" />
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="preProcess">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="postProcess">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="preAssemble">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="postAssemble">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running package. -->
+ <!-- ===================================================================== -->
+ <target name="prePackage">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running package. -->
+ <!-- ===================================================================== -->
+ <target name="postPackage">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after the build is done. -->
+ <!-- ===================================================================== -->
+ <target name="postBuild">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do to test the build results -->
+ <!-- ===================================================================== -->
+ <target name="test">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do to publish the build results -->
+ <!-- ===================================================================== -->
+ <target name="publish">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Default target -->
+ <!-- ===================================================================== -->
+ <target name="noDefault">
+ <echo message="You must specify a target when invoking this file" />
+ </target>
+
+</project>
### Eclipse Workspace Patch 1.0
#P org.eclipse.pde.build
Index: templates/package-build/prepare-build-dir.sh
===================================================================
RCS file: templates/package-build/prepare-build-dir.sh
@ -271,3 +84,223 @@ diff -N templates/package-build/prepare-build-dir.sh
+
+rm -rf $BUILDDIR/tmp
+echo done
Index: templates/package-build/customTargets-assemble-target.xml
===================================================================
RCS file: templates/package-build/customTargets-assemble-target.xml
diff -N templates/package-build/customTargets-assemble-target.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ templates/package-build/customTargets-assemble-target.xml 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,12 @@
+<project>
+ <!-- ===================================================================== -->
+ <!-- Targets to assemble the built elements for particular configurations -->
+ <!-- These generally call the generated assemble scripts (named in -->
+ <!-- ${assembleScriptName}) but may also add pre and post processing -->
+ <!-- Add one target for each root element and each configuration -->
+ <!-- ===================================================================== -->
+
+ <target name="assemble.@id@">
+ <ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
+ </target>
+</project>
Index: templates/package-build/customTargets.xml
===================================================================
RCS file: templates/package-build/customTargets.xml
diff -N templates/package-build/customTargets.xml
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ templates/package-build/customTargets.xml 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,147 @@
+<project name="Build specific targets and properties" default="noDefault">
+
+ <fail unless="type" message="Please set the ${type} property to 'feature', 'plugin' or 'fragment'." />
+ <fail unless="id" message="Please set the ${id} property to the feature, plugin or fragment id of the plugin you are building." />
+ <fail unless="sourceDirectory" message="Please set the ${sourceDirectory} property to the directory that has the source plugins." />
+
+ <!-- we need to do this because you can't expand variables in target names -->
+ <copy file="${builder}/customTargets-assemble-target.xml" tofile="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
+ <replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@id@" value="${id}" />
+ <import file="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
+
+ <!-- ===================================================================== -->
+ <!-- Run a given ${target} on all elements being built -->
+ <!-- Add on <ant> task for each top level element being built. -->
+ <!-- ===================================================================== -->
+ <target name="allElements">
+ <ant antfile="${genericTargets}" target="${target}">
+ <property name="type" value="${type}" />
+ <property name="id" value="${id}" />
+ </ant>
+ </target>
+
+
+ <!-- ===================================================================== -->
+ <!-- Check out map files from correct repository -->
+ <!-- ===================================================================== -->
+ <target name="getMapFiles">
+ </target>
+
+ <!-- ===================================================================== -->
+
+ <target name="clean" unless="noclean">
+ <antcall target="allElements">
+ <param name="target" value="cleanElement" />
+ </antcall>
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before setup -->
+ <!-- ===================================================================== -->
+ <target name="preSetup">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after setup but before starting the build proper -->
+ <!-- ===================================================================== -->
+ <target name="postSetup">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="preFetch">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after fetching the build elements -->
+ <!-- ===================================================================== -->
+ <target name="postFetch">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="preGenerate">
+ <!-- Eclipse expects the feature projects to be in the 'features' directory and
+ plugin projects to be in the 'plugins' directory. The build infrastructure
+ normally arranges the projects during the fetch stage. Since we aren't doing
+ the fetch stage, we have to manually arrange the files -->
+ <exec dir="${builder}" executable="/bin/sh">
+ <arg line="prepare-build-dir.sh ${sourceDirectory} ${buildDirectory}" />
+ </exec>
+ <exec dir="${builder}" executable="/bin/sh">
+ <arg line="symlink-deps.sh ${buildDirectory} ${orbitDepsDir}" />
+ </exec>
+
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after generating the build scripts. -->
+ <!-- ===================================================================== -->
+ <target name="postGenerate">
+ <antcall target="clean" />
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="preProcess">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running the build.xmls for the elements being built. -->
+ <!-- ===================================================================== -->
+ <target name="postProcess">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="preAssemble">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running assemble. -->
+ <!-- ===================================================================== -->
+ <target name="postAssemble">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do before running package. -->
+ <!-- ===================================================================== -->
+ <target name="prePackage">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after running package. -->
+ <!-- ===================================================================== -->
+ <target name="postPackage">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do after the build is done. -->
+ <!-- ===================================================================== -->
+ <target name="postBuild">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do to test the build results -->
+ <!-- ===================================================================== -->
+ <target name="test">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Steps to do to publish the build results -->
+ <!-- ===================================================================== -->
+ <target name="publish">
+ </target>
+
+ <!-- ===================================================================== -->
+ <!-- Default target -->
+ <!-- ===================================================================== -->
+ <target name="noDefault">
+ <echo message="You must specify a target when invoking this file" />
+ </target>
+
+</project>
Index: templates/package-build/build.properties
===================================================================
RCS file: templates/package-build/build.properties
diff -N templates/package-build/build.properties
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ templates/package-build/build.properties 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,12 @@
+buildDirectory=${sourceDirectory}/build
+buildLabel=rpmBuild
+archivePrefix=eclipse
+skipFetch=true
+javacFailOnError=true
+collectingFolder=eclipse
+archivesFormat=*,*,*-zip
+zipargs=-y
+javacDebugInfo=true
+archiveName=${id}.zip
+runPackager=false
+baseLocation=/usr/share/eclipse
Index: templates/package-build/symlink-deps.sh
===================================================================
RCS file: templates/package-build/symlink-deps.sh
diff -N templates/package-build/symlink-deps.sh
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ templates/package-build/symlink-deps.sh 1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,21 @@
+#!/bin/sh -x
+
+if [ $# -ne 2 ]; then
+ echo "usage: $0 <path to build dir> <dependencies>"
+ exit 1
+fi
+
+if [ ! -d $1 ]; then
+ echo "usage: $0 <path to build dir> <dependencies>"
+ exit 1
+fi
+
+BUILDDIR=$1
+DEPENDENCIESDIR=$2
+
+pushd $BUILDDIR/plugins
+ for dep in `ls $DEPENDENCIESDIR`; do
+ echo "ln -s $DEPENDENCIESDIR/$dep"
+ ln -s $DEPENDENCIESDIR/$dep
+ done
+popd

View File

@ -1,6 +1,6 @@
#!/bin/bash
# args: [-f <feature>] [-d <dependencies (outside SDK)>] [-a <additional build args>] [-j <JVM args>] [-v] [-D]
# args: [-f <feature>] [-d <dependencies (outside SDK)>] [-a <additional build args>] [-j <JVM args>] [-v] [-D] [-o <Orbit dependencies>]
function usage {
cat << _EOF_
@ -17,13 +17,14 @@ Optional arguments:
-j VM arguments (ex. -DJ2SE-1.5=%{_jvmdir}/java/jre/lib/rt.jar)
-v Be verbose
-D Debug platform itself (passes -consolelog -debug to Eclipse)
-o Orbit dependencies
_EOF_
}
function copyPlatform {
# This seems silly but I was running into issues with empty strings
# counting as arguments to copy-platform -- overholt, 2008-03
if [ -z $dependencies ]; then
if [ -z "$dependencies" ]; then
if [ $verbose -eq 1 ]; then
echo "/bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse"
/bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse
@ -74,9 +75,8 @@ sourceDir=$PWD
buildDir=$PWD/build
SDK=$buildDir/SDK
homeDir=$buildDir/home
libdir=`rpm --eval "%{_libdir}"`
datadir=`rpm --eval "%{_datadir}"`
pdeBuildDir=$datadir/eclipse/plugins/org.eclipse.pde.build
datadir=`rpm --eval "%{_libdir}"`
pdeBuildDir=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_@PDEBUILDVERSION@
featureId=
dependencies=
@ -85,9 +85,10 @@ vmArgs=
verbose=0
dryRun=0
debugPlatform=0
orbitDepsDir=
# See above. r = dry run (used for testing)
while getopts “hf:d:a:j:vrD” OPTION
while getopts “hf:d:a:j:vrDo:” OPTION
do
case $OPTION in
h)
@ -115,6 +116,9 @@ do
D)
debugPlatform=1
;;
o)
orbitDepsDir=$OPTARG
;;
?)
usage
exit
@ -171,7 +175,6 @@ echo "Starting build:"
echo "
java -cp $SDK/startup.jar \
-Dosgi.sharedConfiguration.area=$libdir/eclipse/configuration \
org.eclipse.core.launcher.Main \
-application org.eclipse.ant.core.antRunner \
$debugPlatformArgs \
@ -180,7 +183,8 @@ $debugPlatformArgs \
-DbaseLocation=$SDK \
-DsourceDirectory=$sourceDir \
-DbuildDirectory=$buildDir \
-Dbuilder=$datadir/eclipse/plugins/org.eclipse.pde.build/templates/package-build \
-Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_@PDEBUILDVERSION@/templates/package-build \
-DorbitDepsDir="$orbitDepsDir" \
$additionalArgs \
-f $pdeBuildDir/scripts/build.xml \
-vmargs \
@ -190,7 +194,6 @@ $vmArgs
if [ $dryRun -ne 1 ]; then
java -cp $SDK/startup.jar \
-Dosgi.sharedConfiguration.area=$libdir/eclipse/configuration \
org.eclipse.core.launcher.Main \
-application org.eclipse.ant.core.antRunner \
$debugPlatformArgs \
@ -199,7 +202,8 @@ if [ $dryRun -ne 1 ]; then
-DbaseLocation=$SDK \
-DsourceDirectory=$sourceDir \
-DbuildDirectory=$buildDir \
-Dbuilder=$datadir/eclipse/plugins/org.eclipse.pde.build/templates/package-build \
-Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_@PDEBUILDVERSION@/templates/package-build \
-DorbitDepsDir=\""$orbitDepsDir"\" \
$additionalArgs \
-f $pdeBuildDir/scripts/build.xml \
-vmargs \

View File

@ -1,11 +1,11 @@
# TODO:
# - update icu4j and jasper to use %%{_libdir}/eclipse and not %%{_datadir}/eclipse after we build 3.4
# - generate content.xml for > platform sub-sets
# - move > platform bits to dropins/<jdt,pde> along with content.xml for each
# - update ecj-rpmdebuginfo patch
# - look at startup script and launcher patches
# - get Ganymede update site pre-configured
# - investigate bi-arch requirements
# - investigate need for copy-platform
# - see why about.html isn't being copied on non-x86{,_64} platforms
Epoch: 1
%define eclipse_major 3
@ -14,6 +14,9 @@ Epoch: 1
%define eclipse_micro 0
%define swtver 3.4.0.v3448f
# Prevent brp-java-repack-jars from being run.
%define __jar_repack 0
# All arches line up between Eclipse and Linux kernel names except i386 -> x86
%ifarch %{ix86}
%define eclipse_arch x86
@ -24,7 +27,7 @@ Epoch: 1
Summary: An open, extensible IDE
Name: eclipse
Version: %{eclipse_majmin}.%{eclipse_micro}
Release: 9%{?dist}
Release: 10%{?dist}
License: EPL
Group: Text Editors/Integrated Development Environments (IDE)
URL: http://www.eclipse.org/
@ -100,6 +103,7 @@ Patch15: %{name}-pde.build-add-package-build.patch
Patch24: %{name}-add-ppc64-sparc64-s390-s390x.patch
Patch28: %{name}-add-ppc64-sparc64-s390-s390x-2.patch
Patch30: %{name}-addfragmentsforotherplatforms.patch
Patch38: %{name}-addrootfiles.patch
#FIXME: file a bug upstream
Patch26: %{name}-launcher-fix-java-home.patch
# Default max heap size too low for lots of people. Bump to 512 MB.
@ -284,6 +288,10 @@ Requires(postun): %{name}-pde-runtime = %{epoch}:%{version}-%{release}
Requires: objectweb-asm
# For PDE Build wrapper script
Requires: bash
Provides: %{name}-pde-runtime = 1:%{version}-%{release}
# The 20 is more than the currently (2008-06-25) latest 3.3.2 package
# but I want to leave some room in case we need to do an F9 update.
Obsoletes: %{name}-pde-runtime < 1:3.3.2-20
%description pde
Eclipse Plugin Development Environment. This package is required for
@ -406,6 +414,7 @@ sed --in-place "s/$swt_frag_ver_s390x/$swt_frag_ver/g" plugins/org.eclipse.swt.g
%patch28
%patch30
%patch31 -p1
%patch38
# replace ppc64 with a fake arch (ppc128) so we don't have duplicate ant targets
sed -i "s/\(rootFileslinux_gtk_\)ppc64/\1ppc128/g" \
@ -744,6 +753,7 @@ profileId=PlatformProfile
mkdir $installDir
pushd $installDir
sh %{SOURCE28} $sdkDir
mv plugins/*.source* $sdkDir/plugins
popd
# Generate metadata for the platform
@ -763,6 +773,73 @@ org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \
-artifactRepositoryName "Fedora Eclipse" \
-metadataRepositoryName "Fedora Eclipse"
# JDT
jdtDir=$sdkDir-JDT
jdtMetadata=$jdtDir/metadata-JDT
mkdir $jdtDir
pushd $jdtDir
mkdir features plugins
mv $sdkDir/features/org.eclipse.jdt_* features
for plugin in org.eclipse.jdt \
org.eclipse.ant.ui \
org.eclipse.jdt.apt.core \
org.eclipse.jdt.apt.ui \
org.eclipse.jdt.apt.pluggable.core \
org.eclipse.jdt.compiler.apt \
org.eclipse.jdt.compiler.tool \
org.eclipse.jdt.core \
org.eclipse.jdt.core.manipulation \
org.eclipse.jdt.debug.ui \
org.eclipse.jdt.debug \
org.eclipse.jdt.junit \
org.eclipse.jdt.junit.runtime \
org.eclipse.jdt.junit4.runtime \
org.eclipse.jdt.launching \
org.eclipse.jdt.ui \
org.junit \
org.junit4 \
org.eclipse.jdt.doc.user; do
mv $sdkDir/plugins/${plugin}_* plugins
done
popd
# Generate metadata for JDT
java \
-cp $installDir/plugins/org.eclipse.equinox.launcher_$LAUNCHERVERSION \
org.eclipse.core.launcher.Main \
-application \
org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \
-metadataRepository file:$jdtMetadata \
-artifactRepository file:$jdtMetadata \
-source $jdtDir \
-root "Fedora Eclipse JDT" \
-rootVersion %{version} \
-flavor tooling \
-append \
-artifactRepositoryName "Fedora Eclipse" \
-metadataRepositoryName "Fedora Eclipse"
# SDK
sdkMetadata=$sdkDir/metadata-SDK
# Generate metadata for SDK
java \
-cp $installDir/plugins/org.eclipse.equinox.launcher_$LAUNCHERVERSION \
org.eclipse.core.launcher.Main \
-application \
org.eclipse.equinox.p2.metadata.generator.EclipseGenerator \
-metadataRepository file:$sdkMetadata \
-artifactRepository file:$sdkMetadata \
-source $sdkDir \
-root "Fedora Eclipse SDK" \
-rootVersion %{version} \
-flavor tooling \
-publishArtifacts \
-append \
-artifactRepositoryName "Fedora Eclipse" \
-metadataRepositoryName "Fedora Eclipse"
# Director config.ini
mv $installDir/configuration/config.ini{,.bak}
cp -p %{SOURCE22} $installDir/configuration/config.ini
@ -790,12 +867,21 @@ org.eclipse.equinox.p2.director.app.application \
-bundlepool $provisionDir
# Stuff in JDT, PDE, SDK
for f in about* \.eclipseproduct epl-v10.html notice.html readme; do
mv $installDir/$f $provisionDir
for f in about.html about_files \.eclipseproduct epl-v10.html notice.html readme; do
if [ -e $installDir/$f ]; then
mv $installDir/$f $provisionDir
fi
done
mv $sdkDir/features/* $provisionDir/features
mv $sdkDir/plugins/* $provisionDir/plugins
rm -rf $metadataDir $sdkDir $installDir
dropins=$provisionDir/dropins
mkdir $dropins/jdt $dropins/sdk
mv $jdtDir/features $dropins/jdt
mv $jdtDir/plugins $dropins/jdt
mv $jdtMetadata/content.xml $dropins/jdt
mv $sdkDir/features $dropins/sdk
mv $sdkDir/plugins $dropins/sdk
mv $sdkMetadata/content.xml $dropins/sdk
rm -rf $metadataDir $jdtDir $sdkDir $installDir
mv $provisionDir $sdkDir
# Fix paths in p2 data
@ -846,6 +932,7 @@ 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
rm -rf $sdkDir/configuration/*.log
dataDirs=$(find $sdkDir/configuration \
-type d -name data)
for dataDir in $dataDirs; do
@ -891,23 +978,23 @@ 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 %{_libdir}/%{name}/$lib `basename $lib`
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}
ln -s %{_libdir}/%{name}/plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_$SWTJARVERSION.jar swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar
ln -s plugins/org.eclipse.swt.gtk.linux.%{eclipse_arch}_$SWTJARVERSION.jar swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar
ln -s swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar swt-gtk-%{eclipse_majmin}.jar
ln -s swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar swt.jar
ln -s ../%{name}/swt-gtk-%{eclipse_majmin}.%{eclipse_micro}.jar ../java/swt.jar
popd
# Install the eclipse-ecj.jar symlink for java-1.4.2-gcj-compat's "javac"
JDTCORESUFFIX=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins | grep jdt.core_ | sed "s/org.eclipse.jdt.core_//")
JDTCORESUFFIX=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/dropins/jdt/plugins | grep jdt.core_ | sed "s/org.eclipse.jdt.core_//")
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}
ln -s %{_libdir}/%{name}/plugins/org.eclipse.jdt.core_$JDTCORESUFFIX \
ln -s %{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core_$JDTCORESUFFIX \
$RPM_BUILD_ROOT%{_javadir}/eclipse-ecj-%{version}.jar
ln -s %{_javadir}/eclipse-ecj-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/eclipse-ecj.jar
@ -920,13 +1007,6 @@ ln -s %{_javadir}/eclipse-ecj-%{version}.jar \
ln -s %{_javadir}/ecj-%{version}.jar \
$RPM_BUILD_ROOT%{_javadir}/ecj.jar
# FIXME: get rid of this by putting logic in package build to know what version
# of pde.build it's using
# Install a versionless pde.build
pushd $RPM_BUILD_ROOT%{_libdir}/%{name}/plugins/
ln -s org.eclipse.pde.build_* org.eclipse.pde.build
popd
# Icons
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps
ln -s %{_libdir}/%{name}/plugins/org.fedoraproject.ide.platform/eclipse48.png \
@ -960,28 +1040,43 @@ install -p -D -m 644 %{SOURCE2} $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.
cp -p %{SOURCE16} copy-platform
(
cd $RPM_BUILD_ROOT%{_libdir}/%{name}
ls -d * | egrep -v '^(plugins|features|links|about_files)$'
ls -d plugins/* features/* links/*
ls -d * | egrep -v '^(plugins|features|about_files)$'
ls -d plugins/* features/*
) |
sed -e's,^\(.*\),[ ! -e \1 ] \&\& ln -s $eclipse/\1 \1,' >> copy-platform
mkdir -p $RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts
cp -p copy-platform $RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts
copyPlatform=$RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/copy-platform
pushd $RPM_BUILD_ROOT%{_libdir}/%{name}
for p in $(ls -d dropins/jdt/plugins/*); do
plugin=$(basename $p)
echo $p | sed -e"s,^\(.*\),[ ! -e plugins/$plugin ] \&\& ln -s \$eclipse/\1 plugins/$plugin," >> $copyPlatform
done
for p in $(ls -d dropins/sdk/plugins/*); do
plugin=$(basename $p)
echo $p | sed -e"s,^\(.*\),[ ! -e plugins/$plugin ] \&\& ln -s \$eclipse/\1 plugins/$plugin," >> $copyPlatform
done
popd
# Install the PDE Build wrapper script.
install -p -D -m0755 %{SOURCE21} \
$RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/pdebuild
PDEBUILDVERSION=$(ls $RPM_BUILD_ROOT%{_libdir}/%{name}/dropins/sdk/plugins \
| grep org.eclipse.pde.build_ | \
sed 's/org.eclipse.pde.build_//')
sed -i "s/@PDEBUILDVERSION@/$PDEBUILDVERSION/g" \
$RPM_BUILD_ROOT%{_libdir}/%{name}/buildscripts/pdebuild
pushd $RPM_BUILD_ROOT%{_libdir}/%{name}
rm plugins/org.sat4j*
ln -s %{_javadir}/org.sat4j.core_* plugins/
ln -s %{_javadir}/org.sat4j.pb_* plugins/
ASMPLUGINVERSION=$(ls plugins | grep org.objectweb.asm_ | \
ASMPLUGINVERSION=$(ls dropins/sdk/plugins | grep org.objectweb.asm_ | \
sed 's/org.objectweb.asm_//')
rm plugins/org.objectweb.asm_$ASMPLUGINVERSION
rm dropins/sdk/plugins/org.objectweb.asm_$ASMPLUGINVERSION
ln -s %{_javadir}/objectweb-asm/asm-all.jar \
plugins/org.objectweb.asm_$ASMPLUGINVERSION
dropins/sdk/plugins/org.objectweb.asm_$ASMPLUGINVERSION
## BEGIN ANT ##
ANTDIR=plugins/$(ls plugins | grep org.apache.ant_)
@ -1019,11 +1114,13 @@ JETTYPLUGINVERSION=$(ls plugins | grep org.mortbay.jetty_5 | sed 's/org.mortbay.
rm plugins/org.mortbay.jetty_$JETTYPLUGINVERSION
ln -s %{_javadir}/jetty/jetty.jar plugins/org.mortbay.jetty_$JETTYPLUGINVERSION
pushd dropins/jdt
build-jar-repository -s -p plugins/org.junit_* junit
JUNIT4VERSION=$(ls plugins | grep org.junit4_ | sed 's/org.junit4_//')
rm plugins/org.junit4_$JUNIT4VERSION/junit.jar
ln -s %{_javadir}/junit4.jar plugins/org.junit4_$JUNIT4VERSION/junit.jar
popd
JSCHVERSION=$(ls plugins | grep com.jcraft.jsch_ | sed 's/com.jcraft.jsch_//')
rm plugins/com.jcraft.jsch_$JSCHVERSION
@ -1098,8 +1195,10 @@ fi
%files ecj
%defattr(-,root,root)
%dir %{_libdir}/%{name}
%dir %{_libdir}/%{name}/plugins
%{_libdir}/%{name}/plugins/org.eclipse.jdt.core_*
%dir %{_libdir}/%{name}/dropins
%dir %{_libdir}/%{name}/dropins/jdt
%dir %{_libdir}/%{name}/dropins/jdt/plugins
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core_*
%{_javadir}/eclipse-ecj*.jar
%{_javadir}/jdtcore*.jar
%{_javadir}/ecj*.jar
@ -1132,7 +1231,9 @@ fi
#%{_libdir}/%{name}/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
%{_libdir}/%{name}/notice.html
%{_libdir}/%{name}/epl-v10.html
%ifarch %{ix86} x86_64
%{_libdir}/%{name}/about.html
%endif
%ifarch x86_64
%{_libdir}/%{name}/about_files
%endif
@ -1174,6 +1275,7 @@ fi
%{_datadir}/pixmaps/*
%{_datadir}/icons/*/*/apps/*
%{_libdir}/%{name}/eclipse
%dir %{_libdir}/%{name}/dropins
%{_libdir}/%{name}/features/org.eclipse.platform_*
%{_libdir}/%{name}/plugins/com.jcraft.jsch_*
%{_libdir}/%{name}/plugins/javax.servlet_*
@ -1293,86 +1395,53 @@ fi
%{_libdir}/%{name}/plugins/org.sat4j.pb_*
# Put this in -platform since we're putting the p2 stuff here
%{_libdir}/%{name}/artifacts.xml
# FIXME: should we ship content.xml?
# FIXME: should we ship content.xml for the platform?
#%{_libdir}/%{name}/metadata
%{_libdir}/%{name}/p2
%files jdt
%defattr(-,root,root)
%{_bindir}/efj
%{_libdir}/%{name}/features/org.eclipse.jdt_*
%{_libdir}/%{name}/plugins/org.eclipse.ant.ui_*
%{_libdir}/%{name}/plugins/org.junit_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.doc.user_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.apt.core_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.ui_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.debug_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit4.runtime_*
%{_libdir}/%{name}/plugins/org.junit4_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.launching_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.core.manipulation_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.apt.ui_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.junit.runtime_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.debug.ui_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.apt.pluggable.core_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.compiler.apt_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.compiler.tool_*
%{_libdir}/%{name}/dropins/jdt/content.xml
%{_libdir}/%{name}/dropins/jdt/features
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.ant.ui_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.apt.core_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.apt.ui_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.apt.pluggable.core_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.compiler.apt_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.compiler.tool_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.core.manipulation_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.debug.ui_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.debug_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.junit_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.junit.runtime_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.junit4.runtime_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.launching_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.ui_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.junit_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.junit4_*
%{_libdir}/%{name}/dropins/jdt/plugins/org.eclipse.jdt.doc.user_*
%files pde
%defattr(-,root,root)
%{_libdir}/%{name}/features/org.eclipse.sdk_*
%{_libdir}/%{name}/features/org.eclipse.pde_*
%{_libdir}/%{name}/features/org.eclipse.pde.p2_*
%{_libdir}/%{name}/features/org.eclipse.pde.p2.source_*
%{_libdir}/%{name}/features/org.eclipse.equinox.p2.user.ui.source_*
%{_libdir}/%{name}/features/org.eclipse.help.source_*
%{_libdir}/%{name}/features/org.eclipse.pde.source_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.doc.user_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.build_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.build
%{_libdir}/%{name}/plugins/org.eclipse.pde_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.core_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.junit.runtime_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.ui_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.ui.templates_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.p2.ui_*
%{_libdir}/%{name}/features/org.eclipse.rcp.source_*
#%{_libdir}/%{name}/plugins/org.eclipse.rcp.source.linux.gtk.%{eclipse_arch}*
%{_libdir}/%{name}/features/org.eclipse.cvs.source_*
%{_libdir}/%{name}/plugins/org.eclipse.sdk_*
%{_libdir}/%{name}/features/org.eclipse.jdt.source_*
%{_libdir}/%{name}/plugins/org.eclipse.jdt.doc.isv_*
%{_libdir}/%{name}/features/org.eclipse.platform.source_*
%{_libdir}/%{name}/plugins/org.eclipse.platform.doc.isv_*
#%{_libdir}/%{name}/plugins/org.eclipse.platform.source.linux.gtk.%{eclipse_arch}_*
%{_libdir}/%{name}/plugins/org.eclipse.ui.views.log_*
%{_libdir}/%{name}/buildscripts
%{_libdir}/%{name}/plugins/org.eclipse.pde.api.tools_*
%{_libdir}/%{name}/plugins/org.eclipse.pde.api.tools.ui_*
%{_libdir}/%{name}/plugins/javax.servlet.jsp.source_*
%{_libdir}/%{name}/plugins/javax.servlet.source_*
%{_libdir}/%{name}/plugins/org.apache.ant.source_*
%{_libdir}/%{name}/plugins/org.apache.commons.el.source_*
%{_libdir}/%{name}/plugins/org.apache.commons.logging.source_*
%{_libdir}/%{name}/plugins/org.apache.jasper.source_*
%{_libdir}/%{name}/plugins/org.apache.lucene.analysis.source_*
%{_libdir}/%{name}/plugins/org.apache.lucene.source_*
%{_libdir}/%{name}/plugins/org.junit.source_*
%{_libdir}/%{name}/plugins/org.junit4.source_*
%{_libdir}/%{name}/plugins/org.mortbay.jetty.source_*
%{_libdir}/%{name}/plugins/org.objectweb.asm_*
%{_libdir}/%{name}/plugins/org.objectweb.asm.source_*
%{_libdir}/%{name}/plugins/org.eclipse.*.source_*
%{_libdir}/%{name}/dropins/sdk
# FIXME: where should this go?
%{_libdir}/%{name}/configuration/org.eclipse.equinox.source/source.info
%files pde-runtime
%defattr(-,root,root)
%{_libdir}/%{name}/plugins/org.eclipse.pde.runtime_*
%{_libdir}/%{name}/configuration/org.eclipse.equinox.source
%changelog
* Mon Jul 28 2008 Andrew Overholt <overholt@redhat.com> 3.4.0-10
- Move JDT and PDE/SDK bits to dropins/{jdt,sdk}
- Drop versionless PDE Build symlink (put logic into pdebuild script)
- Make SWT JAR symlinks relative
- Fold pde-runtime into pde
- Add patch to add root files for non-upstream arches
* Fri Jul 25 2008 Andrew Overholt <overholt@redhat.com> 3.4.0-10
- Add ability for pdebuild (-o) to work with Orbit-style dependencies
* Fri Jul 25 2008 Andrew Overholt <overholt@redhat.com> 3.4.0-9
- Collapse patches to build SWT native bits into two
- Copy about* from x86 to all non-x86{_64} platforms