[SCM] eclipse - Powerful IDE written in java - Debian package. branch, master, updated. 0779069fafbe45b548a910dfadcfbb7ae9e23ab1

Benjamin Drung bdrung-guest at alioth.debian.org
Tue Oct 13 23:41:52 UTC 2009


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "eclipse - Powerful IDE written in java - Debian package.".

The branch, master has been updated
       via  0779069fafbe45b548a910dfadcfbb7ae9e23ab1 (commit)
       via  7c959104a7fc433e63d2fe592267027b3f945151 (commit)
       via  5793261ec04752e47582dec016bde660584fe061 (commit)
       via  d6ea1deceb6d532afece3eee9ecc12bd34e46ef9 (commit)
       via  83d001954a279fde707d1d2882070f3599dd01f6 (commit)
      from  c4aa6d5d6b0562907c56aec3957975870559e3d9 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 0779069fafbe45b548a910dfadcfbb7ae9e23ab1
Author: Benjamin Drung <bdrung at ubuntu.com>
Date:   Wed Oct 14 01:41:28 2009 +0200

    Hardcode xulrunner version 1.9.1.

commit 7c959104a7fc433e63d2fe592267027b3f945151
Author: Benjamin Drung <bdrung at ubuntu.com>
Date:   Wed Oct 14 01:38:56 2009 +0200

    Remove eclipse-build.patch

commit 5793261ec04752e47582dec016bde660584fe061
Merge: c4aa6d5d6b0562907c56aec3957975870559e3d9 d6ea1deceb6d532afece3eee9ecc12bd34e46ef9
Author: Benjamin Drung <bdrung at ubuntu.com>
Date:   Wed Oct 14 01:35:54 2009 +0200

    Merge branch 'upstream'

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                         |   80 +-
 README.mediawiki                                  |    4 +-
 build.xml                                         |  243 ++-
 debian/control                                    |    5 +-
 debian/extra/eclipse                              |    2 +-
 debian/patches/eclipse-build.patch                | 1771 ---------------------
 debian/patches/series                             |    1 -
 ecf-filetransfer-build.properties                 |    1 +
 ecf-filetransfer-feature.xml                      |   85 +
 eclipse-R3_5_1-fetched-src.tar.bz2                |  Bin 86976475 -> 86995935 bytes
 junitHelper.xml                                   |    2 +-
 patches/eclipse-pde.build-add-package-build.patch |  339 ++++
 patches/gtk2.18zorder.patch                       |  218 +++
 pdebuild/eclipse-copy-platform.sh                 |   77 +
 pdebuild/eclipse-pdebuild.sh                      |  303 ++++
 runtests.sh                                       |   57 +-
 swt_bundle.sh                                     |   49 +
 17 files changed, 1345 insertions(+), 1892 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7d00e3b..0adeec1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,81 @@
+2009-10-12  Alexander Kurtakov  <akurtako at redhat.com>
+
+	* build.xml: Create a symlink to o.e.equinox.launcher in the install. (Niels Thykier) 
+	
+2009-10-12  Alexander Kurtakov  <akurtako at redhat.com>
+
+	* ecf-filetransfer-build.properties: New file.
+	* ecf-filetransfer-feature.xml: New file.
+	* build.xml: Compile ecf bundles.
+
+2009-10-08  Andrew Overholt  <overholt at redhat.com>
+
+	Bud #291681 - Patch courtesy Benjamin Drung
+
+	* build.xml: Add patch to build Equinox initializer application.
+
+2009-10-08  Alexander Kurtakov  <akurtako at redhat.com>
+    Add pdebuild and companions.
+	* pdebuild/eclipse-copy-platform.sh: New file.
+	* pdebuild/eclipse-pdebuild.sh: Likewise.
+
+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
+
+	* patches/eclipse-pde.build-add-package-build.patch: New file.
+	* build.xml: Apply pdebuild script patch.
+
+2009-10-07  Andrew Overholt  <overholt at redhat.com>
+
+	* runtests.sh: Add missing line continuation.
+
+2009-10-07  Andrew Overholt  <overholt at redhat.com>
+
+	Bug #291531 - Work courtesy Niels Thykier
+
+	* swt_bundle.sh: Initial checkin (Niels Thykier).
+	* build.xml: Add target to call script to extract SWT bundle for
+	standalone packaging (Niels Thykier).
+
+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
+
+	* build.xml: Install shared dropins folder.
+
+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
+
+	* build.xml: Install icon in  /usr/share/pixmaps.
+
+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
+
+	* build.xml: Fix patch applying to unbreak build.
+
+2009-10-06  Andrew Overholt  <overholt at redhat.com>
+
+	Bug #291504
+
+	* build.xml: Apply patch from Benjamin Drung to add link to the
+	launcher binary in the installation directory.
+
+2009-10-06  Andrew Overholt  <overholt at redhat.com>
+
+	* patches/gtk2.18zorder.patch: Initial check-in of 3.5.1 back-port for
+	(https://bugs.eclipse.org/287307).
+	* build.xml: Apply GTK 2.18 z-order patch.  Organize patch section a
+	bit.
+
+2009-10-05  Andrew Overholt  <overholt at redhat.com>
+
+	* runtests.sh: Move option parsing out of function.
+	* build.xml: Generate top-level test report HTML file.
+
 2009-10-05  Alexander Kurtakov  <akurtako at redhat.com>
 
 	* pdebuild.xml: Add macrodef for running the buildScripts generation.
 
+2009-10-04  Andrew Overholt  <overholt at redhat.com>
+
+	* runtests.sh: Ignore missing SDK test properties file if not present
+	whem removing.
+
 2009-10-02  Alexander Kurtakov  <akurtako at redhat.com>
 
 	* buildSDKSource.sh: Update ecf tag to the one used for 3.5.1.
@@ -9,7 +83,7 @@
 2009-10-01  Alexander Kurtakov  <akurtako at redhat.com>
 
 	* pdebuild.xml: Use buildTag variable instead of hard-coded value.
-	
+
 2009-10-01  Alexander Kurtakov  <akurtako at redhat.com>
 
 	* pdebuild.properties: Sync buildId and buildTag with build.properties.
@@ -19,7 +93,7 @@
 
 	* build.properties: Separate buildId and buildTag.
 	* build.xml: Likewise.
-	
+
 2009-09-30  Alexander Kurtakov  <akurtako at redhat.com>
 
 	* eclipse-build-generatedScripts.tar.bz2: Regenerate for 3.5.1.
@@ -52,7 +126,7 @@
 	* patches/tests-nostyletask.patch: New file.
 	* build.xml: Apply patch to not use deprecated ant task.
 	* junitHelper.xml: Likewise.
-	
+
 2009-09-25  Alexander Kurtakov  <akurtako at redhat.com>
 
 	* build.xml: Delete testBuild folder in clean.
diff --git a/README.mediawiki b/README.mediawiki
index d605d0f..a51157a 100644
--- a/README.mediawiki
+++ b/README.mediawiki
@@ -10,7 +10,7 @@ Tasks completed so far:
 To test it do the following:
 
 <!-- FIXME:  Include SVN instructions as an alternative -->
-* generate source using <tt>./buildSource.sh</tt> (alternatively, look for 3.5 sources here:  http://download.eclipse.org/technology/linuxtools/eclipse-build/ -- get the tarball for 3.5:  eclipse-I20090611-1540-fetched-src.tar.bz2 and verify its md5sum matches)
+* generate source using <tt>./buildSource.sh</tt> (alternatively, look for 3.5.1 sources here:  http://download.eclipse.org/technology/linuxtools/eclipse-build/ -- get the tarball for 3.5.1:  eclipse-R3_5_1-fetched-src.tar.bz2 and verify its md5sum matches)
 ** <tt>./buildSource.sh -workdir /tmp/eclipseSDKBuild</tt>
 * if you are using pre-generated source tarballs, check out basebuilder:
 ** <tt>mkdir -p /tmp/eclipseSDKBuild; cd /tmp/eclipseSDKBuild; cvs -d:pserver:anonymous at dev.eclipse.org:/cvsroot/eclipse co -r R35_M7 org.eclipse.releng.basebuilder</tt>
@@ -21,4 +21,4 @@ To test it do the following:
 You should get:
 <!-- Not anymore.  We need to fix this.
 * all the dependencies of pdebuild-ant in the bootstrap/plugins folder. -->
-* working Eclipse SDK 3.5 build in build/(build Id)/installation directory
\ No newline at end of file
+* working Eclipse SDK 3.5.1 build in build/(build Id)/installation directory
\ No newline at end of file
diff --git a/build.xml b/build.xml
index a3355d3..2dce87d 100644
--- a/build.xml
+++ b/build.xml
@@ -24,8 +24,8 @@
 	<uptodate property="provision.tests.complete" srcfile="testsbuild-stamp" targetfile="provision.tests-stamp" />
 	<available file="bootstrap/plugins" property="bootstrapped" value="true" />
 
-	<property name="topBuildDir" value="${basedir}/build"/>
-	<property name="testsBuildDir" value="${basedir}/testsBuild"/>
+	<property name="topBuildDir" value="${basedir}/build" />
+	<property name="testsBuildDir" value="${basedir}/testsBuild" />
 	<property name="homeDir" value="${basedir}/home" />
 	<property name="baseworkspace" value="${basedir}/baseworkspace" />
 	<property name="buildworkspace" value="${basedir}/buildworkspace" />
@@ -60,29 +60,29 @@
 	</target>
 
 	<target name="getInstallationDir" depends="setLibDir">
-		<echo message="Installation directory will be ${destDir}/${prefix}/${libDir}"/>
+		<echo message="Installation directory will be ${destDir}/${prefix}/${libDir}" />
 	</target>
 
 	<property name="doTests" value="true" />
 
 	<target name="bootstrap" unless="bootstrapped">
 		<ant inheritall="false" antfile="pdebuild.xml">
-			<property name="buildId" value="${buildId}"/>
-			<property name="buildArch" value="${buildArch}"/>
+			<property name="buildId" value="${buildId}" />
+			<property name="buildArch" value="${buildArch}" />
 		</ant>
 	</target>
 
 	<!-- Run this target with antRunner application -->
 	<target name="generateBuildXmls" depends="unpack">
-		<ant antfile="pdebuild.xml" target="generateScripts"/>
+		<ant antfile="pdebuild.xml" target="generateScripts" />
 	</target>
 
 	<target name="fetch" unless="sdkSourcePresent">
-		<fail message="SDK source tarball is not present.  Please either download a file such as eclipse-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh."/>
+		<fail message="SDK source tarball is not present.  Please either download a file such as eclipse-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh." />
 	</target>
 
 	<target name="fetchTestSources" unless="testsSourcePresent">
-		<fail message="SDK tests source tarball is not present.  Please either download a file such as eclipse-sdktests-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh."/>
+		<fail message="SDK tests source tarball is not present.  Please either download a file such as eclipse-sdktests-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh." />
 	</target>
 
 	<target name="fetchTestScripts" unless="testsScriptsPresent">
@@ -90,8 +90,7 @@
 	</target>
 
 	<target name="extractBuildXmls" if="scriptsPresent">
-		<untar compression="bzip2" dest="${basedir}/build/eclipse-${buildTag}-fetched-src"
-			   src="${basedir}/eclipse-build-generatedScripts.tar.bz2"/>
+		<untar compression="bzip2" dest="${basedir}/build/eclipse-${buildTag}-fetched-src" src="${basedir}/eclipse-build-generatedScripts.tar.bz2" />
 		<!--
 		<fail message="Build scripts to bootstrap PDE Build must be generated and present in eclipse-build-generatedScripts.tar.bz2.  See pdebuild.xml for details."/>
 		-->
@@ -113,19 +112,29 @@
 
 		<echo message="Extracting SDK source (tar jxf eclipse-${buildTag}-fetched-src.tar.bz2)" />
 		<untar dest="${topBuildDir}" src="${basedir}/eclipse-${buildTag}-fetched-src.tar.bz2" compression="bzip2" />
-		<antcall target="extractBuildXmls"/>
+		<antcall target="extractBuildXmls" />
 
 		<delete dir="${buildDirectory}/buildConfigs" />
 		<mkdir dir="${buildDirectory}/buildConfigs" />
 
 		<echo message="Copying eclipse-build main feature source" />
 		<copy todir="${buildConfigs}/eclipse-build-config">
-			<fileset dir="eclipse-build-config"/>
+			<fileset dir="eclipse-build-config" />
 		</copy>
 		<echo message="Copying eclipse-build builder" />
 		<copy todir="${buildDirectory}/features/eclipse-build-feature">
-			<fileset dir="eclipse-build-feature"/>
+			<fileset dir="eclipse-build-feature" />
 		</copy>
+		<!-- prepare ecf build tree -->
+		<mkdir dir="${buildDirectory}/ecf-src/plugins" />
+		<move todir="${buildDirectory}/ecf-src/plugins">
+			<fileset dir="${buildDirectory}/ecf-src">
+				<filename name="org.eclipse*" />
+			</fileset>
+		</move>
+		<mkdir dir="${buildDirectory}/ecf-src/features/org.eclipse.ecf.filetransfer-feature" />
+		<copy tofile="${buildDirectory}/ecf-src/features/org.eclipse.ecf.filetransfer-feature/feature.xml" file="ecf-filetransfer-feature.xml" />
+		<copy tofile="${buildDirectory}/ecf-src/features/org.eclipse.ecf.filetransfer-feature/build.properties" file="ecf-filetransfer-build.properties" />
 		<!-- Create a stamp file -->
 		<echo file="unpack-stamp" />
 	</target>
@@ -187,17 +196,23 @@
 		<replace dir="${buildDirectory}" value="${buildId}" token="@build@">
 			<include name="**/configuration/config.ini" />
 		</replace>
-		<echo file="buildId-stamp"/>
+		<echo file="buildId-stamp" />
 	</target>
 
 	<target name="applyPatches" depends="insertBuildId" unless="patch.complete">
+		<!-- eclipse-build-only patches -->
 		<patch patchfile="${basedir}/patches/eclipse-buildswtnatives.patch" dir="${buildDirectory}" strip="0" />
-		<!-- See https://bugs.eclipse.org/bugs/show_bug.cgi?id=290064-->
-		<patch patchfile="${basedir}/patches/eclipse-help-toolbar.patch" dir="${buildDirectory}" strip="0" />
 		<patch patchfile="${basedir}/patches/eclipse-jdt_launch-customBuild.patch" dir="${buildDirectory}" strip="0" />
 		<patch patchfile="${basedir}/patches/eclipse-swt-buildagainstxulrunner.patch" dir="${buildDirectory}/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library" strip="3" />
 		<patch patchfile="${basedir}/patches/donotstorebuildlogsinfiles.patch" dir="${buildDirectory}" strip="3" />
 		<patch patchfile="${basedir}/patches/donotsetjavahomeandoptimizeliblocalfile.patch" dir="${buildDirectory}" strip="3" />
+		<patch patchfile="${basedir}/patches/eclipse-pde.build-add-package-build.patch" dir="${buildDirectory}/plugins/org.eclipse.pde.build" strip="0" />
+		<replace file="${buildDirectory}/plugins/org.eclipse.pde.build/templates/package-build/build.properties" token="/usr/share/eclipse" value="/usr/${libDir}/eclipse" />
+		<!-- end eclipse-build-only patches -->
+		<!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=290064-->
+		<patch patchfile="${basedir}/patches/eclipse-help-toolbar.patch" dir="${buildDirectory}" strip="0" />
+		<!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=287307 -->
+		<patch patchfile="${basedir}/patches/gtk2.18zorder.patch" dir="${buildDirectory}/plugins/org.eclipse.swt" strip="0" />
 		<echo file="patch-stamp" />
 	</target>
 
@@ -208,11 +223,8 @@
 	</target>
 
 	<target name="build" depends="applyPatches,bootstrap,compilelibs" unless="build.complete">
-		<echo message="build.xml:  eclipse.pdebuild.scripts = ${eclipse.pdebuild.scripts}"/>
-		<java classname="org.eclipse.equinox.launcher.Main"
-		      fork="true"
-		      dir="${basedir}"
-		      failonerror="true">
+		<echo message="build.xml:  eclipse.pdebuild.scripts = ${eclipse.pdebuild.scripts}" />
+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${basedir}" failonerror="true">
 			<classpath>
 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
 			</classpath>
@@ -289,9 +301,7 @@
 				<include name="**/*.so" />
 			</fileset>
 		</delete>-->
-		<ant antfile="build.xml"
-		     target="build.nativeLibraries"
-		     dir="${buildDirectory}/plugins/org.eclipse.swt.gtk.linux.${buildArch}" />
+		<ant antfile="build.xml" target="build.nativeLibraries" dir="${buildDirectory}/plugins/org.eclipse.swt.gtk.linux.${buildArch}" />
 
 		<property name="launcherlibs" value="${buildDirectory}/features/org.eclipse.equinox.executable" />
 		<exec dir="${launcherlibs}/library/gtk/" executable="sh" failonerror="true">
@@ -328,27 +338,27 @@
 		<!--<property name="builtZip" value="${buildDirectory}/${buildLabel}/${featureToBuild}-${buildTag}-group.group.group.zip" />-->
 		<!-- archiveName is set in the build config's customTargets.xml -->
 		<!-- FIXME buildLabel should be used here but it's not defined so we cheat and use I.${buildId} instead. -->
-		<property name="builtZip" value="${buildDirectory}/I.${buildId}/eclipse-SDK-${buildId}.zip"/>
+		<property name="builtZip" value="${buildDirectory}/I.${buildId}/eclipse-SDK-${buildId}.zip" />
 		<!--<property name="builtZip" value="${basedir}/eclipse-SDK-${buildId}.zip"/>-->
 		<replace token="@qualifier@" file="${productFiles}/sdk/sdk.product" value="${buildId}" />
 		<property name="tempexec" value="${buildDirectory}/tempexec" />
 
-		<antcall target="createRepo"/>
+		<antcall target="createRepo" />
 
-		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.orig" failonerror="false"/>
+		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.orig" failonerror="false" />
 
-		<antcall target="extractLauncher"/>
-		<antcall target="publishLauncher"/>
+		<antcall target="extractLauncher" />
+		<antcall target="publishLauncher" />
 
-		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterlauncher" failonerror="false"/>
-		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterlauncher" failonerror="false"/>
+		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterlauncher" failonerror="false" />
+		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterlauncher" failonerror="false" />
 
-		<antcall target="createAndPublishLauncherFeature"/>
+		<antcall target="createAndPublishLauncherFeature" />
 
-		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterrcpConfig" failonerror="false"/>
-		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterrcpConfig" failonerror="false"/>
+		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterrcpConfig" failonerror="false" />
+		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterrcpConfig" failonerror="false" />
 
-		<antcall target="publishSDK"/>
+		<antcall target="publishSDK" />
 
 		<echo file="p2prep-stamp" />
 	</target>
@@ -371,8 +381,8 @@
 		</copy>
 		<unzip dest="${tempexec}">
 			<fileset dir="${tempexec}/features">
-		        <include name="*.jar"/>
-		    </fileset>
+				<include name="*.jar" />
+			</fileset>
 		</unzip>
 	</target>
 
@@ -386,10 +396,7 @@
 		-->
 
 		<!-- This next part merges metadata for the launcher binary into the rest of the metadata -->
-		<java classname="org.eclipse.equinox.launcher.Main"
-		      fork="true"
-		      dir="${basedir}"
-		      failonerror="true">
+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${basedir}" failonerror="true">
 			<classpath>
 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
 			</classpath>
@@ -416,10 +423,7 @@
 		-->
 
 		<!-- This next part creates and publishs a feature including the binary launcher -->
-		<java classname="org.eclipse.equinox.launcher.Main"
-		      fork="true"
-		      dir="${productFiles}/rcpConfig"
-		      failonerror="true">
+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${productFiles}/rcpConfig" failonerror="true">
 			<classpath>
 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
 			</classpath>
@@ -443,10 +447,7 @@
 
 	<target name="publishSDK">
 		<!-- This next part publishes the entire SDK -->
-		<java classname="org.eclipse.equinox.launcher.Main"
-		      fork="true"
-		      dir="${basedir}"
-		      failonerror="true">
+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${basedir}" failonerror="true">
 			<classpath>
 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
 			</classpath>
@@ -464,7 +465,7 @@
 	</target>
 
 	<target name="provision.sdk" depends="p2prep" unless="provision.sdk.complete">
-		<echo message="Installing into:  ${buildDirectory}/installation"/>
+		<echo message="Installing into:  ${buildDirectory}/installation" />
 		<antcall target="run.director">
 			<param name="p2.director.installIU" value="org.eclipse.sdk.ide" />
 			<param name="p2.director.version" value="${p2.director.version}" />
@@ -476,17 +477,60 @@
 			<param name="p2.arch" value="${buildArch}" />
 			<param name="p2.repo" value="${reposource}" />
 		</antcall>
+		<!-- build equinox initializer -->
+		<java classname="org.eclipse.core.launcher.Main" dir="${buildDirectory}/plugins/org.eclipse.equinox.initializer" fork="true">
+			<classpath>
+				<fileset dir="${buildDirectory}/installation/plugins">
+					<include name="org.eclipse.equinox.launcher_*.jar" />
+				</fileset>
+			</classpath>
+			<arg line="-application org.eclipse.ant.core.antRunner" />
+			<arg line="-f build.xml" />
+			<arg line="build.update.jar" />
+		</java>
+		<copy todir="${buildDirectory}/installation/plugins">
+			<fileset dir="${buildDirectory}/plugins/org.eclipse.equinox.initializer">
+				<include name="org.eclipse.equinox.initializer*.jar" />
+			</fileset>
+		</copy>
+		<!-- build ecf -->
+		<mkdir dir="ecf-src/build" />
+		<mkdir dir="ecf-src/home" />
+		<dirset dir="${buildDirectory}/installation/plugins" includes="org.eclipse.pde.build_*" id="pdebuild" />
+		<property name="pdebuildplugin" refid="pdebuild" />
+		<java classname="org.eclipse.core.launcher.Main" dir="${buildDirectory}/ecf-src" fork="true">
+			<classpath>
+				<fileset dir="${buildDirectory}/installation/plugins">
+					<include name="org.eclipse.equinox.launcher_*.jar" />
+				</fileset>
+			</classpath>
+			<arg line="-Duser.home=${buildDirectory}/ecf-src/home" />
+			<arg line="-application org.eclipse.ant.core.antRunner" />
+			<arg line="-Dtype=feature" />
+			<arg line="-Did=org.eclipse.ecf.filetransfer_feature" />
+			<arg line="-DsourceDirectory=${buildDirectory}/ecf-src" />
+			<arg line="-DbaseLocation=${buildDirectory}/installation" />
+			<arg line="-DforceContextQualifier=v20090831-1906" />
+			<arg line="-Dbuilder=${buildDirectory}/installation/plugins/${pdebuildplugin}/templates/package-build" />
+			<arg line="-f ${buildDirectory}/installation/plugins/${pdebuildplugin}/scripts/build.xml" />
+		</java>
+		<unzip dest="${buildDirectory}/ecf-src/build/rpmBuild" src="${buildDirectory}/ecf-src/build/rpmBuild/org.eclipse.ecf.filetransfer_feature.zip" />
+		<copy todir="${buildDirectory}/installation/plugins">
+			<fileset dir="${buildDirectory}/ecf-src/build/rpmBuild/eclipse/plugins">
+				<filename name="org.eclipse.*.jar" />
+			</fileset>
+		</copy>
 		<echo file="provision.sdk-stamp" />
 	</target>
 
 	<target name="provision.tests" depends="buildTests" unless="provision.tests.complete">
-		<mkdir dir="${buildDirectory}/testsInstallation"/>
-		<copy todir="${buildDirectory}/testsInstallation/eclipse" overwrite="true" >
-			<fileset dir="${buildDirectory}/installation"/>
+		<mkdir dir="${buildDirectory}/testsInstallation" />
+		<copy todir="${buildDirectory}/testsInstallation/eclipse" overwrite="true">
+			<fileset dir="${buildDirectory}/installation" />
 		</copy>
 		<!-- To prevent contamination for those with test framework installed on their system -->
 		<exec executable="/bin/sed">
-			<arg value="-i"/>
+			<arg value="-i" />
 			<arg value="/dropins/d" />
 			<arg value="${buildDirectory}/testsInstallation/eclipse/eclipse.ini" />
 		</exec>
@@ -503,7 +547,7 @@
 			<param name="p2.repo" value="${testsBuildDirectory}/buildRepo" />
 		</antcall>
 -->
-		<echo message="Installing SDK tests into:  ${buildDirectory}/testsInstallation"/>
+		<echo message="Installing SDK tests into:  ${buildDirectory}/testsInstallation" />
 		<antcall target="run.installed.director">
 			<param name="directorToRun" value="${buildDirectory}/testsInstallation/eclipse/eclipse" />
 			<param name="p2.director.installIU" value="org.eclipse.sdk.tests.feature.group" />
@@ -522,30 +566,53 @@
 	</target>
 
 	<target name="runTests" depends="provision.tests">
-		<echo message="###################################################################"/>
-		<echo message="#                                                                 #"/>
-		<echo message="#             Please post and discuss results here:               #"/>
-		<echo message="# http://wiki.eclipse.org/Linux_Tools_Project/Eclipse_Build/Tests #"/>
-		<echo message="#                                                                 #"/>
-		<echo message="###################################################################"/>
-		<echo message=""/>
+		<echo message="###################################################################" />
+		<echo message="#                                                                 #" />
+		<echo message="#             Please post and discuss results here:               #" />
+		<echo message="# http://wiki.eclipse.org/Linux_Tools_Project/Eclipse_Build/Tests #" />
+		<echo message="#                                                                 #" />
+		<echo message="###################################################################" />
+		<echo message="" />
 		<tstamp>
-			<format property="timestamp" pattern="yyyyMMddhhmmss"/>
+			<format property="timestamp" pattern="yyyyMMddHHmmss" />
 		</tstamp>
 		<chmod perm="ugo+rx" file="${buildDirectory}/testsInstallation/runtests.sh" />
 		<exec executable="${buildDirectory}/testsInstallation/runtests.sh" dir="${buildDirectory}/testsInstallation">
-			<arg line="-t ${timestamp}"/>
+			<arg value="-t${timestamp}" />
 		</exec>
-		<copy failonerror="false" todir="${basedir}/testResults-${timestamp}">
+		<property name="testResultDir" value="${basedir}/testResults-${timestamp}" />
+		<copy failonerror="false" todir="${testResultDir}">
 			<fileset dir="${buildDirectory}/testsInstallation/results-${timestamp}">
 				<include name="**/*" />
 			</fileset>
 		</copy>
+		<!-- Copy over the XML to generate a top-level report for all of the tests -->
+		<mkdir dir="${testResultDir}/origXml" />
+		<copy failonerror="false" todir="${testResultDir}/origXml">
+			<fileset dir="${testResultDir}/xml">
+				<include name="**/*" />
+			</fileset>
+		</copy>
+		<!-- Un-"collect" the results -->
+		<replace dir="${testResultDir}/origXml" value="">
+			<include name="**/*.xml" />
+			<replacetoken>&lt;testsuites&gt;</replacetoken>
+		</replace>
+		<replace dir="${testResultDir}/origXml" value="">
+			<include name="**/*.xml" />
+			<replacetoken>&lt;/testsuites&gt;</replacetoken>
+		</replace>
+		<!-- Aggregate XML report files -->
+		<junitreport todir="${testResultDir}/xml" tofile="org.eclipse.sdk.tests.xml">
+			<fileset dir="${testResultDir}/origXml" includes="*.xml" />
+		</junitreport>
+		<!-- Generate top-level HTML report -->
+		<xslt style="${buildDirectory}/testsInstallation/eclipse/plugins/org.eclipse.test_3.2.0/JUNIT.XSL" basedir="${testResultDir}/xml" includes="org.eclipse.sdk.tests.xml" destdir="${testResultDir}/html" />
 	</target>
 
 	<target name="run.director">
-		<property name="baseBuilderConfig" value="${baseBuilder}/p2"/>
-		<echo message="Moving ${baseBuilderConfig} to ${baseBuilderConfig}.bak"/>
+		<property name="baseBuilderConfig" value="${baseBuilder}/p2" />
+		<echo message="Moving ${baseBuilderConfig} to ${baseBuilderConfig}.bak" />
 		<move failonerror="false" file="${baseBuilderConfig}" tofile="${baseBuilderConfig}.bak" />
 		<!-- FIXME:  When we move to bootstrap by default, investigate using <exec> on the bootstrapped launcher
 		     like in eclipsebuilder's equinox.prov/run.xml -->
@@ -580,7 +647,7 @@
 			<jvmarg value="-Xmx2048M" />
 			<jvmarg value="-XX:MaxPermSize=512M" />
 			-->
-			<jvmarg value="-Declipse.p2.data.area=${p2.director.install.path}/p2"/>
+			<jvmarg value="-Declipse.p2.data.area=${p2.director.install.path}/p2" />
 		</java>
 		<delete dir="${baseBuilderConfig}" includeemptydirs="true" failonerror="false" />
 		<move file="${baseBuilderConfig}.bak" tofile="${baseBuilderConfig}" />
@@ -610,26 +677,44 @@
 			<arg line="-Declipse.p2.MD5Check=false" />
 			<arg line="-Declipse.p2.profile=@none" />
 			<arg line="-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=" />
-			<arg line="-Declipse.p2.data.area=${p2.director.install.path}/p2"/>
+			<arg line="-Declipse.p2.data.area=${p2.director.install.path}/p2" />
 			<arg line="-propertyfile ${basedir}/build.properties " />
 		</exec>
 	</target>
 
 	<target name="install" depends="provision.sdk">
-		<mkdir dir="${destDir}${prefix}/${libDir}/eclipse"/>
-		<copy todir="${destDir}${prefix}/${libDir}/eclipse" overwrite="true" >
-			<fileset dir="${buildDirectory}/installation"/>
+		<mkdir dir="${destDir}${prefix}/${libDir}/eclipse" />
+		<copy todir="${destDir}${prefix}/${libDir}/eclipse" overwrite="true">
+			<fileset dir="${buildDirectory}/installation" />
 		</copy>
 		<!-- install desktop file -->
 		<copy file="eclipse.desktop" todir="${destDir}${prefix}/share/applications" />
 		<!-- install icons -->
-		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse.png"
-				tofile="${destDir}${prefix}/share/icons/hicolor/16x16/apps/eclipse.png" />
-		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse32.png"
-				tofile="${destDir}${prefix}/share/icons/hicolor/32x32/apps/eclipse.png" />
-		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse48.png"
-				tofile="${destDir}${prefix}/share/icons/hicolor/48x48/apps/eclipse.png" />
-		<echo append="true" file="${destDir}${prefix}/${libDir}/eclipse/eclipse.ini" message="-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=${destDir}${prefix}/share/eclipse/dropins"/>
+		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse.png" tofile="${destDir}${prefix}/share/icons/hicolor/16x16/apps/eclipse.png" />
+		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse32.png" tofile="${destDir}${prefix}/share/icons/hicolor/32x32/apps/eclipse.png" />
+		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse48.png" tofile="${destDir}${prefix}/share/icons/hicolor/48x48/apps/eclipse.png" />
+		<mkdir dir="${destDir}${prefix}/share/pixmaps" />
+		<symlink link="${destDir}${prefix}/share/pixmaps/eclipse.png" resource="../icons/hicolor/48x48/apps/eclipse.png" />
+		<!--shared dropins folder-->
+		<mkdir dir="${destDir}${prefix}/share/eclipse/dropins" />
+		<!-- eclipse binary -->
+		<mkdir dir="${destDir}${prefix}/bin" />
+		<symlink link="${destDir}${prefix}/bin/eclipse" resource="../${libDir}/eclipse/eclipse" />
+		<!-- Create the "startup.jar" symlink -->
+		<fileset dir="${destDir}/${prefix}/${libDir}/eclipse/plugins" includes="org.eclipse.equinox.launcher_*" id="startupjar" />
+		<property name="startupjarpath" refid="startupjar" />
+		<symlink link="${destDir}/${prefix}/${libDir}/eclipse/startup.jar" resource="plugins/${startupjarpath}" />
+
+		<echo append="true" file="${destDir}${prefix}/${libDir}/eclipse/eclipse.ini" message="-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=${destDir}${prefix}/share/eclipse/dropins" />
+	</target>
+
+	<target name="package.extract.swt">
+		<exec executable="./swt_bundle.sh" failOnError="true">
+			<arg value="${eclipse.rcp.package.root}" />
+			<arg value="${eclipse.swt.package.root}" />
+			<arg value="${prefix}" />
+			<arg value="${libdir}" />
+		</exec>
 	</target>
 
 </project>
diff --git a/debian/control b/debian/control
index aad37dd..49a6f34 100644
--- a/debian/control
+++ b/debian/control
@@ -25,14 +25,14 @@ Build-Depends: ant (>= 1.7.1),
                libjsch-java,
                liblucene2-java,
                libpango1.0-dev,
-	       libservlet2.5-java,
+               libservlet2.5-java,
                libxtst-dev,
                lsb-release,
                pkg-config,
                quilt,
                sharutils,
                unzip,
-               xulrunner-dev,
+               xulrunner-dev (>= 1.9.1),
                zip
 Standards-Version: 3.8.3
 DM-Upload-Allowed: yes
@@ -108,6 +108,7 @@ Depends: default-jre | java1-runtime | java2-runtime,
          liblucene2-java,
          libservlet2.5-java,
          libswt-gtk-3.5-java (= ${binary:Version}),
+         xulrunner-1.9.1,
          ${misc:Depends},
          ${perl:Depends},
          ${shlibs:Depends}
diff --git a/debian/extra/eclipse b/debian/extra/eclipse
index 8a8bef4..0191fc0 100644
--- a/debian/extra/eclipse
+++ b/debian/extra/eclipse
@@ -1,4 +1,4 @@
 #!/bin/sh
 
-xuldir=/usr/lib/xulrunner-$(/usr/bin/xulrunner --gre-version)
+xuldir=/usr/lib/xulrunner-$(/usr/bin/xulrunner-1.9.1 --gre-version)
 LD_LIBRARY_PATH=$xuldir${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} /usr/lib/eclipse/eclipse "$@"
diff --git a/debian/patches/eclipse-build.patch b/debian/patches/eclipse-build.patch
deleted file mode 100644
index e683299..0000000
--- a/debian/patches/eclipse-build.patch
+++ /dev/null
@@ -1,1771 +0,0 @@
-Description: Sync changes from eclipse-build
-diff -pruN a/build.xml b/build.xml
---- a/build.xml	2009-10-06 00:36:21.000000000 +0200
-+++ b/build.xml	2009-10-12 18:11:01.279223000 +0200
-@@ -24,8 +24,8 @@
- 	<uptodate property="provision.tests.complete" srcfile="testsbuild-stamp" targetfile="provision.tests-stamp" />
- 	<available file="bootstrap/plugins" property="bootstrapped" value="true" />
- 
--	<property name="topBuildDir" value="${basedir}/build"/>
--	<property name="testsBuildDir" value="${basedir}/testsBuild"/>
-+	<property name="topBuildDir" value="${basedir}/build" />
-+	<property name="testsBuildDir" value="${basedir}/testsBuild" />
- 	<property name="homeDir" value="${basedir}/home" />
- 	<property name="baseworkspace" value="${basedir}/baseworkspace" />
- 	<property name="buildworkspace" value="${basedir}/buildworkspace" />
-@@ -60,29 +60,29 @@
- 	</target>
- 
- 	<target name="getInstallationDir" depends="setLibDir">
--		<echo message="Installation directory will be ${destDir}/${prefix}/${libDir}"/>
-+		<echo message="Installation directory will be ${destDir}/${prefix}/${libDir}" />
- 	</target>
- 
- 	<property name="doTests" value="true" />
- 
- 	<target name="bootstrap" unless="bootstrapped">
- 		<ant inheritall="false" antfile="pdebuild.xml">
--			<property name="buildId" value="${buildId}"/>
--			<property name="buildArch" value="${buildArch}"/>
-+			<property name="buildId" value="${buildId}" />
-+			<property name="buildArch" value="${buildArch}" />
- 		</ant>
- 	</target>
- 
- 	<!-- Run this target with antRunner application -->
- 	<target name="generateBuildXmls" depends="unpack">
--		<ant antfile="pdebuild.xml" target="generateScripts"/>
-+		<ant antfile="pdebuild.xml" target="generateScripts" />
- 	</target>
- 
- 	<target name="fetch" unless="sdkSourcePresent">
--		<fail message="SDK source tarball is not present.  Please either download a file such as eclipse-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh."/>
-+		<fail message="SDK source tarball is not present.  Please either download a file such as eclipse-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh." />
- 	</target>
- 
- 	<target name="fetchTestSources" unless="testsSourcePresent">
--		<fail message="SDK tests source tarball is not present.  Please either download a file such as eclipse-sdktests-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh."/>
-+		<fail message="SDK tests source tarball is not present.  Please either download a file such as eclipse-sdktests-I20090611-1540-fetched-src.tar.bz2 from http://www.eclipse.org/downloads/download.php?file=/technology/linuxtools/eclipse-build or generate one by running ./buildSDKSource.sh." />
- 	</target>
- 
- 	<target name="fetchTestScripts" unless="testsScriptsPresent">
-@@ -90,8 +90,7 @@
- 	</target>
- 
- 	<target name="extractBuildXmls" if="scriptsPresent">
--		<untar compression="bzip2" dest="${basedir}/build/eclipse-${buildTag}-fetched-src"
--			   src="${basedir}/eclipse-build-generatedScripts.tar.bz2"/>
-+		<untar compression="bzip2" dest="${basedir}/build/eclipse-${buildTag}-fetched-src" src="${basedir}/eclipse-build-generatedScripts.tar.bz2" />
- 		<!--
- 		<fail message="Build scripts to bootstrap PDE Build must be generated and present in eclipse-build-generatedScripts.tar.bz2.  See pdebuild.xml for details."/>
- 		-->
-@@ -113,19 +112,29 @@
- 
- 		<echo message="Extracting SDK source (tar jxf eclipse-${buildTag}-fetched-src.tar.bz2)" />
- 		<untar dest="${topBuildDir}" src="${basedir}/eclipse-${buildTag}-fetched-src.tar.bz2" compression="bzip2" />
--		<antcall target="extractBuildXmls"/>
-+		<antcall target="extractBuildXmls" />
- 
- 		<delete dir="${buildDirectory}/buildConfigs" />
- 		<mkdir dir="${buildDirectory}/buildConfigs" />
- 
- 		<echo message="Copying eclipse-build main feature source" />
- 		<copy todir="${buildConfigs}/eclipse-build-config">
--			<fileset dir="eclipse-build-config"/>
-+			<fileset dir="eclipse-build-config" />
- 		</copy>
- 		<echo message="Copying eclipse-build builder" />
- 		<copy todir="${buildDirectory}/features/eclipse-build-feature">
--			<fileset dir="eclipse-build-feature"/>
-+			<fileset dir="eclipse-build-feature" />
- 		</copy>
-+		<!-- prepare ecf build tree -->
-+		<mkdir dir="${buildDirectory}/ecf-src/plugins" />
-+		<move todir="${buildDirectory}/ecf-src/plugins">
-+			<fileset dir="${buildDirectory}/ecf-src">
-+				<filename name="org.eclipse*" />
-+			</fileset>
-+		</move>
-+		<mkdir dir="${buildDirectory}/ecf-src/features/org.eclipse.ecf.filetransfer-feature" />
-+		<copy tofile="${buildDirectory}/ecf-src/features/org.eclipse.ecf.filetransfer-feature/feature.xml" file="ecf-filetransfer-feature.xml" />
-+		<copy tofile="${buildDirectory}/ecf-src/features/org.eclipse.ecf.filetransfer-feature/build.properties" file="ecf-filetransfer-build.properties" />
- 		<!-- Create a stamp file -->
- 		<echo file="unpack-stamp" />
- 	</target>
-@@ -187,17 +196,23 @@
- 		<replace dir="${buildDirectory}" value="${buildId}" token="@build@">
- 			<include name="**/configuration/config.ini" />
- 		</replace>
--		<echo file="buildId-stamp"/>
-+		<echo file="buildId-stamp" />
- 	</target>
- 
- 	<target name="applyPatches" depends="insertBuildId" unless="patch.complete">
-+		<!-- eclipse-build-only patches -->
- 		<patch patchfile="${basedir}/patches/eclipse-buildswtnatives.patch" dir="${buildDirectory}" strip="0" />
--		<!-- See https://bugs.eclipse.org/bugs/show_bug.cgi?id=290064-->
--		<patch patchfile="${basedir}/patches/eclipse-help-toolbar.patch" dir="${buildDirectory}" strip="0" />
- 		<patch patchfile="${basedir}/patches/eclipse-jdt_launch-customBuild.patch" dir="${buildDirectory}" strip="0" />
- 		<patch patchfile="${basedir}/patches/eclipse-swt-buildagainstxulrunner.patch" dir="${buildDirectory}/plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library" strip="3" />
- 		<patch patchfile="${basedir}/patches/donotstorebuildlogsinfiles.patch" dir="${buildDirectory}" strip="3" />
- 		<patch patchfile="${basedir}/patches/donotsetjavahomeandoptimizeliblocalfile.patch" dir="${buildDirectory}" strip="3" />
-+		<patch patchfile="${basedir}/patches/eclipse-pde.build-add-package-build.patch" dir="${buildDirectory}/plugins/org.eclipse.pde.build" strip="0" />
-+		<replace file="${buildDirectory}/plugins/org.eclipse.pde.build/templates/package-build/build.properties" token="/usr/share/eclipse" value="/usr/${libDir}/eclipse" />
-+		<!-- end eclipse-build-only patches -->
-+		<!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=290064-->
-+		<patch patchfile="${basedir}/patches/eclipse-help-toolbar.patch" dir="${buildDirectory}" strip="0" />
-+		<!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=287307 -->
-+		<patch patchfile="${basedir}/patches/gtk2.18zorder.patch" dir="${buildDirectory}/plugins/org.eclipse.swt" strip="0" />
- 		<echo file="patch-stamp" />
- 	</target>
- 
-@@ -208,11 +223,8 @@
- 	</target>
- 
- 	<target name="build" depends="applyPatches,bootstrap,compilelibs" unless="build.complete">
--		<echo message="build.xml:  eclipse.pdebuild.scripts = ${eclipse.pdebuild.scripts}"/>
--		<java classname="org.eclipse.equinox.launcher.Main"
--		      fork="true"
--		      dir="${basedir}"
--		      failonerror="true">
-+		<echo message="build.xml:  eclipse.pdebuild.scripts = ${eclipse.pdebuild.scripts}" />
-+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${basedir}" failonerror="true">
- 			<classpath>
- 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
- 			</classpath>
-@@ -289,9 +301,7 @@
- 				<include name="**/*.so" />
- 			</fileset>
- 		</delete>-->
--		<ant antfile="build.xml"
--		     target="build.nativeLibraries"
--		     dir="${buildDirectory}/plugins/org.eclipse.swt.gtk.linux.${buildArch}" />
-+		<ant antfile="build.xml" target="build.nativeLibraries" dir="${buildDirectory}/plugins/org.eclipse.swt.gtk.linux.${buildArch}" />
- 
- 		<property name="launcherlibs" value="${buildDirectory}/features/org.eclipse.equinox.executable" />
- 		<exec dir="${launcherlibs}/library/gtk/" executable="sh" failonerror="true">
-@@ -328,27 +338,27 @@
- 		<!--<property name="builtZip" value="${buildDirectory}/${buildLabel}/${featureToBuild}-${buildTag}-group.group.group.zip" />-->
- 		<!-- archiveName is set in the build config's customTargets.xml -->
- 		<!-- FIXME buildLabel should be used here but it's not defined so we cheat and use I.${buildId} instead. -->
--		<property name="builtZip" value="${buildDirectory}/I.${buildId}/eclipse-SDK-${buildId}.zip"/>
-+		<property name="builtZip" value="${buildDirectory}/I.${buildId}/eclipse-SDK-${buildId}.zip" />
- 		<!--<property name="builtZip" value="${basedir}/eclipse-SDK-${buildId}.zip"/>-->
- 		<replace token="@qualifier@" file="${productFiles}/sdk/sdk.product" value="${buildId}" />
- 		<property name="tempexec" value="${buildDirectory}/tempexec" />
- 
--		<antcall target="createRepo"/>
-+		<antcall target="createRepo" />
- 
--		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.orig" failonerror="false"/>
-+		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.orig" failonerror="false" />
- 
--		<antcall target="extractLauncher"/>
--		<antcall target="publishLauncher"/>
-+		<antcall target="extractLauncher" />
-+		<antcall target="publishLauncher" />
- 
--		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterlauncher" failonerror="false"/>
--		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterlauncher" failonerror="false"/>
-+		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterlauncher" failonerror="false" />
-+		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterlauncher" failonerror="false" />
- 
--		<antcall target="createAndPublishLauncherFeature"/>
-+		<antcall target="createAndPublishLauncherFeature" />
- 
--		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterrcpConfig" failonerror="false"/>
--		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterrcpConfig" failonerror="false"/>
-+		<copy file="${reposource}/content.xml" tofile="${reposource}/content.xml.afterrcpConfig" failonerror="false" />
-+		<copy file="${reposource}/content.jar" tofile="${reposource}/content.jar.afterrcpConfig" failonerror="false" />
- 
--		<antcall target="publishSDK"/>
-+		<antcall target="publishSDK" />
- 
- 		<echo file="p2prep-stamp" />
- 	</target>
-@@ -371,8 +381,8 @@
- 		</copy>
- 		<unzip dest="${tempexec}">
- 			<fileset dir="${tempexec}/features">
--		        <include name="*.jar"/>
--		    </fileset>
-+				<include name="*.jar" />
-+			</fileset>
- 		</unzip>
- 	</target>
- 
-@@ -386,10 +396,7 @@
- 		-->
- 
- 		<!-- This next part merges metadata for the launcher binary into the rest of the metadata -->
--		<java classname="org.eclipse.equinox.launcher.Main"
--		      fork="true"
--		      dir="${basedir}"
--		      failonerror="true">
-+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${basedir}" failonerror="true">
- 			<classpath>
- 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
- 			</classpath>
-@@ -416,10 +423,7 @@
- 		-->
- 
- 		<!-- This next part creates and publishs a feature including the binary launcher -->
--		<java classname="org.eclipse.equinox.launcher.Main"
--		      fork="true"
--		      dir="${productFiles}/rcpConfig"
--		      failonerror="true">
-+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${productFiles}/rcpConfig" failonerror="true">
- 			<classpath>
- 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
- 			</classpath>
-@@ -443,10 +447,7 @@
- 
- 	<target name="publishSDK">
- 		<!-- This next part publishes the entire SDK -->
--		<java classname="org.eclipse.equinox.launcher.Main"
--		      fork="true"
--		      dir="${basedir}"
--		      failonerror="true">
-+		<java classname="org.eclipse.equinox.launcher.Main" fork="true" dir="${basedir}" failonerror="true">
- 			<classpath>
- 				<pathelement path="bootstrap/plugins/org.eclipse.equinox.launcher.jar" />
- 			</classpath>
-@@ -464,7 +465,7 @@
- 	</target>
- 
- 	<target name="provision.sdk" depends="p2prep" unless="provision.sdk.complete">
--		<echo message="Installing into:  ${buildDirectory}/installation"/>
-+		<echo message="Installing into:  ${buildDirectory}/installation" />
- 		<antcall target="run.director">
- 			<param name="p2.director.installIU" value="org.eclipse.sdk.ide" />
- 			<param name="p2.director.version" value="${p2.director.version}" />
-@@ -476,17 +477,60 @@
- 			<param name="p2.arch" value="${buildArch}" />
- 			<param name="p2.repo" value="${reposource}" />
- 		</antcall>
-+		<!-- build equinox initializer -->
-+		<java classname="org.eclipse.core.launcher.Main" dir="${buildDirectory}/plugins/org.eclipse.equinox.initializer" fork="true">
-+			<classpath>
-+				<fileset dir="${buildDirectory}/installation/plugins">
-+					<include name="org.eclipse.equinox.launcher_*.jar" />
-+				</fileset>
-+			</classpath>
-+			<arg line="-application org.eclipse.ant.core.antRunner" />
-+			<arg line="-f build.xml" />
-+			<arg line="build.update.jar" />
-+		</java>
-+		<copy todir="${buildDirectory}/installation/plugins">
-+			<fileset dir="${buildDirectory}/plugins/org.eclipse.equinox.initializer">
-+				<include name="org.eclipse.equinox.initializer*.jar" />
-+			</fileset>
-+		</copy>
-+		<!-- build ecf -->
-+		<mkdir dir="ecf-src/build" />
-+		<mkdir dir="ecf-src/home" />
-+		<dirset dir="${buildDirectory}/installation/plugins" includes="org.eclipse.pde.build_*" id="pdebuild" />
-+		<property name="pdebuildplugin" refid="pdebuild" />
-+		<java classname="org.eclipse.core.launcher.Main" dir="${buildDirectory}/ecf-src" fork="true">
-+			<classpath>
-+				<fileset dir="${buildDirectory}/installation/plugins">
-+					<include name="org.eclipse.equinox.launcher_*.jar" />
-+				</fileset>
-+			</classpath>
-+			<arg line="-Duser.home=${buildDirectory}/ecf-src/home" />
-+			<arg line="-application org.eclipse.ant.core.antRunner" />
-+			<arg line="-Dtype=feature" />
-+			<arg line="-Did=org.eclipse.ecf.filetransfer_feature" />
-+			<arg line="-DsourceDirectory=${buildDirectory}/ecf-src" />
-+			<arg line="-DbaseLocation=${buildDirectory}/installation" />
-+			<arg line="-DforceContextQualifier=v20090831-1906" />
-+			<arg line="-Dbuilder=${buildDirectory}/installation/plugins/${pdebuildplugin}/templates/package-build" />
-+			<arg line="-f ${buildDirectory}/installation/plugins/${pdebuildplugin}/scripts/build.xml" />
-+		</java>
-+		<unzip dest="${buildDirectory}/ecf-src/build/rpmBuild" src="${buildDirectory}/ecf-src/build/rpmBuild/org.eclipse.ecf.filetransfer_feature.zip" />
-+		<copy todir="${buildDirectory}/installation/plugins">
-+			<fileset dir="${buildDirectory}/ecf-src/build/rpmBuild/eclipse/plugins">
-+				<filename name="org.eclipse.*.jar" />
-+			</fileset>
-+		</copy>
- 		<echo file="provision.sdk-stamp" />
- 	</target>
- 
- 	<target name="provision.tests" depends="buildTests" unless="provision.tests.complete">
--		<mkdir dir="${buildDirectory}/testsInstallation"/>
--		<copy todir="${buildDirectory}/testsInstallation/eclipse" overwrite="true" >
--			<fileset dir="${buildDirectory}/installation"/>
-+		<mkdir dir="${buildDirectory}/testsInstallation" />
-+		<copy todir="${buildDirectory}/testsInstallation/eclipse" overwrite="true">
-+			<fileset dir="${buildDirectory}/installation" />
- 		</copy>
- 		<!-- To prevent contamination for those with test framework installed on their system -->
- 		<exec executable="/bin/sed">
--			<arg value="-i"/>
-+			<arg value="-i" />
- 			<arg value="/dropins/d" />
- 			<arg value="${buildDirectory}/testsInstallation/eclipse/eclipse.ini" />
- 		</exec>
-@@ -503,7 +547,7 @@
- 			<param name="p2.repo" value="${testsBuildDirectory}/buildRepo" />
- 		</antcall>
- -->
--		<echo message="Installing SDK tests into:  ${buildDirectory}/testsInstallation"/>
-+		<echo message="Installing SDK tests into:  ${buildDirectory}/testsInstallation" />
- 		<antcall target="run.installed.director">
- 			<param name="directorToRun" value="${buildDirectory}/testsInstallation/eclipse/eclipse" />
- 			<param name="p2.director.installIU" value="org.eclipse.sdk.tests.feature.group" />
-@@ -522,30 +566,53 @@
- 	</target>
- 
- 	<target name="runTests" depends="provision.tests">
--		<echo message="###################################################################"/>
--		<echo message="#                                                                 #"/>
--		<echo message="#             Please post and discuss results here:               #"/>
--		<echo message="# http://wiki.eclipse.org/Linux_Tools_Project/Eclipse_Build/Tests #"/>
--		<echo message="#                                                                 #"/>
--		<echo message="###################################################################"/>
--		<echo message=""/>
-+		<echo message="###################################################################" />
-+		<echo message="#                                                                 #" />
-+		<echo message="#             Please post and discuss results here:               #" />
-+		<echo message="# http://wiki.eclipse.org/Linux_Tools_Project/Eclipse_Build/Tests #" />
-+		<echo message="#                                                                 #" />
-+		<echo message="###################################################################" />
-+		<echo message="" />
- 		<tstamp>
--			<format property="timestamp" pattern="yyyyMMddhhmmss"/>
-+			<format property="timestamp" pattern="yyyyMMddHHmmss" />
- 		</tstamp>
- 		<chmod perm="ugo+rx" file="${buildDirectory}/testsInstallation/runtests.sh" />
- 		<exec executable="${buildDirectory}/testsInstallation/runtests.sh" dir="${buildDirectory}/testsInstallation">
--			<arg line="-t ${timestamp}"/>
-+			<arg value="-t${timestamp}" />
- 		</exec>
--		<copy failonerror="false" todir="${basedir}/testResults-${timestamp}">
-+		<property name="testResultDir" value="${basedir}/testResults-${timestamp}" />
-+		<copy failonerror="false" todir="${testResultDir}">
- 			<fileset dir="${buildDirectory}/testsInstallation/results-${timestamp}">
- 				<include name="**/*" />
- 			</fileset>
- 		</copy>
-+		<!-- Copy over the XML to generate a top-level report for all of the tests -->
-+		<mkdir dir="${testResultDir}/origXml" />
-+		<copy failonerror="false" todir="${testResultDir}/origXml">
-+			<fileset dir="${testResultDir}/xml">
-+				<include name="**/*" />
-+			</fileset>
-+		</copy>
-+		<!-- Un-"collect" the results -->
-+		<replace dir="${testResultDir}/origXml" value="">
-+			<include name="**/*.xml" />
-+			<replacetoken>&lt;testsuites&gt;</replacetoken>
-+		</replace>
-+		<replace dir="${testResultDir}/origXml" value="">
-+			<include name="**/*.xml" />
-+			<replacetoken>&lt;/testsuites&gt;</replacetoken>
-+		</replace>
-+		<!-- Aggregate XML report files -->
-+		<junitreport todir="${testResultDir}/xml" tofile="org.eclipse.sdk.tests.xml">
-+			<fileset dir="${testResultDir}/origXml" includes="*.xml" />
-+		</junitreport>
-+		<!-- Generate top-level HTML report -->
-+		<xslt style="${buildDirectory}/testsInstallation/eclipse/plugins/org.eclipse.test_3.2.0/JUNIT.XSL" basedir="${testResultDir}/xml" includes="org.eclipse.sdk.tests.xml" destdir="${testResultDir}/html" />
- 	</target>
- 
- 	<target name="run.director">
--		<property name="baseBuilderConfig" value="${baseBuilder}/p2"/>
--		<echo message="Moving ${baseBuilderConfig} to ${baseBuilderConfig}.bak"/>
-+		<property name="baseBuilderConfig" value="${baseBuilder}/p2" />
-+		<echo message="Moving ${baseBuilderConfig} to ${baseBuilderConfig}.bak" />
- 		<move failonerror="false" file="${baseBuilderConfig}" tofile="${baseBuilderConfig}.bak" />
- 		<!-- FIXME:  When we move to bootstrap by default, investigate using <exec> on the bootstrapped launcher
- 		     like in eclipsebuilder's equinox.prov/run.xml -->
-@@ -580,7 +647,7 @@
- 			<jvmarg value="-Xmx2048M" />
- 			<jvmarg value="-XX:MaxPermSize=512M" />
- 			-->
--			<jvmarg value="-Declipse.p2.data.area=${p2.director.install.path}/p2"/>
-+			<jvmarg value="-Declipse.p2.data.area=${p2.director.install.path}/p2" />
- 		</java>
- 		<delete dir="${baseBuilderConfig}" includeemptydirs="true" failonerror="false" />
- 		<move file="${baseBuilderConfig}.bak" tofile="${baseBuilderConfig}" />
-@@ -610,26 +677,44 @@
- 			<arg line="-Declipse.p2.MD5Check=false" />
- 			<arg line="-Declipse.p2.profile=@none" />
- 			<arg line="-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=" />
--			<arg line="-Declipse.p2.data.area=${p2.director.install.path}/p2"/>
-+			<arg line="-Declipse.p2.data.area=${p2.director.install.path}/p2" />
- 			<arg line="-propertyfile ${basedir}/build.properties " />
- 		</exec>
- 	</target>
- 
- 	<target name="install" depends="provision.sdk">
--		<mkdir dir="${destDir}${prefix}/${libDir}/eclipse"/>
--		<copy todir="${destDir}${prefix}/${libDir}/eclipse" overwrite="true" >
--			<fileset dir="${buildDirectory}/installation"/>
-+		<mkdir dir="${destDir}${prefix}/${libDir}/eclipse" />
-+		<copy todir="${destDir}${prefix}/${libDir}/eclipse" overwrite="true">
-+			<fileset dir="${buildDirectory}/installation" />
- 		</copy>
- 		<!-- install desktop file -->
- 		<copy file="eclipse.desktop" todir="${destDir}${prefix}/share/applications" />
- 		<!-- install icons -->
--		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse.png"
--				tofile="${destDir}${prefix}/share/icons/hicolor/16x16/apps/eclipse.png" />
--		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse32.png"
--				tofile="${destDir}${prefix}/share/icons/hicolor/32x32/apps/eclipse.png" />
--		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse48.png"
--				tofile="${destDir}${prefix}/share/icons/hicolor/48x48/apps/eclipse.png" />
--		<echo append="true" file="${destDir}${prefix}/${libDir}/eclipse/eclipse.ini" message="-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=${destDir}${prefix}/share/eclipse/dropins"/>
-+		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse.png" tofile="${destDir}${prefix}/share/icons/hicolor/16x16/apps/eclipse.png" />
-+		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse32.png" tofile="${destDir}${prefix}/share/icons/hicolor/32x32/apps/eclipse.png" />
-+		<copy file="${buildDirectory}/plugins/org.eclipse.platform/eclipse48.png" tofile="${destDir}${prefix}/share/icons/hicolor/48x48/apps/eclipse.png" />
-+		<mkdir dir="${destDir}${prefix}/share/pixmaps" />
-+		<symlink link="${destDir}${prefix}/share/pixmaps/eclipse.png" resource="../icons/hicolor/48x48/apps/eclipse.png" />
-+		<!--shared dropins folder-->
-+		<mkdir dir="${destDir}${prefix}/share/eclipse/dropins" />
-+		<!-- eclipse binary -->
-+		<mkdir dir="${destDir}${prefix}/bin" />
-+		<symlink link="${destDir}${prefix}/bin/eclipse" resource="../${libDir}/eclipse/eclipse" />
-+		<!-- Create the "startup.jar" symlink -->
-+		<fileset dir="${destDir}/${prefix}/${libDir}/eclipse/plugins" includes="org.eclipse.equinox.launcher_*" id="startupjar" />
-+		<property name="startupjarpath" refid="startupjar" />
-+		<symlink link="${destDir}/${prefix}/${libDir}/eclipse/startup.jar" resource="plugins/${startupjarpath}" />
-+
-+		<echo append="true" file="${destDir}${prefix}/${libDir}/eclipse/eclipse.ini" message="-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=${destDir}${prefix}/share/eclipse/dropins" />
-+	</target>
-+
-+	<target name="package.extract.swt">
-+		<exec executable="./swt_bundle.sh" failOnError="true">
-+			<arg value="${eclipse.rcp.package.root}" />
-+			<arg value="${eclipse.swt.package.root}" />
-+			<arg value="${prefix}" />
-+			<arg value="${libdir}" />
-+		</exec>
- 	</target>
- 
- </project>
-diff -pruN a/ChangeLog b/ChangeLog
---- a/ChangeLog	2009-10-06 00:36:21.000000000 +0200
-+++ b/ChangeLog	2009-10-12 18:11:01.279223000 +0200
-@@ -1,7 +1,81 @@
-+2009-10-12  Alexander Kurtakov  <akurtako at redhat.com>
-+
-+	* build.xml: Create a symlink to o.e.equinox.launcher in the install. (Niels Thykier) 
-+	
-+2009-10-12  Alexander Kurtakov  <akurtako at redhat.com>
-+
-+	* ecf-filetransfer-build.properties: New file.
-+	* ecf-filetransfer-feature.xml: New file.
-+	* build.xml: Compile ecf bundles.
-+
-+2009-10-08  Andrew Overholt  <overholt at redhat.com>
-+
-+	Bud #291681 - Patch courtesy Benjamin Drung
-+
-+	* build.xml: Add patch to build Equinox initializer application.
-+
-+2009-10-08  Alexander Kurtakov  <akurtako at redhat.com>
-+    Add pdebuild and companions.
-+	* pdebuild/eclipse-copy-platform.sh: New file.
-+	* pdebuild/eclipse-pdebuild.sh: Likewise.
-+
-+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
-+
-+	* patches/eclipse-pde.build-add-package-build.patch: New file.
-+	* build.xml: Apply pdebuild script patch.
-+
-+2009-10-07  Andrew Overholt  <overholt at redhat.com>
-+
-+	* runtests.sh: Add missing line continuation.
-+
-+2009-10-07  Andrew Overholt  <overholt at redhat.com>
-+
-+	Bug #291531 - Work courtesy Niels Thykier
-+
-+	* swt_bundle.sh: Initial checkin (Niels Thykier).
-+	* build.xml: Add target to call script to extract SWT bundle for
-+	standalone packaging (Niels Thykier).
-+
-+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
-+
-+	* build.xml: Install shared dropins folder.
-+
-+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
-+
-+	* build.xml: Install icon in  /usr/share/pixmaps.
-+
-+2009-10-07  Alexander Kurtakov  <akurtako at redhat.com>
-+
-+	* build.xml: Fix patch applying to unbreak build.
-+
-+2009-10-06  Andrew Overholt  <overholt at redhat.com>
-+
-+	Bug #291504
-+
-+	* build.xml: Apply patch from Benjamin Drung to add link to the
-+	launcher binary in the installation directory.
-+
-+2009-10-06  Andrew Overholt  <overholt at redhat.com>
-+
-+	* patches/gtk2.18zorder.patch: Initial check-in of 3.5.1 back-port for
-+	(https://bugs.eclipse.org/287307).
-+	* build.xml: Apply GTK 2.18 z-order patch.  Organize patch section a
-+	bit.
-+
-+2009-10-05  Andrew Overholt  <overholt at redhat.com>
-+
-+	* runtests.sh: Move option parsing out of function.
-+	* build.xml: Generate top-level test report HTML file.
-+
- 2009-10-05  Alexander Kurtakov  <akurtako at redhat.com>
- 
- 	* pdebuild.xml: Add macrodef for running the buildScripts generation.
- 
-+2009-10-04  Andrew Overholt  <overholt at redhat.com>
-+
-+	* runtests.sh: Ignore missing SDK test properties file if not present
-+	whem removing.
-+
- 2009-10-02  Alexander Kurtakov  <akurtako at redhat.com>
- 
- 	* buildSDKSource.sh: Update ecf tag to the one used for 3.5.1.
-@@ -9,7 +83,7 @@
- 2009-10-01  Alexander Kurtakov  <akurtako at redhat.com>
- 
- 	* pdebuild.xml: Use buildTag variable instead of hard-coded value.
--	
-+
- 2009-10-01  Alexander Kurtakov  <akurtako at redhat.com>
- 
- 	* pdebuild.properties: Sync buildId and buildTag with build.properties.
-@@ -19,7 +93,7 @@
- 
- 	* build.properties: Separate buildId and buildTag.
- 	* build.xml: Likewise.
--	
-+
- 2009-09-30  Alexander Kurtakov  <akurtako at redhat.com>
- 
- 	* eclipse-build-generatedScripts.tar.bz2: Regenerate for 3.5.1.
-@@ -52,7 +126,7 @@
- 	* patches/tests-nostyletask.patch: New file.
- 	* build.xml: Apply patch to not use deprecated ant task.
- 	* junitHelper.xml: Likewise.
--	
-+
- 2009-09-25  Alexander Kurtakov  <akurtako at redhat.com>
- 
- 	* build.xml: Delete testBuild folder in clean.
-diff -pruN a/ecf-filetransfer-build.properties b/ecf-filetransfer-build.properties
---- a/ecf-filetransfer-build.properties	1970-01-01 01:00:00.000000000 +0100
-+++ b/ecf-filetransfer-build.properties	2009-10-12 14:50:41.041852000 +0200
-@@ -0,0 +1 @@
-+bin.includes = feature.xml
-diff -pruN a/ecf-filetransfer-feature.xml b/ecf-filetransfer-feature.xml
---- a/ecf-filetransfer-feature.xml	1970-01-01 01:00:00.000000000 +0100
-+++ b/ecf-filetransfer-feature.xml	2009-10-12 14:50:41.041852000 +0200
-@@ -0,0 +1,85 @@
-+<?xml version="1.0" encoding="UTF-8"?>
-+<feature
-+      id="org.eclipse.ecf.filetransfer_feature"
-+      label="ECF filetransfer"
-+      version="2.0.0">
-+
-+   <description url="http://www.example.com/description">
-+      [Enter Feature Description here.]
-+   </description>
-+
-+   <copyright url="http://www.example.com/copyright">
-+      [Enter Copyright Description here.]
-+   </copyright>
-+
-+   <license url="http://www.example.com/license">
-+      [Enter License Description here.]
-+   </license>
-+
-+
-+  <plugin
-+         id="org.eclipse.equinox.concurrent"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         unpack="false"/>
-+         
-+   <plugin
-+         id="org.eclipse.ecf"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         unpack="false"/>
-+
-+   <plugin
-+         id="org.eclipse.ecf.filetransfer"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         unpack="false"/>
-+
-+   <plugin
-+         id="org.eclipse.ecf.identity"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         unpack="false"/>
-+
-+   <plugin
-+         id="org.eclipse.ecf.provider.filetransfer"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         unpack="false"/>
-+         
-+   <plugin
-+         id="org.eclipse.ecf.provider.filetransfer.httpclient"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         unpack="false"/>
-+         
-+   <plugin
-+         id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         unpack="false"/>
-+
-+   <plugin
-+         id="org.eclipse.ecf.provider.filetransfer.ssl"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         fragment="true"
-+         unpack="false"/>
-+
-+   <plugin
-+         id="org.eclipse.ecf.ssl"
-+         download-size="0"
-+         install-size="0"
-+         version="0.0.0"
-+         fragment="true"
-+         unpack="false"/>
-+
-+</feature>
-diff -pruN a/junitHelper.xml b/junitHelper.xml
---- a/junitHelper.xml	2009-10-06 00:36:21.000000000 +0200
-+++ b/junitHelper.xml	2009-10-06 14:05:22.226682000 +0200
-@@ -20,4 +20,4 @@
- 		<xslt style="${eclipse-home}/plugins/org.eclipse.test_3.2.0/JUNIT.XSL" basedir="${xmlDir}" destdir="${htmlDir}" />
- 	</target>
- 
--</project>
-\ Kein Zeilenumbruch am Dateiende.
-+</project>
-diff -pruN a/patches/eclipse-pde.build-add-package-build.patch b/patches/eclipse-pde.build-add-package-build.patch
---- a/patches/eclipse-pde.build-add-package-build.patch	1970-01-01 01:00:00.000000000 +0100
-+++ b/patches/eclipse-pde.build-add-package-build.patch	2009-10-08 10:43:20.983704000 +0200
-@@ -0,0 +1,339 @@
-+### 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
-+diff -N templates/package-build/prepare-build-dir.sh
-+--- /dev/null	1 Jan 1970 00:00:00 -0000
-++++ templates/package-build/prepare-build-dir.sh	1 Jan 1970 00:00:00 -0000
-+@@ -0,0 +1,105 @@
-++#!/bin/sh
-++
-++if [ $# -lt 2 ]; then
-++  echo "usage: $0 <path to source dir> <path to build dir>"
-++  exit 1
-++fi
-++
-++if [ ! -d $1 ]; then
-++  echo "usage: $0 <path to source dir> <path to build dir>"
-++  exit 1
-++fi
-++
-++SOURCEDIR=$1
-++BUILDDIR=$2
-++TESTING=$3
-++
-++echo "preparing files in $1 for buildfile generation ..."
-++mkdir -p $BUILDDIR
-++
-++# make some ant build files to extract the id from the feature.xml, plugin.xml or the fragment.xml
-++mkdir -p $BUILDDIR/tmp
-++BUILDFILE=$BUILDDIR/tmp/build.xml
-++
-++echo "<project default=\"main\">
-++	<target name=\"main\">
-++               	<xmlproperty file=\"@type at .xml\" collapseAttributes=\"true\"/>
-++		<fail unless=\"@type at .id\" message=\"feature.id not set\"/>
-++               	<echo message=\"\${@type at .id}\" />
-++        </target>
-++</project>" > $BUILDFILE
-++
-++for type in feature plugin fragment; do
-++  CURBUILDFILE=$BUILDDIR/tmp/$type-build.xml
-++  cat $BUILDFILE | sed "s|@type@|$type|" > $CURBUILDFILE
-++done
-++
-++# make the directories eclipse is expecting
-++echo "  making the 'features' and 'plugins' directories"
-++mkdir -p $BUILDDIR/features $BUILDDIR/plugins
-++
-++# make symlinks for the features
-++FEATURES=$(find $SOURCEDIR -name feature.xml)
-++find $SOURCEDIR -name feature.xml | while read f; do
-++  PROJECTDIR=$(dirname "$f")
-++  inSDK=1
-++  inSDK=$(echo $PROJECTDIR | grep -c $BUILDDIR)
-++  if [ $inSDK == 0 ]; then
-++    PROJECTNAME=$(ant -Dbasedir="$PROJECTDIR" -f $BUILDDIR/tmp/feature-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
-++    ERROR=""
-++    if [ -z "$PROJECTNAME" ]; then
-++      echo "ERROR: could not determine the feature id for $PROJECTDIR"
-++      if [ $TESTING != true ]; then
-++        exit 1
-++      else
-++        ERROR="yes"
-++      fi
-++    fi
-++
-++    if [ "x$ERROR" != "xyes" ]; then
-++      if [[ $TESTING != true || `echo $PROJECTNAME | grep "org.eclipse"` ]]; then
-++        echo "  making symlink: $BUILDDIR/features/$PROJECTNAME -> $PROJECTDIR"
-++        ln -sfT "$PROJECTDIR" $BUILDDIR/features/"$PROJECTNAME"
-++      fi
-++    fi
-++  fi
-++done
-++
-++# make symlinks for plugins and fragments
-++PLUGINDIRS=$(find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq)
-++find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq | while read dir; do
-++  PROJECTNAME=""
-++  ERROR=""
-++  inSDK=1
-++  inSDK=$(echo $dir | grep -c $BUILDDIR)
-++  if [ $inSDK == 0 ]; then
-++    if [ -e "$dir/META-INF/MANIFEST.MF" ]; then
-++      PROJECTNAME=$(grep Bundle-SymbolicName $dir/META-INF/MANIFEST.MF | cut --delimiter=';' -f 1 | cut --delimiter=' ' -f 2)
-++    elif [ -e "$dir/plugin.xml" ]; then
-++      PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/plugin-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
-++    elif [ -e "$dir/fragment.xml" ]; then
-++      PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/fragment-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
-++    fi
-++
-++    if [ -z "$PROJECTNAME"  ]; then
-++      echo "ERROR: could not determine the plugin or fragment id for $dir"
-++      if [ $TESTING != true ]; then
-++        exit 1
-++      else
-++        ERROR="yes"
-++      fi
-++    fi
-++
-++    if [ "x$ERROR" != "xyes" ]; then
-++      if [[ $TESTING != true || `echo $PROJECTNAME | grep "org.eclipse"` ]]; then
-++        echo "  making symlink: $BUILDDIR/plugins/$PROJECTNAME -> $dir"
-++        ln -sfT "$dir" $BUILDDIR/plugins/"$PROJECTNAME"
-++      fi
-++    fi;
-++
-++  fi
-++
-++done
-++
-++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,15 @@
-++<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. at id@">
-++		<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
-++	</target>
-++	<target name="assemble. at id@. at configs@">
-++		<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,149 @@
-++<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}" />
-++	<replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@configs@" value="${configs}" />              
-++	<replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="," value="." />              
-++	<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} ${testing}" />
-++		</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
-diff -pruN a/patches/gtk2.18zorder.patch b/patches/gtk2.18zorder.patch
---- a/patches/gtk2.18zorder.patch	1970-01-01 01:00:00.000000000 +0100
-+++ b/patches/gtk2.18zorder.patch	2009-10-06 17:06:09.903152000 +0200
-@@ -0,0 +1,218 @@
-+### Eclipse Workspace Patch 1.0
-+#P org.eclipse.swt
-+Index: Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
-+===================================================================
-+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java,v
-+retrieving revision 1.380.2.1
-+diff -u -r1.380.2.1 Control.java
-+--- Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java	7 Aug 2009 18:50:38 -0000	1.380.2.1
-++++ Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java	30 Sep 2009 16:19:55 -0000
-+@@ -3332,6 +3332,30 @@
-+ 	region = null;
-+ }
-+ 
-++void restackWindow (int /*long*/ window, int /*long*/ sibling, boolean above) {
-++	    if (OS.GTK_VERSION >= OS.VERSION (2, 17, 11)) {
-++	    	OS.gdk_window_restack (window, sibling, above);
-++	    } else {
-++	    	/*
-++			* Feature in X. If the receiver is a top level, XConfigureWindow ()
-++			* will fail (with a BadMatch error) for top level shells because top
-++			* level shells are reparented by the window manager and do not share
-++			* the same X window parent.  This is the correct behavior but it is
-++			* unexpected.  The fix is to use XReconfigureWMWindow () instead.
-++			* When the receiver is not a top level shell, XReconfigureWMWindow ()
-++			* behaves the same as XConfigureWindow ().
-++			*/
-++			int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (window);
-++			int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (window);
-++			int xScreen = OS.XDefaultScreen (xDisplay);
-++			int flags = OS.CWStackMode | OS.CWSibling;			
-++			XWindowChanges changes = new XWindowChanges ();
-++			changes.sibling = OS.gdk_x11_drawable_get_xid (sibling);
-++			changes.stack_mode = above ? OS.Above : OS.Below;
-++			OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
-++	    }
-++	}
-++
-+ boolean sendDragEvent (int button, int stateMask, int x, int y, boolean isStateMask) {
-+ 	Event event = new Event ();
-+ 	event.button = button;
-+@@ -3682,15 +3706,7 @@
-+ 			if (!OS.GDK_WINDOWING_X11 ()) {
-+ 				OS.gdk_window_raise (enableWindow);
-+ 			} else {
-+-				int /*long*/ topWindow = OS.GTK_WIDGET_WINDOW (topHandle);			
-+-				int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (topWindow);
-+-				int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (enableWindow);
-+-				int xScreen = OS.XDefaultScreen (xDisplay);
-+-				int flags = OS.CWStackMode | OS.CWSibling;			
-+-				XWindowChanges changes = new XWindowChanges ();
-+-				changes.sibling = OS.gdk_x11_drawable_get_xid (topWindow);
-+-				changes.stack_mode = OS.Above;
-+-				OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
-++				restackWindow (enableWindow, OS.GTK_WIDGET_WINDOW (topHandle), true);
-+ 			}
-+ 			if (OS.GTK_WIDGET_VISIBLE (topHandle)) OS.gdk_window_show_unraised (enableWindow);
-+ 		}
-+@@ -4170,29 +4186,12 @@
-+ 				OS.gdk_window_lower (window);
-+ 			}
-+ 		} else {
-+-			XWindowChanges changes = new XWindowChanges ();
-+-			changes.sibling = OS.gdk_x11_drawable_get_xid (siblingWindow != 0 ? siblingWindow : redrawWindow);
-+-			changes.stack_mode = above ? OS.Above : OS.Below;
-+-			if (redrawWindow != 0 && siblingWindow == 0) changes.stack_mode = OS.Below;
-+-			int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (window);
-+-			int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (window);
-+-			int xScreen = OS.XDefaultScreen (xDisplay);
-+-			int flags = OS.CWStackMode | OS.CWSibling;
-+-			/*
-+-			* Feature in X. If the receiver is a top level, XConfigureWindow ()
-+-			* will fail (with a BadMatch error) for top level shells because top
-+-			* level shells are reparented by the window manager and do not share
-+-			* the same X window parent.  This is the correct behavior but it is
-+-			* unexpected.  The fix is to use XReconfigureWMWindow () instead.
-+-			* When the receiver is not a top level shell, XReconfigureWMWindow ()
-+-			* behaves the same as XConfigureWindow ().
-+-			*/
-+-			OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);			
-++			int /*long*/ siblingW = siblingWindow != 0 ? siblingWindow : redrawWindow;
-++			boolean stack_mode = above;
-++			if (redrawWindow != 0 && siblingWindow == 0) stack_mode = false;
-++			restackWindow (window, siblingW, stack_mode);
-+ 			if (enableWindow != 0) {
-+-				changes.sibling = OS.gdk_x11_drawable_get_xid (window);
-+-				changes.stack_mode = OS.Above;
-+-				xWindow = OS.gdk_x11_drawable_get_xid (enableWindow);
-+-				OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
-++				 restackWindow (enableWindow, window, true);
-+ 			}
-+ 		}
-+ 	}
-+Index: Eclipse SWT PI/gtk/library/os_stats.h
-+===================================================================
-+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h,v
-+retrieving revision 1.180
-+diff -u -r1.180 os_stats.h
-+--- Eclipse SWT PI/gtk/library/os_stats.h	29 May 2009 21:30:13 -0000	1.180
-++++ Eclipse SWT PI/gtk/library/os_stats.h	30 Sep 2009 16:19:54 -0000
-+@@ -511,6 +511,7 @@
-+ 	_1gdk_1window_1raise_FUNC,
-+ 	_1gdk_1window_1remove_1filter_FUNC,
-+ 	_1gdk_1window_1resize_FUNC,
-++	_1gdk_1window_1restack_FUNC,
-+ 	_1gdk_1window_1scroll_FUNC,
-+ 	_1gdk_1window_1set_1accept_1focus_FUNC,
-+ 	_1gdk_1window_1set_1back_1pixmap_FUNC,
-+Index: Eclipse SWT PI/gtk/library/os_custom.h
-+===================================================================
-+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h,v
-+retrieving revision 1.80
-+diff -u -r1.80 os_custom.h
-+--- Eclipse SWT PI/gtk/library/os_custom.h	29 May 2009 21:30:14 -0000	1.80
-++++ Eclipse SWT PI/gtk/library/os_custom.h	30 Sep 2009 16:19:54 -0000
-+@@ -112,6 +112,7 @@
-+ #define gtk_status_icon_set_tooltip_LIB "libgtk-x11-2.0.so.0"
-+ #define gtk_window_get_group_LIB "libgtk-x11-2.0.so.0"
-+ #define gtk_window_get_opacity_LIB "libgtk-x11-2.0.so.0"
-++#define gdk_window_restack_LIB "libgdk-x11-2.0.so.0"
-+ #define gdk_window_set_keep_above_LIB "libgdk-x11-2.0.so.0"
-+ #define gdk_window_set_accept_focus_LIB "libgdk-x11-2.0.so.0"
-+ #define gtk_window_set_opacity_LIB "libgtk-x11-2.0.so.0"
-+Index: Eclipse SWT PI/gtk/library/os_stats.c
-+===================================================================
-+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c,v
-+retrieving revision 1.180
-+diff -u -r1.180 os_stats.c
-+--- Eclipse SWT PI/gtk/library/os_stats.c	29 May 2009 21:30:13 -0000	1.180
-++++ Eclipse SWT PI/gtk/library/os_stats.c	30 Sep 2009 16:19:54 -0000
-+@@ -8,7 +8,7 @@
-+  * the LGPL accompanying this distribution and there is any conflict
-+  * between the two license versions, the terms of the LGPL accompanying
-+  * this distribution shall govern.
-+- * 
-++ *
-+  * Contributors:
-+  *     IBM Corporation - initial API and implementation
-+  *******************************************************************************/
-+@@ -18,8 +18,8 @@
-+ 
-+ #ifdef NATIVE_STATS
-+ 
-+-int OS_nativeFunctionCount = 1291;
-+-int OS_nativeFunctionCallCount[1291];
-++int OS_nativeFunctionCount = 1292;
-++int OS_nativeFunctionCallCount[1292];
-+ char * OS_nativeFunctionNames[] = {
-+ #ifndef JNI64
-+ 	"Call__IIII",
-+@@ -503,6 +503,7 @@
-+ 	"_1gdk_1window_1raise",
-+ 	"_1gdk_1window_1remove_1filter",
-+ 	"_1gdk_1window_1resize",
-++	"_1gdk_1window_1restack",
-+ 	"_1gdk_1window_1scroll",
-+ 	"_1gdk_1window_1set_1accept_1focus",
-+ 	"_1gdk_1window_1set_1back_1pixmap",
-+Index: Eclipse SWT PI/gtk/library/os.c
-+===================================================================
-+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c,v
-+retrieving revision 1.272
-+diff -u -r1.272 os.c
-+--- Eclipse SWT PI/gtk/library/os.c	29 May 2009 21:30:14 -0000	1.272
-++++ Eclipse SWT PI/gtk/library/os.c	30 Sep 2009 16:19:54 -0000
-+@@ -5944,6 +5944,24 @@
-+ }
-+ #endif
-+ 
-++#ifndef NO__1gdk_1window_1restack
-++JNIEXPORT void JNICALL OS_NATIVE(_1gdk_1window_1restack)
-++	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jboolean arg2)
-++{
-++	OS_NATIVE_ENTER(env, that, _1gdk_1window_1restack_FUNC);
-++/*
-++	gdk_window_restack((GdkWindow *)arg0, (GdkWindow *)arg1, (gboolean)arg2);
-++*/
-++	{
-++		LOAD_FUNCTION(fp, gdk_window_restack)
-++		if (fp) {
-++			((void (CALLING_CONVENTION*)(GdkWindow *, GdkWindow *, gboolean))fp)((GdkWindow *)arg0, (GdkWindow *)arg1, (gboolean)arg2);
-++		}
-++	}
-++	OS_NATIVE_EXIT(env, that, _1gdk_1window_1restack_FUNC);
-++}
-++#endif
-++
-+ #ifndef NO__1gdk_1window_1scroll
-+ JNIEXPORT void JNICALL OS_NATIVE(_1gdk_1window_1scroll)
-+ 	(JNIEnv *env, jclass that, jintLong arg0, jint arg1, jint arg2)
-+Index: Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
-+===================================================================
-+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java,v
-+retrieving revision 1.525.2.1
-+diff -u -r1.525.2.1 OS.java
-+--- Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	20 Aug 2009 19:16:37 -0000	1.525.2.1
-++++ Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	30 Sep 2009 16:19:55 -0000
-+@@ -4887,6 +4887,21 @@
-+ 		lock.unlock();
-+ 	}
-+ }
-++/** 
-++ * @method flags=dynamic
-++ * @param window cast=(GdkWindow *)
-++ * @param sibling cast=(GdkWindow *)
-++ * @param above cast=(gboolean)
-++ */
-++public static final native void _gdk_window_restack(int /*long*/ window, int /*long*/ sibling, boolean above);
-++public static final void gdk_window_restack(int /*long*/ window, int /*long*/ sibling, boolean above) {
-++	lock.lock();
-++	try {
-++		_gdk_window_restack(window, sibling, above);
-++	} finally {
-++		lock.unlock();
-++	}
-++}
-+ /** @param window cast=(GdkWindow *) */
-+ public static final native void _gdk_window_scroll(int /*long*/ window, int dx, int dy);
-+ public static final void gdk_window_scroll(int /*long*/ window, int dx, int dy) {
-diff -pruN a/pdebuild/eclipse-copy-platform.sh b/pdebuild/eclipse-copy-platform.sh
---- a/pdebuild/eclipse-copy-platform.sh	1970-01-01 01:00:00.000000000 +0100
-+++ b/pdebuild/eclipse-copy-platform.sh	2009-10-08 11:04:18.677711000 +0200
-@@ -0,0 +1,77 @@
-+#! /bin/sh
-+
-+# We need to make our own copy of the eclipse platform in order to
-+# build against it.  We do this since the build root might already
-+# contain a copy of the plugin we are building -- and the eclipse
-+# releng scripts fail in this situation.  We put this script in the
-+# eclipse core so that it is easy to use from other spec files.
-+
-+# Arguments are:
-+# * directory where results should end up (script will make it)
-+# * base location of eclipse platform install
-+# * an optional string that is used to select non-platform
-+#   plugins and features.  At present if a plugin or feature has
-+#   this as a substring, it will be included.  You need only run
-+#   this script once, it will link both the platform and the other
-+#   optionally-selected parts in a single invocation.
-+
-+# Test to see if the minimum arguments
-+# are specified
-+
-+if [ $# -lt 2 ]; then
-+  echo "Usage: copy-platform where eclipse_base optional_directories"
-+  echo "For example: copy-plaform ~/SDK /usr/lib/eclipse cdt pydev jdt"
-+  exit 1
-+fi
-+
-+where=$1; shift
-+eclipse=$1; shift
-+
-+datadir=/usr/share/eclipse
-+
-+mkdir -p $where/plugins $where/features
-+cd $where
-+
-+# Are there any optional arguments left?
-+if [ $# -gt 0 ]; then
-+   for optional in "$@"; do
-+      (cd $eclipse; ls -d plugins/*"$optional"* features/*"$optional"*) |
-+      while read f; do
-+         [ ! -e $f ] && ln -s $eclipse/$f $f
-+      done
-+      (cd $eclipse/dropins; ls -d *"$optional"*) |
-+      while read f; do
-+	  if [ -e $eclipse/dropins/$f/eclipse ]; then
-+	      (cd $eclipse/dropins/$f/eclipse; ls -d plugins/* features/*) |
-+	      while read g; do
-+		  [ ! -e $g ] && \
-+		    ln -s $eclipse/dropins/$f/eclipse/$g $g
-+	      done
-+          else
-+	      (cd $eclipse/dropins/$f; ls -d plugins/* features/*) |
-+	      while read g; do
-+	          [ ! -e $g ] && \
-+		    ln -s $eclipse/dropins/$f/$g $g
-+	      done
-+          fi
-+      done
-+      (cd $datadir/dropins; ls -d *"$optional"*) |
-+      while read f; do
-+	  if [ -e $datadir/dropins/$f/eclipse ]; then
-+	      (cd $datadir/dropins/$f/eclipse; ls -d plugins/* features/*) |
-+	      while read g; do
-+		  [ ! -e $g ] && \
-+		    ln -s $datadir/dropins/$f/eclipse/$g $g
-+	      done
-+          else
-+	      (cd $datadir/dropins/$f; ls -d plugins/* features/*) |
-+	      while read g; do
-+	          [ ! -e $g ] && \
-+		    ln -s $datadir/dropins/$g $g
-+	      done
-+          fi
-+      done
-+   done
-+fi
-+
-+# Code after this point is automatically created by eclipse.spec.
-diff -pruN a/pdebuild/eclipse-pdebuild.sh b/pdebuild/eclipse-pdebuild.sh
---- a/pdebuild/eclipse-pdebuild.sh	1970-01-01 01:00:00.000000000 +0100
-+++ b/pdebuild/eclipse-pdebuild.sh	2009-10-08 11:04:18.677711000 +0200
-@@ -0,0 +1,303 @@
-+#!/bin/bash
-+
-+# args:  [-f <feature>] [-d <dependencies (outside SDK)>] [-a <additional build args>] [-j <JVM args>] [-v] [-D] [-o <Orbit dependencies>]
-+
-+function usage {
-+cat << _EOF_
-+usage: $0 [<options>]
-+
-+Use PDE Build to build Eclipse features
-+
-+Optional arguments:
-+   -h      Show this help message
-+   -f      Feature ID to build
-+   -d      Plugin dependencies in addition to Eclipse SDK
-+           (space-separated, names on which to glob features and plugins)
-+   -a      Additional build arguments (ex. -DjavacSource=1.5)
-+   -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      Directory containing Orbit-style dependencies
-+   -z      Comma-delimited list of dependency zips (not for use during RPM build)
-+_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 [ $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
-+        else
-+            echo "/bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse"
-+            /bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse
-+        fi
-+    else
-+        if [ $verbose -eq 1 ]; then
-+            echo "/bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies"
-+            /bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies
-+        else
-+            echo "/bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies"
-+            /bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies
-+        fi
-+    fi
-+}
-+
-+function findFeatureId {
-+    # We can determine the feature ID if we have only one
-+    numFeatures=$(find $sourceDir -name feature.xml | wc -l)
-+    if [ $numFeatures -ne 1 ]; then
-+        #echo "# features found = $numFeatures"
-+        echo "Cannot determine feature ID.  Please specify with -f."
-+        usage
-+        exit 1
-+    fi
-+    
-+    featureXml=$(find $sourceDir -name feature.xml)
-+    
-+    # Taken from Ben Konrath's package-build
-+    # make an ant build files to extract the id from the feature.xml
-+    buildFile=$buildDir/findFeatureForRPM-tmp-build.xml
-+    
-+    echo "<project default=\"main\">
-+    	<target name=\"main\">
-+                   	<xmlproperty file=\"$featureXml\" collapseAttributes=\"true\"/>
-+    		<fail unless=\"feature.id\" message=\"feature.id not set\"/>
-+                   	<echo message=\"\${feature.id}\" />
-+            </target>
-+    </project>" > $buildFile
-+    
-+    featureId=$(ant -Dbasedir=$sourceDir -f $buildFile 2>&1 | grep echo | cut --delimiter=' ' -f 7)
-+    rm $buildFile
-+}
-+
-+function findFeatureNameAndVersion {
-+    featureXml=$(find $sourceDir -name feature.xml | while read f; do grep -l id=\"$featureId\" $f; done)
-+    
-+    buildFile=$buildDir/findFeatureForRPM-tmp-build.xml
-+    
-+    echo "<project default=\"main\">
-+    	<target name=\"main\">
-+                   	<xmlproperty file=\"$featureXml\" collapseAttributes=\"true\"/>
-+    		<fail unless=\"feature.id\" message=\"feature.id not set\"/>
-+                   	<echo message=\"\${feature.label}\" />
-+            </target>
-+    </project>" > $buildFile
-+    
-+    featureName=$(ant -Dbasedir=$sourceDir -f $buildFile 2>&1 | grep echo | sed "s/.*\[echo\]\ //")
-+    rm $buildFile
-+
-+    echo "<project default=\"main\">
-+    	<target name=\"main\">
-+                   	<xmlproperty file=\"$featureXml\" collapseAttributes=\"true\"/>
-+    		<fail unless=\"feature.id\" message=\"feature.id not set\"/>
-+                   	<echo message=\"\${feature.version}\" />
-+            </target>
-+    </project>" > $buildFile
-+    
-+    featureVersion=$(ant -Dbasedir=$sourceDir -f $buildFile 2>&1 | grep echo | sed "s/.*\[echo\]\ //")
-+    rm $buildFile
-+}
-+
-+function findMaxBREE {
-+	manifests=$(find $sourceDir -name MANIFEST.MF)
-+	maxBree=1.4
-+	for i in $manifests; do
-+		breeLine=$(cat $i|grep RequiredExecutionEnvironment|cut -c37-|sed 's/^ *\(.*\) *$/\1/')
-+		case $breeLine in
-+         "J2SE-1.5")
-+         	 bree=1.5
-+             ;;
-+         "JavaSE-1.6")
-+         	 bree=1.6
-+             ;;
-+     	esac
-+     	if [ "$bree" \> "$maxBree" ]; then
-+     		maxBree=$bree
-+     	fi
-+    done
-+}
-+
-+sourceDir=$PWD
-+buildDir=$PWD/build
-+SDK=$buildDir/SDK
-+homeDir=$buildDir/home
-+datadir=`rpm --eval "%{_libdir}"`
-+pdeBuildDir=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_ at PDEBUILDVERSION@
-+
-+featureId=
-+dependencies=
-+additionalArgs=
-+vmArgs=
-+verbose=0
-+dryRun=0
-+debugPlatform=0
-+orbitDepsDir=
-+p2Generate=
-+testing=false
-+zipDeps=
-+
-+# See above.  r = dry run (used for testing)
-+while getopts “hf:d:z:a:j:tvrDo:” OPTION
-+do
-+     case $OPTION in
-+         h)
-+             usage
-+             exit
-+             ;;
-+         f)
-+             featureId=$OPTARG
-+             ;;
-+         d)
-+             dependencies=$OPTARG
-+             ;;
-+         a)
-+             additionalArgs=$OPTARG
-+             ;;
-+         j)
-+             vmArgs=$OPTARG
-+             ;;
-+         t)
-+             testing=true
-+             ;;
-+         v)
-+             verbose=1
-+             ;;
-+         r)
-+             dryRun=1
-+             ;;
-+         D)
-+             debugPlatform=1
-+             ;;
-+         o)
-+             orbitDepsDir=$OPTARG
-+             ;;
-+         z)
-+             zipDeps=$OPTARG
-+             ;;
-+         ?)
-+             usage
-+             exit
-+             ;;
-+     esac
-+done
-+
-+echo "mkdir -p $buildDir"
-+if [ $dryRun -ne 1 ]; then
-+    mkdir -p $buildDir
-+fi
-+
-+# Eclipse may try to write to the building user's home directory so we create a
-+# temporary one for use by the build.
-+echo "mkdir -p $homeDir"
-+if [ $dryRun -ne 1 ]; then
-+    mkdir -p $homeDir
-+fi
-+
-+if [ -z $featureId ]; then
-+    findFeatureId
-+fi
-+
-+if [ -z $featureId ]; then
-+    echo "Cannot determine feature ID.  Please specify with -f."
-+    usage
-+    exit 1
-+fi
-+
-+findFeatureNameAndVersion
-+
-+echo "Building feature = $featureId."
-+
-+if [ -z "$dependencies" ]; then
-+    if [ $verbose -eq 1 ]; then
-+        echo "Assuming no dependencies except Eclipse SDK."
-+    fi
-+fi
-+
-+# Symlink the SDK and dependencies for build
-+if [ -z "$dependencies" ]; then
-+    echo "Symlinking SDK into $SDK directory."
-+else
-+    echo "Symlinking SDK and \"$dependencies\" into $SDK directory."
-+fi
-+if [ $dryRun -ne 1 ]; then
-+    copyPlatform
-+fi
-+
-+if [ $debugPlatform -eq 1 ]; then
-+    debugPlatformArgs="-debug -consolelog"
-+fi
-+
-+if [ "x$orbitDepsDir" != "x" ]; then
-+    orbitDeps="-DorbitDepsDir=\"$orbitDepsDir\""
-+fi
-+
-+if [ "x$zipDeps" != "x" ]; then
-+    OLD_IFS="$IFS"
-+    IFS=","
-+    zipDepsArray=($zipDeps)
-+    IFS="$OLD_IFS"
-+    numZips=${#zipDepsArray[@]}
-+    for (( i=0; i< $numZips; i++ )); do
-+        thisZip=${zipDepsArray[$i]}
-+        thisFile=$(basename $thisZip)
-+        thisURL=$(echo $thisZip | sed s/$thisFile//)
-+        if [ ! -e $thisFile ]; then
-+            wget -q $thisZip
-+        fi
-+        mkdir -p tmp
-+        unzip -q -o $thisFile -d tmp
-+        cp -raf tmp/eclipse/features/* $SDK/features
-+        cp -raf tmp/eclipse/plugins/* $SDK/plugins
-+        rm -rf tmp
-+        thisZip=
-+        thisFile=
-+        thisURL=
-+    done
-+fi
-+if [ -z "$additionalArgs" ]; then
-+	findMaxBREE
-+	additionalArgs="-DjavacSource=$maxBree -DjavacTarget=$maxBree"
-+fi
-+
-+echo "Starting build:"
-+
-+if [ $testing != true ]; then
-+  java -cp $SDK/startup.jar \
-+    org.eclipse.core.launcher.Main \
-+    -application org.eclipse.ant.core.antRunner \
-+    $debugPlatformArgs \
-+    -Dtype=feature \
-+    -Did=$featureId \
-+    -DbaseLocation=$SDK \
-+    -DsourceDirectory=$sourceDir \
-+    -DbuildDirectory=$buildDir \
-+    -Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_ at PDEBUILDVERSION@/templates/package-build \
-+    $orbitDeps \
-+    -Dtesting="$testing" \
-+    $additionalArgs \
-+    -f $pdeBuildDir/scripts/build.xml \
-+    -vmargs \
-+    -Duser.home=$homeDir \
-+    $vmArgs
-+
-+else
-+  java -cp $SDK/startup.jar \
-+    org.eclipse.core.launcher.Main \
-+    -application org.eclipse.ant.core.antRunner \
-+    $debugPlatformArgs \
-+    -Dtype=feature \
-+    -Did=$featureId \
-+    -DbaseLocation=$SDK \
-+    -DsourceDirectory=$sourceDir \
-+    -DbuildDirectory=$buildDir \
-+    -Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_ at PDEBUILDVERSION@/templates/package-build \
-+    $orbitDeps \
-+    -Dtesting="$testing" \
-+    $additionalArgs \
-+    -f $pdeBuildDir/scripts/build.xml \
-+    -vmargs \
-+    -Duser.home=$homeDir \
-+    $vmArgs
-+fi
-diff -pruN a/README.mediawiki b/README.mediawiki
---- a/README.mediawiki	2009-10-06 00:36:21.000000000 +0200
-+++ b/README.mediawiki	2009-10-06 18:19:12.204806000 +0200
-@@ -10,7 +10,7 @@ Tasks completed so far:
- To test it do the following:
- 
- <!-- FIXME:  Include SVN instructions as an alternative -->
--* generate source using <tt>./buildSource.sh</tt> (alternatively, look for 3.5 sources here:  http://download.eclipse.org/technology/linuxtools/eclipse-build/ -- get the tarball for 3.5:  eclipse-I20090611-1540-fetched-src.tar.bz2 and verify its md5sum matches)
-+* generate source using <tt>./buildSource.sh</tt> (alternatively, look for 3.5.1 sources here:  http://download.eclipse.org/technology/linuxtools/eclipse-build/ -- get the tarball for 3.5.1:  eclipse-R3_5_1-fetched-src.tar.bz2 and verify its md5sum matches)
- ** <tt>./buildSource.sh -workdir /tmp/eclipseSDKBuild</tt>
- * if you are using pre-generated source tarballs, check out basebuilder:
- ** <tt>mkdir -p /tmp/eclipseSDKBuild; cd /tmp/eclipseSDKBuild; cvs -d:pserver:anonymous at dev.eclipse.org:/cvsroot/eclipse co -r R35_M7 org.eclipse.releng.basebuilder</tt>
-@@ -21,4 +21,4 @@ To test it do the following:
- You should get:
- <!-- Not anymore.  We need to fix this.
- * all the dependencies of pdebuild-ant in the bootstrap/plugins folder. -->
--* working Eclipse SDK 3.5 build in build/(build Id)/installation directory
-\ Kein Zeilenumbruch am Dateiende.
-+* working Eclipse SDK 3.5.1 build in build/(build Id)/installation directory
-\ Kein Zeilenumbruch am Dateiende.
-diff -pruN a/runtests.sh b/runtests.sh
---- a/runtests.sh	2009-10-06 00:36:21.000000000 +0200
-+++ b/runtests.sh	2009-10-07 21:52:38.667578000 +0200
-@@ -102,35 +102,6 @@ function init() {
- 	fi
- }
- 
--function processArgs() {
--	# Command-line arguments
--	while getopts “hgdbe:” OPTION
--	do
--	     case $OPTION in
--	         d)
--	             debugTests=1
--	             ;;
--	         e)
--	             eclipseHome=$OPTARG
--	             ;;
--	         g)
--	             headless=0
--	             ;;
--	         t)
--	             timestamp=$OPTARG
--	             ;;
--	         h)
--	             usage
--	             exit
--	             ;;
--	         ?)
--	             usage
--	             exit
--	             ;;
--	     esac
--	done
--}
--
- function findXvncAndSetDisplay() {
- 	if [ ${headless} == 1 ]; then
- 		# Try to find Xvnc
-@@ -201,7 +172,7 @@ function runTestSuite() {
- 	-propertyfile $properties \
- 	-logger org.apache.tools.ant.DefaultLogger \
- 	-vmargs \
--	-Duser.home=${homedir}
-+	-Duser.home=${homedir} \
- 	-Dosgi.os=linux \
- 	-Dosgi.ws=gtk \
- 	-Dosgi.arch=${arch}
-@@ -270,9 +241,31 @@ function genHtml() {
- 	ant -Declipse-home=${eclipseHome} -Dresults=${results} -DxmlDir=${xmlDir} -f junitHelper.xml
- }
- 
-+# Command-line arguments
-+while getopts "de:gt:h" OPTION
-+do
-+     case $OPTION in
-+         d)
-+             debugTests=1
-+             ;;
-+         e)
-+             eclipseHome=$OPTARG
-+             ;;
-+         g)
-+             headless=0
-+             ;;
-+         t)
-+             timestamp=$OPTARG
-+             ;;
-+         h)
-+             usage
-+             exit 1
-+             ;;
-+     esac
-+done
-+
- init
--processArgs
- findXvncAndSetDisplay
- setArch
- findAndRunTestPlugins
--cleanupXvnc
-\ Kein Zeilenumbruch am Dateiende.
-+cleanupXvnc
-diff -pruN a/swt_bundle.sh b/swt_bundle.sh
---- a/swt_bundle.sh	1970-01-01 01:00:00.000000000 +0100
-+++ b/swt_bundle.sh	2009-10-07 21:42:51.829624000 +0200
-@@ -0,0 +1,49 @@
-+#!/bin/sh
-+#
-+# Extracts the libswt bundle from extracted org.eclipse.ogsi/bundles/ wasteland.
-+#
-+# usage: swt_bundle.sh <from> <to>
-+# Where <from> and <to> are the "root" of the "package dir".
-+#
-+#   swt_bundle.sh debian/eclipse-rcp debian/libswt-gtk-3.5-jni
-+#
-+# This would move
-+#      debian/eclipse-rcp/usr/lib/eclipse/configuration/org.eclipse.osgi/bundles/${swt_bundle}/
-+#  to
-+#      debian/libswt-gtk-3.5-jni/usr/lib/eclipse/configuration/org.eclipse.osgi/bundles/${swt_bundle}/
-+#
-+
-+# Fail on first error.
-+set -e
-+
-+FROM_PATH="$1"
-+TO_PATH="$2"
-+# allow special prefix and libdir.
-+# We just add a / to ensure it ends with a slash. 
-+# We also remove existing trailing slashes to "prettify" the path.
-+prefix=`echo "$3" | sed "s@/*\\$@@"`/
-+libdir=`echo "$4" | sed "s@/*\\$@@"`/
-+
-+BUNDLES_PATH=`echo "${prefix}${libdir}eclipse/configuration/org.eclipse.osgi/bundles" | sed "s@^/*@@"`
-+
-+# Check the variables and that the from path exists.
-+if [ "x$FROM_PATH" = x -o "x$TO_PATH" = x -o ! -d "$FROM_PATH" ] ; then
-+    echo "Missing from/to path or from is not a dir." >&2
-+    echo "FROM_PATH: ${FROM_PATH}" >&2
-+    echo "TO_PATH: ${TO_PATH}" >&2
-+    exit 1
-+fi
-+
-+BUNDLE_ID=`ls "${FROM_PATH}/${BUNDLES_PATH}"/*/*/.cp/libswt-gtk-*.so | perl -ne 'print "$1\n" if(m@/bundles/(\d+)/@);'`
-+
-+if [ "x$BUNDLE_ID" = x ] ; then
-+    echo "Cannot find swt's bundle ID please check the paths are correct." >&2
-+    echo "From: ${FROM_PATH}/${BUNDLES_PATH}" >&2
-+    echo "To: ${TO_PATH}/${BUNDLES_PATH}" >&2
-+    exit 1
-+fi
-+
-+# Create the base path if it does not exists.
-+test -d "${TO_PATH}/${BUNDLES_PATH}" || mkdir -p "${TO_PATH}/${BUNDLES_PATH}"
-+
-+mv "${FROM_PATH}/${BUNDLES_PATH}/${BUNDLE_ID}" "${TO_PATH}/${BUNDLES_PATH}/"
diff --git a/debian/patches/series b/debian/patches/series
index 77908ba..323180e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,4 +1,3 @@
-eclipse-build.patch
 libgnomeproxy.patch
 gnomemakefile-patch.patch
 bashisms.patch
diff --git a/ecf-filetransfer-build.properties b/ecf-filetransfer-build.properties
new file mode 100644
index 0000000..64f93a9
--- /dev/null
+++ b/ecf-filetransfer-build.properties
@@ -0,0 +1 @@
+bin.includes = feature.xml
diff --git a/ecf-filetransfer-feature.xml b/ecf-filetransfer-feature.xml
new file mode 100644
index 0000000..6cb633a
--- /dev/null
+++ b/ecf-filetransfer-feature.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+      id="org.eclipse.ecf.filetransfer_feature"
+      label="ECF filetransfer"
+      version="2.0.0">
+
+   <description url="http://www.example.com/description">
+      [Enter Feature Description here.]
+   </description>
+
+   <copyright url="http://www.example.com/copyright">
+      [Enter Copyright Description here.]
+   </copyright>
+
+   <license url="http://www.example.com/license">
+      [Enter License Description here.]
+   </license>
+
+
+  <plugin
+         id="org.eclipse.equinox.concurrent"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+         
+   <plugin
+         id="org.eclipse.ecf"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.ecf.filetransfer"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.ecf.identity"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.ecf.provider.filetransfer"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+         
+   <plugin
+         id="org.eclipse.ecf.provider.filetransfer.httpclient"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+         
+   <plugin
+         id="org.eclipse.ecf.provider.filetransfer.httpclient.ssl"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.ecf.provider.filetransfer.ssl"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"
+         unpack="false"/>
+
+   <plugin
+         id="org.eclipse.ecf.ssl"
+         download-size="0"
+         install-size="0"
+         version="0.0.0"
+         fragment="true"
+         unpack="false"/>
+
+</feature>
diff --git a/eclipse-R3_5_1-fetched-src.tar.bz2 b/eclipse-R3_5_1-fetched-src.tar.bz2
index c434f30..af54e43 100644
Binary files a/eclipse-R3_5_1-fetched-src.tar.bz2 and b/eclipse-R3_5_1-fetched-src.tar.bz2 differ
diff --git a/junitHelper.xml b/junitHelper.xml
index 9a2c6e7..cd3b92f 100644
--- a/junitHelper.xml
+++ b/junitHelper.xml
@@ -20,4 +20,4 @@
 		<xslt style="${eclipse-home}/plugins/org.eclipse.test_3.2.0/JUNIT.XSL" basedir="${xmlDir}" destdir="${htmlDir}" />
 	</target>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/patches/eclipse-pde.build-add-package-build.patch b/patches/eclipse-pde.build-add-package-build.patch
new file mode 100644
index 0000000..9c32c7c
--- /dev/null
+++ b/patches/eclipse-pde.build-add-package-build.patch
@@ -0,0 +1,339 @@
+### 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
+diff -N templates/package-build/prepare-build-dir.sh
+--- /dev/null	1 Jan 1970 00:00:00 -0000
++++ templates/package-build/prepare-build-dir.sh	1 Jan 1970 00:00:00 -0000
+@@ -0,0 +1,105 @@
++#!/bin/sh
++
++if [ $# -lt 2 ]; then
++  echo "usage: $0 <path to source dir> <path to build dir>"
++  exit 1
++fi
++
++if [ ! -d $1 ]; then
++  echo "usage: $0 <path to source dir> <path to build dir>"
++  exit 1
++fi
++
++SOURCEDIR=$1
++BUILDDIR=$2
++TESTING=$3
++
++echo "preparing files in $1 for buildfile generation ..."
++mkdir -p $BUILDDIR
++
++# make some ant build files to extract the id from the feature.xml, plugin.xml or the fragment.xml
++mkdir -p $BUILDDIR/tmp
++BUILDFILE=$BUILDDIR/tmp/build.xml
++
++echo "<project default=\"main\">
++	<target name=\"main\">
++               	<xmlproperty file=\"@type at .xml\" collapseAttributes=\"true\"/>
++		<fail unless=\"@type at .id\" message=\"feature.id not set\"/>
++               	<echo message=\"\${@type at .id}\" />
++        </target>
++</project>" > $BUILDFILE
++
++for type in feature plugin fragment; do
++  CURBUILDFILE=$BUILDDIR/tmp/$type-build.xml
++  cat $BUILDFILE | sed "s|@type@|$type|" > $CURBUILDFILE
++done
++
++# make the directories eclipse is expecting
++echo "  making the 'features' and 'plugins' directories"
++mkdir -p $BUILDDIR/features $BUILDDIR/plugins
++
++# make symlinks for the features
++FEATURES=$(find $SOURCEDIR -name feature.xml)
++find $SOURCEDIR -name feature.xml | while read f; do
++  PROJECTDIR=$(dirname "$f")
++  inSDK=1
++  inSDK=$(echo $PROJECTDIR | grep -c $BUILDDIR)
++  if [ $inSDK == 0 ]; then
++    PROJECTNAME=$(ant -Dbasedir="$PROJECTDIR" -f $BUILDDIR/tmp/feature-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
++    ERROR=""
++    if [ -z "$PROJECTNAME" ]; then
++      echo "ERROR: could not determine the feature id for $PROJECTDIR"
++      if [ $TESTING != true ]; then
++        exit 1
++      else
++        ERROR="yes"
++      fi
++    fi
++
++    if [ "x$ERROR" != "xyes" ]; then
++      if [[ $TESTING != true || `echo $PROJECTNAME | grep "org.eclipse"` ]]; then
++        echo "  making symlink: $BUILDDIR/features/$PROJECTNAME -> $PROJECTDIR"
++        ln -sfT "$PROJECTDIR" $BUILDDIR/features/"$PROJECTNAME"
++      fi
++    fi
++  fi
++done
++
++# make symlinks for plugins and fragments
++PLUGINDIRS=$(find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq)
++find $SOURCEDIR -name plugin.xml -o -name fragment.xml -o -name MANIFEST.MF | sed "s/plugin.xml//g" | sed "s/fragment.xml//g" | sed "s/META-INF\/MANIFEST.MF//" | sort | uniq | while read dir; do
++  PROJECTNAME=""
++  ERROR=""
++  inSDK=1
++  inSDK=$(echo $dir | grep -c $BUILDDIR)
++  if [ $inSDK == 0 ]; then
++    if [ -e "$dir/META-INF/MANIFEST.MF" ]; then
++      PROJECTNAME=$(grep Bundle-SymbolicName $dir/META-INF/MANIFEST.MF | cut --delimiter=';' -f 1 | cut --delimiter=' ' -f 2)
++    elif [ -e "$dir/plugin.xml" ]; then
++      PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/plugin-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
++    elif [ -e "$dir/fragment.xml" ]; then
++      PROJECTNAME=$(ant -Dbasedir=$dir -f $BUILDDIR/tmp/fragment-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
++    fi
++
++    if [ -z "$PROJECTNAME"  ]; then
++      echo "ERROR: could not determine the plugin or fragment id for $dir"
++      if [ $TESTING != true ]; then
++        exit 1
++      else
++        ERROR="yes"
++      fi
++    fi
++
++    if [ "x$ERROR" != "xyes" ]; then
++      if [[ $TESTING != true || `echo $PROJECTNAME | grep "org.eclipse"` ]]; then
++        echo "  making symlink: $BUILDDIR/plugins/$PROJECTNAME -> $dir"
++        ln -sfT "$dir" $BUILDDIR/plugins/"$PROJECTNAME"
++      fi
++    fi;
++
++  fi
++
++done
++
++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,15 @@
++<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. at id@">
++		<ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
++	</target>
++	<target name="assemble. at id@. at configs@">
++		<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,149 @@
++<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}" />
++	<replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@configs@" value="${configs}" />              
++	<replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="," value="." />              
++	<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} ${testing}" />
++		</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
diff --git a/patches/gtk2.18zorder.patch b/patches/gtk2.18zorder.patch
new file mode 100644
index 0000000..94efb52
--- /dev/null
+++ b/patches/gtk2.18zorder.patch
@@ -0,0 +1,218 @@
+### Eclipse Workspace Patch 1.0
+#P org.eclipse.swt
+Index: Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java,v
+retrieving revision 1.380.2.1
+diff -u -r1.380.2.1 Control.java
+--- Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java	7 Aug 2009 18:50:38 -0000	1.380.2.1
++++ Eclipse SWT/gtk/org/eclipse/swt/widgets/Control.java	30 Sep 2009 16:19:55 -0000
+@@ -3332,6 +3332,30 @@
+ 	region = null;
+ }
+ 
++void restackWindow (int /*long*/ window, int /*long*/ sibling, boolean above) {
++	    if (OS.GTK_VERSION >= OS.VERSION (2, 17, 11)) {
++	    	OS.gdk_window_restack (window, sibling, above);
++	    } else {
++	    	/*
++			* Feature in X. If the receiver is a top level, XConfigureWindow ()
++			* will fail (with a BadMatch error) for top level shells because top
++			* level shells are reparented by the window manager and do not share
++			* the same X window parent.  This is the correct behavior but it is
++			* unexpected.  The fix is to use XReconfigureWMWindow () instead.
++			* When the receiver is not a top level shell, XReconfigureWMWindow ()
++			* behaves the same as XConfigureWindow ().
++			*/
++			int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (window);
++			int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (window);
++			int xScreen = OS.XDefaultScreen (xDisplay);
++			int flags = OS.CWStackMode | OS.CWSibling;			
++			XWindowChanges changes = new XWindowChanges ();
++			changes.sibling = OS.gdk_x11_drawable_get_xid (sibling);
++			changes.stack_mode = above ? OS.Above : OS.Below;
++			OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
++	    }
++	}
++
+ boolean sendDragEvent (int button, int stateMask, int x, int y, boolean isStateMask) {
+ 	Event event = new Event ();
+ 	event.button = button;
+@@ -3682,15 +3706,7 @@
+ 			if (!OS.GDK_WINDOWING_X11 ()) {
+ 				OS.gdk_window_raise (enableWindow);
+ 			} else {
+-				int /*long*/ topWindow = OS.GTK_WIDGET_WINDOW (topHandle);			
+-				int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (topWindow);
+-				int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (enableWindow);
+-				int xScreen = OS.XDefaultScreen (xDisplay);
+-				int flags = OS.CWStackMode | OS.CWSibling;			
+-				XWindowChanges changes = new XWindowChanges ();
+-				changes.sibling = OS.gdk_x11_drawable_get_xid (topWindow);
+-				changes.stack_mode = OS.Above;
+-				OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
++				restackWindow (enableWindow, OS.GTK_WIDGET_WINDOW (topHandle), true);
+ 			}
+ 			if (OS.GTK_WIDGET_VISIBLE (topHandle)) OS.gdk_window_show_unraised (enableWindow);
+ 		}
+@@ -4170,29 +4186,12 @@
+ 				OS.gdk_window_lower (window);
+ 			}
+ 		} else {
+-			XWindowChanges changes = new XWindowChanges ();
+-			changes.sibling = OS.gdk_x11_drawable_get_xid (siblingWindow != 0 ? siblingWindow : redrawWindow);
+-			changes.stack_mode = above ? OS.Above : OS.Below;
+-			if (redrawWindow != 0 && siblingWindow == 0) changes.stack_mode = OS.Below;
+-			int /*long*/ xDisplay = OS.gdk_x11_drawable_get_xdisplay (window);
+-			int /*long*/ xWindow = OS.gdk_x11_drawable_get_xid (window);
+-			int xScreen = OS.XDefaultScreen (xDisplay);
+-			int flags = OS.CWStackMode | OS.CWSibling;
+-			/*
+-			* Feature in X. If the receiver is a top level, XConfigureWindow ()
+-			* will fail (with a BadMatch error) for top level shells because top
+-			* level shells are reparented by the window manager and do not share
+-			* the same X window parent.  This is the correct behavior but it is
+-			* unexpected.  The fix is to use XReconfigureWMWindow () instead.
+-			* When the receiver is not a top level shell, XReconfigureWMWindow ()
+-			* behaves the same as XConfigureWindow ().
+-			*/
+-			OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);			
++			int /*long*/ siblingW = siblingWindow != 0 ? siblingWindow : redrawWindow;
++			boolean stack_mode = above;
++			if (redrawWindow != 0 && siblingWindow == 0) stack_mode = false;
++			restackWindow (window, siblingW, stack_mode);
+ 			if (enableWindow != 0) {
+-				changes.sibling = OS.gdk_x11_drawable_get_xid (window);
+-				changes.stack_mode = OS.Above;
+-				xWindow = OS.gdk_x11_drawable_get_xid (enableWindow);
+-				OS.XReconfigureWMWindow (xDisplay, xWindow, xScreen, flags, changes);
++				 restackWindow (enableWindow, window, true);
+ 			}
+ 		}
+ 	}
+Index: Eclipse SWT PI/gtk/library/os_stats.h
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h,v
+retrieving revision 1.180
+diff -u -r1.180 os_stats.h
+--- Eclipse SWT PI/gtk/library/os_stats.h	29 May 2009 21:30:13 -0000	1.180
++++ Eclipse SWT PI/gtk/library/os_stats.h	30 Sep 2009 16:19:54 -0000
+@@ -511,6 +511,7 @@
+ 	_1gdk_1window_1raise_FUNC,
+ 	_1gdk_1window_1remove_1filter_FUNC,
+ 	_1gdk_1window_1resize_FUNC,
++	_1gdk_1window_1restack_FUNC,
+ 	_1gdk_1window_1scroll_FUNC,
+ 	_1gdk_1window_1set_1accept_1focus_FUNC,
+ 	_1gdk_1window_1set_1back_1pixmap_FUNC,
+Index: Eclipse SWT PI/gtk/library/os_custom.h
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h,v
+retrieving revision 1.80
+diff -u -r1.80 os_custom.h
+--- Eclipse SWT PI/gtk/library/os_custom.h	29 May 2009 21:30:14 -0000	1.80
++++ Eclipse SWT PI/gtk/library/os_custom.h	30 Sep 2009 16:19:54 -0000
+@@ -112,6 +112,7 @@
+ #define gtk_status_icon_set_tooltip_LIB "libgtk-x11-2.0.so.0"
+ #define gtk_window_get_group_LIB "libgtk-x11-2.0.so.0"
+ #define gtk_window_get_opacity_LIB "libgtk-x11-2.0.so.0"
++#define gdk_window_restack_LIB "libgdk-x11-2.0.so.0"
+ #define gdk_window_set_keep_above_LIB "libgdk-x11-2.0.so.0"
+ #define gdk_window_set_accept_focus_LIB "libgdk-x11-2.0.so.0"
+ #define gtk_window_set_opacity_LIB "libgtk-x11-2.0.so.0"
+Index: Eclipse SWT PI/gtk/library/os_stats.c
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c,v
+retrieving revision 1.180
+diff -u -r1.180 os_stats.c
+--- Eclipse SWT PI/gtk/library/os_stats.c	29 May 2009 21:30:13 -0000	1.180
++++ Eclipse SWT PI/gtk/library/os_stats.c	30 Sep 2009 16:19:54 -0000
+@@ -8,7 +8,7 @@
+  * the LGPL accompanying this distribution and there is any conflict
+  * between the two license versions, the terms of the LGPL accompanying
+  * this distribution shall govern.
+- * 
++ *
+  * Contributors:
+  *     IBM Corporation - initial API and implementation
+  *******************************************************************************/
+@@ -18,8 +18,8 @@
+ 
+ #ifdef NATIVE_STATS
+ 
+-int OS_nativeFunctionCount = 1291;
+-int OS_nativeFunctionCallCount[1291];
++int OS_nativeFunctionCount = 1292;
++int OS_nativeFunctionCallCount[1292];
+ char * OS_nativeFunctionNames[] = {
+ #ifndef JNI64
+ 	"Call__IIII",
+@@ -503,6 +503,7 @@
+ 	"_1gdk_1window_1raise",
+ 	"_1gdk_1window_1remove_1filter",
+ 	"_1gdk_1window_1resize",
++	"_1gdk_1window_1restack",
+ 	"_1gdk_1window_1scroll",
+ 	"_1gdk_1window_1set_1accept_1focus",
+ 	"_1gdk_1window_1set_1back_1pixmap",
+Index: Eclipse SWT PI/gtk/library/os.c
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c,v
+retrieving revision 1.272
+diff -u -r1.272 os.c
+--- Eclipse SWT PI/gtk/library/os.c	29 May 2009 21:30:14 -0000	1.272
++++ Eclipse SWT PI/gtk/library/os.c	30 Sep 2009 16:19:54 -0000
+@@ -5944,6 +5944,24 @@
+ }
+ #endif
+ 
++#ifndef NO__1gdk_1window_1restack
++JNIEXPORT void JNICALL OS_NATIVE(_1gdk_1window_1restack)
++	(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jboolean arg2)
++{
++	OS_NATIVE_ENTER(env, that, _1gdk_1window_1restack_FUNC);
++/*
++	gdk_window_restack((GdkWindow *)arg0, (GdkWindow *)arg1, (gboolean)arg2);
++*/
++	{
++		LOAD_FUNCTION(fp, gdk_window_restack)
++		if (fp) {
++			((void (CALLING_CONVENTION*)(GdkWindow *, GdkWindow *, gboolean))fp)((GdkWindow *)arg0, (GdkWindow *)arg1, (gboolean)arg2);
++		}
++	}
++	OS_NATIVE_EXIT(env, that, _1gdk_1window_1restack_FUNC);
++}
++#endif
++
+ #ifndef NO__1gdk_1window_1scroll
+ JNIEXPORT void JNICALL OS_NATIVE(_1gdk_1window_1scroll)
+ 	(JNIEnv *env, jclass that, jintLong arg0, jint arg1, jint arg2)
+Index: Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+===================================================================
+RCS file: /cvsroot/eclipse/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java,v
+retrieving revision 1.525.2.1
+diff -u -r1.525.2.1 OS.java
+--- Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	20 Aug 2009 19:16:37 -0000	1.525.2.1
++++ Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java	30 Sep 2009 16:19:55 -0000
+@@ -4887,6 +4887,21 @@
+ 		lock.unlock();
+ 	}
+ }
++/** 
++ * @method flags=dynamic
++ * @param window cast=(GdkWindow *)
++ * @param sibling cast=(GdkWindow *)
++ * @param above cast=(gboolean)
++ */
++public static final native void _gdk_window_restack(int /*long*/ window, int /*long*/ sibling, boolean above);
++public static final void gdk_window_restack(int /*long*/ window, int /*long*/ sibling, boolean above) {
++	lock.lock();
++	try {
++		_gdk_window_restack(window, sibling, above);
++	} finally {
++		lock.unlock();
++	}
++}
+ /** @param window cast=(GdkWindow *) */
+ public static final native void _gdk_window_scroll(int /*long*/ window, int dx, int dy);
+ public static final void gdk_window_scroll(int /*long*/ window, int dx, int dy) {
diff --git a/pdebuild/eclipse-copy-platform.sh b/pdebuild/eclipse-copy-platform.sh
new file mode 100755
index 0000000..05ed48f
--- /dev/null
+++ b/pdebuild/eclipse-copy-platform.sh
@@ -0,0 +1,77 @@
+#! /bin/sh
+
+# We need to make our own copy of the eclipse platform in order to
+# build against it.  We do this since the build root might already
+# contain a copy of the plugin we are building -- and the eclipse
+# releng scripts fail in this situation.  We put this script in the
+# eclipse core so that it is easy to use from other spec files.
+
+# Arguments are:
+# * directory where results should end up (script will make it)
+# * base location of eclipse platform install
+# * an optional string that is used to select non-platform
+#   plugins and features.  At present if a plugin or feature has
+#   this as a substring, it will be included.  You need only run
+#   this script once, it will link both the platform and the other
+#   optionally-selected parts in a single invocation.
+
+# Test to see if the minimum arguments
+# are specified
+
+if [ $# -lt 2 ]; then
+  echo "Usage: copy-platform where eclipse_base optional_directories"
+  echo "For example: copy-plaform ~/SDK /usr/lib/eclipse cdt pydev jdt"
+  exit 1
+fi
+
+where=$1; shift
+eclipse=$1; shift
+
+datadir=/usr/share/eclipse
+
+mkdir -p $where/plugins $where/features
+cd $where
+
+# Are there any optional arguments left?
+if [ $# -gt 0 ]; then
+   for optional in "$@"; do
+      (cd $eclipse; ls -d plugins/*"$optional"* features/*"$optional"*) |
+      while read f; do
+         [ ! -e $f ] && ln -s $eclipse/$f $f
+      done
+      (cd $eclipse/dropins; ls -d *"$optional"*) |
+      while read f; do
+	  if [ -e $eclipse/dropins/$f/eclipse ]; then
+	      (cd $eclipse/dropins/$f/eclipse; ls -d plugins/* features/*) |
+	      while read g; do
+		  [ ! -e $g ] && \
+		    ln -s $eclipse/dropins/$f/eclipse/$g $g
+	      done
+          else
+	      (cd $eclipse/dropins/$f; ls -d plugins/* features/*) |
+	      while read g; do
+	          [ ! -e $g ] && \
+		    ln -s $eclipse/dropins/$f/$g $g
+	      done
+          fi
+      done
+      (cd $datadir/dropins; ls -d *"$optional"*) |
+      while read f; do
+	  if [ -e $datadir/dropins/$f/eclipse ]; then
+	      (cd $datadir/dropins/$f/eclipse; ls -d plugins/* features/*) |
+	      while read g; do
+		  [ ! -e $g ] && \
+		    ln -s $datadir/dropins/$f/eclipse/$g $g
+	      done
+          else
+	      (cd $datadir/dropins/$f; ls -d plugins/* features/*) |
+	      while read g; do
+	          [ ! -e $g ] && \
+		    ln -s $datadir/dropins/$g $g
+	      done
+          fi
+      done
+   done
+fi
+
+# Code after this point is automatically created by eclipse.spec.
diff --git a/pdebuild/eclipse-pdebuild.sh b/pdebuild/eclipse-pdebuild.sh
new file mode 100755
index 0000000..79462bc
--- /dev/null
+++ b/pdebuild/eclipse-pdebuild.sh
@@ -0,0 +1,303 @@
+#!/bin/bash
+
+# args:  [-f <feature>] [-d <dependencies (outside SDK)>] [-a <additional build args>] [-j <JVM args>] [-v] [-D] [-o <Orbit dependencies>]
+
+function usage {
+cat << _EOF_
+usage: $0 [<options>]
+
+Use PDE Build to build Eclipse features
+
+Optional arguments:
+   -h      Show this help message
+   -f      Feature ID to build
+   -d      Plugin dependencies in addition to Eclipse SDK
+           (space-separated, names on which to glob features and plugins)
+   -a      Additional build arguments (ex. -DjavacSource=1.5)
+   -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      Directory containing Orbit-style dependencies
+   -z      Comma-delimited list of dependency zips (not for use during RPM build)
+_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 [ $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
+        else
+            echo "/bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse"
+            /bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse
+        fi
+    else
+        if [ $verbose -eq 1 ]; then
+            echo "/bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies"
+            /bin/sh -x $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies
+        else
+            echo "/bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies"
+            /bin/sh $datadir/eclipse/buildscripts/copy-platform $SDK $datadir/eclipse $dependencies
+        fi
+    fi
+}
+
+function findFeatureId {
+    # We can determine the feature ID if we have only one
+    numFeatures=$(find $sourceDir -name feature.xml | wc -l)
+    if [ $numFeatures -ne 1 ]; then
+        #echo "# features found = $numFeatures"
+        echo "Cannot determine feature ID.  Please specify with -f."
+        usage
+        exit 1
+    fi
+    
+    featureXml=$(find $sourceDir -name feature.xml)
+    
+    # Taken from Ben Konrath's package-build
+    # make an ant build files to extract the id from the feature.xml
+    buildFile=$buildDir/findFeatureForRPM-tmp-build.xml
+    
+    echo "<project default=\"main\">
+    	<target name=\"main\">
+                   	<xmlproperty file=\"$featureXml\" collapseAttributes=\"true\"/>
+    		<fail unless=\"feature.id\" message=\"feature.id not set\"/>
+                   	<echo message=\"\${feature.id}\" />
+            </target>
+    </project>" > $buildFile
+    
+    featureId=$(ant -Dbasedir=$sourceDir -f $buildFile 2>&1 | grep echo | cut --delimiter=' ' -f 7)
+    rm $buildFile
+}
+
+function findFeatureNameAndVersion {
+    featureXml=$(find $sourceDir -name feature.xml | while read f; do grep -l id=\"$featureId\" $f; done)
+    
+    buildFile=$buildDir/findFeatureForRPM-tmp-build.xml
+    
+    echo "<project default=\"main\">
+    	<target name=\"main\">
+                   	<xmlproperty file=\"$featureXml\" collapseAttributes=\"true\"/>
+    		<fail unless=\"feature.id\" message=\"feature.id not set\"/>
+                   	<echo message=\"\${feature.label}\" />
+            </target>
+    </project>" > $buildFile
+    
+    featureName=$(ant -Dbasedir=$sourceDir -f $buildFile 2>&1 | grep echo | sed "s/.*\[echo\]\ //")
+    rm $buildFile
+
+    echo "<project default=\"main\">
+    	<target name=\"main\">
+                   	<xmlproperty file=\"$featureXml\" collapseAttributes=\"true\"/>
+    		<fail unless=\"feature.id\" message=\"feature.id not set\"/>
+                   	<echo message=\"\${feature.version}\" />
+            </target>
+    </project>" > $buildFile
+    
+    featureVersion=$(ant -Dbasedir=$sourceDir -f $buildFile 2>&1 | grep echo | sed "s/.*\[echo\]\ //")
+    rm $buildFile
+}
+
+function findMaxBREE {
+	manifests=$(find $sourceDir -name MANIFEST.MF)
+	maxBree=1.4
+	for i in $manifests; do
+		breeLine=$(cat $i|grep RequiredExecutionEnvironment|cut -c37-|sed 's/^ *\(.*\) *$/\1/')
+		case $breeLine in
+         "J2SE-1.5")
+         	 bree=1.5
+             ;;
+         "JavaSE-1.6")
+         	 bree=1.6
+             ;;
+     	esac
+     	if [ "$bree" \> "$maxBree" ]; then
+     		maxBree=$bree
+     	fi
+    done
+}
+
+sourceDir=$PWD
+buildDir=$PWD/build
+SDK=$buildDir/SDK
+homeDir=$buildDir/home
+datadir=`rpm --eval "%{_libdir}"`
+pdeBuildDir=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_ at PDEBUILDVERSION@
+
+featureId=
+dependencies=
+additionalArgs=
+vmArgs=
+verbose=0
+dryRun=0
+debugPlatform=0
+orbitDepsDir=
+p2Generate=
+testing=false
+zipDeps=
+
+# See above.  r = dry run (used for testing)
+while getopts “hf:d:z:a:j:tvrDo:” OPTION
+do
+     case $OPTION in
+         h)
+             usage
+             exit
+             ;;
+         f)
+             featureId=$OPTARG
+             ;;
+         d)
+             dependencies=$OPTARG
+             ;;
+         a)
+             additionalArgs=$OPTARG
+             ;;
+         j)
+             vmArgs=$OPTARG
+             ;;
+         t)
+             testing=true
+             ;;
+         v)
+             verbose=1
+             ;;
+         r)
+             dryRun=1
+             ;;
+         D)
+             debugPlatform=1
+             ;;
+         o)
+             orbitDepsDir=$OPTARG
+             ;;
+         z)
+             zipDeps=$OPTARG
+             ;;
+         ?)
+             usage
+             exit
+             ;;
+     esac
+done
+
+echo "mkdir -p $buildDir"
+if [ $dryRun -ne 1 ]; then
+    mkdir -p $buildDir
+fi
+
+# Eclipse may try to write to the building user's home directory so we create a
+# temporary one for use by the build.
+echo "mkdir -p $homeDir"
+if [ $dryRun -ne 1 ]; then
+    mkdir -p $homeDir
+fi
+
+if [ -z $featureId ]; then
+    findFeatureId
+fi
+
+if [ -z $featureId ]; then
+    echo "Cannot determine feature ID.  Please specify with -f."
+    usage
+    exit 1
+fi
+
+findFeatureNameAndVersion
+
+echo "Building feature = $featureId."
+
+if [ -z "$dependencies" ]; then
+    if [ $verbose -eq 1 ]; then
+        echo "Assuming no dependencies except Eclipse SDK."
+    fi
+fi
+
+# Symlink the SDK and dependencies for build
+if [ -z "$dependencies" ]; then
+    echo "Symlinking SDK into $SDK directory."
+else
+    echo "Symlinking SDK and \"$dependencies\" into $SDK directory."
+fi
+if [ $dryRun -ne 1 ]; then
+    copyPlatform
+fi
+
+if [ $debugPlatform -eq 1 ]; then
+    debugPlatformArgs="-debug -consolelog"
+fi
+
+if [ "x$orbitDepsDir" != "x" ]; then
+    orbitDeps="-DorbitDepsDir=\"$orbitDepsDir\""
+fi
+
+if [ "x$zipDeps" != "x" ]; then
+    OLD_IFS="$IFS"
+    IFS=","
+    zipDepsArray=($zipDeps)
+    IFS="$OLD_IFS"
+    numZips=${#zipDepsArray[@]}
+    for (( i=0; i< $numZips; i++ )); do
+        thisZip=${zipDepsArray[$i]}
+        thisFile=$(basename $thisZip)
+        thisURL=$(echo $thisZip | sed s/$thisFile//)
+        if [ ! -e $thisFile ]; then
+            wget -q $thisZip
+        fi
+        mkdir -p tmp
+        unzip -q -o $thisFile -d tmp
+        cp -raf tmp/eclipse/features/* $SDK/features
+        cp -raf tmp/eclipse/plugins/* $SDK/plugins
+        rm -rf tmp
+        thisZip=
+        thisFile=
+        thisURL=
+    done
+fi
+if [ -z "$additionalArgs" ]; then
+	findMaxBREE
+	additionalArgs="-DjavacSource=$maxBree -DjavacTarget=$maxBree"
+fi
+
+echo "Starting build:"
+
+if [ $testing != true ]; then
+  java -cp $SDK/startup.jar \
+    org.eclipse.core.launcher.Main \
+    -application org.eclipse.ant.core.antRunner \
+    $debugPlatformArgs \
+    -Dtype=feature \
+    -Did=$featureId \
+    -DbaseLocation=$SDK \
+    -DsourceDirectory=$sourceDir \
+    -DbuildDirectory=$buildDir \
+    -Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_ at PDEBUILDVERSION@/templates/package-build \
+    $orbitDeps \
+    -Dtesting="$testing" \
+    $additionalArgs \
+    -f $pdeBuildDir/scripts/build.xml \
+    -vmargs \
+    -Duser.home=$homeDir \
+    $vmArgs
+
+else
+  java -cp $SDK/startup.jar \
+    org.eclipse.core.launcher.Main \
+    -application org.eclipse.ant.core.antRunner \
+    $debugPlatformArgs \
+    -Dtype=feature \
+    -Did=$featureId \
+    -DbaseLocation=$SDK \
+    -DsourceDirectory=$sourceDir \
+    -DbuildDirectory=$buildDir \
+    -Dbuilder=$datadir/eclipse/dropins/sdk/plugins/org.eclipse.pde.build_ at PDEBUILDVERSION@/templates/package-build \
+    $orbitDeps \
+    -Dtesting="$testing" \
+    $additionalArgs \
+    -f $pdeBuildDir/scripts/build.xml \
+    -vmargs \
+    -Duser.home=$homeDir \
+    $vmArgs
+fi
diff --git a/runtests.sh b/runtests.sh
old mode 100644
new mode 100755
index 201c8cf..0d9bc5c
--- a/runtests.sh
+++ b/runtests.sh
@@ -102,35 +102,6 @@ function init() {
 	fi
 }
 
-function processArgs() {
-	# Command-line arguments
-	while getopts “hgdbe:” OPTION
-	do
-	     case $OPTION in
-	         d)
-	             debugTests=1
-	             ;;
-	         e)
-	             eclipseHome=$OPTARG
-	             ;;
-	         g)
-	             headless=0
-	             ;;
-	         t)
-	             timestamp=$OPTARG
-	             ;;
-	         h)
-	             usage
-	             exit
-	             ;;
-	         ?)
-	             usage
-	             exit
-	             ;;
-	     esac
-	done
-}
-
 function findXvncAndSetDisplay() {
 	if [ ${headless} == 1 ]; then
 		# Try to find Xvnc
@@ -201,7 +172,7 @@ function runTestSuite() {
 	-propertyfile $properties \
 	-logger org.apache.tools.ant.DefaultLogger \
 	-vmargs \
-	-Duser.home=${homedir}
+	-Duser.home=${homedir} \
 	-Dosgi.os=linux \
 	-Dosgi.ws=gtk \
 	-Dosgi.arch=${arch}
@@ -270,9 +241,31 @@ function genHtml() {
 	ant -Declipse-home=${eclipseHome} -Dresults=${results} -DxmlDir=${xmlDir} -f junitHelper.xml
 }
 
+# Command-line arguments
+while getopts "de:gt:h" OPTION
+do
+     case $OPTION in
+         d)
+             debugTests=1
+             ;;
+         e)
+             eclipseHome=$OPTARG
+             ;;
+         g)
+             headless=0
+             ;;
+         t)
+             timestamp=$OPTARG
+             ;;
+         h)
+             usage
+             exit 1
+             ;;
+     esac
+done
+
 init
-processArgs
 findXvncAndSetDisplay
 setArch
 findAndRunTestPlugins
-cleanupXvnc
\ No newline at end of file
+cleanupXvnc
diff --git a/swt_bundle.sh b/swt_bundle.sh
new file mode 100755
index 0000000..45f1784
--- /dev/null
+++ b/swt_bundle.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+#
+# Extracts the libswt bundle from extracted org.eclipse.ogsi/bundles/ wasteland.
+#
+# usage: swt_bundle.sh <from> <to>
+# Where <from> and <to> are the "root" of the "package dir".
+#
+#   swt_bundle.sh debian/eclipse-rcp debian/libswt-gtk-3.5-jni
+#
+# This would move
+#      debian/eclipse-rcp/usr/lib/eclipse/configuration/org.eclipse.osgi/bundles/${swt_bundle}/
+#  to
+#      debian/libswt-gtk-3.5-jni/usr/lib/eclipse/configuration/org.eclipse.osgi/bundles/${swt_bundle}/
+#
+
+# Fail on first error.
+set -e
+
+FROM_PATH="$1"
+TO_PATH="$2"
+# allow special prefix and libdir.
+# We just add a / to ensure it ends with a slash. 
+# We also remove existing trailing slashes to "prettify" the path.
+prefix=`echo "$3" | sed "s@/*\\$@@"`/
+libdir=`echo "$4" | sed "s@/*\\$@@"`/
+
+BUNDLES_PATH=`echo "${prefix}${libdir}eclipse/configuration/org.eclipse.osgi/bundles" | sed "s@^/*@@"`
+
+# Check the variables and that the from path exists.
+if [ "x$FROM_PATH" = x -o "x$TO_PATH" = x -o ! -d "$FROM_PATH" ] ; then
+    echo "Missing from/to path or from is not a dir." >&2
+    echo "FROM_PATH: ${FROM_PATH}" >&2
+    echo "TO_PATH: ${TO_PATH}" >&2
+    exit 1
+fi
+
+BUNDLE_ID=`ls "${FROM_PATH}/${BUNDLES_PATH}"/*/*/.cp/libswt-gtk-*.so | perl -ne 'print "$1\n" if(m@/bundles/(\d+)/@);'`
+
+if [ "x$BUNDLE_ID" = x ] ; then
+    echo "Cannot find swt's bundle ID please check the paths are correct." >&2
+    echo "From: ${FROM_PATH}/${BUNDLES_PATH}" >&2
+    echo "To: ${TO_PATH}/${BUNDLES_PATH}" >&2
+    exit 1
+fi
+
+# Create the base path if it does not exists.
+test -d "${TO_PATH}/${BUNDLES_PATH}" || mkdir -p "${TO_PATH}/${BUNDLES_PATH}"
+
+mv "${FROM_PATH}/${BUNDLES_PATH}/${BUNDLE_ID}" "${TO_PATH}/${BUNDLES_PATH}/"


hooks/post-receive
-- 
eclipse - Powerful IDE written in java - Debian package.



More information about the pkg-java-commits mailing list