diff options
author | Paul de Vrieze <pauldv@gentoo.org> | 2011-02-18 09:19:02 +0000 |
---|---|---|
committer | Paul de Vrieze <pauldv@gentoo.org> | 2011-02-18 09:19:02 +0000 |
commit | 81db1aea97407232017c1d7d8aaf0c1cb2bca375 (patch) | |
tree | bcda12b8a8bdf685fd99e2c190acd431cd981a87 /dev-util | |
parent | New kde 4.6 set (diff) | |
download | pauldv-81db1aea97407232017c1d7d8aaf0c1cb2bca375.tar.gz pauldv-81db1aea97407232017c1d7d8aaf0c1cb2bca375.tar.bz2 pauldv-81db1aea97407232017c1d7d8aaf0c1cb2bca375.zip |
Add the ebuilds needed for modern eclipse
svn path=/trunk/overlay/; revision=125
Diffstat (limited to 'dev-util')
19 files changed, 528 insertions, 1660 deletions
diff --git a/dev-util/eclipse-sdk/Manifest b/dev-util/eclipse-sdk/Manifest index 612a730..9b6b241 100644 --- a/dev-util/eclipse-sdk/Manifest +++ b/dev-util/eclipse-sdk/Manifest @@ -1,15 +1,12 @@ -AUX 3.4/ant-osgi-manifest.mf 3165 RMD160 75444432268c9eef06cd4bb18352b77e426ed116 SHA1 c09dd82dee4708e8726b52569e25da0edda641df SHA256 1df8d7283d6f8fa3d1c3bbbbd832a5fd091f39b52d27d88b131064aeb81ab542 -AUX 3.4/eclipse-3.4 1378 RMD160 8e99b71258a5c047e3094b2ec941924871b9b147 SHA1 99cf45921276ed70f1123cc2c0655ec37944a0d4 SHA256 ba99d0d956d53d5f8f801c7f8aa9a805bb32c0a4e64262eac39bfc176c46ebbe -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/eclipserc-3.4 858 RMD160 f911438aa661be9ca8fc352dd372c9485d163ddb SHA1 abb1c369326be455d16bc42cf0a1b035aa145dc0 SHA256 0aea733c968ca064ad5ca95d5895778ecf7387826198b512e98d0cbb7dd353f1 -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 -DIST eclipse-sourceBuild-srcIncluded-3.4.2.zip 105843305 RMD160 d4bb5e15b484ac955ba342336de70b3d0c14ac6d SHA1 2a093a119def58b4df43e672c4d75c2f62fb0b16 SHA256 0c0df3b317a0c5745dfb7d5714ea3754b1f2d23f08c1f59713c812dd0bfa79d7 -EBUILD eclipse-sdk-3.4.1.ebuild 15721 RMD160 1a283708028e962c35e2da72148f327793ad570b SHA1 ff4e0aa67d25182b280839f7415227274486a447 SHA256 ba38a377d1f450a704bc4e098288ebce4ec47ebee3ba975b75cda6a3c55ceb51 -EBUILD eclipse-sdk-3.4.2-r1.ebuild 15420 RMD160 93bdf99a6a6004d94d1699be7444de5b73bd281e SHA1 4bd6e7bce9b2b894e8bc548213ebc4830fc15f4c SHA256 c9e65ba99963b5b56ee1b52c2c7d7b9b09e9aad5fb360fe120d3c271a89aadf3 -EBUILD eclipse-sdk-3.4.2.ebuild 15717 RMD160 c5e44607705d812a6925994e8873494ab2a344b1 SHA1 4393bd75c2ac1195fad147e8d724450d7cea55d3 SHA256 9e6cb767aeb5069ee50567b0784a87917aa9adca87c4c97eb5338062ba288fec -MISC NOTES 109 RMD160 46488535b78316726bcd68db93ba92f6660dce66 SHA1 e329071628cc4ac1401faa44c8e7976597cba2c6 SHA256 c914208f0ac7675bd3b6c9d306387dca733554bb771eb1add872c7b9c929dfba +AUX 3.6/eclipse-3.6 1387 RMD160 92db7721aedc6a0a1f1474a806d6d4ddfafe6a12 SHA1 78a04cb87b5fe01929c898e702085d7d839e862f SHA256 cd5a53e665298008de47894189780560b017d4f5b41e9b0a3d225408e459fdff +AUX 3.6/eclipserc-3.6 858 RMD160 f911438aa661be9ca8fc352dd372c9485d163ddb SHA1 abb1c369326be455d16bc42cf0a1b035aa145dc0 SHA256 0aea733c968ca064ad5ca95d5895778ecf7387826198b512e98d0cbb7dd353f1 +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 +DIST eclipse-3.6.0-src.tar.bz2 62602010 RMD160 30e02be2d7e7690e3f8ec4c9ca8260938faf3894 SHA1 cd6a59eb830423bb6ac41021115e6673d74b8f10 SHA256 5855fad1f877698c409a677ff32c958227fe0442492cd959e7dc0882060e6fd3 +DIST eclipse-3.6.1-src.tar.bz2 62823517 RMD160 82d7d50d8f2be20116f55e6be086ae9dbac9bc0e SHA1 c95a21897da29b080e86b94c0298cc8b792af929 SHA256 6144cbcf3715a144d9be433c2a89f3f3bdce6ee3c33396e3e783d3b683cdc94f +DIST eclipse-build-0.6.0.tar.bz2 293428 RMD160 3ca7b8e8e4016cab251ef758ed533856aa31ced3 SHA1 2f0580bb2496bd299ad77ada48cb7d9e3ab5a4fd SHA256 a2dc16b9178d0416e01c52306c68b4a82c34a7cc163d86326dbcfbab16a68ef3 +EBUILD eclipse-sdk-3.6.0.ebuild 12286 RMD160 dc60b8623fc713ff558935a12d6acea77a4da022 SHA1 3841d355b1bd6d7c27272e80be3c3c297fefd08d SHA256 8134b342ea4c391e42832599d936a8e548531d4039b6591b21290005e032eed0 +EBUILD eclipse-sdk-3.6.1.ebuild 12488 RMD160 d2757dcdeee41fc84b47698be3368b2601feec8a SHA1 a30445590973ee8f6e05a419f9b5877c10a6d7e0 SHA256 b17bc05a2cd878bdb06becbe45313b50b12482e2e023dfd94396877967a3735b +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/NOTES b/dev-util/eclipse-sdk/NOTES index 3b9e02d..a98dcd3 100644 --- a/dev-util/eclipse-sdk/NOTES +++ b/dev-util/eclipse-sdk/NOTES @@ -1 +1 @@ -New eclipse to follow upstream. Also fix broken jdk1.6 support (and hopefully make the j2ee plugins working) +New eclipse from bug #325271, to get modern (working) eclipse irregardless of jetty ebuilding. diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.4.1.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.4.1.ebuild deleted file mode 100644 index b057988..0000000 --- a/dev-util/eclipse-sdk/eclipse-sdk-3.4.1.ebuild +++ /dev/null @@ -1,404 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -# Jetty and Jasper have to stay bundled for now, until someone does some work on them. - -# ECF also has to stay bundled due to a chicken and egg situation. We could use -# the bundled version to build Eclipse and then build ECF later but it's still -# a pain to build without using chewi-overlay. - -# 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_ANT_DISABLE_ANT_CORE_DEP="true" -WANT_ANT_TASKS="ant-nodeps" - -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="doc java6 source" -KEYWORDS="~amd64 ~x86" - -S="${WORKDIR}" -PATCHDIR="${FILESDIR}/${SLOT}" -ECLIPSE_DIR="/usr/$(get_libdir)/eclipse-${SLOT}" -BUILDPARSER="/usr/$(get_libdir)/javatoolkit/bin/buildparser" - -CDEPEND="dev-java/swt:${SLOT} - dev-java/ant-eclipse-ecj:${SLOT} - >=dev-java/ant-1.7.1 - >=dev-java/ant-core-1.7.1 - >=dev-java/asm-3.1:3 - >=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/lucene-analyzers-1.9.1-r1:1.9 - >=dev-java/tomcat-servlet-api-5.5.25-r1:2.4 - dev-java/cldc-api:1.1 - dev-java/junit:0 - dev-java/lucene:1.9 - dev-java/sat4j-core:2 - dev-java/sat4j-pseudo:2" - -RDEPEND="${CDEPEND} - ${JAVA_ANT_E_DEPEND} - java6? ( >=virtual/jre-1.6 ) - !java6? ( >=virtual/jre-1.5 )" - -DEPEND="${CDEPEND} - !java6? ( >=virtual/jdk-1.5 ) - java6? ( >=virtual/jdk-1.6 ) - >=dev-java/javatoolkit-0.3 - app-arch/unzip - app-arch/zip" - -JAVA_PKG_BSFIX="off" - -pkg_setup() { - java-pkg-2_pkg_setup - - CHECKREQS_MEMORY="512" - check_reqs - - if use doc ; then - ewarn "Having the doc USE flag enabled greatly increases the build time. You might" - ewarn "want to disable it for ${PN} if you don't need it." - fi - - eclipsearch=${ARCH} - use amd64 && eclipsearch="x86_64" -} - -src_unpack() { - unpack ${A} - patch-apply - remove-bundled-stuff - - while read line; do - java-ant_rewrite-classpath "${line}" > /dev/null - done < <(find "${S}" -type f -name "build.xml") -} - -src_compile() { - java-pkg_force-compiler ecj-${SLOT} - - local bootclasspath=$(java-config --runtime) - 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}" - - ANT_OPTS="-Xmx512M" eant ${options} - - # Generate P2 metadata. - `java-config -J` -jar eclipse/plugins/org.eclipse.equinox.launcher_*.jar -data workspace \ - -application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator -flavor tooling \ - -metadataRepositoryName "Gentoo Eclipse" -artifactRepositoryName "Gentoo Eclipse" \ - -metadataRepository "file:eclipse/metadata" -artifactRepository "file:eclipse/metadata" \ - -root "Gentoo Eclipse SDK" -rootVersion "${SLOT}" -source eclipse -append -publishArtifacts || die -} - -src_install() { - # Root files don't get included by P2. - insinto "${ECLIPSE_DIR}" - doins -r features/org.eclipse.platform/rootfiles/{.eclipseproduct,*} - - # Workaround https://bugs.eclipse.org/bugs/show_bug.cgi?id=241430... - rm -rf eclipse/configuration/.settings || die - - # Install using P2. - `java-config -J` -Declipse.p2.data.area="file:${D}/${ECLIPSE_DIR}/p2" \ - -jar eclipse/plugins/org.eclipse.equinox.launcher_*.jar -data workspace \ - -application org.eclipse.equinox.p2.director.app.application -flavor tooling \ - -metadataRepository "file:eclipse/metadata" -artifactRepository "file:eclipse/metadata" \ - -installIU "Gentoo Eclipse SDK" -version "${SLOT}" -p2.os linux -p2.ws gtk -p2.arch ${eclipsearch} \ - -profile SDKProfile -profileProperties org.eclipse.update.install.features=true \ - -destination "${D}/${ECLIPSE_DIR}" -bundlepool "${D}/${ECLIPSE_DIR}" -roaming || die - - cd "${D}/${ECLIPSE_DIR}" || die - - # Delete unneeded files. - rm -rf p2/org.eclipse.equinox.p2.core || die - - # Restore symlinks. P2 has ignored them. - rm -rf plugins/org.apache.ant_*/{bin,lib} || die - ln -snf /usr/share/ant/bin plugins/org.apache.ant_*/ || die - ln -snf /usr/share/ant/lib plugins/org.apache.ant_*/ || die - cp -af "${S}"/plugins/org.junit_*/*.jar plugins/org.junit_*/ || die -# cp -af "${S}"/plugins/org.junit4/*.jar plugins/org.junit4_*/ || die - - # Install startup script. - dobin "${FILESDIR}/${SLOT}/eclipse-${SLOT}" || die - - # Install global rc script. - insinto /etc - doins "${FILESDIR}/${SLOT}/eclipserc-${SLOT}" || die - - # Install icon and make desktop entry. - newicon "${S}/features/org.eclipse.equinox.executable/bin/gtk/linux/x86/icon.xpm" eclipse.xpm || die - make_desktop_entry eclipse-${SLOT} "Eclipse ${PV}" eclipse.xpm || die -} - -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 longer integrated." - einfo "If you need it, get org.eclipse.equinox.initializer_x.y.z.jar from:" - einfo " http://download.eclipse.org/eclipse/equinox/" -} - -# ----------------------------------------------------------------------------- -# Helper functions -# ----------------------------------------------------------------------------- - -patch-apply() { - # Optimize launcher build. - unzip -q plugins/org.eclipse.platform/launchersrc.zip library/gtk/make_linux.mak || die - sed -i -r "s/CFLAGS = -g -s\b/CFLAGS =/;/CFLAGS =/a\\\\t${CFLAGS}\\\\" library/gtk/make_linux.mak || die - zip -qrm plugins/org.eclipse.platform/launchersrc.zip library || die - - # Avoid doing any unnecessary copying or archiving at the end of the build. - sed -r -i '/<exec .*\bexecutable="tar"/,/<delete /d' {assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - sed -r -i '/<delete /,/<delete .*\bdir=/d' build.xml || die - mkdir -p tmp/eclipse || die - ln -snf tmp/eclipse eclipse || die - - if ! use java6; then - sed -r '/<ant .*\/org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?"/,/<\/ant>/d' \ - -i features/org.eclipse.jdt{,.source}/build.xml || die - sed -r '/id="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))"/,/<plugin /d' \ - -i features/org.eclipse.jdt/feature.xml || die - sed -r '/id="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))\.source"/d' \ - -i features/org.eclipse.jdt.source/feature.xml || die - sed -r -e '/<customGather .*\/org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?"/d' \ - -e '/value="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?_/,/eclipse\.plugins/d' \ - -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - fi - - # Miscellaneous patches. - epatch "${PATCHDIR}/eclipse_build-libs.diff" - epatch "${PATCHDIR}/eclipse-c-warning.patch" - - # JNI. - sed -i '/value="x86"/d' plugins/org.eclipse.update.core.linux/src/build.xml || die - - # Following adds an additional classpath when building JSPs. - sed -i '/<path id="@dot\.classpath".*/a<pathelement path="${gentoo.classpath}" />' \ - plugins/org.eclipse.help.webapp/build{,JSPs}.xml || die - - # No warnings. Java5. Direct output to stdout. - find -type f -name '*.xml' -exec \ - sed -r -e 's:"compilerArg" value=":\0-nowarn :g' \ - -e 's:(<property name="javac(Source|Target)" value=)"1.[0-4]":\1"1.5":g' \ - -e 's:output="[^"]+\.(txt|log)"::g' -i {} \; || die - - # JDK home and CFLAGS. - sed -r -e "s:^(JAVA_HOME ?=).*:\1 $(java-config --jdk-home):" -e "s:^(OPT_FLAGS ?=).*:\0 ${CFLAGS}:" \ - -i plugins/org.eclipse.core.filesystem/natives/unix/linux/Makefile || die "sed Makefile failed" - - # Don't build plugins for other archs or GUI toolkits. Don't gather their sources either. - sed -r -e '/<ant .*\.(aix|carbon|hpux|macosx|motif|qnx|solaris|win32)[".]/,/<\/ant>/d' \ - -e '/<ant .*\/org\.eclipse\.swt\..+(\.source)?"/,/<\/ant>/d' \ - -i features/org.eclipse.{platform,rcp}{,.source}/build.xml || die - - if ! use doc ; then - # Don't reference the docs. Slightly evil but it works. - sed -r '/<plugin/{:x;/id="[^"]*\.doc\./{:y;/\/>/d;N;by};/\/>/b;N;bx}' \ - -i features/*/feature.xml || die - - # Don't install the docs. - sed -r '/<customGather .*\.doc\./d' \ - -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - # Don't build the docs. - sed -i '/<antcall .*\btarget="build.doc.plugins"/d' build.xml || die - sed -i '/<ant .*\/.*\.doc\./,/<\/ant>/d' features/*/build.xml || die - - # Don't reference the doc plugins in the sources. These feature.xml files - # thankfully have their plugins on one line. Let's hope they stay that way. - sed -r '/<plugin id="[^"]*\.doc\./d' \ - -i features/*.source/feature.xml || die - fi - - if ! use source ; then - # Don't reference the sources. Slightly evil but it works. - sed -r '/<includes/{:x;/id="[^"]*\.source"/{:y;/\/>/d;N;by};/\/>/b;N;bx}' \ - -i features/org.eclipse.sdk/feature.xml || die - - # Don't install the sources. - sed -r '/<(copy|customGather) .*\.source/d' \ - -i {assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - fi - - # In 3.4.1, bootclasspath was removed from here. Not sure why. - sed -r '/\bname="bundleBootClasspath"/s:value=":\0${bootclasspath};:' \ - -i plugins/org.eclipse.osgi/build.xml || die -} - -remove-bundled-stuff() { - local x - pushd plugins >/dev/null - - # Remove pre-built binaries. - find "${S}/features/org.eclipse.equinox.executable" -type f -name eclipse -delete || die - # ..and libraries. - find "${S}" -type f -name '*.so' -delete || die - # ..and JAR files. - rm -f org.eclipse.osgi/{,supplement}/osgi/osgi*.jar \ - org.eclipse.swt/extra_jars/exceptions.jar || die - # ..and classes. - rm -rf org.eclipse.jdt.core/scripts/*.class \ - org.eclipse.osgi.{services,util}/org || die - - # Unpack zipped sources for removed classes. If we unpack the sources to - # src like the other plugins, the build order seems to change and things - # break. Very bizarre. Consequently we have to adjust build.xml to - # install the classes and not the sources. Ugly but it works. - for x in services util ; do - unzip -q org.eclipse.osgi.${x}/src.zip -d org.eclipse.osgi.${x}/ || die - x=org.eclipse.osgi.${x}/build.xml - { rm ${x} && awk '/<target .*name="gather\.bin\.parts"/ { inside = 1 } { if (inside) { if ($0 ~ /"org\/"/) next; \ - if ($0 ~ /<\/fileset>/) { print; print "<fileset dir=\"${basedir}/@dot/\" includes=\"org/\"/>"; inside = 0; next } } } { print }' > ${x}; } < ${x} || die - done - - # This prebuilt class actually comes from another plugin that will be - # built so we can just symlink to that. - ln -snf "${S}"/plugins/org.eclipse.core.runtime/@dot/org/eclipse/core/runtime/IPluginDescriptor.class \ - org.eclipse.core.runtime.compatibility.registry/classes/org/eclipse/core/runtime/IPluginDescriptor.class || die - - # Reset the list of system packages to use when building. - EANT_GENTOO_CLASSPATH="swt:${SLOT} cldc-api:1.1" - - unbundle-jar org.apache.commons.el commons-el - unbundle-jar org.apache.commons.logging commons-logging - unbundle-jar com.jcraft.jsch jsch - unbundle-jar com.ibm.icu icu4j - unbundle-jar javax.servlet tomcat-servlet-api:2.4 - unbundle-jar javax.servlet.jsp tomcat-servlet-api:2.4 - unbundle-jar org.apache.lucene lucene:1.9 - unbundle-jar org.apache.lucene.analysis lucene-analyzers:1.9 - unbundle-jar org.objectweb.asm asm:3 - unbundle-jar org.sat4j.core sat4j-core:2 - unbundle-jar org.sat4j.pb sat4j-pseudo:2 - - # Make the junit4 case easier. -# ln -snf org.junit4 org.junit4_ || die - - unbundle-dir org.apache.ant ant-core,ant-nodeps lib - unbundle-dir org.junit junit . -# unbundle-dir org.junit4 junit-4 . - - # Don't include sources for junit4. -# sed -i '/junitsrc/d' org.junit4/customBuildCallbacks.xml || die - - # Unbundle SWT and make @dot directory to keep build happy. - ${BUILDPARSER} -i Bundle-ClassPath "external:$(java-pkg_getjars swt-${SLOT})" org.eclipse.swt.gtk.linux.${eclipsearch}/META-INF/MANIFEST.MF || die - mkdir -p org.eclipse.swt.gtk.linux.${eclipsearch}/@dot || die - remove-plugin-sources org.eclipse.swt.gtk.linux.${eclipsearch} - - # Mark the SWT plugins as unpacked. More evilness that works. - sed -r '/<plugin/{:x;/id="org\.eclipse\.swt\./{:y;/\/>/s/unpack="[^"]*"/unpack="true"/;t;N;by};/\/>/b;N;bx}' \ - -i "${S}"/features/org.eclipse.rcp/feature.xml || die - - # Prevent the SWT plugin from being JAR'd. - sed -r '/<param .*\bvalue="org.eclipse.swt.gtk.linux.'"${eclipsearch}"'_/d' \ - -i "${S}"/assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - popd >/dev/null -} - -# Unbundle a directory plugin by removing its JAR files and replacing them -# with symlinks. We don't modify the manifest because Eclipse's antRunner -# doesn't seem to like external JARs. -unbundle-dir() { - ebegin "Unbundling $1" - remove-plugin-sources $1 - - # Delete the bundled JARs and signing files. - rm -f "$1"_*/$3/*.jar "$1"_*/META-INF/ECLIPSE.{RSA,SF} || die - - # Replace the bundled JARs with symlinks. - java-pkg_jar-from --into "$1"_*/$3 $2 - - eend 0 -} - -# Unbundle a JAR plugin by removing its class files and modifying its manifest -# so that it points to external JARs instead. The plugin must remain unpacked -# because OSGi cannot handle external JARs in packed plugins. -unbundle-jar() { - ebegin "Unbundling $1" - remove-plugin-sources $1 - - # Find full plugin name and version. - local plugin=`echo $1_*` - plugin=${plugin%.jar} - - # Make directory to replace JAR. - mkdir -p "${plugin}" || die - cd "${plugin}" || die - rm -rf * || die - - # Extract what we need from the existing JAR. - `java-config -j` xf "../${plugin}.jar" META-INF/MANIFEST.MF plugin.{properties,xml} || die - - # Apply our new classpath. - local classpath=$(java-pkg_getjars $2) - EANT_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH} $2" - ${BUILDPARSER} -i Bundle-ClassPath "external:${classpath//:/,external:}" META-INF/MANIFEST.MF || die - - # The javadoc options are stored in text files and so rewriting the classpath in - # the ant build files has no effect. Instead, we replace plugins paths with the - # paths to their external JARs. Passing gentoo.classpath is too RAM-intensive. - sed -i -r "s:^;\.\.\/${1//./\.}[_/].*\.jar$:;${classpath//:/\:}:" ../*/*Options.txt || die - - # Delete unneeded manifest entries. - sed -i -r "/^Name:|^SHA1-Digest:/d" META-INF/MANIFEST.MF || die - - # This plugin is now unpacked. More evilness that works. - sed -r '/<plugin/{:x;/id="'"${1//./\.}"'"/{:y;/\/>/s/unpack="[^"]*"/unpack="true"/;t;N;by};/\/>/b;N;bx}' \ - -i "${S}"/features/*/feature.xml || die - - # Copy the whole directory instead of just a JAR. - sed -r "/<copy .*\/${1//./\.}/{s/<copy\b/<copydir/;s/\.jar//g;s/\bfile=/src=/;s/\btofile=/dest=/}" \ - -i "${S}"/package.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - # Delete JAR and return to previous directory. - rm -f "../${plugin}.jar" || die - cd .. || die - - eend 0 -} - -remove-plugin-sources() { - use source || return - - # Don't reference the sources for this plugin. These feature.xml files - # thankfully have their plugins on one line. Let's hope they stay that way. - sed -r '/<plugin id="'"${1//./\.}"'\.source"/d' \ - -i "${S}/features"/*.source/feature.xml || die - - # Don't try to install the sources either. - sed -r '/<(copy|copydir|customGather) .*\/'"${1//./\.}"'\.source/d' \ - -i "${S}"/{assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die -} diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.4.2-r1.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.4.2-r1.ebuild deleted file mode 100644 index 5903bb3..0000000 --- a/dev-util/eclipse-sdk/eclipse-sdk-3.4.2-r1.ebuild +++ /dev/null @@ -1,391 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -# Jetty and Jasper have to stay bundled for now, until someone does some work on them. - -# ECF also has to stay bundled due to a chicken and egg situation. We could use -# the bundled version to build Eclipse and then build ECF later but it's still -# a pain to build without using chewi-overlay. - -# 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_ANT_DISABLE_ANT_CORE_DEP="true" -WANT_ANT_TASKS="ant-nodeps" - -inherit java-pkg-2 java-ant-2 check-reqs - -DMF="R-${PV}-200902111700" -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="doc java6 source" -KEYWORDS="~amd64 ~x86" - -S="${WORKDIR}" -PATCHDIR="${FILESDIR}/${SLOT}" -ECLIPSE_DIR="/usr/$(get_libdir)/eclipse-${SLOT}" -BUILDPARSER="/usr/$(get_libdir)/javatoolkit/bin/buildparser" - -CDEPEND="dev-java/swt:${SLOT} - dev-java/ant-eclipse-ecj:${SLOT} - dev-java/cldc-api:1.1" - -RDEPEND="${CDEPEND} - ${JAVA_ANT_E_DEPEND} - java6? ( >=virtual/jre-1.6 ) - !java6? ( >=virtual/jre-1.5 )" - -DEPEND="${CDEPEND} - !java6? ( >=virtual/jdk-1.5 ) - java6? ( >=virtual/jdk-1.6 ) - >=dev-java/javatoolkit-0.3 - app-arch/unzip - app-arch/zip" - -JAVA_PKG_BSFIX="off" - -pkg_setup() { - java-pkg-2_pkg_setup - - CHECKREQS_MEMORY="512" - check_reqs - - if use doc ; then - ewarn "Having the doc USE flag enabled greatly increases the build time. You might" - ewarn "want to disable it for ${PN} if you don't need it." - fi - - eclipsearch=${ARCH} - use amd64 && eclipsearch="x86_64" -} - -src_unpack() { - unpack ${A} - patch-apply - remove-bundled-stuff - - while read line; do - java-ant_rewrite-classpath "${line}" > /dev/null - done < <(find "${S}" -type f -name "build.xml") -} - -src_compile() { - java-pkg_force-compiler ecj-${SLOT} - - local bootclasspath=$(java-config --runtime) - 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}" - - ANT_OPTS="-Xmx512M" eant ${options} - - # Generate P2 metadata. - `java-config -J` -jar eclipse/plugins/org.eclipse.equinox.launcher_*.jar -data workspace \ - -application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator -flavor tooling \ - -metadataRepositoryName "Gentoo Eclipse" -artifactRepositoryName "Gentoo Eclipse" \ - -metadataRepository "file:eclipse/metadata" -artifactRepository "file:eclipse/metadata" \ - -root "Gentoo Eclipse SDK" -rootVersion "${PV}" -source eclipse -append -publishArtifacts || die -} - -src_install() { - # Root files don't get included by P2. - insinto "${ECLIPSE_DIR}" - doins -r features/org.eclipse.platform/rootfiles/{.eclipseproduct,*} - - # Workaround https://bugs.eclipse.org/bugs/show_bug.cgi?id=241430... - rm -rf eclipse/configuration/.settings || die - - # Install using P2. - `java-config -J` -Declipse.p2.data.area="file:${D}/${ECLIPSE_DIR}/p2" \ - -jar eclipse/plugins/org.eclipse.equinox.launcher_*.jar -data workspace \ - -application org.eclipse.equinox.p2.director.app.application -flavor tooling \ - -metadataRepository "file:eclipse/metadata" -artifactRepository "file:eclipse/metadata" \ - -installIU "Gentoo Eclipse SDK" -version "${PV}" -p2.os linux -p2.ws gtk -p2.arch ${eclipsearch} \ - -profile SDKProfile -profileProperties org.eclipse.update.install.features=true \ - -destination "${D}/${ECLIPSE_DIR}" -bundlepool "${D}/${ECLIPSE_DIR}" -roaming || die - - cd "${D}/${ECLIPSE_DIR}" || die - - # Delete unneeded files. - rm -rf p2/org.eclipse.equinox.p2.core || die - - # Restore symlinks. P2 has ignored them. - rm -rf plugins/org.apache.ant_*/{bin,lib} || die - ln -snf /usr/share/ant/bin plugins/org.apache.ant_*/ || die - ln -snf /usr/share/ant/lib plugins/org.apache.ant_*/ || die - cp -af "${S}"/plugins/org.junit_*/*.jar plugins/org.junit_*/ || die -# cp -af "${S}"/plugins/org.junit4/*.jar plugins/org.junit4_*/ || die - - # Install startup script. - dobin "${FILESDIR}/${SLOT}/eclipse-${SLOT}" || die - - # Install global rc script. - insinto /etc - doins "${FILESDIR}/${SLOT}/eclipserc-${SLOT}" || die - - # Install icon and make desktop entry. - newicon "${S}/features/org.eclipse.equinox.executable/bin/gtk/linux/x86/icon.xpm" eclipse.xpm || die - make_desktop_entry eclipse-${SLOT} "Eclipse ${PV}" eclipse.xpm || die -} - -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 longer integrated." - einfo "If you need it, get org.eclipse.equinox.initializer_x.y.z.jar from:" - einfo " http://download.eclipse.org/eclipse/equinox/" -} - -# ----------------------------------------------------------------------------- -# Helper functions -# ----------------------------------------------------------------------------- - -patch-apply() { - # Optimize launcher build. - unzip -q plugins/org.eclipse.platform/launchersrc.zip library/gtk/make_linux.mak || die - sed -i -r "s/CFLAGS = -g -s\b/CFLAGS =/;/CFLAGS =/a\\\\t${CFLAGS}\\\\" library/gtk/make_linux.mak || die - zip -qrm plugins/org.eclipse.platform/launchersrc.zip library || die - - # Avoid doing any unnecessary copying or archiving at the end of the build. - sed -r -i '/<exec .*\bexecutable="tar"/,/<delete /d' {assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - sed -r -i '/<delete /,/<delete .*\bdir=/d' build.xml || die - mkdir -p tmp/eclipse || die - ln -snf tmp/eclipse eclipse || die - - if ! use java6; then - sed -r '/<ant .*\/org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?"/,/<\/ant>/d' \ - -i features/org.eclipse.jdt{,.source}/build.xml || die - sed -r '/id="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))"/,/<plugin /d' \ - -i features/org.eclipse.jdt/feature.xml || die - sed -r '/id="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))\.source"/d' \ - -i features/org.eclipse.jdt.source/feature.xml || die - sed -r -e '/<customGather .*\/org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?"/d' \ - -e '/value="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?_/,/eclipse\.plugins/d' \ - -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - fi - - # Miscellaneous patches. - epatch "${PATCHDIR}/eclipse_build-libs.diff" - epatch "${PATCHDIR}/eclipse-c-warning.patch" - - # JNI. - sed -i '/value="x86"/d' plugins/org.eclipse.update.core.linux/src/build.xml || die - - # Following adds an additional classpath when building JSPs. - sed -i '/<path id="@dot\.classpath".*/a<pathelement path="${gentoo.classpath}" />' \ - plugins/org.eclipse.help.webapp/build{,JSPs}.xml || die - - # No warnings. Java5. Direct output to stdout. - find -type f -name '*.xml' -exec \ - sed -r -e 's:"compilerArg" value=":\0-nowarn :g' \ - -e 's:(<property name="javac(Source|Target)" value=)"1.[0-4]":\1"1.5":g' \ - -e 's:output="[^"]+\.(txt|log)"::g' -i {} \; || die - - # JDK home and CFLAGS. - sed -r -e "s:^(JAVA_HOME ?=).*:\1 $(java-config --jdk-home):" -e "s:^(OPT_FLAGS ?=).*:\0 ${CFLAGS}:" \ - -i plugins/org.eclipse.core.filesystem/natives/unix/linux/Makefile || die "sed Makefile failed" - - # Don't build plugins for other archs or GUI toolkits. Don't gather their sources either. - sed -r -e '/<ant .*\.(aix|carbon|hpux|macosx|motif|qnx|solaris|win32)[".]/,/<\/ant>/d' \ - -e '/<ant .*\/org\.eclipse\.swt\..+(\.source)?"/,/<\/ant>/d' \ - -i features/org.eclipse.{platform,rcp}{,.source}/build.xml || die - - if ! use doc ; then - # Don't reference the docs. Slightly evil but it works. - sed -r '/<plugin/{:x;/id="[^"]*\.doc\./{:y;/\/>/d;N;by};/\/>/b;N;bx}' \ - -i features/*/feature.xml || die - - # Don't install the docs. - sed -r '/<customGather .*\.doc\./d' \ - -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - # Don't build the docs. - sed -i '/<antcall .*\btarget="build.doc.plugins"/d' build.xml || die - sed -i '/<ant .*\/.*\.doc\./,/<\/ant>/d' features/*/build.xml || die - - # Don't reference the doc plugins in the sources. These feature.xml files - # thankfully have their plugins on one line. Let's hope they stay that way. - sed -r '/<plugin id="[^"]*\.doc\./d' \ - -i features/*.source/feature.xml || die - fi - - if ! use source ; then - # Don't reference the sources. Slightly evil but it works. - sed -r '/<includes/{:x;/id="[^"]*\.source"/{:y;/\/>/d;N;by};/\/>/b;N;bx}' \ - -i features/org.eclipse.sdk/feature.xml || die - - # Don't install the sources. - sed -r '/<(copy|customGather) .*\.source/d' \ - -i {assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - fi - - # In 3.4.1, bootclasspath was removed from here. Not sure why. - sed -r '/\bname="bundleBootClasspath"/s:value=":\0${bootclasspath};:' \ - -i plugins/org.eclipse.osgi/build.xml || die -} - -remove-bundled-stuff() { - local x - pushd plugins >/dev/null - - # Remove pre-built binaries. - find "${S}/features/org.eclipse.equinox.executable" -type f -name eclipse -delete || die - # ..and libraries. - find "${S}" -type f -name '*.so' -delete || die - # ..and JAR files. - rm -f org.eclipse.osgi/{,supplement}/osgi/osgi*.jar \ - org.eclipse.swt/extra_jars/exceptions.jar || die - # ..and classes. - rm -rf org.eclipse.jdt.core/scripts/*.class \ - org.eclipse.osgi.{services,util}/org || die - - # Unpack zipped sources for removed classes. If we unpack the sources to - # src like the other plugins, the build order seems to change and things - # break. Very bizarre. Consequently we have to adjust build.xml to - # install the classes and not the sources. Ugly but it works. - for x in services util ; do - unzip -q org.eclipse.osgi.${x}/src.zip -d org.eclipse.osgi.${x}/ || die - x=org.eclipse.osgi.${x}/build.xml - { rm ${x} && awk '/<target .*name="gather\.bin\.parts"/ { inside = 1 } { if (inside) { if ($0 ~ /"org\/"/) next; \ - if ($0 ~ /<\/fileset>/) { print; print "<fileset dir=\"${basedir}/@dot/\" includes=\"org/\"/>"; inside = 0; next } } } { print }' > ${x}; } < ${x} || die - done - - # This prebuilt class actually comes from another plugin that will be - # built so we can just symlink to that. - ln -snf "${S}"/plugins/org.eclipse.core.runtime/@dot/org/eclipse/core/runtime/IPluginDescriptor.class \ - org.eclipse.core.runtime.compatibility.registry/classes/org/eclipse/core/runtime/IPluginDescriptor.class || die - - # Reset the list of system packages to use when building. - EANT_GENTOO_CLASSPATH="swt:${SLOT} cldc-api:1.1" - -## unbundle-jar org.apache.commons.el commons-el -## unbundle-jar org.apache.commons.logging commons-logging -## unbundle-jar com.jcraft.jsch jsch -## unbundle-jar com.ibm.icu icu4j -## unbundle-jar javax.servlet tomcat-servlet-api:2.4 -## unbundle-jar javax.servlet.jsp tomcat-servlet-api:2.4 -## unbundle-jar org.apache.lucene lucene:1.9 -## unbundle-jar org.apache.lucene.analysis lucene-analyzers:1.9 -## unbundle-jar org.objectweb.asm asm:3 -## unbundle-jar org.sat4j.core sat4j-core:2 -## unbundle-jar org.sat4j.pb sat4j-pseudo:2 -## -## # Make the junit4 case easier. -## # ln -snf org.junit4 org.junit4_ || die -## -## unbundle-dir org.apache.ant ant-core,ant-nodeps lib -## unbundle-dir org.junit junit . -## # unbundle-dir org.junit4 junit-4 . -## -## # Don't include sources for junit4. -## # sed -i '/junitsrc/d' org.junit4/customBuildCallbacks.xml || die -## - # Unbundle SWT and make @dot directory to keep build happy. - ${BUILDPARSER} -i Bundle-ClassPath "external:$(java-pkg_getjars swt-${SLOT})" org.eclipse.swt.gtk.linux.${eclipsearch}/META-INF/MANIFEST.MF || die - mkdir -p org.eclipse.swt.gtk.linux.${eclipsearch}/@dot || die - remove-plugin-sources org.eclipse.swt.gtk.linux.${eclipsearch} - - # Mark the SWT plugins as unpacked. More evilness that works. - sed -r '/<plugin/{:x;/id="org\.eclipse\.swt\./{:y;/\/>/s/unpack="[^"]*"/unpack="true"/;t;N;by};/\/>/b;N;bx}' \ - -i "${S}"/features/org.eclipse.rcp/feature.xml || die - - # Prevent the SWT plugin from being JAR'd. - sed -r '/<param .*\bvalue="org.eclipse.swt.gtk.linux.'"${eclipsearch}"'_/d' \ - -i "${S}"/assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - popd >/dev/null -} - -# Unbundle a directory plugin by removing its JAR files and replacing them -# with symlinks. We don't modify the manifest because Eclipse's antRunner -# doesn't seem to like external JARs. -unbundle-dir() { - ebegin "Unbundling $1" - remove-plugin-sources $1 - - # Delete the bundled JARs and signing files. - rm -f "$1"_*/$3/*.jar "$1"_*/META-INF/ECLIPSE.{RSA,SF} || die - - # Replace the bundled JARs with symlinks. - java-pkg_jar-from --into "$1"_*/$3 $2 - - eend 0 -} - -# Unbundle a JAR plugin by removing its class files and modifying its manifest -# so that it points to external JARs instead. The plugin must remain unpacked -# because OSGi cannot handle external JARs in packed plugins. -unbundle-jar() { - ebegin "Unbundling $1" - remove-plugin-sources $1 - - # Find full plugin name and version. - local plugin=`echo $1_*` - plugin=${plugin%.jar} - - # Make directory to replace JAR. - mkdir -p "${plugin}" || die - cd "${plugin}" || die - rm -rf * || die - - # Extract what we need from the existing JAR. - `java-config -j` xf "../${plugin}.jar" META-INF/MANIFEST.MF plugin.{properties,xml} || die - - # Apply our new classpath. - local classpath=$(java-pkg_getjars $2) - EANT_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH} $2" - ${BUILDPARSER} -i Bundle-ClassPath "external:${classpath//:/,external:}" META-INF/MANIFEST.MF || die - - # The javadoc options are stored in text files and so rewriting the classpath in - # the ant build files has no effect. Instead, we replace plugins paths with the - # paths to their external JARs. Passing gentoo.classpath is too RAM-intensive. - sed -i -r "s:^;\.\.\/${1//./\.}[_/].*\.jar$:;${classpath//:/\:}:" ../*/*Options.txt || die - - # Delete unneeded manifest entries. - sed -i -r "/^Name:|^SHA1-Digest:/d" META-INF/MANIFEST.MF || die - - # This plugin is now unpacked. More evilness that works. - sed -r '/<plugin/{:x;/id="'"${1//./\.}"'"/{:y;/\/>/s/unpack="[^"]*"/unpack="true"/;t;N;by};/\/>/b;N;bx}' \ - -i "${S}"/features/*/feature.xml || die - - # Copy the whole directory instead of just a JAR. - sed -r "/<copy .*\/${1//./\.}/{s/<copy\b/<copydir/;s/\.jar//g;s/\bfile=/src=/;s/\btofile=/dest=/}" \ - -i "${S}"/package.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - # Delete JAR and return to previous directory. - rm -f "../${plugin}.jar" || die - cd .. || die - - eend 0 -} - -remove-plugin-sources() { - use source || return - - # Don't reference the sources for this plugin. These feature.xml files - # thankfully have their plugins on one line. Let's hope they stay that way. - sed -r '/<plugin id="'"${1//./\.}"'\.source"/d' \ - -i "${S}/features"/*.source/feature.xml || die - - # Don't try to install the sources either. - sed -r '/<(copy|copydir|customGather) .*\/'"${1//./\.}"'\.source/d' \ - -i "${S}"/{assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die -} diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.4.2.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.4.2.ebuild deleted file mode 100644 index 6432775..0000000 --- a/dev-util/eclipse-sdk/eclipse-sdk-3.4.2.ebuild +++ /dev/null @@ -1,404 +0,0 @@ -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -# Jetty and Jasper have to stay bundled for now, until someone does some work on them. - -# ECF also has to stay bundled due to a chicken and egg situation. We could use -# the bundled version to build Eclipse and then build ECF later but it's still -# a pain to build without using chewi-overlay. - -# 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_ANT_DISABLE_ANT_CORE_DEP="true" -WANT_ANT_TASKS="ant-nodeps" - -inherit java-pkg-2 java-ant-2 check-reqs - -DMF="R-${PV}-200902111700" -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="doc java6 source" -KEYWORDS="~amd64 ~x86" - -S="${WORKDIR}" -PATCHDIR="${FILESDIR}/${SLOT}" -ECLIPSE_DIR="/usr/$(get_libdir)/eclipse-${SLOT}" -BUILDPARSER="/usr/$(get_libdir)/javatoolkit/bin/buildparser" - -CDEPEND="dev-java/swt:${SLOT} - dev-java/ant-eclipse-ecj:${SLOT} - >=dev-java/ant-1.7.1 - >=dev-java/ant-core-1.7.1 - >=dev-java/asm-3.1:3 - >=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/lucene-analyzers-1.9.1-r1:1.9 - >=dev-java/tomcat-servlet-api-5.5.25-r1:2.4 - dev-java/cldc-api:1.1 - dev-java/junit:0 - dev-java/lucene:1.9 - dev-java/sat4j-core:2 - dev-java/sat4j-pseudo:2" - -RDEPEND="${CDEPEND} - ${JAVA_ANT_E_DEPEND} - java6? ( >=virtual/jre-1.6 ) - !java6? ( >=virtual/jre-1.5 )" - -DEPEND="${CDEPEND} - !java6? ( >=virtual/jdk-1.5 ) - java6? ( >=virtual/jdk-1.6 ) - >=dev-java/javatoolkit-0.3 - app-arch/unzip - app-arch/zip" - -JAVA_PKG_BSFIX="off" - -pkg_setup() { - java-pkg-2_pkg_setup - - CHECKREQS_MEMORY="512" - check_reqs - - if use doc ; then - ewarn "Having the doc USE flag enabled greatly increases the build time. You might" - ewarn "want to disable it for ${PN} if you don't need it." - fi - - eclipsearch=${ARCH} - use amd64 && eclipsearch="x86_64" -} - -src_unpack() { - unpack ${A} - patch-apply - remove-bundled-stuff - - while read line; do - java-ant_rewrite-classpath "${line}" > /dev/null - done < <(find "${S}" -type f -name "build.xml") -} - -src_compile() { - java-pkg_force-compiler ecj-${SLOT} - - local bootclasspath=$(java-config --runtime) - 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}" - - ANT_OPTS="-Xmx512M" eant ${options} - - # Generate P2 metadata. - `java-config -J` -jar eclipse/plugins/org.eclipse.equinox.launcher_*.jar -data workspace \ - -application org.eclipse.equinox.p2.metadata.generator.EclipseGenerator -flavor tooling \ - -metadataRepositoryName "Gentoo Eclipse" -artifactRepositoryName "Gentoo Eclipse" \ - -metadataRepository "file:eclipse/metadata" -artifactRepository "file:eclipse/metadata" \ - -root "Gentoo Eclipse SDK" -rootVersion "${PV}" -source eclipse -append -publishArtifacts || die -} - -src_install() { - # Root files don't get included by P2. - insinto "${ECLIPSE_DIR}" - doins -r features/org.eclipse.platform/rootfiles/{.eclipseproduct,*} - - # Workaround https://bugs.eclipse.org/bugs/show_bug.cgi?id=241430... - rm -rf eclipse/configuration/.settings || die - - # Install using P2. - `java-config -J` -Declipse.p2.data.area="file:${D}/${ECLIPSE_DIR}/p2" \ - -jar eclipse/plugins/org.eclipse.equinox.launcher_*.jar -data workspace \ - -application org.eclipse.equinox.p2.director.app.application -flavor tooling \ - -metadataRepository "file:eclipse/metadata" -artifactRepository "file:eclipse/metadata" \ - -installIU "Gentoo Eclipse SDK" -version "${PV}" -p2.os linux -p2.ws gtk -p2.arch ${eclipsearch} \ - -profile SDKProfile -profileProperties org.eclipse.update.install.features=true \ - -destination "${D}/${ECLIPSE_DIR}" -bundlepool "${D}/${ECLIPSE_DIR}" -roaming || die - - cd "${D}/${ECLIPSE_DIR}" || die - - # Delete unneeded files. - rm -rf p2/org.eclipse.equinox.p2.core || die - - # Restore symlinks. P2 has ignored them. - rm -rf plugins/org.apache.ant_*/{bin,lib} || die - ln -snf /usr/share/ant/bin plugins/org.apache.ant_*/ || die - ln -snf /usr/share/ant/lib plugins/org.apache.ant_*/ || die - cp -af "${S}"/plugins/org.junit_*/*.jar plugins/org.junit_*/ || die -# cp -af "${S}"/plugins/org.junit4/*.jar plugins/org.junit4_*/ || die - - # Install startup script. - dobin "${FILESDIR}/${SLOT}/eclipse-${SLOT}" || die - - # Install global rc script. - insinto /etc - doins "${FILESDIR}/${SLOT}/eclipserc-${SLOT}" || die - - # Install icon and make desktop entry. - newicon "${S}/features/org.eclipse.equinox.executable/bin/gtk/linux/x86/icon.xpm" eclipse.xpm || die - make_desktop_entry eclipse-${SLOT} "Eclipse ${PV}" eclipse.xpm || die -} - -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 longer integrated." - einfo "If you need it, get org.eclipse.equinox.initializer_x.y.z.jar from:" - einfo " http://download.eclipse.org/eclipse/equinox/" -} - -# ----------------------------------------------------------------------------- -# Helper functions -# ----------------------------------------------------------------------------- - -patch-apply() { - # Optimize launcher build. - unzip -q plugins/org.eclipse.platform/launchersrc.zip library/gtk/make_linux.mak || die - sed -i -r "s/CFLAGS = -g -s\b/CFLAGS =/;/CFLAGS =/a\\\\t${CFLAGS}\\\\" library/gtk/make_linux.mak || die - zip -qrm plugins/org.eclipse.platform/launchersrc.zip library || die - - # Avoid doing any unnecessary copying or archiving at the end of the build. - sed -r -i '/<exec .*\bexecutable="tar"/,/<delete /d' {assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - sed -r -i '/<delete /,/<delete .*\bdir=/d' build.xml || die - mkdir -p tmp/eclipse || die - ln -snf tmp/eclipse eclipse || die - - if ! use java6; then - sed -r '/<ant .*\/org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?"/,/<\/ant>/d' \ - -i features/org.eclipse.jdt{,.source}/build.xml || die - sed -r '/id="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))"/,/<plugin /d' \ - -i features/org.eclipse.jdt/feature.xml || die - sed -r '/id="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))\.source"/d' \ - -i features/org.eclipse.jdt.source/feature.xml || die - sed -r -e '/<customGather .*\/org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?"/d' \ - -e '/value="org\.eclipse\.jdt\.(apt\.pluggable\.core|compiler\.(apt|tool))(\.source)?_/,/eclipse\.plugins/d' \ - -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - fi - - # Miscellaneous patches. - epatch "${PATCHDIR}/eclipse_build-libs.diff" - epatch "${PATCHDIR}/eclipse-c-warning.patch" - - # JNI. - sed -i '/value="x86"/d' plugins/org.eclipse.update.core.linux/src/build.xml || die - - # Following adds an additional classpath when building JSPs. - sed -i '/<path id="@dot\.classpath".*/a<pathelement path="${gentoo.classpath}" />' \ - plugins/org.eclipse.help.webapp/build{,JSPs}.xml || die - - # No warnings. Java5. Direct output to stdout. - find -type f -name '*.xml' -exec \ - sed -r -e 's:"compilerArg" value=":\0-nowarn :g' \ - -e 's:(<property name="javac(Source|Target)" value=)"1.[0-4]":\1"1.5":g' \ - -e 's:output="[^"]+\.(txt|log)"::g' -i {} \; || die - - # JDK home and CFLAGS. - sed -r -e "s:^(JAVA_HOME ?=).*:\1 $(java-config --jdk-home):" -e "s:^(OPT_FLAGS ?=).*:\0 ${CFLAGS}:" \ - -i plugins/org.eclipse.core.filesystem/natives/unix/linux/Makefile || die "sed Makefile failed" - - # Don't build plugins for other archs or GUI toolkits. Don't gather their sources either. - sed -r -e '/<ant .*\.(aix|carbon|hpux|macosx|motif|qnx|solaris|win32)[".]/,/<\/ant>/d' \ - -e '/<ant .*\/org\.eclipse\.swt\..+(\.source)?"/,/<\/ant>/d' \ - -i features/org.eclipse.{platform,rcp}{,.source}/build.xml || die - - if ! use doc ; then - # Don't reference the docs. Slightly evil but it works. - sed -r '/<plugin/{:x;/id="[^"]*\.doc\./{:y;/\/>/d;N;by};/\/>/b;N;bx}' \ - -i features/*/feature.xml || die - - # Don't install the docs. - sed -r '/<customGather .*\.doc\./d' \ - -i assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - # Don't build the docs. - sed -i '/<antcall .*\btarget="build.doc.plugins"/d' build.xml || die - sed -i '/<ant .*\/.*\.doc\./,/<\/ant>/d' features/*/build.xml || die - - # Don't reference the doc plugins in the sources. These feature.xml files - # thankfully have their plugins on one line. Let's hope they stay that way. - sed -r '/<plugin id="[^"]*\.doc\./d' \ - -i features/*.source/feature.xml || die - fi - - if ! use source ; then - # Don't reference the sources. Slightly evil but it works. - sed -r '/<includes/{:x;/id="[^"]*\.source"/{:y;/\/>/d;N;by};/\/>/b;N;bx}' \ - -i features/org.eclipse.sdk/feature.xml || die - - # Don't install the sources. - sed -r '/<(copy|customGather) .*\.source/d' \ - -i {assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - fi - - # In 3.4.1, bootclasspath was removed from here. Not sure why. - sed -r '/\bname="bundleBootClasspath"/s:value=":\0${bootclasspath};:' \ - -i plugins/org.eclipse.osgi/build.xml || die -} - -remove-bundled-stuff() { - local x - pushd plugins >/dev/null - - # Remove pre-built binaries. - find "${S}/features/org.eclipse.equinox.executable" -type f -name eclipse -delete || die - # ..and libraries. - find "${S}" -type f -name '*.so' -delete || die - # ..and JAR files. - rm -f org.eclipse.osgi/{,supplement}/osgi/osgi*.jar \ - org.eclipse.swt/extra_jars/exceptions.jar || die - # ..and classes. - rm -rf org.eclipse.jdt.core/scripts/*.class \ - org.eclipse.osgi.{services,util}/org || die - - # Unpack zipped sources for removed classes. If we unpack the sources to - # src like the other plugins, the build order seems to change and things - # break. Very bizarre. Consequently we have to adjust build.xml to - # install the classes and not the sources. Ugly but it works. - for x in services util ; do - unzip -q org.eclipse.osgi.${x}/src.zip -d org.eclipse.osgi.${x}/ || die - x=org.eclipse.osgi.${x}/build.xml - { rm ${x} && awk '/<target .*name="gather\.bin\.parts"/ { inside = 1 } { if (inside) { if ($0 ~ /"org\/"/) next; \ - if ($0 ~ /<\/fileset>/) { print; print "<fileset dir=\"${basedir}/@dot/\" includes=\"org/\"/>"; inside = 0; next } } } { print }' > ${x}; } < ${x} || die - done - - # This prebuilt class actually comes from another plugin that will be - # built so we can just symlink to that. - ln -snf "${S}"/plugins/org.eclipse.core.runtime/@dot/org/eclipse/core/runtime/IPluginDescriptor.class \ - org.eclipse.core.runtime.compatibility.registry/classes/org/eclipse/core/runtime/IPluginDescriptor.class || die - - # Reset the list of system packages to use when building. - EANT_GENTOO_CLASSPATH="swt:${SLOT} cldc-api:1.1" - - unbundle-jar org.apache.commons.el commons-el - unbundle-jar org.apache.commons.logging commons-logging - unbundle-jar com.jcraft.jsch jsch - unbundle-jar com.ibm.icu icu4j - unbundle-jar javax.servlet tomcat-servlet-api:2.4 - unbundle-jar javax.servlet.jsp tomcat-servlet-api:2.4 - unbundle-jar org.apache.lucene lucene:1.9 - unbundle-jar org.apache.lucene.analysis lucene-analyzers:1.9 - unbundle-jar org.objectweb.asm asm:3 - unbundle-jar org.sat4j.core sat4j-core:2 - unbundle-jar org.sat4j.pb sat4j-pseudo:2 - - # Make the junit4 case easier. -# ln -snf org.junit4 org.junit4_ || die - - unbundle-dir org.apache.ant ant-core,ant-nodeps lib - unbundle-dir org.junit junit . -# unbundle-dir org.junit4 junit-4 . - - # Don't include sources for junit4. -# sed -i '/junitsrc/d' org.junit4/customBuildCallbacks.xml || die - - # Unbundle SWT and make @dot directory to keep build happy. - ${BUILDPARSER} -i Bundle-ClassPath "external:$(java-pkg_getjars swt-${SLOT})" org.eclipse.swt.gtk.linux.${eclipsearch}/META-INF/MANIFEST.MF || die - mkdir -p org.eclipse.swt.gtk.linux.${eclipsearch}/@dot || die - remove-plugin-sources org.eclipse.swt.gtk.linux.${eclipsearch} - - # Mark the SWT plugins as unpacked. More evilness that works. - sed -r '/<plugin/{:x;/id="org\.eclipse\.swt\./{:y;/\/>/s/unpack="[^"]*"/unpack="true"/;t;N;by};/\/>/b;N;bx}' \ - -i "${S}"/features/org.eclipse.rcp/feature.xml || die - - # Prevent the SWT plugin from being JAR'd. - sed -r '/<param .*\bvalue="org.eclipse.swt.gtk.linux.'"${eclipsearch}"'_/d' \ - -i "${S}"/assemble.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - popd >/dev/null -} - -# Unbundle a directory plugin by removing its JAR files and replacing them -# with symlinks. We don't modify the manifest because Eclipse's antRunner -# doesn't seem to like external JARs. -unbundle-dir() { - ebegin "Unbundling $1" - remove-plugin-sources $1 - - # Delete the bundled JARs and signing files. - rm -f "$1"_*/$3/*.jar "$1"_*/META-INF/ECLIPSE.{RSA,SF} || die - - # Replace the bundled JARs with symlinks. - java-pkg_jar-from --into "$1"_*/$3 $2 - - eend 0 -} - -# Unbundle a JAR plugin by removing its class files and modifying its manifest -# so that it points to external JARs instead. The plugin must remain unpacked -# because OSGi cannot handle external JARs in packed plugins. -unbundle-jar() { - ebegin "Unbundling $1" - remove-plugin-sources $1 - - # Find full plugin name and version. - local plugin=`echo $1_*` - plugin=${plugin%.jar} - - # Make directory to replace JAR. - mkdir -p "${plugin}" || die - cd "${plugin}" || die - rm -rf * || die - - # Extract what we need from the existing JAR. - `java-config -j` xf "../${plugin}.jar" META-INF/MANIFEST.MF plugin.{properties,xml} || die - - # Apply our new classpath. - local classpath=$(java-pkg_getjars $2) - EANT_GENTOO_CLASSPATH="${EANT_GENTOO_CLASSPATH} $2" - ${BUILDPARSER} -i Bundle-ClassPath "external:${classpath//:/,external:}" META-INF/MANIFEST.MF || die - - # The javadoc options are stored in text files and so rewriting the classpath in - # the ant build files has no effect. Instead, we replace plugins paths with the - # paths to their external JARs. Passing gentoo.classpath is too RAM-intensive. - sed -i -r "s:^;\.\.\/${1//./\.}[_/].*\.jar$:;${classpath//:/\:}:" ../*/*Options.txt || die - - # Delete unneeded manifest entries. - sed -i -r "/^Name:|^SHA1-Digest:/d" META-INF/MANIFEST.MF || die - - # This plugin is now unpacked. More evilness that works. - sed -r '/<plugin/{:x;/id="'"${1//./\.}"'"/{:y;/\/>/s/unpack="[^"]*"/unpack="true"/;t;N;by};/\/>/b;N;bx}' \ - -i "${S}"/features/*/feature.xml || die - - # Copy the whole directory instead of just a JAR. - sed -r "/<copy .*\/${1//./\.}/{s/<copy\b/<copydir/;s/\.jar//g;s/\bfile=/src=/;s/\btofile=/dest=/}" \ - -i "${S}"/package.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die - - # Delete JAR and return to previous directory. - rm -f "../${plugin}.jar" || die - cd .. || die - - eend 0 -} - -remove-plugin-sources() { - use source || return - - # Don't reference the sources for this plugin. These feature.xml files - # thankfully have their plugins on one line. Let's hope they stay that way. - sed -r '/<plugin id="'"${1//./\.}"'\.source"/d' \ - -i "${S}/features"/*.source/feature.xml || die - - # Don't try to install the sources either. - sed -r '/<(copy|copydir|customGather) .*\/'"${1//./\.}"'\.source/d' \ - -i "${S}"/{assemble,package}.org.eclipse.sdk.linux.gtk.${eclipsearch}.xml || die -} diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.6.1.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.6.1.ebuild new file mode 100644 index 0000000..720fae5 --- /dev/null +++ b/dev-util/eclipse-sdk/eclipse-sdk-3.6.1.ebuild @@ -0,0 +1,370 @@ +# 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.6.1" +BUILD_ID="I20100909-0800" +ECLIPSE_BUILD_VER="0.6.0" +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.6.x_Helios/" +SRC_URI="${BASE_URI}eclipse-${BUILD_VER}-src.tar.bz2 ${BASE_URI}eclipse-build-${ECLIPSE_BUILD_VER}.tar.bz2" + +LICENSE="EPL-1.0" +SLOT="3.6" +KEYWORDS="~amd64 ~x86" +IUSE="doc gnome source" + +CDEPEND=">=dev-java/swt-${PV%.0}:${SLOT} + >=dev-java/ant-1.7.1 + >=dev-java/asm-3.2: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.2.1:4.2 + >=dev-java/jsch-0.1.41 + >=dev-java/junit-3.8.2:0 + >=dev-java/junit-4.8.1:4 + >=dev-java/lucene-1.9.1:1.9 + >=dev-java/lucene-analyzers-1.9.1:1.9 + >=dev-java/sat4j-core-2.2.0:2 + >=dev-java/sat4j-pseudo-2.2.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" +DEPEND="${CDEPEND} + app-arch/unzip + app-arch/zip + >=dev-java/ant-antlr-1.7.1 + >=dev-java/ant-apache-bcel-1.7.1 + >=dev-java/ant-apache-bsf-1.7.1 + >=dev-java/ant-apache-log4j-1.7.1 + >=dev-java/ant-apache-oro-1.7.1 + >=dev-java/ant-apache-regexp-1.7.1 + >=dev-java/ant-apache-resolver-1.7.1 + >=dev-java/ant-commons-logging-1.7.1 + >=dev-java/ant-commons-net-1.7.1 + >=dev-java/ant-core-1.7.1 + >=dev-java/ant-javamail-1.7.1 + >=dev-java/ant-jdepend-1.7.1 + >=dev-java/ant-jsch-1.7.1 + >=dev-java/ant-junit-1.7.1 + >=dev-java/ant-nodeps-1.7.1 + >=dev-java/ant-swing-1.7.1 + >=dev-java/ant-trax-1.7.1 + >=virtual/jdk-1.6" + +OSGI_DEPENDENCIES=( + 'com.ibm.icu icu4j-4.2' + 'com.jcraft.jsch jsch' + 'javax.servlet tomcat-servlet-api-2.5 servlet-api' + 'javax.servlet.jsp tomcat-servlet-api-2.5 jsp-api' + 'org.apache.commons.codec commons-codec' + 'org.apache.commons.el commons-el' + 'org.apache.commons.httpclient commons-httpclient-3' + 'org.apache.commons.logging commons-logging' + 'org.apache.jasper tomcat-5.5 jasper-compiler jasper-runtime' + 'org.apache.lucene lucene-1.9' + 'org.apache.lucene.analysis lucene-analyzers-1.9' + 'org.hamcrest.core hamcrest-core' + 'org.mortbay.jetty.server jetty-6 jetty' + 'org.mortbay.jetty.util jetty-6 jetty-util' + 'org.objectweb.asm asm-3' + 'org.sat4j.core sat4j-core-2' + '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-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-jsch' + 'org.apache.ant ant-junit' + 'org.apache.ant ant-nodeps' + 'org.apache.ant ant-swing' + 'org.apache.ant ant-trax' + 'org.junit_3.8.2.v3 junit' + 'org.junit4 junit-4 junit' + 'org.junit_4.8.1.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_VER}-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.bz2" + ln -s "${DISTDIR}/eclipse-${BUILD_VER}-src.tar.bz2" "${S}"/ || 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_VER}"'/' \ + -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 + + # 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}" +} + +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} package=${2} ; shift 2 + bundle=$(basename "${S}/dependencyManifests/${bundle}"_*.jar .jar) || die + 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="\([^"]\+\/\)\?'"${bundle//./\.}"'\.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 -o "${bundle//./\.}"'\(_[^/=]*\)\?/\([^/=]*/\)*'"${jar}"'\.jar' \ + "${S}/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%%/*} + manifest_delete "${pdir}/${dir}/META-INF/MANIFEST.MF" 'Name\|SHA1-Digest' + rm -f "${pdir}/${dir}"/META-INF/ECLIPSEF.{RSA,SF} + done +} + +eclipse_relink-osgi-dep() { + local bundle=${1} package=${2} ; shift 2 + 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 + pushd "${D}${destDir}/plugins/${bundle}"_* > /dev/null || die + local jar ; for jar in "${@:-${package}}" ; do + java-pkg_jar-from --build-only "${package}" "${jar}.jar" + done + popd > /dev/null || die +} + +# 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.4/ant-osgi-manifest.mf b/dev-util/eclipse-sdk/files/3.4/ant-osgi-manifest.mf deleted file mode 100644 index deb8a6a..0000000 --- a/dev-util/eclipse-sdk/files/3.4/ant-osgi-manifest.mf +++ /dev/null @@ -1,30 +0,0 @@ -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-c-warning.patch b/dev-util/eclipse-sdk/files/3.4/eclipse-c-warning.patch deleted file mode 100644 index c2b6620..0000000 --- a/dev-util/eclipse-sdk/files/3.4/eclipse-c-warning.patch +++ /dev/null @@ -1,43 +0,0 @@ -=== 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 deleted file mode 100644 index 0f77f36..0000000 --- a/dev-util/eclipse-sdk/files/3.4/eclipse_build-libs.diff +++ /dev/null @@ -1,45 +0,0 @@ ---- 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 deleted file mode 100644 index 1296587..0000000 --- a/dev-util/eclipse-sdk/files/3.4/eclipse_buildfix-pde.diff +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 deleted file mode 100644 index 3e97c2b..0000000 --- a/dev-util/eclipse-sdk/files/3.4/eclipserc +++ /dev/null @@ -1,25 +0,0 @@ -# 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 deleted file mode 100644 index 263adbb..0000000 --- a/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-libupdatebuild2.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- 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 deleted file mode 100644 index 77f347d..0000000 --- a/dev-util/eclipse-sdk/files/3.4/fedora/eclipse-pde.build-add-package-build.patch +++ /dev/null @@ -1,273 +0,0 @@ -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 diff --git a/dev-util/eclipse-sdk/files/3.4/eclipse-3.4 b/dev-util/eclipse-sdk/files/3.6/eclipse-3.6 index 1afe898..103eec3 100644 --- a/dev-util/eclipse-sdk/files/3.4/eclipse-3.4 +++ b/dev-util/eclipse-sdk/files/3.6/eclipse-3.6 @@ -9,26 +9,29 @@ # Licensed under the GNU General Public License, version 2 # -SLOT="3.4" +SLOT="3.6" -[ -f "/etc/eclipserc-${SLOT}" ] && source "/etc/eclipserc-${SLOT}" -[ -f "$HOME/gentoo/.eclipserc" ] && source "$HOME/gentoo/.eclipserc" +[ -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 + exit 1 fi if [ $(id -u) -eq 0 ] ; then - echo "Do not run eclipse as root user! Exiting ..." - exit -1 + echo "Do not run eclipse as root user! Exiting ..." > /dev/stderr + exit 1 fi -[[ "$(java-config -f)" =~ "gcj" ]] \ - && export JAVA_PKG_CLASSMAP="${ECLIPSE_HOME}/eclipse.gcjdb" +case "$(java-config -f)" in + *gcj*) + export JAVA_PKG_CLASSMAP="${ECLIPSE_HOME}/eclipse.gcjdb" + ;; +esac eval $(gjl --package "swt-${SLOT}" --get-args) diff --git a/dev-util/eclipse-sdk/files/3.4/eclipserc-3.4 b/dev-util/eclipse-sdk/files/3.6/eclipserc-3.6 index 703b649..703b649 100644 --- a/dev-util/eclipse-sdk/files/3.4/eclipserc-3.4 +++ b/dev-util/eclipse-sdk/files/3.6/eclipserc-3.6 diff --git a/dev-util/eclipse-sdk/files/3.6/gtk_makefile.patch b/dev-util/eclipse-sdk/files/3.6/gtk_makefile.patch new file mode 100644 index 0000000..dd71e95 --- /dev/null +++ b/dev-util/eclipse-sdk/files/3.6/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.6/hamcrest-junit-lib.patch b/dev-util/eclipse-sdk/files/3.6/hamcrest-junit-lib.patch new file mode 100644 index 0000000..77befea --- /dev/null +++ b/dev-util/eclipse-sdk/files/3.6/hamcrest-junit-lib.patch @@ -0,0 +1,11 @@ +--- plugins/org.eclipse.jdt.junit.core/src/org/eclipse/jdt/internal/junit/buildpath/BuildPathSupport.java~ 2010-05-21 10:01:31.000000000 +0000 ++++ plugins/org.eclipse.jdt.junit.core/src/org/eclipse/jdt/internal/junit/buildpath/BuildPathSupport.java 2010-08-09 21:32:27.813247049 +0000 +@@ -139,7 +139,7 @@ + "org.junit", new VersionRange("[4.7.0,5.0.0)"), "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$ + + private static final JUnitPluginDescription HAMCREST_CORE_PLUGIN= new JUnitPluginDescription( +- "org.hamcrest.core", new VersionRange("[1.1.0,2.0.0)"), null, "org.hamcrest.core.source", "source-bundle/", JUnitPreferencesConstants.HAMCREST_CORE_JAVADOC); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ ++ "org.hamcrest.core", new VersionRange("[1.1.0,2.0.0)"), "hamcrest-core.jar", "org.hamcrest.core.source", "source-bundle/", JUnitPreferencesConstants.HAMCREST_CORE_JAVADOC); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ + + /** + * @return the JUnit3 classpath container diff --git a/dev-util/eclipse-sdk/files/3.6/iterators.patch b/dev-util/eclipse-sdk/files/3.6/iterators.patch new file mode 100644 index 0000000..eca230e --- /dev/null +++ b/dev-util/eclipse-sdk/files/3.6/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 ++} diff --git a/dev-util/eclipse-sdk/metadata.xml b/dev-util/eclipse-sdk/metadata.xml new file mode 100644 index 0000000..bbf624d --- /dev/null +++ b/dev-util/eclipse-sdk/metadata.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>dev-tools</herd> +<herd>java</herd> +<longdescription> +The Eclipse Project is an open source project of eclipse.org, overseen by +a Project Management Committee (PMC) and project leaders. The work is done +in subprojects working against a CVS repository. The Eclipse Project +Charter describes the organization of the project, roles and +responsibilities of the participants, and top level development process +for the project. The JDT and PDE are plug-in tools for the Eclipse +Platform. Together, these three pieces form the Eclipse SDK download, a +complete development environment for Eclipse-based tools, and for +developing Eclipse itself. +</longdescription> +</pkgmetadata> |