summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/eclipse-sdk/eclipse-sdk-3.2.ebuild')
-rw-r--r--dev-util/eclipse-sdk/eclipse-sdk-3.2.ebuild304
1 files changed, 304 insertions, 0 deletions
diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.2.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.2.ebuild
new file mode 100644
index 000000000000..17302d56bd44
--- /dev/null
+++ b/dev-util/eclipse-sdk/eclipse-sdk-3.2.ebuild
@@ -0,0 +1,304 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/eclipse-sdk/eclipse-sdk-3.2.ebuild,v 1.1 2006/07/06 02:50:04 nichoj Exp $
+
+inherit eutils java-pkg-2 flag-o-matic check-reqs multilib
+
+DATESTAMP="200606291905"
+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/R-${PV}-${DATESTAMP}/${MY_A}
+mirror://gentoo/${P}-patches.tar.bz2"
+IUSE="no-seamonkey gnome cairo opengl"
+SLOT="3.2"
+LICENSE="EPL-1.0"
+# TODO might be able to have ia64 and ppc64 support
+KEYWORDS="~x86 ~ppc ~amd64"
+S="${WORKDIR}"
+
+COMMON_DEP="
+ >=x11-libs/gtk+-2.2.4
+ !no-seamonkey? ( www-client/seamonkey )
+ gnome? ( =gnome-base/gnome-vfs-2* =gnome-base/libgnomeui-2* )
+ opengl? ( virtual/opengl )
+ >=dev-java/ant-core-1.6.5
+ >=dev-java/ant-tasks-1.6.5
+ =dev-java/lucene-1*"
+
+RDEPEND=">=virtual/jre-1.4
+ ${COMMON_DEP}"
+DEPEND="
+ ${COMMON_DEP}
+ =virtual/jdk-1.4*
+ >=virtual/jdk-1.5
+ >=sys-apps/findutils-4.1.7
+ app-arch/unzip
+ app-arch/zip"
+# Force 1.4 to be used for building
+JAVA_PKG_NV_DEPEND="=virtual/jdk-1.4*"
+
+ECLIPSE_DIR="/usr/lib/eclipse-${SLOT}"
+ECLIPSE_LINKS_DIR="${ECLIPSE_DIR}/links"
+
+# TODO:
+# - use CFLAGS from make.conf when building native libraries
+# - must patch eclipse build files
+# - also submit patch to bugs.eclipse.org
+# - ppc support not tested, but not explicitly broken either
+# - make a extension location in /var/lib that's writable by 'eclipse' group
+# - update man page
+
+pkg_setup() {
+ java-pkg-2_pkg_setup
+
+ debug-print "Checking for sufficient physical RAM"
+ CHECKREQS_MEMORY="768"
+ check_reqs
+
+ # All other gentoo archs match in eclipse build system except amd64
+ if use amd64 ; then
+ eclipsearch=x86_64
+ else
+ eclipsearch=${ARCH}
+ fi
+
+ if use x86 ; then
+ jvmarch=i386
+ else
+ jvmarch=${ARCH}
+ fi
+
+ # Add the eclipse group, for our plugins/features directories
+ enewgroup eclipse
+}
+
+src_unpack() {
+ unpack ${A}
+
+ fix-swt-targets
+
+ pushd plugins/org.apache.ant/lib >/dev/null
+ rm *.jar
+ java-pkg_jar-from ant-core,ant-tasks
+ popd >/dev/null
+
+ pushd plugins/org.junit >/dev/null
+ rm *.jar
+ java-pkg_jar-from junit
+ popd >/dev/null
+
+ pushd plugins/org.apache.lucene >/dev/null
+ rm *.jar
+ java-pkg_jar-from lucene-1 lucene.jar lucene-1.4.3.jar
+ popd >/dev/null
+
+ # TODO replace stuff in plugins/org.eclipse.team.cvs.ssh2
+ # TODO replace stuff in plugins/org.eclipse.tomcat
+ # TODO replace stuff in plugins/org.junit4
+
+ # begin: patches/comments from fedora
+
+ # Build JNI libs
+ # FIXME: these should be built by upstream build method
+ # http://www.bagu.org/eclipse/plugin-source-drops.html
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=71637
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=86848
+ # GNU XML issue identified by Michael Koch
+ # patches 2, 4, 5
+ epatch ${WORKDIR}/${P}-build.patch
+ epatch ${WORKDIR}/${P}-libupdatebuild.patch
+ epatch ${WORKDIR}/${P}-libupdatebuild2.patch
+
+ # Build swttools.jar
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90364
+ pushd plugins/org.eclipse.swt.gtk.linux.x86_64 >/dev/null
+ epatch ${WORKDIR}/${P}-swttools.patch # patch18
+ popd >/dev/null
+
+ # install location should automatically be added to homedir
+ # if ECLIPSE_HOME is not writable
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90630
+ epatch ${WORKDIR}/${P}-updatehomedir.patch # patch22
+
+ # .so files installed in a strange location
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=90535
+ pushd plugins/org.eclipse.core.runtime >/dev/null
+ epatch ${WORKDIR}/${P}-fileinitializer.patch # patch24
+ popd >/dev/null
+
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=98707
+ # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=178726
+# TODO figure out why this doesn't apply
+# pushd plugins/org.eclipse.compare >/dev/null
+# epatch ${WORKDIR}/${P}-compare-create-api.patch # patch 33
+# popd >/dev/null
+
+ # JPackage []s in names of symlinks ...
+ # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=162177
+ pushd plugins/org.eclipse.jdt.core >/dev/null
+ epatch ${WORKDIR}/${P}-bz162177.patch # patch34
+ popd >/dev/null
+
+ epatch ${WORKDIR}/${P}-genjavadocoutput.patch # patch35
+
+ # buildHelpIndex caused a OutOfMemoryException
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=114001
+ epatch ${WORKDIR}/${P}-helpindexbuilder.patch # patch38
+
+ epatch ${WORKDIR}/${P}-usebuiltlauncher.patch # patch40
+
+ # Eclipse launcher does not follow symlinks
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=79592
+ # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=168726
+ mkdir launchertmp
+ unzip -d launchertmp \
+ plugins/org.eclipse.platform/launchersrc.zip >/dev/null || die "unzip failed"
+ pushd launchertmp >/dev/null
+ epatch ${WORKDIR}/${P}-launcher-link.patch # patch47
+ zip -9 -r ../launchersrc.zip * >/dev/null || die "zip failed"
+ popd >/dev/null
+ mv launchersrc.zip plugins/org.eclipse.platform
+ rm -rf launchertmp
+
+ pushd features/org.eclipse.platform.launchers >/dev/null
+ epatch ${WORKDIR}/${P}-launcher-link.patch # patch47
+ popd >/dev/null
+
+ # Don't attempt to link to Sun's javadocs
+ epatch ${WORKDIR}/${P}-javadoclinks.patch # patch48
+
+ # generic releng plugins that can be used to build plugins
+ # see this thread for deails:
+ # https://www.redhat.com/archives/fedora-devel-java-list/2006-April/msg00048.html
+ pushd plugins/org.eclipse.pde.build >/dev/null
+ epatch ${WORKDIR}/${P}-pde.build-add-package-build.patch # patch53
+ sed --in-place "s:@eclipse_base@:${ECLIPSE_DIR}:" templates/package-build/build.properties
+ popd >/dev/null
+
+ # https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=191536
+ # https://bugs.eclipse.org/bugs/show_bug.cgi?id=142861
+ pushd plugins/org.eclipse.swt/Eclipse\ SWT >/dev/null
+ epatch ${WORKDIR}/${P}-swt-rm-ON_TOP.patch # patch54
+ popd >/dev/null
+
+ # We need to disable junit4 and apt until GCJ can handle Java5 code
+ # FIXME for some reason junit isn't using java5...
+ epatch ${WORKDIR}/${P}-disable-junit4-apt.patch # patch55
+}
+
+src_compile() {
+ # Figure out VM, set up ant classpath and native library paths
+ setup-jvm-opts
+
+ if ! use no-seamonkey ; then
+ einfo "Will compile embedded seamonkey support against www-client/seamonkey"
+ setup-mozilla-opts
+ else
+ einfo "Not building embedded seamonkey support"
+ fi
+
+ local java5vm=$(depend-java-query --get-vm ">=virtual/jdk-1.5")
+ local java5home=$(GENTOO_VM=${java5vm} java-config --jdk-home)
+ einfo "Using ${java5home} for java5home"
+ # TODO patch build to take buildId
+ ./build -os linux \
+ -arch ${eclipsearch} \
+ -ws gtk \
+ -java5home ${java5home} || die "build failed"
+}
+
+src_install() {
+ dodir /usr/lib
+
+ # TODO maybe there's a better way of installing than extracting the tar?
+ [[ -f result/linux-gtk-${eclipsearch}-sdk.tar.gz ]] || die "tar.gz bundle was not built properly!"
+ tar zxf result/linux-gtk-${eclipsearch}-sdk.tar.gz -C ${D}/usr/lib \
+ || die "Failed to extract the built package"
+
+ mv ${D}/usr/lib/eclipse ${D}/${ECLIPSE_DIR}
+ insinto ${ECLIPSE_DIR}
+ exeinto ${ECLIPSE_DIR}
+ echo "-Djava.library.path=/usr/lib" >> ${D}/${ECLIPSE_DIR}/eclipse.ini
+
+ debug-print "Installing eclipse-gtk binary"
+ doexe eclipse || die "Failed to install eclipse binary"
+
+ # Install startup script
+ exeinto /usr/bin
+ doexe ${FILESDIR}/eclipse-${SLOT}
+
+ make_desktop_entry eclipse-${SLOT} "Eclipse ${PV}" "${ECLIPSE_DIR}/icon.xpm"
+}
+
+# -----------------------------------------------------------------------------
+# Helper functions
+# -----------------------------------------------------------------------------
+
+fix-swt-targets() {
+ # Select the set of native libraries to compile
+ local targets="make_swt make_awt make_atk"
+
+ if use gnome ; then
+ einfo "Enabling GNOME VFS support"
+ targets="${targets} make_gnome"
+ fi
+
+ if ! use no-seamonkey ; then
+ einfo "Enabling embedded Mozilla support"
+ targets="${targets} make_mozilla"
+ fi
+
+ if use cairo ; then
+ einfo "Enabling CAIRO support"
+ targets="${targets} make_cairo"
+ fi
+
+ if use opengl ; then
+ einfo "Enabling OpenGL support"
+ targets="${targets} make_glx"
+ fi
+
+ sed -i "s/^all:.*/all: ${targets}/" \
+ "plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak" \
+ || die "Failed to tweak make_linux.mak"
+}
+
+setup-jvm-opts() {
+ # Figure out correct boot classpath
+ # karltk: this should be handled by the java-pkg eclass in setup-vm
+ local bp="$(java-config --jdk-home)/jre/lib"
+ local bootclasspath=$(java-config --runtime)
+ if [[ ! -z "`java-config --java-version | grep IBM`" ]] ; then
+ # IBM JDK
+ JAVA_LIB_DIR="$(java-config --jdk-home)/jre/bin"
+ else
+ # Sun derived JDKs (Blackdown, Sun)
+ JAVA_LIB_DIR="$(java-config --jdk-home)/jre/lib/${jvmarch}"
+ fi
+
+ einfo "Using bootclasspath ${bootclasspath}"
+ einfo "Using JVM library path ${JAVA_LIB_DIR}"
+
+ if [[ ! -f ${JAVA_LIB_DIR}/libawt.so ]] ; then
+ die "Could not find libawt.so native library"
+ fi
+
+ export AWT_LIB_PATH=${JAVA_LIB_DIR}
+}
+
+setup-mozilla-opts() {
+ export GECKO_SDK="/usr/$(get_libdir)/seamonkey"
+ # TODO should this be using pkg-config?
+ export GECKO_INCLUDES=$(pkg-config seamonkey-gtkmozembed --cflags)
+ export GECKO_LIBS=$(pkg-config seamonkey-gtkmozembed --libs)
+}
+
+pkg_postinst() {
+ einfo "Users can now install plugins via Update Manager without any"
+ einfo "tweaking."
+ echo
+ einfo "Eclipse plugin packages (ie eclipse-cdt) will likely go away in"
+ einfo "the near future until they can be properly packaged. Update Manager"
+ einfo "is prefered in the meantime."
+}