diff --git a/dev-util/eclipse-sdk/Manifest b/dev-util/eclipse-sdk/Manifest index 554299f..58d3a2f 100644 --- a/dev-util/eclipse-sdk/Manifest +++ b/dev-util/eclipse-sdk/Manifest @@ -1,6 +1,8 @@ -MD5 a381d0a0951fe8ec2d4e0b94331a4933 eclipse-sdk-3.1.2.ebuild 10371 -RMD160 76f4c392304365bfd2e138fbd3a7b0d300bd9efc eclipse-sdk-3.1.2.ebuild 10371 -SHA256 ddb5302f60e4b659fe6061924e0e6ca08b00cd0a14b505e875cea7b01d56ca6e eclipse-sdk-3.1.2.ebuild 10371 -MD5 0dd05cebf3928888ff566c433da96335 files/digest-eclipse-sdk-3.1.2 310 -RMD160 dea902b88d52673c42f034ab9451e145bc52b30c files/digest-eclipse-sdk-3.1.2 310 -SHA256 01187ce1cad8c9037d48c130cd9d98167d7c934e075d42c7c55f3adae8105749 files/digest-eclipse-sdk-3.1.2 310 +DIST eclipse-sourceBuild-srcIncluded-3.1.2.zip 66630673 RMD160 ffe59352fe02b4a47be3e9a6daad3a5501f196b0 SHA1 d399232b586e0c6b516f990296a202dcd814404d SHA256 31233332f205a197a42aafdc4f15a4f38eb5e4be19ac8a7192492ab8a21324a4 size 66630673 +EBUILD eclipse-sdk-3.1.2-r2.ebuild 10567 RMD160 d89766a1f2f03453dffa1667a4a82b8d21d54914 SHA1 bf25beca2edc37e7453f3804d964fbd2339b1969 SHA256 8be7bb07a20a913bc97a83f744f88a6997f8324e9122a2a74f3646f4e886c843 size 10567 +MD5 7c9e2c1f24894188b85e0dd93229269b eclipse-sdk-3.1.2-r2.ebuild 10567 +RMD160 d89766a1f2f03453dffa1667a4a82b8d21d54914 eclipse-sdk-3.1.2-r2.ebuild 10567 +SHA256 8be7bb07a20a913bc97a83f744f88a6997f8324e9122a2a74f3646f4e886c843 eclipse-sdk-3.1.2-r2.ebuild 10567 +MD5 0dd05cebf3928888ff566c433da96335 files/digest-eclipse-sdk-3.1.2-r2 310 +RMD160 dea902b88d52673c42f034ab9451e145bc52b30c files/digest-eclipse-sdk-3.1.2-r2 310 +SHA256 01187ce1cad8c9037d48c130cd9d98167d7c934e075d42c7c55f3adae8105749 files/digest-eclipse-sdk-3.1.2-r2 310 diff --git a/dev-util/eclipse-sdk/eclipse-sdk-3.1.2.ebuild b/dev-util/eclipse-sdk/eclipse-sdk-3.1.2-r2.ebuild similarity index 58% rename from dev-util/eclipse-sdk/eclipse-sdk-3.1.2.ebuild rename to dev-util/eclipse-sdk/eclipse-sdk-3.1.2-r2.ebuild index 61314b3..64d6922 100644 --- a/dev-util/eclipse-sdk/eclipse-sdk-3.1.2.ebuild +++ b/dev-util/eclipse-sdk/eclipse-sdk-3.1.2-r2.ebuild @@ -1,23 +1,24 @@ -# Copyright 1999-2005 Gentoo Foundation +# 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.1.1.ebuild,v 1.1 2005/11/09 19:00:28 axxo Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-util/eclipse-sdk/eclipse-sdk-3.1.2-r2.ebuild,v 1.1 2006/04/20 13:49:19 nichoj Exp $ -inherit eutils java-utils +inherit eutils java-utils flag-o-matic check-reqs MY_A="eclipse-sourceBuild-srcIncluded-${PV}.zip" +RELEASE_DATE="200601181600" DESCRIPTION="Eclipse Tools Platform" HOMEPAGE="http://www.eclipse.org/" -SRC_URI="http://download.eclipse.org/eclipse/downloads/drops/R-3.1.2-200601181600/${MY_A}" -IUSE="gnome mozilla firefox jikes nosrc nodoc atk" +SRC_URI="http://download.eclipse.org/eclipse/downloads/drops/R-${PV}-${RELEASE_DATE}/${MY_A}" +IUSE="nogecko-sdk gnome jikes nosrc nodoc atk" SLOT="3.1" LICENSE="CPL-1.0" KEYWORDS="~x86 ~ppc ~amd64" +S="${WORKDIR}" RDEPEND=">=virtual/jre-1.4.2 >=x11-libs/gtk+-2.2.4 - mozilla? ( >=www-client/mozilla-1.7 ) + !nogecko-sdk? ( net-libs/gecko-sdk ) atk? ( >=dev-libs/atk-1.6 ) - firefox? ( >=www-client/mozilla-firefox-1.0.2 ) gnome? ( =gnome-base/gnome-vfs-2* =gnome-base/libgnomeui-2* )" DEPEND="${RDEPEND} @@ -28,44 +29,55 @@ DEPEND="${RDEPEND} app-arch/unzip app-arch/zip" +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 -# - intergration to eclipse plugin ebuilds most likely broken +# - 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 +# - use make_desktop_entry from eutils instead of our own stuff +# - pkg_setup() { + debug-print "Checking for sufficient physical RAM" + CHECKREQS_MEMORY="768" + check_reqs - einfo "Checking for sufficient physical RAM" - check-ram + debug-print "Checking for bad CFLAGS" check-cflags + # Make sure our vm is sane java-utils_setup-vm - java-utils_ensure-vm-version-ge 1 4 2 - # all other gentoo archs match in eclipse build system except amd64 - if [ ${ARCH} == 'amd64' ] ; then + # All other gentoo archs match in eclipse build system except amd64 + if use amd64 ; then eclipsearch=x86_64 else eclipsearch=${ARCH} fi - # all other gentoo archs match in sun jdk library patch except x86 - if [ ${ARCH} == 'x86' ] ; then + # All other gentoo archs match in sun jdk library patch except x86 + if use x86 ; then jvmarch=i386 else jvmarch=${ARCH} fi + + # eventually, we'll have a plugin directory that's user writable, as group + # 'eclipse' -nichoj + + # Add the eclipse group, for our plugin directories + #enewgroup eclipse } src_unpack() { + unpack ${A} - mkdir ${S} - cd ${S} - unpack ${MY_A} || die "Could not unpack ${MY_A}" - + # TODO figure out what this does -nichoj epatch ${FILESDIR}/06-path-fixups.patch einfo "Setting up virtual machine" @@ -75,14 +87,11 @@ src_unpack() { clean-prebuilt-code einfo "Patching makefiles" - process-makefiles - - patch_amd64_ibm_jvm - + fix_makefiles + fix_amd64_ibm_jvm } src_compile() { - # karltk: this should be handled by the java-pkg eclass in setup-vm addwrite "/proc/self/maps" addwrite "/proc/cpuinfo" @@ -91,17 +100,22 @@ src_compile() { # Figure out VM, set up ant classpath and native library paths setup-jvm-opts - ${use_gtk} && use mozilla && setup-mozilla-opts + if use !nogecko-sdk ; then + einfo "Will compile embedded Mozilla support against net-libs/gecko-sdk" + setup-mozilla-opts + else + einfo "Not building embedded Mozilla support" + fi use jikes && bootstrap_ant_opts="-Dbuild.compiler=jikes" - einfo "Bootstrapping bootstrap ecj" + debug-print "Bootstrapping bootstrap ecj" ant ${bootstrap_ant_opts} -q -f jdtcoresrc/compilejdtcorewithjavac.xml || die "Failed to bootstrap ecj" - einfo "Bootstrapping ecj" + debug-print "Bootstrapping ecj" ant -lib jdtcoresrc/ecj.jar -q -f jdtcoresrc/compilejdtcore.xml || die "Failed to bootstrap ecj" - einfo "Compiling Eclipse -- see ${S}/compilelog.txt for details" + debug-print "Compiling Eclipse -- see ${S}/compilelog.txt for details" ANT_OPTS="-Xmx1024M" \ ant -lib jdtcoresrc/ecj.jar -q -f build.xml \ -DinstallOs=linux \ @@ -119,39 +133,34 @@ src_compile() { cp launchertmp/eclipse eclipse-gtk || die "Cannot find eclipse binary" - einfo "Creating .desktop entry" + # TODO use make_desktop_entry from eutils during src_install instead -nichoj create-desktop-entry } src_install() { - - eclipse_dir="/usr/lib/eclipse-${SLOT}" - dodir /usr/lib - einfo "Installing features and plugins" + debug-print "Installing features and plugins" [ -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} + mv ${D}/usr/lib/eclipse ${D}/${ECLIPSE_DIR} + insinto ${ECLIPSE_DIR} + exeinto ${ECLIPSE_DIR} - insinto ${eclipse_dir} - - # Install launchers and native code - exeinto ${eclipse_dir} - - einfo "Installing eclipse-gtk binary" + debug-print "Installing eclipse-gtk binary" doexe eclipse-gtk || die "Failed to install eclipse binary" + # need to rename inf file to eclipse-gtk.ini, see bug #128128 - if use nosrc ; then - einfo "Stripping away source code" + if use nosrc; then + debug-print "Removing source code" strip-src fi if use nodoc ; then - einfo "Stripping away documentation" + debug-print "Removing documentation" strip-docs fi @@ -164,50 +173,20 @@ src_install() { doman ${FILESDIR}/eclipse.1 install-link-files + + # eventually, we'll have a user writable extension location -nichoj + # TODO make g+w + #dodir /var/lib/eclipse-${SLOT} + #touch ${D}/var/lib/eclipse-${SLOT}/.eclipseextension + #fowners root:eclipse /var/lib/eclipse-${SLOT} + } # ----------------------------------------------------------------------------- # Helper functions # ----------------------------------------------------------------------------- -function setup-mozilla-opts() -{ - mozilla_dir="--mozdir-unset---" - - if [ -f ${ROOT}/usr/lib/MozillaFirefox/libgtkembedmoz.so ] ; then - einfo "Compiling against www-client/mozilla-firefox" - mozilla_dir=/usr/lib/MozillaFirefox - elif [ -f ${ROOT}/usr/lib/mozilla/libgtkembedmoz.so ] ; then - einfo "Compiling against www-client/mozilla" - mozilla_dir=/usr/lib/mozilla - else - eerror "You have enabled the embedded mozilla component, but no suitable" - eerror "provider was found. You need Mozilla or Firefox compiled against" - eerror "gtk+ v2.0 or newer." - eerror "To merge it, execute 'USE=\"gtk2\" emerge mozilla' as root." - eerror "To disable embedded mozilla, remove \"mozilla\" from your USE flags." - die "Need Mozilla compiled with gtk+-2.x support" - fi - - export GECKO_SDK="${mozilla_dir}" - export GECKO_INCLUDES="-include ${GECKO_SDK}/include/mozilla-config.h \ - -I${GECKO_SDK}/include/nspr \ - -I${GECKO_SDK}/include/nspr \ - -I${GECKO_SDK}/include/xpcom \ - -I${GECKO_SDK}/include/string \ - -I${GECKO_SDK}/include/embed_base \ - -I${JAVA_HOME}/include/linux" - export GECKO_LIBS="-L${GECKO_SDK} -lgtkembedmoz" -} - -function build-native() { - sh features/org.eclipse.platform.launchers/library/gtk/build.sh \ - -os linux -ws gtk \ - -arch ${eclipsearch} || die "Failed to build launcher" -} - -function process-makefiles() { - +fix_makefiles() { # Comment out hard-coded JAVA_HOME sed -i 's/^JAVA_HOME/#JAVA_HOME/' plugins/org.eclipse.core.resources.linux/src/Makefile || die "Failed to patch Makefile" @@ -219,7 +198,7 @@ function process-makefiles() { libs="${libs} make_gnome" fi - if use mozilla ; then + if use !nogecko-sdk ; then einfo "Building Mozilla embed support" libs="${libs} make_mozilla" fi @@ -232,123 +211,30 @@ function process-makefiles() { sed -i "s/^all:.*/all: ${libs}/" "plugins/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak" || die "Failed to patch make_linux.mak" } -function create-desktop-entry() { - - cat ${FILESDIR}/eclipse-${SLOT}.desktop | \ - sed -e "s/@PV@/${PV}/" \ - > eclipse-${SLOT}.desktop || die "Failed to create desktop entry" -} - -function install-desktop-entry() { - - dodir /usr/share/applications - insinto /usr/share/applications - doins eclipse-${SLOT}.desktop -} - -function clean-prebuilt-code() { - - find ${S} -type f \( -name '*.class' -o -name '*.so' -o -name '*.so.*' -o -name 'eclipse' \) | xargs rm -f -} - -function get-memory-total() { - cat /proc/meminfo | grep MemTotal | sed -r "s/[^0-9]*([0-9]+).*/\1/" -} - -function check-ram() { - - local mem=$(get-memory-total) - [ $(get-memory-total) -lt 775000 ] && - ( - echo - ewarn "To build Eclipse, at least 768MB of RAM is recommended." - ewarn "Your machine has less RAM. Continuing anyway. If the build" - ewarn "stops with an error about invalid memory, increase your swap." - echo - ) -} - -function install-link-files() { - - einfo "Installing link files" - - dodir /usr/lib/eclipse-${SLOT}/links - - echo "path=/opt/eclipse-extensions-3" > ${D}/${eclipse_dir}/links/eclipse-binary-extensions-3.link - echo "path=/opt/eclipse-extensions-3.1" > ${D}/${eclipse_dir}/links/eclipse-binary-extensions-3.1.link - - echo "path=/usr/lib/eclipse-extensions-3" > ${D}/${eclipse_dir}/links/eclipse-extensions-3.link - echo "path=/usr/lib/eclipse-extensions-3.1" > ${D}/${eclipse_dir}/links/eclipse-extensions-3.1.link -} - -function patch_amd64_ibm_jvm() { +fix_amd64_ibm_jvm() { # the ibm jdk ebuild should have fixed headers, but until then # we just fix the compiling here (see bug #97421) - if [ ${ARCH} == 'amd64' ]; then + if use amd64 ; then if [ ! -z "`java-config --java-version | grep IBM`" ] ; then - einfo "Fixing IBM jdk header problem" - find plugins -name "make_linux.mak" -print0 | xargs -0 sed -i -e 's/^CFLAGS =/CFLAGS = -D_JNI_IMPORT_OR_EXPORT_= /' + einfo "Fixing IBM jdk header problem" + find plugins -name "make_linux.mak" -print0 | xargs -0 sed -i -e 's/^CFLAGS =/CFLAGS = -D_JNI_IMPORT_OR_EXPORT_= /' fi fi } -function setup-jvm-opts() { - # Figure out correct boot classpath - # karltk: this should be handled by the java-pkg eclass in setup-vm - if [ ! -z "`java-config --java-version | grep IBM`" ] ; then - # IBM JRE - local bp="$(java-config --jdk-home)/jre/lib" - bootclasspath="${bp}/core.jar:${bp}/xml.jar:${bp}/graphics.jar:${bp}/security.jar:${bp}/server.jar" - JAVA_LIB_DIR="$(java-config --jdk-home)/jre/bin" - else - # Sun derived JREs (Blackdown, Sun) - local bp="$(java-config --jdk-home)/jre/lib" - bootclasspath="${bp}/rt.jar:${bp}/jsse.jar" - 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} +clean-prebuilt-code() { + find ${S} -type f \( -name '*.class' -o -name '*.so' -o -name '*.so.*' -o -name 'eclipse' \) | xargs rm -f } -function strip-src() { - - local bp=${D}/${eclipse_dir} - - rm -rf ${bp}/plugins/org.eclipse.pde.source_3* - rm -rf ${bp}/plugins/org.eclipse.jdt.source_3* - rm -rf ${bp}/plugins/org.eclipse.platform.source.linux.* - rm -rf ${bp}/plugins/org.eclipse.platform.source_3* - - rm -rf ${bp}/features/org.eclipse.jdt.source_3*/ - rm -rf ${bp}/features/org.eclipse.pde.source_3*/ - rm -rf ${bp}/features/org.eclipse.platform.source_3*/ -} - -function strip-docs() { - local bp=${D}/${eclipse_dir} - - rm -rf ${bp}/plugins/org.eclipse.platform.doc.* - rm -rf ${bp}/plugins/org.eclipse.jdt.doc.* - rm -rf ${bp}/plugins/org.eclipse.pde.doc.* -} - -function check-cflags() { - - einfo "Checking for bad CFLAGS" - +check-cflags() { local badflags="-fomit-frame-pointer -msse2" local error=false + local flag - for x in ${badflags} ; do - if [ ! -z "$(echo ${CFLAGS} | grep -- $x)" ] ; then - ewarn "Found offending option $x in your CFLAGS" + for flag in ${badflags} ; do + if is-flag ${flag}; then + ewarn "Found offending option ${flag} in your CFLAGS" error=true fi done @@ -367,3 +253,111 @@ function check-cflags() { fi } +setup-jvm-opts() { + # Figure out correct boot classpath + # karltk: this should be handled by the java-pkg eclass in setup-vm + if [ ! -z "`java-config --java-version | grep IBM`" ] ; then + # IBM JDK + local bp="$(java-config --jdk-home)/jre/lib" + bootclasspath="${bp}/core.jar:${bp}/xml.jar:${bp}/graphics.jar:${bp}/security.jar:${bp}/server.jar" + JAVA_LIB_DIR="$(java-config --jdk-home)/jre/bin" + else + # Sun derived JDKs (Blackdown, Sun) + local bp="$(java-config --jdk-home)/jre/lib" + bootclasspath="${bp}/rt.jar:${bp}/jsse.jar" + 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() { + mozilla_dir="--mozdir-unset---" + + if [ -f ${ROOT}/usr/lib/gecko-sdk/lib/libgtkembedmoz.so ] ; then + mozilla_dir=/usr/lib/gecko-sdk + else + # TODO need to update this appropriately for gecko-sdk + eerror "You have enabled the embedded mozilla component, but no suitable" + eerror "provider was found. You need gecko-sdk compiled against" + eerror "gtk+ v2.0 or newer." + eerror "To merge it, execute 'USE=\"gtk2\" emerge mozilla' as root." + eerror "To disable embedded mozilla, remove \"mozilla\" from your USE flags." + die "Need Mozilla compiled with gtk+-2.x support" + fi + + export GECKO_SDK="${mozilla_dir}" + # TODO should this be using pkg-config? + export GECKO_INCLUDES="-include ${GECKO_SDK}/include/mozilla-config.h \ + -I${GECKO_SDK}/include/nspr \ + -I${GECKO_SDK}/include/nspr \ + -I${GECKO_SDK}/include/xpcom \ + -I${GECKO_SDK}/include/string \ + -I${GECKO_SDK}/include/embed_base \ + -I${JAVA_HOME}/include/linux" + export GECKO_LIBS="-L${GECKO_SDK}/lib -lgtkembedmoz" +} + +build-native() { + sh features/org.eclipse.platform.launchers/library/gtk/build.sh \ + -os linux -ws gtk \ + -arch ${eclipsearch} || die "Failed to build launcher" +} +create-desktop-entry() { + sed -e "s/@PV@/${PV}/" ${FILESDIR}/eclipse-${SLOT}.desktop \ + > eclipse-${SLOT}.desktop || die "Failed to create desktop entry" +} + +install-desktop-entry() { + dodir /usr/share/applications + insinto /usr/share/applications + doins eclipse-${SLOT}.desktop +} + +install_link_file() { + local path=${1} + local file=${2} + + echo "path=${path}" > "${D}/${ECLIPSE_LINKS_DIR}/${file}" +} + +install-link-files() { + einfo "Installing link files" + + dodir ${ECLIPSE_LINKS_DIR} + install_link_file /opt/eclipse-extensions-3 eclipse-binary-extensions-3.link + install_link_file /opt/eclipse-extensions-3.1 eclipse-binary-extensions-3.1.link + + install_link_file /usr/lib/eclipse-extensions-3 eclipse-extensions-3.link + install_link_file /usr/lib/eclipse-extensions-3.1 eclipse-extensions-3.1.link + +# install_link_file /var/lib/eclipse-3 eclipse-var-3.link +# install_link_file /var/lib/eclipse-3.1 eclipse-var-3.1.link +} + +strip-src() { + local bp=${D}/${ECLIPSE_DIR} + + rm -rf ${bp}/plugins/org.eclipse.pde.source_3* \ + ${bp}/plugins/org.eclipse.jdt.source_3* \ + ${bp}/plugins/org.eclipse.platform.source.linux.* \ + ${bp}/plugins/org.eclipse.platform.source_3* \ + ${bp}/features/org.eclipse.jdt.source_3* \ + ${bp}/features/org.eclipse.pde.source_3* \ + ${bp}/features/org.eclipse.platform.source_3* +} + +strip-docs() { + local bp=${D}/${ECLIPSE_DIR} + + rm -rf ${bp}/plugins/org.eclipse.platform.doc.* \ + ${bp}/plugins/org.eclipse.jdt.doc.* \ + ${bp}/plugins/org.eclipse.pde.doc.* +} diff --git a/dev-util/eclipse-sdk/files/digest-eclipse-sdk-3.1.2 b/dev-util/eclipse-sdk/files/digest-eclipse-sdk-3.1.2-r2 similarity index 100% rename from dev-util/eclipse-sdk/files/digest-eclipse-sdk-3.1.2 rename to dev-util/eclipse-sdk/files/digest-eclipse-sdk-3.1.2-r2