From 64d21845bd15dadbfb26643b4fc5712c74132aaf Mon Sep 17 00:00:00 2001 From: Sven Eden Date: Mon, 15 Aug 2011 21:52:05 +0200 Subject: Changed eclipse-3.7.0 to use java-virtual instead of jetty directly --- dev-util/eclipse-sdk/ChangeLog | 6 + dev-util/eclipse-sdk/Manifest | 3 +- dev-util/eclipse-sdk/eclipse-sdk-3.7.0-r1.ebuild | 399 +++++++++++++++++++++++ 3 files changed, 407 insertions(+), 1 deletion(-) create mode 100644 dev-util/eclipse-sdk/eclipse-sdk-3.7.0-r1.ebuild (limited to 'dev-util') diff --git a/dev-util/eclipse-sdk/ChangeLog b/dev-util/eclipse-sdk/ChangeLog index f4b2e04..8a6b27f 100644 --- a/dev-util/eclipse-sdk/ChangeLog +++ b/dev-util/eclipse-sdk/ChangeLog @@ -7,3 +7,9 @@ 15 Aug 2011; Sven Eden +eclipse-sdk-3.7.0.ebuild : Initial commit of the ebuild. Taken from Bug #325271, written by Matt Whitlock (gentoo@mattwhitlock.name), fixed by Slayer (slayer.rus@gmail.com). + +*eclipse-sdk-3.7.0-r1.ebuild (15 Aug 2011) + + 15 Aug 2011; Sven Eden +eclipse-sdk-3.7.0-r1.ebuild : + Changed to use java-virtuals/jetty-server:6 instead of jetty directly as + a dependency. diff --git a/dev-util/eclipse-sdk/Manifest b/dev-util/eclipse-sdk/Manifest index e914116..dd55a8a 100644 --- a/dev-util/eclipse-sdk/Manifest +++ b/dev-util/eclipse-sdk/Manifest @@ -5,5 +5,6 @@ AUX 3.7/hamcrest-junit-lib.patch 1236 RMD160 f61fb1b274293c311366c463b9e8bd4fdca AUX 3.7/iterators.patch 2058 RMD160 a91238c61510f16bc48bc9559e9c6e341def6dd0 SHA1 f0fcc75ec4827a1f2dbc65af65940beb7274864b SHA256 cc2a1da26b8f63d9c4b75ededf10d7aa67a0d53dea390154eef882dc75e37f2b DIST eclipse-3.7.0-src.tar.bz2 67181722 RMD160 2863a0130c5b75c08cf0c1f1977be894ad8edf5e SHA1 361247f39eacdeffb2159e59f508a5ac889912c9 SHA256 a068bab6f06b7939e557be7432b59bcde6925d86edffaa6dc2c1a6eca0fadbb2 DIST eclipse-build-5791c48513b4207ab1eec1e00bed4b2186f9aad5.tar.xz 276668 RMD160 346bcdd9e8d44ae865ae80380c54b7fd05a7dd04 SHA1 cb806a93b3f237aec2913d6f8b9068aeb1f9320b SHA256 1703ae2b9062e8692a2ab8aa589c91dc42fe90f6e3ba09ea2f69caf91d9b4865 +EBUILD eclipse-sdk-3.7.0-r1.ebuild 14158 RMD160 1dc91441ea743bd2fcba22fc21a4ec6192091028 SHA1 1fdf0bdbf7445fa0deacb18f72992c37a3d5c285 SHA256 ceaac76c3761c8e56c0f502d7ef596dc6e1b76ad6e975b9c5d9056c66031bffc EBUILD eclipse-sdk-3.7.0.ebuild 14158 RMD160 c55e91579c0585bba847a1ba6fb110fcaa44d993 SHA1 121fb3247172caafef1049fb811c17d4fcd92fe8 SHA256 a00287bebebfd081d711e2a85590cc3cf7228cfafe3e63c40cfa4962b61da01e -MISC ChangeLog 385 RMD160 1ba6ba205f2d93383192d21fd061e81d63b20fc1 SHA1 247bced6f6af1b037b55d3fe0c55b6177a83f9ca SHA256 03a4592275a588e8769993b38538566b084304778830ec5a4656a7866c42275e +MISC ChangeLog 596 RMD160 47b00776be6a669c10e9393b88e536f36aeb0315 SHA1 ea0ef8a94c67d6aca81fc45d335db839827c7ccf SHA256 e7271125609b1634ccbde7c0aa6fded13bd73cad2561088f861dafed0132c807 diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.7.0-r1.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.7.0-r1.ebuild new file mode 100644 index 0000000..df8d509 --- /dev/null +++ b/dev-util/eclipse-sdk/eclipse-sdk-3.7.0-r1.ebuild @@ -0,0 +1,399 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header$ + +EAPI="2" +WANT_ANT_TASKS="ant-nodeps" + +# eclipse-build is too complicated for automatic fixing +# if there are any fixes we should create patches +# and push them upstream +JAVA_PKG_BSFIX="off" + +inherit java-pkg-2 java-ant-2 check-reqs + +BUILD_VER="3.7.0" +BUILD_ID="I20110613-1736" +BUILD_LABEL="${BUILD_VER}-${BUILD_ID}" +ECLIPSE_BUILD_VER="5791c48513b4207ab1eec1e00bed4b2186f9aad5" +S="${WORKDIR}/eclipse-build-${ECLIPSE_BUILD_VER}" + +DESCRIPTION="Eclipse SDK" +HOMEPAGE="http://www.eclipse.org/eclipse/" +BASE_URI="http://download.eclipse.org/technology/linuxtools/eclipse-build/3.7.x_Indigo/" +SRC_URI="${BASE_URI}eclipse-${BUILD_VER}-src.tar.bz2 ${BASE_URI}eclipse-build-${ECLIPSE_BUILD_VER}.tar.xz" +RESTRICT="mirror" + +LICENSE="EPL-1.0" +SLOT="3.7" +KEYWORDS="~amd64 ~x86" +IUSE="doc gnome source" + +# ant dependencies should really be >=1.8.2 +CDEPEND=">=dev-java/swt-${PV%.0}_rc4:${SLOT} + >=dev-java/ant-1.8.1 + >=dev-java/asm-3.3.1:3 + >=dev-java/commons-codec-1.3 + >=dev-java/commons-el-1.0 + >=dev-java/commons-httpclient-3.1:3 + >=dev-java/commons-logging-1.0.4 + >=dev-java/hamcrest-core-1.1 + >=dev-java/icu4j-4.4.2:4.4 + >=dev-java/jsch-0.1.41 + >=dev-java/junit-3.8.2:0 + >=dev-java/junit-4.8.2:4 + >=dev-java/lucene-2.9.1:2.9 + >=dev-java/lucene-analyzers-2.9.1:2.9 + >=dev-java/sat4j-core-2.3.0:2 + >=dev-java/sat4j-pseudo-2.3.0:2 + dev-java/tomcat-servlet-api:2.5 + >=www-servers/tomcat-5.5.17:5.5 + java-virtuals/jetty-server:6 + x86? ( gnome? ( gnome-base/gconf ) )" +RDEPEND="${CDEPEND} + >=virtual/jre-1.5" +# ant dependencies should really be >=1.8.2 +DEPEND="${CDEPEND} + app-arch/unzip + app-arch/xz-utils + app-arch/zip + >=dev-java/ant-antlr-1.8.1 + >=dev-java/ant-apache-bcel-1.8.1 + >=dev-java/ant-apache-bsf-1.8.1 + >=dev-java/ant-apache-log4j-1.8.1 + >=dev-java/ant-apache-oro-1.8.1 + >=dev-java/ant-apache-regexp-1.8.1 + >=dev-java/ant-apache-resolver-1.8.1 + >=dev-java/ant-apache-xalan2-1.8.1 + >=dev-java/ant-commons-logging-1.8.1 + >=dev-java/ant-commons-net-1.8.1 + >=dev-java/ant-core-1.8.1 + >=dev-java/ant-javamail-1.8.1 + >=dev-java/ant-jdepend-1.8.1 + >=dev-java/ant-jmf-1.8.1 + >=dev-java/ant-jsch-1.8.1 + >=dev-java/ant-junit-1.8.1 + >=dev-java/ant-junit4-1.8.1 + >=dev-java/ant-swing-1.8.1 + >=dev-java/ant-testutil-1.8.1 + >=virtual/jdk-1.6" +# >=dev-java/ant-launcher-1.8.1 + +OSGI_DEPENDENCIES=( + 'com.ibm.icu - icu4j-4.4' + 'com.jcraft.jsch - jsch' + 'javax.servlet tomcat6-servlet-2.5-api tomcat-servlet-api-2.5 servlet-api' + 'javax.servlet.jsp tomcat6-jsp-2.1-api tomcat-servlet-api-2.5 jsp-api' + 'org.apache.commons.codec commons-codec commons-codec' + 'org.apache.commons.el apache-commons-el-1.0 commons-el' + 'org.apache.commons.httpclient jakarta-commons-httpclient-3.1 commons-httpclient-3' + 'org.apache.commons.logging apache-commons-logging commons-logging' + 'org.apache.jasper - tomcat-5.5 jasper-compiler jasper-runtime' + 'org.apache.lucene.core lucene lucene-2.9' + 'org.apache.lucene.analysis lucene-analyzers lucene-analyzers-2.9' + 'org.hamcrest.core - hamcrest-core' + 'org.mortbay.jetty.server jetty-6.1.26 jetty-6 jetty' + 'org.mortbay.jetty.util jetty-util-6.1.26 jetty-6 jetty-util' + 'org.objectweb.asm - asm-3' + 'org.sat4j.core org.sat4j.core sat4j-core-2' + 'org.sat4j.pb org.sat4j.pb sat4j-pseudo-2' +) +NONOSGI_DEPENDENCIES=( + 'org.apache.ant ant-antlr' + 'org.apache.ant ant-apache-bcel' + 'org.apache.ant ant-apache-bsf' + 'org.apache.ant ant-apache-log4j' + 'org.apache.ant ant-apache-oro' + 'org.apache.ant ant-apache-regexp' + 'org.apache.ant ant-apache-resolver' + 'org.apache.ant ant-apache-xalan2' + 'org.apache.ant ant-commons-logging' + 'org.apache.ant ant-commons-net' + 'org.apache.ant ant-core ant ant-launcher' + 'org.apache.ant ant-javamail' + 'org.apache.ant ant-jdepend' + 'org.apache.ant ant-jmf' + 'org.apache.ant ant-jsch' + 'org.apache.ant ant-junit' + 'org.apache.ant ant-junit4' +# 'org.apache.ant ant-launcher' + 'org.apache.ant ant-swing' + 'org.apache.ant ant-testutil' + 'org.junit_3.8.2.v3 junit' + 'org.junit4 junit-4 junit' + 'org.junit_4.8.2.v4 junit-4 junit' +) + +ALL_OS='aix hpux linux macosx qnx solaris win32' +ALL_WS='carbon cocoa gtk motif photon win32 wpf' +ALL_ARCH='alpha arm ia64 mips mipsel PA_RISC ppc ppc64 s390 s390x sparc sparc64 x86 x86_64' + +buildDir="${S}/build/eclipse-${BUILD_LABEL}-src" + +pkg_setup() { + ws='gtk' + if use x86 ; then os='linux' ; arch='x86' + elif use amd64 ; then os='linux' ; arch='x86_64' + fi + + java-pkg-2_pkg_setup + + if use doc ; then + ewarn "Having the 'doc' USE flag enabled greatly increases the build time." + ewarn "You might want to disable it for ${PN} if you don't need it." + fi +} + +src_unpack() { + CHECKREQS_MEMORY="1536" + if use doc ; then + CHECKREQS_DISK_BUILD="3072" + else + CHECKREQS_DISK_BUILD="1536" + fi + check_reqs + + #unpack "eclipse-build-${ECLIPSE_BUILD_VER}.tar.xz" + tar -xpJf "${DISTDIR}/eclipse-build-${ECLIPSE_BUILD_VER}.tar.xz" + ln -s "${DISTDIR}/eclipse-${BUILD_VER}-src.tar.bz2" "${S}/eclipse-${BUILD_LABEL}-src.tar.bz2" || die + cd "${S}" + # building with ecj fails for some reason (polluted classpath probably) + java-pkg_force-compiler javac + #sed -e 's/^\(label\|testsBuildLabel\)=.*$/\1='"${BUILD_LABEL}"'/' \ + # -e 's/^buildId=.*$/buildId='"${BUILD_ID}"'/' \ + # -i build.properties -i pdebuild.properties || die + eant unpack + cp -r "${S}/build/eclipse-${PV}-src/"* "${buildDir}/" || die "Copying sources failed" + rm -r "${S}/build/eclipse-${PV}-src" || die "Removing dir failed" + ln -s "eclipse-${BUILD_LABEL}-src" "${S}/build/eclipse-${PV}-src" || die "Creating link failed" + +} + +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| ${package}" "${@}" + mkdir -p "${buildDir}/plugins/${bundle}" || die + pushd "${buildDir}/plugins/${bundle}" > /dev/null || die + if (( ${#} )) ; then + local jar ; for jar in "${@}" ; do + java-pkg_jar-from "${package}" "${jar}.jar" + done + else + java-pkg_jar-from "${package}" + fi + mkdir META-INF || die + cp "${S}/dependencyManifests/${bundle}.jar/META-INF/MANIFEST.MF" META-INF/ || die + manifest_replace META-INF/MANIFEST.MF 'Bundle-ClassPath' "$(echo *.jar | tr ' ' ',')" + manifest_delete META-INF/MANIFEST.MF 'Name\|SHA1-Digest' + # replace classpath refs to this bundle with refs to system-installed jars + sed_xml_element 'pathelement' -e '/path="\([^"]\+\/\)\?'"${replace//./\.}"'\.jar"/c '"$( + for jar in *.jar ; do + echo -n '' + 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||\0|' \ + -i "${S}/pdebuild.xml" || die +} + +eclipse_create-nonosgi-dep() { + local bundle=${1} package=${2} ; shift 2 + local pdir=${buildDir}/plugins + local jar ; for jar in "${@:-${package}}" ; do + local dir=$(dirname "$(grep -ho "${bundle//./\.}"'\(_[^/=]*\)\?/\([^/=]*/\)*'"${jar}"'\.jar' \ + "${S}"/{,jdt}nonosgidependencies.properties)") || die + einfo " ${dir}/${jar}.jar => ${package}" + mkdir -p "${pdir}/${dir}" || die + java-pkg_jar-from --build-only "${package}" "${jar}.jar" "${pdir}/${dir}/${jar}.jar" + dir=${dir%%/*} + local manifest=${pdir}/${dir}/META-INF/MANIFEST.MF + [[ -f ${manifest} ]] && manifest_delete "${manifest}" 'Name\|SHA1-Digest' + rm -f "${pdir}/${dir}"/META-INF/ECLIPSEF.{RSA,SF} + done +} + +eclipse_relink-osgi-dep() { + local bundle=${1} replace=${2} package=${3} ; shift 3 + einfo " ${bundle} => ${package}" "${@}" + pushd "${D}${destDir}/plugins/${bundle}"_* > /dev/null || die + if (( ${#} )) ; then + local jar ; for jar in "${@}" ; do + java-pkg_jar-from --build-only "${package}" "${jar}.jar" + done + else + java-pkg_jar-from --build-only "${package}" + fi + popd > /dev/null || die +} + +eclipse_relink-nonosgi-dep() { + local bundle=${1} package=${2} ; shift 2 + local pdir=${D}${destDir}/plugins + local jar ; for jar in "${@:-${package}}" ; do + local dir=$(dirname "$(grep -ho "${bundle//./\.}"'\(_[^/=]*\)\?/\([^/=]*/\)*'"${jar}"'\.jar' \ + "${S}"/{,jdt}nonosgidependencies.properties)") || die + einfo " ${dir}/${jar}.jar => ${package}" + mkdir -p "${pdir}/${dir}" || die + java-pkg_jar-from --build-only "${package}" "${jar}.jar" "${pdir}/${dir}/${jar}.jar" + done +} + +# Removes feature.xml references to plugins matching ${1}. +eclipse_delete-plugins() { + sed_xml_element 'includes\|plugin' -e '/id="'"${1}"'"/d' \ + -i "${buildDir}"/features/*/feature.xml "${S}"/eclipse-build-feature/feature.xml \ + || die 'eclipse_delete-plugins failed' +} + +# Prints the first value from manifest file ${1} whose key matches regex ${2}, +# unfolding as necessary. +manifest_get() { + sed -n -e '/^\('"${2}"'\): /{h;:A;$bB;n;/^ /!bB;H;bA};d;:B;g;s/^[^:]*: //;s/\n //g;p;q' "${1}" \ + || die 'manifest_get failed' +} + +# Deletes values from manifest file ${1} whose keys match regex ${2}, taking +# into account folding. +manifest_delete() { + sed -n -e ':A;/^\('"${2}"'\): /{:B;n;/^ /!{bA};bB};p' -i "${1}" \ + || die 'manifest_delete failed' +} + +# Replaces the value for key ${2} in the first section of manifest file ${1} +# with ${3}, or adds the key-value pair to that section if the key was absent. +manifest_replace() { + LC_ALL='C' awk -v key="${2}" -v val="${3}" ' +function fold(s, o, l, r) { + o = 2 ; l = length(s) - 1 ; r = substr(s, 1, 1) + while (l > 69) { r = r substr(s, o, 69) "\n " ; o += 69 ; l -= 69 } + return r substr(s, o) +} +BEGIN { FS = ": " } +f { print ; next } +i { if ($0 !~ "^ ") { f = 1 ; print } ; next } +$1 == key { print fold(key FS val) ; i = 1 ; next } +/^\r?$/ { print fold(key FS val) ; print ; f = 1 ; next } +{ print } +END { if (!f) { print fold(key FS val) } } +' "${1}" > "${1}-" && mv "${1}"{-,} || die 'manifest_replace failed' +} + +# Executes sed over each XML element with a name matching ${1}, rather than +# over each line. The entire element (and its children) may be removed with the +# 'd' command, or they may be edited using all the usual sed foo. Basically, +# the script argument will be executed only for elements matching ${1}, and the +# sed pattern space will consist of the entire element, including any nested +# elements. Note that this is not perfect and requires no more than one XML +# element per line to be reliable. +sed_xml_element() { + local elem=${1} ; shift + sed -e '/<\('"${elem}"'\)\([> \t]\|$\)/{:_1;/>/!{N;b_1};/\/>/b_3' \ + -e ':_2;/<\/\('"${elem}"'\)>/!{N;b_2};b_3};b;:_3' "${@}" +} -- cgit v1.2.3-65-gdbad