summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul de Vrieze <pauldv@gentoo.org>2011-06-29 15:46:22 +0000
committerPaul de Vrieze <pauldv@gentoo.org>2011-06-29 15:46:22 +0000
commitdbfd77780881b07fe80829514d1d649d7b26a353 (patch)
tree3da893087fa96aa4b04acdf28369c1b10116eeee /dev-util/eclipse-sdk
parentCreate dropbox ebuild that does not depend on nautilus, so it works more natu... (diff)
downloadpauldv-dbfd77780881b07fe80829514d1d649d7b26a353.tar.gz
pauldv-dbfd77780881b07fe80829514d1d649d7b26a353.tar.bz2
pauldv-dbfd77780881b07fe80829514d1d649d7b26a353.zip
New eclipse version
svn path=/trunk/overlay/; revision=135
Diffstat (limited to 'dev-util/eclipse-sdk')
-rw-r--r--dev-util/eclipse-sdk/Manifest8
-rw-r--r--dev-util/eclipse-sdk/eclipse-sdk-3.7.0.ebuild394
-rw-r--r--dev-util/eclipse-sdk/files/3.7/eclipse-3.746
-rw-r--r--dev-util/eclipse-sdk/files/3.7/eclipserc-3.720
-rw-r--r--dev-util/eclipse-sdk/files/3.7/gtk_makefile.patch36
-rw-r--r--dev-util/eclipse-sdk/files/3.7/hamcrest-junit-lib.patch11
-rw-r--r--dev-util/eclipse-sdk/files/3.7/iterators.patch70
7 files changed, 585 insertions, 0 deletions
diff --git a/dev-util/eclipse-sdk/Manifest b/dev-util/eclipse-sdk/Manifest
index e9dcb6a..16cd503 100644
--- a/dev-util/eclipse-sdk/Manifest
+++ b/dev-util/eclipse-sdk/Manifest
@@ -3,11 +3,19 @@ AUX 3.6/eclipserc-3.6 858 RMD160 f911438aa661be9ca8fc352dd372c9485d163ddb SHA1 a
AUX 3.6/gtk_makefile.patch 1541 RMD160 39738d224c8d6aa9683b6898c773cd0f72f9bd70 SHA1 32b0cbaea2cba87191d3eb8cfa260f3419eea50a SHA256 5b33a3bb23856cdd46381a4de50100392858e9e37cbf814d2426589fa0bbdf58
AUX 3.6/hamcrest-junit-lib.patch 1123 RMD160 16a33e88295718a43931d54d1dd5f57ddfcfd4f7 SHA1 69697c2b3b430f47391896590f5ac10554b9190e SHA256 147c55f9cb222745f64d0711211f5f900352712c2df6e449c424fe5b7fba3fec
AUX 3.6/iterators.patch 2058 RMD160 a91238c61510f16bc48bc9559e9c6e341def6dd0 SHA1 f0fcc75ec4827a1f2dbc65af65940beb7274864b SHA256 cc2a1da26b8f63d9c4b75ededf10d7aa67a0d53dea390154eef882dc75e37f2b
+AUX 3.7/eclipse-3.7 1387 RMD160 32c47706d839fce9a2e08c91e108b8924a9975f2 SHA1 02d4ab620eb01ea152c0f6df6600ce77a46f16e8 SHA256 b2974e94d54db5094052fe1c56810993d4275bdf6afa0a653f81cc49486cfed6
+AUX 3.7/eclipserc-3.7 858 RMD160 f911438aa661be9ca8fc352dd372c9485d163ddb SHA1 abb1c369326be455d16bc42cf0a1b035aa145dc0 SHA256 0aea733c968ca064ad5ca95d5895778ecf7387826198b512e98d0cbb7dd353f1
+AUX 3.7/gtk_makefile.patch 1541 RMD160 39738d224c8d6aa9683b6898c773cd0f72f9bd70 SHA1 32b0cbaea2cba87191d3eb8cfa260f3419eea50a SHA256 5b33a3bb23856cdd46381a4de50100392858e9e37cbf814d2426589fa0bbdf58
+AUX 3.7/hamcrest-junit-lib.patch 1236 RMD160 f61fb1b274293c311366c463b9e8bd4fdca14c4f SHA1 8986d82583845dbf45469015ffde890f61eb16e2 SHA256 fbf4cf2b341e87b0e14be8e9794bee89b31e12af1fdf6e078d465d4d29bf09eb
+AUX 3.7/iterators.patch 2058 RMD160 a91238c61510f16bc48bc9559e9c6e341def6dd0 SHA1 f0fcc75ec4827a1f2dbc65af65940beb7274864b SHA256 cc2a1da26b8f63d9c4b75ededf10d7aa67a0d53dea390154eef882dc75e37f2b
DIST eclipse-3.6.1-src.tar.bz2 62823517 RMD160 82d7d50d8f2be20116f55e6be086ae9dbac9bc0e SHA1 c95a21897da29b080e86b94c0298cc8b792af929 SHA256 6144cbcf3715a144d9be433c2a89f3f3bdce6ee3c33396e3e783d3b683cdc94f
DIST eclipse-3.6.2-src.tar.bz2 62525869 RMD160 5c32204c99249db39a839c72753564fa63e3f3a0 SHA1 113b22702a26a88ff8736d6a232f6a41fe4eb00d SHA256 b72951cc75eba57c7d849210de38f69858ac4699eb3a69d4261a80d125f70d45
+DIST eclipse-3.7.0-src.tar.bz2 67181722 RMD160 2863a0130c5b75c08cf0c1f1977be894ad8edf5e SHA1 361247f39eacdeffb2159e59f508a5ac889912c9 SHA256 a068bab6f06b7939e557be7432b59bcde6925d86edffaa6dc2c1a6eca0fadbb2
DIST eclipse-build-0.6.0.tar.bz2 293428 RMD160 3ca7b8e8e4016cab251ef758ed533856aa31ced3 SHA1 2f0580bb2496bd299ad77ada48cb7d9e3ab5a4fd SHA256 a2dc16b9178d0416e01c52306c68b4a82c34a7cc163d86326dbcfbab16a68ef3
DIST eclipse-build-0.6.1.tar.bz2 295425 RMD160 f0306941e0c2618dc3f0a0b2b5a2e30e935839bc SHA1 cc81b424934b4fff96d6cbc2967dd4bec4c30e86 SHA256 66b6344fe55523b1e2243bd37f9ad14aeff0fd7f0f44669a89cada9146e5b46e
+DIST eclipse-build-5791c48513b4207ab1eec1e00bed4b2186f9aad5.tar.xz 276668 RMD160 346bcdd9e8d44ae865ae80380c54b7fd05a7dd04 SHA1 cb806a93b3f237aec2913d6f8b9068aeb1f9320b SHA256 1703ae2b9062e8692a2ab8aa589c91dc42fe90f6e3ba09ea2f69caf91d9b4865
EBUILD eclipse-sdk-3.6.1.ebuild 12488 RMD160 d2757dcdeee41fc84b47698be3368b2601feec8a SHA1 a30445590973ee8f6e05a419f9b5877c10a6d7e0 SHA256 b17bc05a2cd878bdb06becbe45313b50b12482e2e023dfd94396877967a3735b
EBUILD eclipse-sdk-3.6.2.ebuild 12821 RMD160 0e63693d9d276a0a963d14bc6de2fa0ad099c51a SHA1 5f797a462331d6fe0ac5911d06508457081f4561 SHA256 3b55917d2e8370a78ac7fc3fd112e14de85ad8fd79a617872dc80696f9ba8260
+EBUILD eclipse-sdk-3.7.0.ebuild 13863 RMD160 784e35aed2af5d6c8ab39ba43f1290d9ab20956f SHA1 df7fd9814c72f289193864f4f6f4e93af4a788a5 SHA256 85414ea422171354aee9ecd3dae209c9ed322770b062d11698d77deef7d7a0e5
MISC NOTES 95 RMD160 8a25c8c280750c4369e7659cd990e70a55a8221e SHA1 19f635c381122e9f4ef91d3bff5654abc914eb7f SHA256 7a46f31a4ef7c84668092d04c333241ca6dc68c27113de95644fb3247c286e10
MISC metadata.xml 800 RMD160 f97cc4ac78898369a7706331bb14bc838519cf21 SHA1 21cd52a15acb6510aa3b955f78fb28a73cf58234 SHA256 76e243573c28c3d705f54745cfbcedd85dae3233b6ed00e2f81a61ac9caeeeaa
diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.7.0.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.7.0.ebuild
new file mode 100644
index 0000000..5e84bbf
--- /dev/null
+++ b/dev-util/eclipse-sdk/eclipse-sdk-3.7.0.ebuild
@@ -0,0 +1,394 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header$
+
+EAPI="2"
+WANT_ANT_TASKS="ant-nodeps"
+
+# eclipse-build is too complicated for automatic fixing
+# if there are any fixes we should create patches
+# and push them upstream
+JAVA_PKG_BSFIX="off"
+
+inherit java-pkg-2 java-ant-2 check-reqs
+
+BUILD_VER="3.7.0"
+BUILD_ID="I20110613-1736"
+BUILD_LABEL="${BUILD_VER}-${BUILD_ID}"
+ECLIPSE_BUILD_VER="5791c48513b4207ab1eec1e00bed4b2186f9aad5"
+S="${WORKDIR}/eclipse-build-${ECLIPSE_BUILD_VER}"
+
+DESCRIPTION="Eclipse SDK"
+HOMEPAGE="http://www.eclipse.org/eclipse/"
+BASE_URI="http://download.eclipse.org/technology/linuxtools/eclipse-build/3.7.x_Indigo/"
+SRC_URI="${BASE_URI}eclipse-${BUILD_VER}-src.tar.bz2 ${BASE_URI}eclipse-build-${ECLIPSE_BUILD_VER}.tar.xz"
+
+LICENSE="EPL-1.0"
+SLOT="3.7"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gnome source"
+
+# ant dependencies should really be >=1.8.2
+CDEPEND=">=dev-java/swt-${PV%.0}_rc4:${SLOT}
+ >=dev-java/ant-1.8.1
+ >=dev-java/asm-3.3.1:3
+ >=dev-java/commons-codec-1.3
+ >=dev-java/commons-el-1.0
+ >=dev-java/commons-httpclient-3.1:3
+ >=dev-java/commons-logging-1.0.4
+ >=dev-java/hamcrest-core-1.1
+ >=dev-java/icu4j-4.4.2:4.4
+ >=dev-java/jsch-0.1.41
+ >=dev-java/junit-3.8.2:0
+ >=dev-java/junit-4.8.2:4
+ >=dev-java/lucene-2.9.1:2.9
+ >=dev-java/lucene-analyzers-2.9.1:2.9
+ >=dev-java/sat4j-core-2.3.0:2
+ >=dev-java/sat4j-pseudo-2.3.0:2
+ dev-java/tomcat-servlet-api:2.5
+ >=www-servers/jetty-6.1.23:6
+ >=www-servers/tomcat-5.5.17:5.5
+ x86? ( gnome? ( gnome-base/gconf ) )"
+RDEPEND="${CDEPEND}
+ >=virtual/jre-1.5"
+# ant dependencies should really be >=1.8.2
+DEPEND="${CDEPEND}
+ app-arch/unzip
+ app-arch/xz-utils
+ app-arch/zip
+ >=dev-java/ant-antlr-1.8.1
+ >=dev-java/ant-apache-bcel-1.8.1
+ >=dev-java/ant-apache-bsf-1.8.1
+ >=dev-java/ant-apache-log4j-1.8.1
+ >=dev-java/ant-apache-oro-1.8.1
+ >=dev-java/ant-apache-regexp-1.8.1
+ >=dev-java/ant-apache-resolver-1.8.1
+ >=dev-java/ant-apache-xalan2-1.8.1
+ >=dev-java/ant-commons-logging-1.8.1
+ >=dev-java/ant-commons-net-1.8.1
+ >=dev-java/ant-core-1.8.1
+ >=dev-java/ant-javamail-1.8.1
+ >=dev-java/ant-jdepend-1.8.1
+ >=dev-java/ant-jmf-1.8.1
+ >=dev-java/ant-jsch-1.8.1
+ >=dev-java/ant-junit-1.8.1
+ >=dev-java/ant-junit4-1.8.1
+ >=dev-java/ant-swing-1.8.1
+ >=dev-java/ant-testutil-1.8.1
+ >=virtual/jdk-1.6"
+# >=dev-java/ant-launcher-1.8.1
+
+OSGI_DEPENDENCIES=(
+ 'com.ibm.icu - icu4j-4.4'
+ 'com.jcraft.jsch - jsch'
+ 'javax.servlet tomcat6-servlet-2.5-api tomcat-servlet-api-2.5 servlet-api'
+ 'javax.servlet.jsp tomcat6-jsp-2.1-api tomcat-servlet-api-2.5 jsp-api'
+ 'org.apache.commons.codec commons-codec commons-codec'
+ 'org.apache.commons.el apache-commons-el-1.0 commons-el'
+ 'org.apache.commons.httpclient jakarta-commons-httpclient-3.1 commons-httpclient-3'
+ 'org.apache.commons.logging apache-commons-logging commons-logging'
+ 'org.apache.jasper - tomcat-5.5 jasper-compiler jasper-runtime'
+ 'org.apache.lucene.core lucene lucene-2.9'
+ 'org.apache.lucene.analysis lucene-analyzers lucene-analyzers-2.9'
+ 'org.hamcrest.core - hamcrest-core'
+ 'org.mortbay.jetty.server jetty-6.1.26 jetty-6 jetty'
+ 'org.mortbay.jetty.util jetty-util-6.1.26 jetty-6 jetty-util'
+ 'org.objectweb.asm - asm-3'
+ 'org.sat4j.core org.sat4j.core sat4j-core-2'
+ 'org.sat4j.pb org.sat4j.pb sat4j-pseudo-2'
+)
+NONOSGI_DEPENDENCIES=(
+ 'org.apache.ant ant-antlr'
+ 'org.apache.ant ant-apache-bcel'
+ 'org.apache.ant ant-apache-bsf'
+ 'org.apache.ant ant-apache-log4j'
+ 'org.apache.ant ant-apache-oro'
+ 'org.apache.ant ant-apache-regexp'
+ 'org.apache.ant ant-apache-resolver'
+ 'org.apache.ant ant-apache-xalan2'
+ 'org.apache.ant ant-commons-logging'
+ 'org.apache.ant ant-commons-net'
+ 'org.apache.ant ant-core ant ant-launcher'
+ 'org.apache.ant ant-javamail'
+ 'org.apache.ant ant-jdepend'
+ 'org.apache.ant ant-jmf'
+ 'org.apache.ant ant-jsch'
+ 'org.apache.ant ant-junit'
+ 'org.apache.ant ant-junit4'
+# 'org.apache.ant ant-launcher'
+ 'org.apache.ant ant-swing'
+ 'org.apache.ant ant-testutil'
+ 'org.junit_3.8.2.v3 junit'
+ 'org.junit4 junit-4 junit'
+ 'org.junit_4.8.2.v4 junit-4 junit'
+)
+
+ALL_OS='aix hpux linux macosx qnx solaris win32'
+ALL_WS='carbon cocoa gtk motif photon win32 wpf'
+ALL_ARCH='alpha arm ia64 mips mipsel PA_RISC ppc ppc64 s390 s390x sparc sparc64 x86 x86_64'
+
+buildDir="${S}/build/eclipse-${BUILD_LABEL}-src"
+
+pkg_setup() {
+ ws='gtk'
+ if use x86 ; then os='linux' ; arch='x86'
+ elif use amd64 ; then os='linux' ; arch='x86_64'
+ fi
+
+ java-pkg-2_pkg_setup
+
+ if use doc ; then
+ ewarn "Having the 'doc' USE flag enabled greatly increases the build time."
+ ewarn "You might want to disable it for ${PN} if you don't need it."
+ fi
+}
+
+src_unpack() {
+ CHECKREQS_MEMORY="1536"
+ if use doc ; then
+ CHECKREQS_DISK_BUILD="3072"
+ else
+ CHECKREQS_DISK_BUILD="1536"
+ fi
+ check_reqs
+
+ #unpack "eclipse-build-${ECLIPSE_BUILD_VER}.tar.xz"
+ tar -xpJf "${DISTDIR}/eclipse-build-${ECLIPSE_BUILD_VER}.tar.xz"
+ ln -s "${DISTDIR}/eclipse-${BUILD_VER}-src.tar.bz2" "${S}/eclipse-${BUILD_LABEL}-src.tar.bz2" || die
+
+ cd "${S}"
+ # building with ecj fails for some reason (polluted classpath probably)
+ java-pkg_force-compiler javac
+ #sed -e 's/^\(label\|testsBuildLabel\)=.*$/\1='"${BUILD_LABEL}"'/' \
+ # -e 's/^buildId=.*$/buildId='"${BUILD_ID}"'/' \
+ # -i build.properties -i pdebuild.properties || die
+ eant unpack
+}
+
+src_prepare() {
+ # apply patches before we start cleaning junk out
+ eant applyPatches
+
+ # fix up hardcoded runtime class paths
+ sed -e 's|/usr/lib/jvm/java/jre/lib/rt\.jar:.*$|'"$(java-config --runtime)"'|' \
+ -i {,pde}build.properties || die
+
+ # we'll handle our own dependency symlinking, so disable eclipse-build helper
+ sed -e 's/,symlinkDeps,/,/' -i build.xml || die
+ sed_xml_element 'target' -e '/name="provision.sdk"/ s|<symlinkInstalled.*\(<echo \)|\1|' \
+ -i build.xml || die
+
+ # this unpacking step appears to be unnecessary (and it doesn't work)
+ sed_xml_element 'target' -e 's/\(depends="[^"]\+\),[^",]*nestedJars/\1/' \
+ -i "${buildDir}"/plugins/*/build.xml || die
+
+ # disable building of libgnomeproxy on x86 if USE=-gnome
+ if ! use gnome ; then
+ sed_xml_element 'condition' -e '/property="build\.libgnomeproxy"/d' -i build.xml || die
+ fi
+
+ # skip compilation of SWT native libraries (we use the system-installed copies)
+ sed_xml_element 'ant' -e '/swt/d' -i build.xml || die
+
+ ebegin 'Removing plugins of irrelevant platforms'
+ local remove_os=" ${ALL_OS} " ; remove_os=${remove_os/ ${os} / }
+ remove_os=${remove_os# } ; remove_os=${remove_os% } ; remove_os=${remove_os// /'\|'}
+ local remove_ws=" ${ALL_WS} " ; remove_ws=${remove_ws/ ${ws} / }
+ remove_ws=${remove_ws# } ; remove_ws=${remove_ws% } ; remove_ws=${remove_ws// /'\|'}
+ local remove_arch=" ${ALL_ARCH} " ; remove_arch=${remove_arch/ ${arch} / }
+ remove_arch=${remove_arch# } ; remove_arch=${remove_arch% } ; remove_arch=${remove_arch// /'\|'}
+ sed_xml_element 'includes\|plugin' \
+ -e '/id="org\.eclipse\.\(core\.net\.linux\.x86\|update\.core\.linux\)"/b' \
+ -e '/os="'"${remove_os}"'"/d' -e '/ws="'"${remove_ws}"'"/d' -e '/arch="'"${remove_arch}"'"/d' \
+ -i "${buildDir}"/features/*/feature.xml "${S}"/eclipse-build-feature/feature.xml \
+ || die 'remove irrelevant platforms failed'
+ eend
+
+ if ! use doc ; then
+ ebegin 'Removing documentation plugins'
+ rm -rf "${buildDir}"/plugins/*.doc{,.*}
+ eclipse_delete-plugins '.*\.doc\(\..*\|\)'
+ eend
+ fi
+
+ if ! use source ; then
+ ebegin 'Removing source plugins'
+ rm -rf "${buildDir}"/plugins/*.source{,_*}
+ eclipse_delete-plugins '.*\.source'
+ eend
+ fi
+
+ ebegin 'Linking dependencies'
+ local dep ; for dep in "${OSGI_DEPENDENCIES[@]}" ; do
+ eclipse_create-osgi-dep ${dep}
+ done
+ local dep ; for dep in "${NONOSGI_DEPENDENCIES[@]}" ; do
+ eclipse_create-nonosgi-dep ${dep}
+ done
+ eend
+
+ cd "${buildDir}" || die
+ epatch "${FILESDIR}/${SLOT}/hamcrest-junit-lib.patch"
+ epatch "${FILESDIR}/${SLOT}/gtk_makefile.patch"
+ epatch "${FILESDIR}/${SLOT}/iterators.patch"
+}
+
+src_compile() {
+ ANT_OPTS='-Xmx512M' eant -DbuildArch="${arch}"
+
+ # remove stray symlink
+ rm "${buildDir}"/installation/plugins/junit4.jar
+}
+
+src_install() {
+ local destDir="/usr/$(get_libdir)/eclipse-${SLOT}"
+
+ insinto "${destDir}"
+ shopt -s dotglob
+ doins -r "${buildDir}"/installation/* || die
+ shopt -u dotglob
+ chmod +x "${D}${destDir}"/eclipse
+ rm -f "${D}${destDir}"/libcairo-swt.so # use the system-installed SWT libraries
+
+ # redo symlinks
+ ebegin 'Relinking dependencies'
+ local dep ; for dep in "${OSGI_DEPENDENCIES[@]}" ; do
+ eclipse_relink-osgi-dep ${dep}
+ done
+ local dep ; for dep in "${NONOSGI_DEPENDENCIES[@]}" ; do
+ eclipse_relink-nonosgi-dep ${dep}
+ done
+ eend
+
+ # Install Gentoo wrapper and config
+ dobin "${FILESDIR}/${SLOT}/eclipse-${SLOT}" || die
+ insinto /etc
+ doins "${FILESDIR}/${SLOT}/eclipserc-${SLOT}" || die
+
+ # Create desktop entry
+ make_desktop_entry "eclipse-${SLOT}" "Eclipse ${PV}" "${destDir}/icon.xpm" || die
+}
+
+eclipse_create-osgi-dep() {
+ local bundle=${1} replace=${2} package=${3} ; shift 3
+ bundle=$(basename "${S}/dependencyManifests/${bundle}"_*.jar .jar) || die
+ [[ ${replace} == '-' ]] && replace=${bundle}
+ einfo " ${bundle} => ${package}" "${@}"
+ mkdir -p "${buildDir}/plugins/${bundle}" || die
+ pushd "${buildDir}/plugins/${bundle}" > /dev/null || die
+ if (( ${#} )) ; then
+ local jar ; for jar in "${@}" ; do
+ java-pkg_jar-from "${package}" "${jar}.jar"
+ done
+ else
+ java-pkg_jar-from "${package}"
+ fi
+ mkdir META-INF || die
+ cp "${S}/dependencyManifests/${bundle}.jar/META-INF/MANIFEST.MF" META-INF/ || die
+ manifest_replace META-INF/MANIFEST.MF 'Bundle-ClassPath' "$(echo *.jar | tr ' ' ',')"
+ manifest_delete META-INF/MANIFEST.MF 'Name\|SHA1-Digest'
+ # replace classpath refs to this bundle with refs to system-installed jars
+ sed_xml_element 'pathelement' -e '/path="\([^"]\+\/\)\?'"${replace//./\.}"'\.jar"/c '"$(
+ for jar in *.jar ; do
+ echo -n '<pathelement path="'"$(readlink "${jar}")"'"/>'
+ done)" -i "${buildDir}"/plugins/*/build.xml || die
+ popd > /dev/null || die
+ # include unpacked bundle in copy to bootstrap plugins dir
+ sed_xml_element 'fileset' -e '/id="orbitDeps"/ s|</fileset>|<include name="'"${bundle}/"'"/>\0|' \
+ -i "${S}/pdebuild.xml" || die
+}
+
+eclipse_create-nonosgi-dep() {
+ local bundle=${1} package=${2} ; shift 2
+ local pdir=${buildDir}/plugins
+ local jar ; for jar in "${@:-${package}}" ; do
+ local dir=$(dirname "$(grep -ho "${bundle//./\.}"'\(_[^/=]*\)\?/\([^/=]*/\)*'"${jar}"'\.jar' \
+ "${S}"/{,jdt}nonosgidependencies.properties)") || die
+ einfo " ${dir}/${jar}.jar => ${package}"
+ mkdir -p "${pdir}/${dir}" || die
+ java-pkg_jar-from --build-only "${package}" "${jar}.jar" "${pdir}/${dir}/${jar}.jar"
+ dir=${dir%%/*}
+ local manifest=${pdir}/${dir}/META-INF/MANIFEST.MF
+ [[ -f ${manifest} ]] && manifest_delete "${manifest}" 'Name\|SHA1-Digest'
+ rm -f "${pdir}/${dir}"/META-INF/ECLIPSEF.{RSA,SF}
+ done
+}
+
+eclipse_relink-osgi-dep() {
+ local bundle=${1} replace=${2} package=${3} ; shift 3
+ einfo " ${bundle} => ${package}" "${@}"
+ pushd "${D}${destDir}/plugins/${bundle}"_* > /dev/null || die
+ if (( ${#} )) ; then
+ local jar ; for jar in "${@}" ; do
+ java-pkg_jar-from --build-only "${package}" "${jar}.jar"
+ done
+ else
+ java-pkg_jar-from --build-only "${package}"
+ fi
+ popd > /dev/null || die
+}
+
+eclipse_relink-nonosgi-dep() {
+ local bundle=${1} package=${2} ; shift 2
+ local pdir=${D}${destDir}/plugins
+ local jar ; for jar in "${@:-${package}}" ; do
+ local dir=$(dirname "$(grep -ho "${bundle//./\.}"'\(_[^/=]*\)\?/\([^/=]*/\)*'"${jar}"'\.jar' \
+ "${S}"/{,jdt}nonosgidependencies.properties)") || die
+ einfo " ${dir}/${jar}.jar => ${package}"
+ mkdir -p "${pdir}/${dir}" || die
+ java-pkg_jar-from --build-only "${package}" "${jar}.jar" "${pdir}/${dir}/${jar}.jar"
+ done
+}
+
+# Removes feature.xml references to plugins matching ${1}.
+eclipse_delete-plugins() {
+ sed_xml_element 'includes\|plugin' -e '/id="'"${1}"'"/d' \
+ -i "${buildDir}"/features/*/feature.xml "${S}"/eclipse-build-feature/feature.xml \
+ || die 'eclipse_delete-plugins failed'
+}
+
+# Prints the first value from manifest file ${1} whose key matches regex ${2},
+# unfolding as necessary.
+manifest_get() {
+ sed -n -e '/^\('"${2}"'\): /{h;:A;$bB;n;/^ /!bB;H;bA};d;:B;g;s/^[^:]*: //;s/\n //g;p;q' "${1}" \
+ || die 'manifest_get failed'
+}
+
+# Deletes values from manifest file ${1} whose keys match regex ${2}, taking
+# into account folding.
+manifest_delete() {
+ sed -n -e ':A;/^\('"${2}"'\): /{:B;n;/^ /!{bA};bB};p' -i "${1}" \
+ || die 'manifest_delete failed'
+}
+
+# Replaces the value for key ${2} in the first section of manifest file ${1}
+# with ${3}, or adds the key-value pair to that section if the key was absent.
+manifest_replace() {
+ LC_ALL='C' awk -v key="${2}" -v val="${3}" '
+function fold(s, o, l, r) {
+ o = 2 ; l = length(s) - 1 ; r = substr(s, 1, 1)
+ while (l > 69) { r = r substr(s, o, 69) "\n " ; o += 69 ; l -= 69 }
+ return r substr(s, o)
+}
+BEGIN { FS = ": " }
+f { print ; next }
+i { if ($0 !~ "^ ") { f = 1 ; print } ; next }
+$1 == key { print fold(key FS val) ; i = 1 ; next }
+/^\r?$/ { print fold(key FS val) ; print ; f = 1 ; next }
+{ print }
+END { if (!f) { print fold(key FS val) } }
+' "${1}" > "${1}-" && mv "${1}"{-,} || die 'manifest_replace failed'
+}
+
+# Executes sed over each XML element with a name matching ${1}, rather than
+# over each line. The entire element (and its children) may be removed with the
+# 'd' command, or they may be edited using all the usual sed foo. Basically,
+# the script argument will be executed only for elements matching ${1}, and the
+# sed pattern space will consist of the entire element, including any nested
+# elements. Note that this is not perfect and requires no more than one XML
+# element per line to be reliable.
+sed_xml_element() {
+ local elem=${1} ; shift
+ sed -e '/<\('"${elem}"'\)\([> \t]\|$\)/{:_1;/>/!{N;b_1};/\/>/b_3' \
+ -e ':_2;/<\/\('"${elem}"'\)>/!{N;b_2};b_3};b;:_3' "${@}"
+}
diff --git a/dev-util/eclipse-sdk/files/3.7/eclipse-3.7 b/dev-util/eclipse-sdk/files/3.7/eclipse-3.7
new file mode 100644
index 0000000..aed6745
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.7/eclipse-3.7
@@ -0,0 +1,46 @@
+#! /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.7"
+
+[ -f "/etc/eclipserc-${SLOT}" ] && . "/etc/eclipserc-${SLOT}"
+[ -f "$HOME/gentoo/.eclipserc" ] && . "$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 ..." > /dev/stderr
+ exit 1
+fi
+
+case "$(java-config -f)" in
+ *gcj*)
+ export JAVA_PKG_CLASSMAP="${ECLIPSE_HOME}/eclipse.gcjdb"
+ ;;
+esac
+
+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}"
+
+# Fix for JRE 1.5.
+export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib
+
+exec "${ECLIPSE_BIN}" -vm $(java-config --java) "$@" "${ECLIPSE_USER_ARGS}" -vmargs ${VM_ARGS}
diff --git a/dev-util/eclipse-sdk/files/3.7/eclipserc-3.7 b/dev-util/eclipse-sdk/files/3.7/eclipserc-3.7
new file mode 100644
index 0000000..703b649
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.7/eclipserc-3.7
@@ -0,0 +1,20 @@
+# This file specifies some initial Eclipse settings, like memory allowed
+# 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.
+
+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.
+# Thus, if you use a lot of Eclipse plugins, it is recommended to uncomment
+# these variables and even increase it, if you have enough RAM.
+# Else you will get crashes related to OutOfMemory in PermGen exceptions.
+
+#ECLIPSE_PERMSIZE=64m
+#ECLIPSE_MAX_PERMSIZE=128m \ No newline at end of file
diff --git a/dev-util/eclipse-sdk/files/3.7/gtk_makefile.patch b/dev-util/eclipse-sdk/files/3.7/gtk_makefile.patch
new file mode 100644
index 0000000..dd71e95
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.7/gtk_makefile.patch
@@ -0,0 +1,36 @@
+--- features/org.eclipse.equinox.executable/library/gtk/make_linux.mak~ 2010-02-08 21:14:12.000000000 +0000
++++ features/org.eclipse.equinox.executable/library/gtk/make_linux.mak 2010-08-09 21:47:30.543247031 +0000
+@@ -27,7 +27,8 @@
+ PROGRAM_OUTPUT=eclipse
+ endif
+
+-PROGRAM_LIBRARY=$(PROGRAM_OUTPUT)_$(LIB_VERSION).so
++PROGRAM_SONAME=$(PROGRAM_OUTPUT)_$(LIB_VERSION)
++PROGRAM_LIBRARY=$(PROGRAM_SONAME).so
+
+ ifeq ($(DEFAULT_JAVA),)
+ DEFAULT_JAVA=DEFAULT_JAVA_JNI
+@@ -44,8 +45,8 @@
+ #LIBS = `pkg-config --libs-only-L gtk+-2.0` -lgtk-x11-2.0 -lgdk_pixbuf-2.0 -lgobject-2.0 -lgdk-x11-2.0 -lpthread -ldl -lX11
+ LIBS = -lpthread -ldl
+ GTK_LIBS = -DGTK_LIB="\"libgtk-x11-2.0.so.0\"" -DGDK_LIB="\"libgdk-x11-2.0.so.0\"" -DPIXBUF_LIB="\"libgdk_pixbuf-2.0.so.0\"" -DGOBJ_LIB="\"libgobject-2.0.so.0\"" -DX11_LIB="\"libX11.so.6\""
+-LFLAGS = ${M_ARCH} -shared -fpic -Wl,--export-dynamic
+-CFLAGS = ${M_ARCH} -g -s -Wall\
++LFLAGS = ${M_ARCH} -shared -Wl,-soname=$(PROGRAM_SONAME) -fpic -Wl,--export-dynamic
++CFLAGS += ${M_ARCH} -Wall\
+ -fpic \
+ -DLINUX \
+ -DMOZILLA_FIX \
+@@ -95,10 +96,10 @@
+ $(CC) $(CFLAGS) -c ../eclipseNix.c -o eclipseNix.o
+
+ $(EXEC): $(MAIN_OBJS) $(COMMON_OBJS)
+- $(CC) ${M_ARCH} -o $(EXEC) $(MAIN_OBJS) $(COMMON_OBJS) $(LIBS)
++ $(CC) ${M_ARCH} $(LDFLAGS) -o $(EXEC) $(MAIN_OBJS) $(COMMON_OBJS) $(LIBS)
+
+ $(DLL): $(DLL_OBJS) $(COMMON_OBJS)
+- $(CC) $(LFLAGS) -o $(DLL) $(DLL_OBJS) $(COMMON_OBJS) $(LIBS)
++ $(CC) $(LDFLAGS) $(LFLAGS) -o $(DLL) $(DLL_OBJS) $(COMMON_OBJS) $(LIBS)
+
+ install: all
+ cp $(EXEC) $(OUTPUT_DIR)
diff --git a/dev-util/eclipse-sdk/files/3.7/hamcrest-junit-lib.patch b/dev-util/eclipse-sdk/files/3.7/hamcrest-junit-lib.patch
new file mode 100644
index 0000000..edad52c
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.7/hamcrest-junit-lib.patch
@@ -0,0 +1,11 @@
+--- plugins/org.eclipse.jdt.junit.core/src/org/eclipse/jdt/internal/junit/buildpath/BuildPathSupport.java~ 2011-03-09 16:38:30.000000000 +0000
++++ plugins/org.eclipse.jdt.junit.core/src/org/eclipse/jdt/internal/junit/buildpath/BuildPathSupport.java 2011-06-15 18:07:35.272733911 +0000
+@@ -161,7 +161,7 @@
+ "org.junit", new VersionRange("[4.7.0,5.0.0)"), "junit.jar", "junit.jar", "org.junit.source", "source-bundle/", JUnitPreferencesConstants.JUNIT4_JAVADOC); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
+
+ private static final JUnitPluginDescription HAMCREST_CORE_PLUGIN= new JUnitPluginDescription(
+- "org.hamcrest.core", new VersionRange("[1.1.0,2.0.0)"), null, "org.hamcrest.core_1.*.jar", "org.hamcrest.core.source", "source-bundle/", JUnitPreferencesConstants.HAMCREST_CORE_JAVADOC); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
++ "org.hamcrest.core", new VersionRange("[1.1.0,2.0.0)"), "hamcrest-core.jar", "org.hamcrest.core_1.*.jar", "org.hamcrest.core.source", "source-bundle/", JUnitPreferencesConstants.HAMCREST_CORE_JAVADOC); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
+
+ /**
+ * @return the JUnit3 classpath container
diff --git a/dev-util/eclipse-sdk/files/3.7/iterators.patch b/dev-util/eclipse-sdk/files/3.7/iterators.patch
new file mode 100644
index 0000000..eca230e
--- /dev/null
+++ b/dev-util/eclipse-sdk/files/3.7/iterators.patch
@@ -0,0 +1,70 @@
+--- plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/CompoundIterator.java~ 2010-02-19 12:12:49.000000000 +0000
++++ plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/CompoundIterator.java 2010-08-09 23:16:39.201246659 +0000
+@@ -25,7 +25,7 @@
+ private final Iterator<? extends Object> iteratorIterator;
+ private Iterator<T> currentIterator;
+
+- private T nextObject = noElement();
++ private Object nextObject = NO_ELEMENT;
+
+ /**
+ * Creates a compound iterator that will iterated over the elements
+@@ -47,8 +47,9 @@
+ if (!positionNext())
+ throw new NoSuchElementException();
+
+- T nxt = nextObject;
+- nextObject = noElement();
++ @SuppressWarnings("unchecked")
++ T nxt = (T) nextObject;
++ nextObject = NO_ELEMENT;
+ return nxt;
+ }
+
+@@ -76,9 +77,4 @@
+ nextObject = currentIterator.next();
+ return true;
+ }
+-
+- @SuppressWarnings("unchecked")
+- private static <T> T noElement() {
+- return (T) NO_ELEMENT;
+- }
+-}
+\ No newline at end of file
++}
+--- plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/MatchIteratorFilter.java~ 2010-02-19 12:12:48.000000000 +0000
++++ plugins/org.eclipse.equinox.p2.metadata/src/org/eclipse/equinox/internal/p2/metadata/expression/MatchIteratorFilter.java 2010-08-09 23:20:33.572246380 +0000
+@@ -21,7 +21,7 @@
+
+ private final Iterator<? extends T> innerIterator;
+
+- private T nextObject = noElement();
++ private Object nextObject = NO_ELEMENT;
+
+ public MatchIteratorFilter(Iterator<? extends T> iterator) {
+ this.innerIterator = iterator;
+@@ -35,8 +35,9 @@
+ if (!positionNext())
+ throw new NoSuchElementException();
+
+- T nxt = nextObject;
+- nextObject = noElement();
++ @SuppressWarnings("unchecked")
++ T nxt = (T) nextObject;
++ nextObject = NO_ELEMENT;
+ return nxt;
+ }
+
+@@ -63,9 +64,4 @@
+ }
+ return false;
+ }
+-
+- @SuppressWarnings("unchecked")
+- private static <T> T noElement() {
+- return (T) NO_ELEMENT;
+- }
+-}
+\ No newline at end of file
++}