summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul de Vrieze <pauldv@gentoo.org>2009-01-06 14:29:58 +0000
committerPaul de Vrieze <pauldv@gentoo.org>2009-01-06 14:29:58 +0000
commit4ea92fc50fec131065e1cec36b84df733feeacca (patch)
treeb31d3cc6bb23b224dc7d09781b14e279992ce568 /dev-util
parentNew upstream versions not in portage (diff)
downloadpauldv-4ea92fc50fec131065e1cec36b84df733feeacca.tar.gz
pauldv-4ea92fc50fec131065e1cec36b84df733feeacca.tar.bz2
pauldv-4ea92fc50fec131065e1cec36b84df733feeacca.zip
New eclipse version that is also able to use the web toolkit / j2EE plugin
svn path=/trunk/overlay/; revision=74
Diffstat (limited to 'dev-util')
-rw-r--r--dev-util/eclipse-sdk/Manifest11
-rw-r--r--dev-util/eclipse-sdk/NOTES1
-rw-r--r--dev-util/eclipse-sdk/eclipse-sdk-3.4.1.ebuild346
-rw-r--r--dev-util/eclipse-sdk/files/3.4/ant-osgi-manifest.mf30
-rw-r--r--dev-util/eclipse-sdk/files/3.4/eclipse-3.440
-rw-r--r--dev-util/eclipse-sdk/files/3.4/eclipse-c-warning.patch43
-rw-r--r--dev-util/eclipse-sdk/files/3.4/eclipse_build-libs.diff45
-rw-r--r--dev-util/eclipse-sdk/files/3.4/eclipse_buildfix-pde.diff11
-rw-r--r--dev-util/eclipse-sdk/files/3.4/eclipserc25
-rw-r--r--dev-util/eclipse-sdk/files/3.4/fedora/eclipse-libupdatebuild2.patch10
-rw-r--r--dev-util/eclipse-sdk/files/3.4/fedora/eclipse-pde.build-add-package-build.patch273
11 files changed, 835 insertions, 0 deletions
diff --git a/dev-util/eclipse-sdk/Manifest b/dev-util/eclipse-sdk/Manifest
new file mode 100644
index 0000000..25266e6
--- /dev/null
+++ b/dev-util/eclipse-sdk/Manifest
@@ -0,0 +1,11 @@
+AUX 3.4/ant-osgi-manifest.mf 3165 RMD160 75444432268c9eef06cd4bb18352b77e426ed116 SHA1 c09dd82dee4708e8726b52569e25da0edda641df SHA256 1df8d7283d6f8fa3d1c3bbbbd832a5fd091f39b52d27d88b131064aeb81ab542
+AUX 3.4/eclipse-3.4 1287 RMD160 aa2b164c3e51d2813f00e1cbcbf3471de3732298 SHA1 f12f6643ffcfe2040c354c81db4d7073c9366906 SHA256 e834ada06a933ab9eb42c78b378b302f2a78150c911b7e6e324e2ccfc3dfcf60
+AUX 3.4/eclipse-c-warning.patch 1763 RMD160 a12e5c00d93534a0baff4b100e9ba08d6503da9c SHA1 7ccb60e0085e1fdb166e48613088454276b563d3 SHA256 3fdcad1d066200d276648b5cb6f6a7d10de89ca7a2ff6397edc0eda4128050cc
+AUX 3.4/eclipse_build-libs.diff 2054 RMD160 0d74a889ecfb10d62e7cb20bad73c956e8225503 SHA1 3c570014221537debd8ac568d7ab94da18d8ebb4 SHA256 ce181b5dd7dc47bbb60b965c0241b126a4b5edfdddae762596ed882fdbd637bf
+AUX 3.4/eclipse_buildfix-pde.diff 470 RMD160 f5868f6da880e6e930051893cba3e4277e927fb5 SHA1 f6ca5a75a40cff1d132af2b0d32367de744d4c62 SHA256 99450b348f6d41a489adfd51e1132f640eb8c43dfc4e9dd8e026aec66b41e30a
+AUX 3.4/eclipserc 1001 RMD160 a008502defce8739022f3e4333cde1fb7f3de0f5 SHA1 b712b8b53e27214b0b51f01206b6252c9ef4ab9c SHA256 c1d66404893b11b5c4d743a974a61277508c5d3fcec0aad96f50f620d42c6191
+AUX 3.4/fedora/eclipse-libupdatebuild2.patch 722 RMD160 6baa55ab7545f02e808ed05c901f77fb1d6709d4 SHA1 29f86a88e8ddc048e1fb4206a73824b2a4ed742d SHA256 ba7af44c1751b749591a53cb2c80852ef08f2f003917a5914042937e2d05b464
+AUX 3.4/fedora/eclipse-pde.build-add-package-build.patch 11604 RMD160 ba63781fa77452e4c36eae7e07d81b7d39f5ec29 SHA1 7ee30f8fc2732125e1f2ba01038922d995b21456 SHA256 d361930896c940c09a7faf41f2c8d7843d56be9b90391e91538890062e5d7803
+DIST eclipse-sourceBuild-srcIncluded-3.4.1.zip 106290656 RMD160 b5244cd94199b2d359e7e4d1f93018c9050e29de SHA1 484cdf90c05fab47492f7d2ce1fff64422373a9b SHA256 cb451bcc8866ab289b3a322e17eda7d20429463e8b3f329f66626b45b0fd6824
+EBUILD eclipse-sdk-3.4.1.ebuild 13048 RMD160 50b762a53ced24db46c9f3909ab5cf61f7dacf60 SHA1 5fcd93c318353d742a17875bf4be1d0d75aac61a SHA256 90bdd3859f43b34f52a3a4ed15afdf22c9b056c2b00d56dcf98d04be7237731b
+MISC NOTES 109 RMD160 46488535b78316726bcd68db93ba92f6660dce66 SHA1 e329071628cc4ac1401faa44c8e7976597cba2c6 SHA256 c914208f0ac7675bd3b6c9d306387dca733554bb771eb1add872c7b9c929dfba
diff --git a/dev-util/eclipse-sdk/NOTES b/dev-util/eclipse-sdk/NOTES
new file mode 100644
index 0000000..3b9e02d
--- /dev/null
+++ b/dev-util/eclipse-sdk/NOTES
@@ -0,0 +1 @@
+New eclipse to follow upstream. Also fix broken jdk1.6 support (and hopefully make the j2ee plugins working)
diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.4.1.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.4.1.ebuild
new file mode 100644
index 0000000..31217af
--- /dev/null
+++ b/dev-util/eclipse-sdk/eclipse-sdk-3.4.1.ebuild
@@ -0,0 +1,346 @@
+# Copyright 2007-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/eclipse-sdk/eclipse-sdk-3.4-r2.ebuild,v 1.1 2008/08/05 08:07:53 elvanor Exp $
+
+# To unbundle a jar, do the following:
+# 1) Rewrite the ebuild so it uses OSGi packaging
+# 2) Add the dependency and add it to gentoo_jars/system_jars
+# 3) Remove it from the build directory, and don't forget to modify the main Ant file
+# so that it does *NOT* copy the file at the end
+# 4) Install the symlink itself via java-pkg_jarfrom
+
+# Jetty, Tomcat-jasper have to stay bundled for now, until someone does some work on them.
+
+# Current patches are hard to maintain when revbumping.
+# Two solutions:
+# 1) Split patches so that there is one per file
+# 2) Use sed, better solution I would say.
+
+EAPI="1"
+JAVA_PKG_IUSE="doc"
+inherit java-pkg-2 java-ant-2 check-reqs
+
+DMF="R-${PV}-200809111700"
+MY_A="eclipse-sourceBuild-srcIncluded-${PV}.zip"
+
+DESCRIPTION="Eclipse Tools Platform"
+HOMEPAGE="http://www.eclipse.org/"
+SRC_URI="http://download.eclipse.org/eclipse/downloads/drops/${DMF}/${MY_A}"
+
+SLOT="3.4"
+LICENSE="EPL-1.0"
+IUSE="java6"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+S=${WORKDIR}
+PATCHDIR="${FILESDIR}/${SLOT}"
+FEDORA="${PATCHDIR}/fedora"
+ECLIPSE_DIR="/usr/lib/eclipse-${SLOT}"
+
+CDEPEND="dev-java/ant-eclipse-ecj:${SLOT}
+ dev-java/ant-core
+ dev-java/ant-nodeps
+ dev-java/junit:0
+ dev-java/junit:4
+ dev-java/swt:${SLOT}
+ >=dev-java/jsch-0.1.36-r1
+ >=dev-java/icu4j-3.8.1:0
+ >=dev-java/commons-el-1.0-r2
+ >=dev-java/commons-logging-1.1-r6
+ >=dev-java/tomcat-servlet-api-5.5.25-r1:2.4
+ dev-java/lucene:1.9
+ >=dev-java/lucene-analyzers-1.9.1-r1:1.9"
+RDEPEND="java6? ( >=virtual/jre-1.6 )
+ !java6? ( >=virtual/jre-1.5 )
+ ${CDEPEND}"
+DEPEND="!java6? ( >=virtual/jdk-1.5 )
+ java6? ( >=virtual/jdk-1.6 )
+ dev-java/cldc-api:1.1
+ app-arch/unzip
+ app-arch/zip
+ ${CDEPEND}"
+
+JAVA_PKG_BSFIX="off"
+
+pkg_setup() {
+ java-pkg-2_pkg_setup
+
+ CHECKREQS_MEMORY="512"
+ check_reqs
+
+ eclipsearch=${ARCH}
+ use amd64 && eclipsearch="x86_64"
+}
+
+src_unpack() {
+ unpack ${A}
+ patch-apply
+ remove-bundled-stuff
+
+ # Specific Gentoo tweaks for the build
+ if use java6; then
+ find "${S}" -type f -name '*.xml' -exec \
+ sed -r -e "s:(-encoding ISO-8859-1):\1 -nowarn:g" \
+ -e "s:(\"compilerArg\" value=\"):\1-nowarn :g" \
+ -e "s:output=\".*(txt|log).*\"::g" -i {} \;
+# -e "s:(<property name=\"javacSource\" value=)\".*\":\1\"1.6\":g" \
+# -e "s:(<property name=\"javacTarget\" value=)\".*\":\1\"1.6\":g" \
+ else
+ find "${S}" -type f -name '*.xml' -exec \
+ sed -r -e "s:(-encoding ISO-8859-1):\1 -nowarn:g" \
+ -e "s:(\"compilerArg\" value=\"):\1-nowarn :g" \
+ -e "s:(<property name=\"javacSource\" value=)\".*\":\1\"1.5\":g" \
+ -e "s:(<property name=\"javacTarget\" value=)\".*\":\1\"1.5\":g" \
+ -e "s:output=\".*(txt|log).*\"::g" -i {} \;
+ fi
+
+ # JDK home
+ sed -r -e "s:^(OPT_FLAGS *= *)(.*)-O (.*)$:\1\2${CFLAGS} \3:" \
+ -e "s:^(JAVA_HOME =) .*:\1 $(java-config --jdk-home):" \
+ -i plugins/org.eclipse.core.filesystem/natives/unix/linux/Makefile \
+ || die "sed Makefile failed"
+
+ while read line; do
+ java-ant_rewrite-classpath "${line}" > /dev/null
+ done < <(find "${S}" -type f -name "build.xml")
+}
+
+src_compile() {
+ # Figure out correct boot classpath
+ local bootclasspath=$(java-config --runtime)
+ einfo "Using boot classpath ${bootclasspath}"
+
+ java-pkg_force-compiler ecj-${SLOT}
+
+ # system_jars will be used when compiling (javac)
+ # gentoo_jars will be used when building JSPs and other ant tasks (not javac)
+ local system_jars="$(java-pkg_getjars swt-${SLOT},icu4j,ant-core,jsch,junit-4,tomcat-servlet-api-2.4,\
+lucene-1.9,lucene-analyzers-1.9):$(java-pkg_getjars --build-only ant-nodeps,cldc-api-1.1)"
+ local gentoo_jars="$(java-pkg_getjars ant-core,icu4j,jsch,commons-logging,commons-el,tomcat-servlet-api-2.4)"
+ local options="-q -Dnobootstrap=true -Dlibsconfig=true -Dbootclasspath=${bootclasspath} -DinstallOs=linux \
+ -DinstallWs=gtk -DinstallArch=${eclipsearch} -Djava5.home=$(java-config --jdk-home)"
+ use java6 && options="${options} -DJavaSE-1.6=${bootclasspath}"
+ use doc && options="${options} -Dgentoo.javadoc=true"
+
+ ANT_OPTS=-Xmx512M ANT_TASKS="ant-nodeps" \
+ eant ${options} \
+ -Dgentoo.classpath="${bootclasspath}:${system_jars}" \
+ -Dgentoo.jars="${gentoo_jars//:/,}"
+}
+
+src_install() {
+ dodir "/usr/lib"
+
+ [ -f "result/linux-gtk-${eclipsearch}-sdk.tar.gz" ] \
+ || die "tar.gz bundle was not built properly!"
+ tar xzf "result/linux-gtk-${eclipsearch}-sdk.tar.gz" -C "${D}/usr/lib" \
+ || die "Failed to extract the built package"
+
+ mv "${D}/usr/lib/eclipse" "${D}/${ECLIPSE_DIR}"
+
+ # Install startup script
+ dobin "${FILESDIR}/${SLOT}/eclipse-${SLOT}"
+ chmod +x "${D}/${ECLIPSE_DIR}/eclipse"
+
+ insinto "/etc"
+ doins "${FILESDIR}/${SLOT}/eclipserc"
+
+ make_desktop_entry "eclipse-${SLOT}" "Eclipse ${PV}" "${ECLIPSE_DIR}/icon.xpm"
+
+ cd "${D}/${ECLIPSE_DIR}"
+ install-link-system-jars
+}
+
+pkg_postinst() {
+ einfo "Welcome to Eclipse ${PV} (Ganymede)!"
+ einfo
+ einfo "You can now install plugins via Update Manager without any"
+ einfo "tweaking. This is the recommended way to install new features for Eclipse."
+ einfo
+ einfo "Please read http://gentoo-wiki.com/Eclipse"
+ einfo "It contains a lot of useful information and help about Eclipse on Gentoo."
+ einfo
+ einfo "The FileInitializer Plugin is no more integrated."
+ einfo "If you need it, get org.eclipse.equinox.initializer_x.y.z.jar from:"
+ einfo " http://download.eclipse.org/eclipse/equinox/"
+ echo
+ ewarn "The new Update Manager (P2) is not yet supported under Gentoo."
+ ewarn "Please enable the 'Classic Update' under:"
+ ewarn "Window > Preferences > General > Capabilities"
+}
+
+# -----------------------------------------------------------------------------
+# Helper functions
+# -----------------------------------------------------------------------------
+
+install-link-system-jars() {
+ pushd plugins/ > /dev/null
+
+ mkdir "org.apache.ant"
+ mkdir "org.apache.ant/META-INF/"
+ mkdir "org.apache.ant/lib"
+ cp "${FILESDIR}/${SLOT}/ant-osgi-manifest.mf" "org.apache.ant/META-INF/MANIFEST.MF"
+ pushd org.apache.ant/lib > /dev/null
+ java-pkg_jarfrom ant-core
+ java-pkg_jarfrom ant-nodeps
+ popd > /dev/null
+
+ java-pkg_jarfrom swt-${SLOT}
+ java-pkg_jarfrom icu4j
+ java-pkg_jarfrom jsch
+ java-pkg_jarfrom commons-el
+ java-pkg_jarfrom commons-logging
+ java-pkg_jarfrom lucene-1.9
+ java-pkg_jarfrom lucene-analyzers-1.9
+ java-pkg_jarfrom tomcat-servlet-api-2.4
+ java-pkg_jarfrom --into org.junit_*/ junit
+ java-pkg_jarfrom --into org.junit4*/ junit-4
+ popd > /dev/null
+}
+
+patch-apply() {
+ # optimize launcher build
+ mkdir launchertmp
+ unzip -qq -d launchertmp plugins/org.eclipse.platform/launchersrc.zip \
+ || die "unzip failed"
+ pushd launchertmp/ > /dev/null
+ sed -r -e "s/CFLAGS = -O -s -Wall/CFLAGS = ${CFLAGS} -Wall/" \
+ -i library/gtk/make_linux.mak || die "Failed to tweak make_linux.mak"
+ zip -q -6 -r ../launchersrc.zip * || die "zip failed"
+ popd > /dev/null
+ mv launchersrc.zip plugins/org.eclipse.platform/launchersrc.zip
+ rm -rf launchertmp
+
+ # disable swt, jdk6
+ # use sed where possible => ease bump :)
+ sed -e "/..\/..\/plugins\/org.eclipse.ui.win32/,/<\/ant>/d" \
+ -i features/org.eclipse.platform/build.xml
+ sed -e "/dir=\"..\/..\/plugins\/org.eclipse.swt/,/<\/ant>/d" \
+ -i features/org.eclipse.rcp/build.xml \
+ -i features/org.eclipse.rcp.source/build.xml
+ sed -e "/dir=\"..\/..\/plugins\/org.eclipse.ui.carbon\"/,/<\/ant>/d" \
+ -i features/org.eclipse.rcp/build.xml
+
+ sed -e "/dir=\"plugins\/org.eclipse.swt.gtk.linux.${eclipsearch}\"/d" \
+ -e "/value=\"org.eclipse.swt.gtk.linux.${eclipsearch}_/,/eclipse.plugins/d" \
+ -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml
+ sed -e "s:\${basedir}/swt.jar:$(java-pkg_getjars --build-only swt-${SLOT}):" \
+ -i plugins/org.eclipse.swt.gtk.linux.${eclipsearch}/build.xml
+
+ if ! use java6; then
+ sed -e "/..\/..\/plugins\/org.eclipse.jdt.apt.pluggable.core/,/<\/ant>/d" \
+ -e "/..\/..\/plugins\/org.eclipse.jdt.compiler.apt/,/<\/ant>/d" \
+ -e "/..\/..\/plugins\/org.eclipse.jdt.compiler.tool/,/<\/ant>/d" \
+ -i features/org.eclipse.jdt/build.xml
+
+ sed -e "/id=\"org.eclipse.jdt.apt.pluggable.core\"/,/<plugin/d" \
+ -e "/id=\"org.eclipse.jdt.compiler.apt\"/,/<plugin/d" \
+ -e "/id=\"org.eclipse.jdt.compiler.tool\"/,/<plugin/d" \
+ -i features/org.eclipse.jdt/feature.xml
+
+ sed -e "/dir=\"plugins\/org.eclipse.jdt.apt.pluggable.core\"/d" \
+ -e "/dir=\"plugins\/org.eclipse.jdt.compiler.apt/d" \
+ -e "/dir=\"plugins\/org.eclipse.jdt.compiler.tool\"/d" \
+ -e "/value=\"org.eclipse.jdt.apt.pluggable.core/,/eclipse.plugins/d" \
+ -e "/value=\"org.eclipse.jdt.compiler.apt/,/eclipse.plugins/d" \
+ -e "/value=\"org.eclipse.jdt.compiler.tool/,/eclipse.plugins/d" \
+ -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml
+ fi
+
+ epatch "${PATCHDIR}/eclipse-c-warning.patch"
+ epatch "${PATCHDIR}/eclipse_build-libs.diff"
+ epatch "${PATCHDIR}/eclipse_buildfix-pde.diff"
+
+ # JNI
+ epatch "${FEDORA}/eclipse-libupdatebuild2.patch"
+
+ # Generic releng plugins that can be used to build plugins
+ # https://www.redhat.com/archives/fedora-devel-java-list/2006-April/msg00048.html
+ pushd plugins/org.eclipse.pde.build > /dev/null
+ # %patch53
+ epatch "${FEDORA}/eclipse-pde.build-add-package-build.patch"
+ sed -e "s:@eclipse_base@:${ECLIPSE_DIR}:g" \
+ -i templates/package-build/build.properties
+ popd > /dev/null
+
+ # Following adds an additional classpath when building JSPs
+ sed '/<path id="@dot\.classpath">/ a\
+ <filelist dir="" files="${gentoo.jars}" />' \
+ -i plugins/org.eclipse.help.webapp/build.xml
+
+ # Following allows the doc USE flag to be honored
+ sed -e '/<target name="generateJavadoc" depends="getJavadocPath"/ c\
+ <target name="generateJavadoc" depends="getJavadocPath" if="gentoo.javadoc">' \
+ -e '/<replace file="\${basedir}\/\${optionsFile}" token="@rt@" value="\${bootclasspath}/ c\
+ <replace file="${basedir}/${optionsFile}" token="@rt@" value="${bootclasspath}:${gentoo.classpath}" />' \
+ -i plugins/org.eclipse.platform.doc.isv/buildDoc.xml
+
+ # This allows to compile osgi.util and osgi.service, and fixes IPluginDescriptor.class which is present compiled
+ sed -e 's/<src path="\."/<src path="org"/' \
+ -e '/<include name="org\/"\/>/d' \
+ -e '/<subant antfile="\${customBuildCallbacks}" target="pre\.gather\.bin\.parts" failonerror="false" buildpath="\.">/ { n;n;n; a\
+ <copy todir="${destination.temp.folder}/org.eclipse.osgi.services_3.1.200.v20071203" failonerror="true" overwrite="false"> \
+ <fileset dir="${build.result.folder}/@dot"> \
+ <include name="**"/> \
+ </fileset> \
+ </copy>
+ }' \
+ -i plugins/org.eclipse.osgi.services/build.xml
+
+ sed -e 's/<src path="\."/<src path="org"/' \
+ -e '/<include name="org\/"\/>/d' \
+ -e '/<subant antfile="\${customBuildCallbacks}" target="pre\.gather\.bin\.parts" failonerror="false" buildpath="\.">/ { n;n;n; a\
+ <copy todir="${destination.temp.folder}/org.eclipse.osgi.util_3.1.200.v20071203" failonerror="true" overwrite="false"> \
+ <fileset dir="${build.result.folder}/@dot"> \
+ <include name="**"/> \
+ </fileset> \
+ </copy>
+ }' \
+ -i plugins/org.eclipse.osgi.util/build.xml
+
+ sed '/<mkdir dir="${temp\.folder}\/runtime_registry_compatibility\.jar\.bin"\/>/ a\
+ <mkdir dir="classes"/> \
+ <copy todir="classes" failonerror="true" overwrite="false"> \
+ <fileset dir="${build.result.folder}/../org.eclipse.core.runtime/@dot/" includes="**/IPluginDescriptor.class" /> \
+ </copy>' \
+ -i plugins/org.eclipse.core.runtime.compatibility.registry/build.xml
+
+ # This removes the copying operation for bundled jars
+ sed -e "s/<copy.*com\.jcraft\.jsch_.*\/>//" \
+ -e "s/<copy.*com\.ibm\.icu_.*\/>//" \
+ -e "s/<copy.*org\.apache\.commons\.el_.*\/>//" \
+ -e "s/<copy.*org\.apache\.commons\.logging_.*\/>//" \
+ -e "s/<copy.*javax\.servlet\.jsp_.*\/>//" \
+ -e "s/<copy.*javax\.servlet_.*\/>//" \
+ -e "s/<copy.*org\.apache\.lucene_.*\/>//" \
+ -e "s/<copy.*org\.apache\.lucene\.analysis_.*\/>//" \
+ -i package.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml
+}
+
+remove-bundled-stuff() {
+ # Remove pre-built eclipse binaries
+ find "${S}" -type f -name eclipse | xargs rm
+ # ... .so libraries
+ find "${S}" -type f -name '*.so' | xargs rm
+ # ... .jar files
+ pushd plugins/ >/dev/null
+ rm org.eclipse.osgi/osgi/osgi*.jar \
+ org.eclipse.osgi/supplement/osgi/osgi.jar \
+ org.eclipse.swt/extra_jars/exceptions.jar
+
+ rm -rf org.apache.ant_*/*
+ rm org.apache.commons.el_*.jar org.apache.commons.logging_*.jar \
+ com.jcraft.jsch_*.jar com.ibm.icu_*.jar org.junit_*/*.jar \
+ org.junit4*/*.jar javax.servlet.jsp_*.jar javax.servlet_*.jar \
+ org.apache.lucene_*.jar org.apache.lucene.analysis_*.jar
+
+ # Remove bundled classes
+ rm -rf org.eclipse.osgi.services/org
+ unzip -q org.eclipse.osgi.services/src.zip -d org.eclipse.osgi.services/
+ rm -rf org.eclipse.osgi.util/org
+ unzip -q org.eclipse.osgi.util/src.zip -d org.eclipse.osgi.util/
+
+ rm -rf org.eclipse.jdt.core/scripts/*.class
+ rm -rf org.eclipse.core.runtime.compatibility.registry/classes
+ popd >/dev/null
+}
diff --git a/dev-util/eclipse-sdk/files/3.4/ant-osgi-manifest.mf b/dev-util/eclipse-sdk/files/3.4/ant-osgi-manifest.mf
new file mode 100644
index 0000000..deb8a6a
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/ant-osgi-manifest.mf
@@ -0,0 +1,30 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Apache Ant
+Bundle-Vendor: Gentoo
+Bundle-SymbolicName: org.apache.ant
+Bundle-Version: 1.7.0
+Bundle-ClassPath: lib/ant.jar,lib/ant-launcher.jar,lib/ant-nodeps.jar
+Export-Package: images,org.apache.tools.ant,org.apache.tools.ant.dispatch,org.apache.tools.ant.filters,org.apache.tools.ant.filters.util,
+ org.apache.tools.ant.helper,org.apache.tools.ant.input,org.apache.tools.ant.listener,org.apache.tools.ant.loader,
+ org.apache.tools.ant.taskdefs,org.apache.tools.ant.taskdefs.compilers,org.apache.tools.ant.taskdefs.condition,
+ org.apache.tools.ant.taskdefs.cvslib,org.apache.tools.ant.taskdefs.email,org.apache.tools.ant.taskdefs.optional,
+ org.apache.tools.ant.taskdefs.optional.ccm,org.apache.tools.ant.taskdefs.optional.clearcase,org.apache.tools.ant.taskdefs.optional.depend,
+ org.apache.tools.ant.taskdefs.optional.depend.constantpool,org.apache.tools.ant.taskdefs.optional.dotnet,
+ org.apache.tools.ant.taskdefs.optional.ejb,org.apache.tools.ant.taskdefs.optional.extension,org.apache.tools.ant.launch,
+ org.apache.tools.ant.taskdefs.optional.extension.resolvers,org.apache.tools.ant.taskdefs.optional.i18n,
+ org.apache.tools.ant.taskdefs.optional.image,org.apache.tools.ant.taskdefs.optional.j2ee,org.apache.tools.ant.taskdefs.optional.javacc,
+ org.apache.tools.ant.taskdefs.optional.javah,org.apache.tools.ant.taskdefs.optional.jdepend,org.apache.tools.ant.taskdefs.optional.jlink,
+ org.apache.tools.ant.taskdefs.optional.jsp,org.apache.tools.ant.taskdefs.optional.jsp.compilers,org.apache.tools.ant.taskdefs.optional.junit,
+ org.apache.tools.ant.taskdefs.optional.junit.xsl,org.apache.tools.ant.taskdefs.optional.native2ascii,org.apache.tools.ant.taskdefs.optional.net,
+ org.apache.tools.ant.taskdefs.optional.perforce,org.apache.tools.ant.taskdefs.optional.pvcs,org.apache.tools.ant.taskdefs.optional.scm,
+ org.apache.tools.ant.taskdefs.optional.script,org.apache.tools.ant.taskdefs.optional.sos,org.apache.tools.ant.taskdefs.optional.sound,
+ org.apache.tools.ant.taskdefs.optional.splash,org.apache.tools.ant.taskdefs.optional.ssh,org.apache.tools.ant.taskdefs.optional.starteam,
+ org.apache.tools.ant.taskdefs.optional.unix,org.apache.tools.ant.taskdefs.optional.vss,org.apache.tools.ant.taskdefs.optional.windows,
+ org.apache.tools.ant.taskdefs.rmic,org.apache.tools.ant.types,org.apache.tools.ant.types.conditions,org.apache.tools.ant.types.mappers,
+ org.apache.tools.ant.types.optional,org.apache.tools.ant.types.optional.depend,org.apache.tools.ant.types.optional.image,
+ org.apache.tools.ant.types.resolver,org.apache.tools.ant.types.resources,org.apache.tools.ant.types.resources.comparators,
+ org.apache.tools.ant.types.resources.selectors,org.apache.tools.ant.types.selectors,org.apache.tools.ant.types.selectors.modifiedselector,
+ org.apache.tools.ant.types.spi,org.apache.tools.ant.util,org.apache.tools.ant.util.depend,org.apache.tools.ant.util.depend.bcel,
+ org.apache.tools.ant.util.facade,org.apache.tools.ant.util.java15,org.apache.tools.ant.util.optional,org.apache.tools.ant.util.regexp,
+ org.apache.tools.bzip2,org.apache.tools.mail,org.apache.tools.tar,org.apache.tools.zip \ No newline at end of file
diff --git a/dev-util/eclipse-sdk/files/3.4/eclipse-3.4 b/dev-util/eclipse-sdk/files/3.4/eclipse-3.4
new file mode 100644
index 0000000..30beb77
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/eclipse-3.4
@@ -0,0 +1,40 @@
+#! /bin/sh
+#
+# Tiny startup wrapper for Eclipse
+#
+# Copyright (c) 2004, Karl Trygve Kalleberg <karltk@gentoo.org>
+# Copyright (c) 2007-2008, Jean-Noël Rivasseau <elvanor@gentoo.org>
+# Copyright (c) 2004-2008, Gentoo Foundation
+#
+# Licensed under the GNU General Public License, version 2
+#
+
+SLOT="3.4"
+
+[ -f "/etc/eclipserc" ] && source "/etc/eclipserc"
+[ -f "$HOME/.gentoo/.eclipserc" ] && source "$HOME/.gentoo/.eclipserc"
+
+ECLIPSE_HOME=${ECLIPSE_HOME:="/usr/lib/eclipse-${SLOT}"}
+ECLIPSE_BIN="${ECLIPSE_HOME}/eclipse"
+
+if [ ! -x ${ECLIPSE_BIN} ] ; then
+ echo "Failed to find executable '${ECLIPSE_BIN}'" > /dev/stderr
+ exit -1
+fi
+
+if [ $(id -u) -eq 0 ] ; then
+ echo "Do not run eclipse as root user! Exiting ..."
+ exit -1
+fi
+
+[[ "$(java-config -f)" =~ "gcj" ]] \
+ && export JAVA_PKG_CLASSMAP="${ECLIPSE_HOME}/eclipse.gcjdb"
+
+eval $(gjl --package "swt-${SLOT}" --get-args)
+
+[ -n "${ECLIPSE_XMS}" ] && VM_ARGS="${VM_ARGS} -Xms${ECLIPSE_XMS}"
+[ -n "${ECLIPSE_XMX}" ] && VM_ARGS="${VM_ARGS} -Xmx${ECLIPSE_XMX}"
+[ -n "${ECLIPSE_PERMSIZE}" ] && VM_ARGS="${VM_ARGS} -XX:PermSize=${ECLIPSE_PERMSIZE}"
+[ -n "${ECLIPSE_MAX_PERMSIZE}" ] && VM_ARGS="${VM_ARGS} -XX:MaxPermSize=${ECLIPSE_MAX_PERMSIZE}"
+
+exec ${ECLIPSE_BIN} -vm $(java-config --java) "$@" "${ECLIPSE_USER_ARGS}" -vmargs ${VM_ARGS} \ No newline at end of file
diff --git a/dev-util/eclipse-sdk/files/3.4/eclipse-c-warning.patch b/dev-util/eclipse-sdk/files/3.4/eclipse-c-warning.patch
new file mode 100644
index 0000000..c2b6620
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/eclipse-c-warning.patch
@@ -0,0 +1,43 @@
+=== modified file 'features/org.eclipse.equinox.executable/library/eclipse.c'
+--- features/org.eclipse.equinox.executable/library/eclipse.c 2009-01-06 13:44:41 +0000
++++ features/org.eclipse.equinox.executable/library/eclipse.c 2009-01-06 14:00:41 +0000
+@@ -1103,7 +1103,7 @@
+ /* old startup.jar? */
+ file = checkPath(OLD_STARTUP, programDir, 0);
+ if (_tstat( file, &stats ) == 0)
+- return (file == OLD_STARTUP) ? _tcsdup(OLD_STARTUP) : file;
++ return (_tcscmp(file,OLD_STARTUP)==0) ? _tcsdup(OLD_STARTUP) : file;
+
+ return NULL;
+ }
+
+=== modified file 'features/org.eclipse.equinox.executable/library/eclipseCommon.c'
+--- features/org.eclipse.equinox.executable/library/eclipseCommon.c 2009-01-06 13:44:41 +0000
++++ features/org.eclipse.equinox.executable/library/eclipseCommon.c 2009-01-06 13:57:53 +0000
+@@ -350,10 +350,11 @@
+ #else
+ #ifdef MACOSX
+ static int filter(struct dirent *dir) {
++ char * candidate = dir->d_name;
+ #else
+ static int filter(const struct dirent *dir) {
++ const char * candidate = dir->d_name;
+ #endif
+- char * candidate = dir->d_name;
+ #endif
+ _TCHAR *c1, *c2;
+
+
+=== modified file 'features/org.eclipse.equinox.executable/library/eclipseJNI.c'
+--- features/org.eclipse.equinox.executable/library/eclipseJNI.c 2009-01-06 13:44:41 +0000
++++ features/org.eclipse.equinox.executable/library/eclipseJNI.c 2009-01-06 14:06:34 +0000
+@@ -233,7 +233,7 @@
+ size_t length = _tcslen(str);
+ jbyteArray bytes = (*env)->NewByteArray(env, length);
+ if(bytes != NULL) {
+- (*env)->SetByteArrayRegion(env, bytes, 0, length, str);
++ (*env)->SetByteArrayRegion(env, bytes, 0, length, (jbyte *) str);
+ if (!(*env)->ExceptionOccurred(env)) {
+ jclass stringClass = (*env)->FindClass(env, "java/lang/String");
+ if(stringClass != NULL) {
+
diff --git a/dev-util/eclipse-sdk/files/3.4/eclipse_build-libs.diff b/dev-util/eclipse-sdk/files/3.4/eclipse_build-libs.diff
new file mode 100644
index 0000000..0f77f36
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/eclipse_build-libs.diff
@@ -0,0 +1,45 @@
+--- build.xml 2008-06-11 17:43:11.000000000 +0200
++++ build.xml 2008-05-02 07:33:57.000000000 +0200
+@@ -1,7 +1,7 @@
+ <project name="Eclipse SDK Source Build" default="run" basedir=".">
+
+ <!-- default target that runs complete build -->
+- <target name="run" depends="fetch,insertBuildId,compile,install" />
++ <target name="run" depends="fetch,insertBuildId,compile,compilelibs,install" />
+
+ <!-- all features required to build eclipse sdk and javadoc -->
+ <target name="allElements">
+@@ -71,6 +71,33 @@
+ <record name="compilelog.txt" action="stop" />
+ </target>
+
++ <target name="compilelibs" depends="init,clean,compile" if="libsconfig">
++ <property name="launcherlibs" value="${buildDirectory}/features/org.eclipse.equinox.executable" />
++ <exec dir="${launcherlibs}/library/${installWs}/" executable="sh" failonerror="true">
++ <arg line="build.sh -java ${java5.home}" />
++ </exec>
++ <copy file="${launcherlibs}/library/${installWs}/eclipse" todir="${buildDirectory}/eclipse/" />
++
++ <property name="launcherfragment" value="org.eclipse.equinox.launcher.${installWs}.${installOs}.${installArch}" />
++
++ <copy file="${launcherlibs}/library/${installWs}/eclipse" todir="features/org.eclipse.equinox.executable/contributed/${installWs}/${installOs}/${installArch}/" />
++ <copy todir="${buildDirectory}/plugins/${launcherfragment}">
++ <fileset dir="${launcherlibs}/library/${installWs}">
++ <include name="**/*.so" />
++ </fileset>
++ </copy>
++
++ <!-- build liblocalfile -->
++ <exec dir="plugins/org.eclipse.core.filesystem/natives/unix/linux" executable="make" failonerror="true" />
++ <move file="plugins/org.eclipse.core.filesystem/natives/unix/linux/liblocalfile_1_0_0.so" todir="plugins/org.eclipse.core.filesystem.linux.${installArch}/os/linux/${installArch}">
++ </move>
++ <!-- build libupdate -->
++ <ant dir="plugins/org.eclipse.update.core.linux/src" antfile="build.xml" />
++
++ </target>
++
++
++
+ <!--create an installable eclipse runtime-->
+ <target name="install" depends="init">
+ <echo message="Assembling..." />
diff --git a/dev-util/eclipse-sdk/files/3.4/eclipse_buildfix-pde.diff b/dev-util/eclipse-sdk/files/3.4/eclipse_buildfix-pde.diff
new file mode 100644
index 0000000..1296587
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/eclipse_buildfix-pde.diff
@@ -0,0 +1,11 @@
+--- features/org.eclipse.pde/build.xml.orig 2008-05-05 21:45:14.000000000 +0200
++++ features/org.eclipse.pde/build.xml 2008-05-05 21:45:31.000000000 +0200
+@@ -69,7 +69,7 @@
+ <target name="update.feature" depends="init">
+ </target>
+
+- <target name="all.children" depends="init,all.features,all.plugins,update.feature">
++ <target name="all.children" depends="init,all.plugins,all.features,update.feature">
+ </target>
+
+ <target name="children" if="include.children">
diff --git a/dev-util/eclipse-sdk/files/3.4/eclipserc b/dev-util/eclipse-sdk/files/3.4/eclipserc
new file mode 100644
index 0000000..3e97c2b
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/eclipserc
@@ -0,0 +1,25 @@
+# This file specifies some initial Eclipse settings, like memory allowed to Eclipse.
+# These settings only affect Eclipse startup and overall configuration.
+# Main Eclipse configuration should be done within Eclipse (with the GUI).
+
+# Following variables controls the minimal and maximum amounts of memory
+# allocated to Eclipse (respectively).
+# Increase those numbers if you get OutOfMemory errors or if you have lots of memory to
+# throw at Eclipse.
+
+ECLIPSE_XMS=128m
+ECLIPSE_XMX=256m
+
+# Following variables controls the minimal and maximum amounts of memory
+# allocated to the permanent generation space.
+# This space contains data related to all classes.
+# The default values should be enough for most people, but you can increase those amounts
+# if you get crashes related to OutOfMemory in PermGen exceptions.
+# If you lack memory, you can also try decrease those amounts.
+
+ECLIPSE_PERMSIZE=128m
+ECLIPSE_MAX_PERMSIZE=256m
+
+# Additional needed properties (see bug #219413)
+
+#ECLIPSE_USER_ARGS="" \ No newline at end of file
diff --git a/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-libupdatebuild2.patch b/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-libupdatebuild2.patch
new file mode 100644
index 0000000..263adbb
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-libupdatebuild2.patch
@@ -0,0 +1,10 @@
+--- plugins/org.eclipse.update.core.linux/src/build.xml.orig 2008-06-11 17:29:43.000000000 +0200
++++ plugins/org.eclipse.update.core.linux/src/build.xml 2008-06-11 17:30:03.000000000 +0200
+@@ -5,7 +5,6 @@
+ <!-- Set a meaningful default value for when it is not. -->
+ <property name="eclipse-home" value="${basedir}/../.."/>
+ <property name="jdk-path" value="${java.home}"/>
+- <property name="installArch" value="x86" />
+ <property name="destination" value="${eclipse-home}/org.eclipse.update.core.linux/os/linux/${installArch}/"/>
+ <property name="obj-path" value="${eclipse-home}/org.eclipse.update.core.linux/src/"/>
+ <property name="src-path" value="${eclipse-home}/org.eclipse.update.core.linux/src/"/>
diff --git a/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-pde.build-add-package-build.patch b/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-pde.build-add-package-build.patch
new file mode 100644
index 0000000..77f347d
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-pde.build-add-package-build.patch
@@ -0,0 +1,273 @@
+Index: templates/package-build/build.properties
+===================================================================
+RCS file: templates/package-build/build.properties
+diff -N templates/package-build/build.properties
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ templates/package-build/build.properties 1 Jan 1970 00:00:00 -0000
+@@ -0,0 +1,12 @@
++buildDirectory=${sourceDirectory}/build
++buildLabel=rpmBuild
++archivePrefix=eclipse
++skipFetch=true
++javacFailOnError=true
++collectingFolder=eclipse
++archivesFormat=*,*,*-zip
++zipargs=-y
++javacDebugInfo=true
++archiveName=${id}.zip
++runPackager=false
++baseLocation=/usr/share/eclipse
+Index: templates/package-build/customTargets-assemble-target.xml
+===================================================================
+RCS file: templates/package-build/customTargets-assemble-target.xml
+diff -N templates/package-build/customTargets-assemble-target.xml
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ templates/package-build/customTargets-assemble-target.xml 1 Jan 1970 00:00:00 -0000
+@@ -0,0 +1,12 @@
++<project>
++ <!-- ===================================================================== -->
++ <!-- Targets to assemble the built elements for particular configurations -->
++ <!-- These generally call the generated assemble scripts (named in -->
++ <!-- ${assembleScriptName}) but may also add pre and post processing -->
++ <!-- Add one target for each root element and each configuration -->
++ <!-- ===================================================================== -->
++
++ <target name="assemble.@id@">
++ <ant antfile="${assembleScriptName}" dir="${buildDirectory}"/>
++ </target>
++</project>
+Index: templates/package-build/customTargets.xml
+===================================================================
+RCS file: templates/package-build/customTargets.xml
+diff -N templates/package-build/customTargets.xml
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ templates/package-build/customTargets.xml 1 Jan 1970 00:00:00 -0000
+@@ -0,0 +1,144 @@
++<project name="Build specific targets and properties" default="noDefault">
++
++ <fail unless="type" message="Please set the ${type} property to 'feature', 'plugin' or 'fragment'." />
++ <fail unless="id" message="Please set the ${id} property to the feature, plugin or fragment id of the plugin you are building." />
++ <fail unless="sourceDirectory" message="Please set the ${sourceDirectory} property to the directory that has the source plugins." />
++
++ <!-- we need to do this because you can't expand variables in target names -->
++ <copy file="${builder}/customTargets-assemble-target.xml" tofile="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
++ <replace file="${buildDirectory}/customTargets-${id}-assemble-target.xml" token="@id@" value="${id}" />
++ <import file="${buildDirectory}/customTargets-${id}-assemble-target.xml" />
++
++ <!-- ===================================================================== -->
++ <!-- Run a given ${target} on all elements being built -->
++ <!-- Add on <ant> task for each top level element being built. -->
++ <!-- ===================================================================== -->
++ <target name="allElements">
++ <ant antfile="${genericTargets}" target="${target}">
++ <property name="type" value="${type}" />
++ <property name="id" value="${id}" />
++ </ant>
++ </target>
++
++
++ <!-- ===================================================================== -->
++ <!-- Check out map files from correct repository -->
++ <!-- ===================================================================== -->
++ <target name="getMapFiles">
++ </target>
++
++ <!-- ===================================================================== -->
++
++ <target name="clean" unless="noclean">
++ <antcall target="allElements">
++ <param name="target" value="cleanElement" />
++ </antcall>
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do before setup -->
++ <!-- ===================================================================== -->
++ <target name="preSetup">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do after setup but before starting the build proper -->
++ <!-- ===================================================================== -->
++ <target name="postSetup">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do before fetching the build elements -->
++ <!-- ===================================================================== -->
++ <target name="preFetch">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do after fetching the build elements -->
++ <!-- ===================================================================== -->
++ <target name="postFetch">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do before generating the build scripts. -->
++ <!-- ===================================================================== -->
++ <target name="preGenerate">
++ <!-- Eclipse expects the feature projects to be in the 'features' directory and
++ plugin projects to be in the 'plugins' directory. The build infrastructure
++ normally arranges the projects during the fetch stage. Since we aren't doing
++ the fetch stage, we have to manually arrange the files -->
++ <exec dir="${builder}" executable="/bin/sh">
++ <arg line="prepare-build-dir.sh ${sourceDirectory} ${buildDirectory}" />
++ </exec>
++
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do after generating the build scripts. -->
++ <!-- ===================================================================== -->
++ <target name="postGenerate">
++ <antcall target="clean" />
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do before running the build.xmls for the elements being built. -->
++ <!-- ===================================================================== -->
++ <target name="preProcess">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do after running the build.xmls for the elements being built. -->
++ <!-- ===================================================================== -->
++ <target name="postProcess">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do before running assemble. -->
++ <!-- ===================================================================== -->
++ <target name="preAssemble">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do after running assemble. -->
++ <!-- ===================================================================== -->
++ <target name="postAssemble">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do before running package. -->
++ <!-- ===================================================================== -->
++ <target name="prePackage">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do after running package. -->
++ <!-- ===================================================================== -->
++ <target name="postPackage">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do after the build is done. -->
++ <!-- ===================================================================== -->
++ <target name="postBuild">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do to test the build results -->
++ <!-- ===================================================================== -->
++ <target name="test">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Steps to do to publish the build results -->
++ <!-- ===================================================================== -->
++ <target name="publish">
++ </target>
++
++ <!-- ===================================================================== -->
++ <!-- Default target -->
++ <!-- ===================================================================== -->
++ <target name="noDefault">
++ <echo message="You must specify a target when invoking this file" />
++ </target>
++
++</project>
+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,77 @@
++#!/bin/sh
++
++if [ $# -ne 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
++
++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@.xml\" collapseAttributes=\"true\"/>
++ <fail unless=\"@type@.id\" message=\"feature.id not set\"/>
++ <echo message=\"\${@type@.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)
++for f in $FEATURES; do
++ PROJECTDIR=$(dirname $f)
++ PROJECTNAME=$(ant -Dbasedir=$PROJECTDIR -f $BUILDDIR/tmp/feature-build.xml 2>&1 | grep echo | cut --delimiter=' ' -f 7)
++ if [ -z $PROJECTNAME ]; then
++ echo "ERROR: could not determine the feature id for $PROJECTDIR"
++ exit 1
++ fi
++
++ echo " making symlink: $BUILDDIR/features/$PROJECTNAME -> $PROJECTDIR"
++ ln -sf $PROJECTDIR $BUILDDIR/features/$PROJECTNAME
++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)
++for dir in $PLUGINDIRS; do
++ PROJECTNAME=""
++ 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"
++ exit 1
++ fi
++
++ echo " making symlink: $BUILDDIR/plugins/$PROJECTNAME -> $dir"
++ ln -sf $dir $BUILDDIR/plugins/$PROJECTNAME
++
++done
++
++rm -rf $BUILDDIR/tmp
++echo done