From 4560748d8a7f5330b5dcc2a8c9f45c8e50747d2e Mon Sep 17 00:00:00 2001 From: Thomas Matthijs Date: Tue, 19 Jul 2005 18:39:17 +0000 Subject: rev bump too fix some bugs, see changelog (Portage version: 2.0.51.22-r1) --- dev-util/netbeans/ChangeLog | 13 +- dev-util/netbeans/Manifest | 33 +- dev-util/netbeans/files/4.0/startscript.sh | 21 ++ dev-util/netbeans/files/digest-netbeans-4.0-r1 | 2 - dev-util/netbeans/files/digest-netbeans-4.0-r2 | 2 + dev-util/netbeans/files/emptyunscramble.xsl | 15 + dev-util/netbeans/netbeans-4.0-r1.ebuild | 343 --------------------- dev-util/netbeans/netbeans-4.0-r2.ebuild | 408 +++++++++++++++++++++++++ 8 files changed, 471 insertions(+), 366 deletions(-) create mode 100644 dev-util/netbeans/files/4.0/startscript.sh delete mode 100644 dev-util/netbeans/files/digest-netbeans-4.0-r1 create mode 100644 dev-util/netbeans/files/digest-netbeans-4.0-r2 create mode 100644 dev-util/netbeans/files/emptyunscramble.xsl delete mode 100644 dev-util/netbeans/netbeans-4.0-r1.ebuild create mode 100644 dev-util/netbeans/netbeans-4.0-r2.ebuild (limited to 'dev-util/netbeans') diff --git a/dev-util/netbeans/ChangeLog b/dev-util/netbeans/ChangeLog index be91770eeca3..160813c0d951 100644 --- a/dev-util/netbeans/ChangeLog +++ b/dev-util/netbeans/ChangeLog @@ -1,6 +1,17 @@ # ChangeLog for dev-util/netbeans # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-util/netbeans/ChangeLog,v 1.32 2005/06/19 18:57:06 compnerd Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-util/netbeans/ChangeLog,v 1.33 2005/07/19 18:39:17 axxo Exp $ + +*netbeans-4.0-r2 (19 Jul 2005) + + 19 Jul 2005; Thomas Matthijs +files/4.0/startscript.sh, + +files/emptyunscramble.xsl, -netbeans-4.0-r1.ebuild, + +netbeans-4.0-r2.ebuild: + Commiting for Petteri Räty, changes by him: Version bump because of Bug + #98603, Bug #96646 and Bug 99545. This version now depends on the corrected + version of jmi-interface and doesn't fail with access violations if the + system jars are dated older then the files in the Netbeans tarball. Also + more information messages about the progress of the ebuild. 19 Jun 2005; Saleem Abdulrasool -netbeans-4.0.ebuild: diff --git a/dev-util/netbeans/Manifest b/dev-util/netbeans/Manifest index ed213577368b..4f1285258506 100644 --- a/dev-util/netbeans/Manifest +++ b/dev-util/netbeans/Manifest @@ -1,27 +1,20 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - +MD5 042c88893d3b466e99c8858cd719f1b7 netbeans-4.0-r2.ebuild 11990 +MD5 3995327ee30375ca261228f816a9f9a2 netbeans-3.4.1.ebuild 3191 +MD5 a2ecc45e7604ad37b1d92d16d18ba3c0 netbeans-3.5.1.ebuild 3155 +MD5 123427f9dd5f7996a3f5fdd909eb65db netbeans-3.6-r1.ebuild 3155 MD5 90f8f970a5d38084928111be0db2cad6 ChangeLog 5304 +MD5 e7fcbf7f5131562425fda47afe3b39b9 metadata.xml 1128 MD5 95ab6db4dc5ed189e21f0e6ae1aa657e files/antbuild.xml.patch 957 -MD5 eba3a44af2a04cab3a7bf00ce982130e files/digest-netbeans-3.4.1 77 -MD5 9db67cc7c38cdd884ec192a4c642e144 files/digest-netbeans-3.5.1 77 +MD5 9c6f59bb154bdcd7242f4544b8feae6b files/netbeans-KDE.desktop 139 +MD5 0c98dd3e09a6ddfc91bf8eac2ef22871 files/startscript.sh 409 +MD5 21a78956bac04c98135ba5707b98da66 files/netbeans.png 2163 MD5 a31cf39b9b70944a298e8fa97275d122 files/digest-netbeans-3.6-r1 67 MD5 628cbd47ea7d573ab47cc6b96c1b4d65 files/digest-netbeans-4.0-r1 163 +MD5 628cbd47ea7d573ab47cc6b96c1b4d65 files/digest-netbeans-4.0-r2 163 MD5 df81663e1eac8d30955facf133f41e7a files/nbbuild.patch 1317 MD5 86a2e857f2e16af4becaa6e0e733c215 files/netbeans 786 -MD5 9c6f59bb154bdcd7242f4544b8feae6b files/netbeans-KDE.desktop 139 MD5 e04a4eefe6510679e7cf06d0377e9e18 files/netbeans.desktop 103 -MD5 21a78956bac04c98135ba5707b98da66 files/netbeans.png 2163 -MD5 0c98dd3e09a6ddfc91bf8eac2ef22871 files/startscript.sh 409 -MD5 e7fcbf7f5131562425fda47afe3b39b9 metadata.xml 1128 -MD5 3995327ee30375ca261228f816a9f9a2 netbeans-3.4.1.ebuild 3191 -MD5 a2ecc45e7604ad37b1d92d16d18ba3c0 netbeans-3.5.1.ebuild 3155 -MD5 123427f9dd5f7996a3f5fdd909eb65db netbeans-3.6-r1.ebuild 3155 -MD5 f265596b1834ceff82a229c173bb913c netbeans-4.0-r1.ebuild 10607 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.4.1 (GNU/Linux) - -iD8DBQFC0BSFI1lqEGTUzyQRAp0pAJ9Hukvk+KBCxtOM7T3dJ2hhL3wOXQCgsO+b -2VMz5h/JS74gCMoS4fjRnR8= -=neHJ ------END PGP SIGNATURE----- +MD5 eba3a44af2a04cab3a7bf00ce982130e files/digest-netbeans-3.4.1 77 +MD5 9db67cc7c38cdd884ec192a4c642e144 files/digest-netbeans-3.5.1 77 +MD5 a80b4daebbce9c3aa54890ab458f8ecd files/emptyunscramble.xsl 405 +MD5 0c98dd3e09a6ddfc91bf8eac2ef22871 files/4.0/startscript.sh 409 diff --git a/dev-util/netbeans/files/4.0/startscript.sh b/dev-util/netbeans/files/4.0/startscript.sh new file mode 100644 index 000000000000..8fe13cc00b01 --- /dev/null +++ b/dev-util/netbeans/files/4.0/startscript.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +check_symlinks() { + for file in `find ${1} -type l` ; do + + if ! test -e ${file} ; then + echo "Broken symlink:" + echo "${file}" + fi + + done +} + +NBDIR="/usr/share/netbeans-4.0" + +check_symlinks ${NBDIR}/ide4/modules/ext +check_symlinks ${NBDIR}/ide4/modules/autoload/ext +check_symlinks ${NBDIR}/ide4/config/TagLibraries/JSTL11 +check_symlinks ${NBDIR}/platform4/modules/ext + +${NBDIR}/bin/netbeans diff --git a/dev-util/netbeans/files/digest-netbeans-4.0-r1 b/dev-util/netbeans/files/digest-netbeans-4.0-r1 deleted file mode 100644 index b44ef1705c28..000000000000 --- a/dev-util/netbeans/files/digest-netbeans-4.0-r1 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 a5488c563b93b3181cfeccbb67ee761c netbeans-4_0-src-ide_sources.tar.bz2 53877180 -MD5 c851459f64b3e8586b616463a1ad75e8 netbeans-4_0-docs-javadoc.tar.bz2 12728428 diff --git a/dev-util/netbeans/files/digest-netbeans-4.0-r2 b/dev-util/netbeans/files/digest-netbeans-4.0-r2 new file mode 100644 index 000000000000..b44ef1705c28 --- /dev/null +++ b/dev-util/netbeans/files/digest-netbeans-4.0-r2 @@ -0,0 +1,2 @@ +MD5 a5488c563b93b3181cfeccbb67ee761c netbeans-4_0-src-ide_sources.tar.bz2 53877180 +MD5 c851459f64b3e8586b616463a1ad75e8 netbeans-4_0-docs-javadoc.tar.bz2 12728428 diff --git a/dev-util/netbeans/files/emptyunscramble.xsl b/dev-util/netbeans/files/emptyunscramble.xsl new file mode 100644 index 000000000000..ecce5cb08451 --- /dev/null +++ b/dev-util/netbeans/files/emptyunscramble.xsl @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + diff --git a/dev-util/netbeans/netbeans-4.0-r1.ebuild b/dev-util/netbeans/netbeans-4.0-r1.ebuild deleted file mode 100644 index 88f2b7f5279a..000000000000 --- a/dev-util/netbeans/netbeans-4.0-r1.ebuild +++ /dev/null @@ -1,343 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-util/netbeans/netbeans-4.0-r1.ebuild,v 1.2 2005/07/09 18:16:10 swegener Exp $ - -inherit eutils java-pkg - -# Server Tarball layout structure -# 4.0 200412081800/d5a0f13566068cb86e33a46ea130b207 -# 4.1 200505031930/66083d474e5fdfc80a1443fb851bd9d5 - -# ant-mis is stuff we never use put instead of pactching we let the build process use this file -# so adding the license just to be sure -# The list of files in here is not complete but just some I listed. -# Apache-1.1: webserver.jar -# Apache-2.0: ant-misc-1.6.2.zip -# as-is: docbook-xsl-1.65.1.zip, pmd-netbeans35-bin-0.91.zip - -# There are many other scrambled files in Netbeans but the -# default module configuration doesn't use all of them. -# -# If you want to find out useless java-pkg_jar-from calls and all scrambled files, which don't have -# symlinks to the installed files, you can use a ruby script I wrote. It is in the experimental tree: -# https://gentooexperimental.org/svn/java/gentoo-java-experimental/dev-util/netbeans/files -# -# This command should be run after ebuild unpack in the source root -# 'ebuild netbeans-4.0.ebuild compile | grep Unscrambling | grep "\.jar"' -# Check which jars are actually being used to compile Netbeans -# -# This command should be run after ebuild install in the image root -# 'find . -name "*.jar" -type f | less' -# Check the list to see that no packed jars get copied to the image -# -# Remove the unset DISPLAY line from src_compile to get graphical license dialogs and pause before -# unscramble - -MY_PV=${PV/./_} - -BASELOCATION="http://www.netbeans.org/download/${MY_PV}/fcs/200412081800/d5a0f13566068cb86e33a46ea130b207" -MAINTARBALL="netbeans-${MY_PV}-src-ide_sources.tar.bz2" -JAVADOCTARBALL="netbeans-${MY_PV}-docs-javadoc.tar.bz2" - -DESCRIPTION="NetBeans IDE for Java" -HOMEPAGE="http://www.netbeans.org" -SRC_URI="${BASELOCATION}/${MAINTARBALL} - doc? ( ${BASELOCATION}/${JAVADOCTARBALL} )" - -LICENSE="Apache-1.1 Apache-2.0 SPL W3C sun-bcla-j2eeeditor sun-bcla-javac sun-javac as-is docbook sun-resolver" -SLOT="4.0" -KEYWORDS="~x86 ~amd64" -IUSE="debug doc" - -# dev-java/xml-commons-resolver for future versions -RDEPEND=">=virtual/jre-1.4.2 - =dev-java/commons-logging-1.0* - dev-java/commons-el - =dev-java/junit-3.8* - =dev-java/servletapi-2.2* - =dev-java/servletapi-2.3* - =dev-java/servletapi-2.4* - =dev-java/xerces-2.6.2* - dev-java/sac - dev-java/flute - dev-java/jmi-interface - >=dev-java/javahelp-bin-2.0.02-r1 - ~www-servers/tomcat-5.0.28 - dev-java/sun-j2ee-deployment-bin - dev-java/xml-commons - dev-java/jakarta-jstl" -DEPEND="${RDEPEND} - >=virtual/jdk-1.4.2 - >=dev-java/ant-1.6.1 - =dev-java/jakarta-regexp-1.3* - =dev-java/xalan-2* - dev-java/jtidy - =dev-java/jaxen-1.1* - dev-java/saxpath - dev-java/javamake-bin - dev-util/pmd" - -TOMCATSLOT="5" - -# Replacement JARs for Netbeans -COMMONS_LOGGING="commons-logging commons-logging.jar commons-logging-1.0.4.jar" -JASPERCOMPILER="tomcat-${TOMCATSLOT} jasper-compiler.jar jasper-compiler-5.0.28.jar" -JASPERRUNTIME="tomcat-${TOMCATSLOT} jasper-runtime.jar jasper-runtime-5.0.28.jar" -JH="javahelp-bin jh.jar jh-2.0_01.jar" -JMI="jmi-interface jmi.jar jmi.jar" -JSPAPI="servletapi-2.4 jsp-api.jar jsp-api-2.0.jar" -JSR="sun-j2ee-deployment-bin sun-j2ee-deployment-bin.jar jsr88javax.jar" -JSTL="jakarta-jstl jstl.jar jstl-1.1.2.jar" -JUNIT="junit junit.jar junit-3.8.1.jar" -MOF="jmi-interface mof.jar mof.jar" -PMD="pmd pmd.jar pmd-1.3.jar" -REGEXP="jakarta-regexp-1.3 jakarta-regexp.jar regexp-1.2.jar" -SERVLET22="servletapi-2.2 servletapi-2.2.jar servlet-2.2.jar" -SERVLET23="servletapi-2.3 servlet.jar servlet-2.3.jar" -SERVLET24="servletapi-2.4 servlet-api.jar servlet-api-2.4.jar" -STANDARD="jakarta-jstl standard.jar standard-1.1.2.jar" -XERCES="xerces-2 xercesImpl.jar xerces-2.6.2.jar" -XMLCOMMONS="xml-commons xml-apis.jar xml-commons-dom-ranges-1.0.b2.jar" - -S=${WORKDIR}/netbeans-src -BUILDDESTINATION="${S}/nbbuild/netbeans" - -src_unpack () { - unpack ${MAINTARBALL} - - if use doc; then - mkdir javadoc && cd javadoc - unpack ${JAVADOCTARBALL} || die "Unable to extract javadoc" - rm -f *.zip - fi - - cd ${S}/nbbuild - # Disable the bundled Tomcat in favor of Portage installed version - sed -i -e "s%tomcatint/tomcat5/bundled,%%g" *.properties - - cd ${S}/ant/external/ - touch ant-api-1.6.2.zip - touch ant-docs-1.6.2.zip - - # We have ant libs here so using the system libs - epatch ${FILESDIR}/antbuild.xml.patch - mkdir lib && cd lib - java-pkg_jar-from ant-tasks - java-pkg_jar-from ant-core - - cd ${S}/core/external - java-pkg_jar-from ${JH} - - cd ${S}/mdr/external/ - java-pkg_jar-from ${JMI} - java-pkg_jar-from ${MOF} - - cd ${S}/nbbuild/external - java-pkg_jar-from javahelp-bin jhall.jar jhall-2.0_01.jar - - cd ${S}/libs/external/ - java-pkg_jar-from ${XERCES} - java-pkg_jar-from ${COMMONS_LOGGING} - java-pkg_jar-from xalan xalan.jar xalan-2.5.2.jar - java-pkg_jar-from ${XMLCOMMONS} - java-pkg_jar-from ${PMD} - java-pkg_jar-from ${REGEXP} - # j2eeeditor-1.0.jar is only used in Netbeans but licensed under - # Sun's bcla + supplemental terms - - cd ${S}/xml/external/ - java-pkg_jar-from sac - java-pkg_jar-from xerces-2 xercesImpl.jar xerces2.jar - java-pkg_jar-from flute - # There's also resolver-1_1_nb.jar in this directory. - # The implementation is from Sun and I haven't found it. - # In later Netbeans versions xml-commons is used so we will use it - # then. - - cd ${S}/httpserver/external/ - java-pkg_jar-from ${SERVLET22} - # The webserver.jar in here is a stripped down version of Tomcat 3.3. - # We will use the included jar because we don't want to have Tomcat 3.X - # in the tree and because maintaining it would probably be a pain. - - cd ${S}/j2eeserver/external - java-pkg_jar-from ${JSR} - - cd ${S}/java/external/ - java-pkg_jar-from javamake-bin javamake.jar javamake-1.2.12.jar - # gjast.jar is a mix of Netbeans stuff with sun javac stuff - # It is not available elsewhere. - - cd ${S}/junit/external/ - java-pkg_jar-from ${JUNIT} - touch junit-3.8.1-api.zip - - cd ${S}/tasklist/external/ - java-pkg_jar-from jtidy Tidy.jar Tidy-r7.jar - - cd ${S}/web/external - java-pkg_jar-from ${SERVLET23} - java-pkg_jar-from ${SERVLET24} - java-pkg_jar-from commons-el - java-pkg_jar-from jaxen-1.1 jaxen-1.1_beta2.jar jaxen-full.jar - java-pkg_jar-from saxpath - java-pkg_jar-from ${JASPERCOMPILER} - java-pkg_jar-from ${JASPERRUNTIME} - java-pkg_jar-from ${JSPAPI} - java-pkg_jar-from ${JSTL} - java-pkg_jar-from ${STANDARD} - touch jsp20-docs.zip - touch jstl-1.1.2-javadoc.zip - touch servlet24-docs.zip -} - -src_compile() { - local antflags="" - - if use debug; then - antflags="${antflags} -Dbuild.compiler.debug=true" - antflags="${antflags} -Dbuild.compiler.deprecation=true" - else - antflags="${antflags} -Dbuild.compiler.deprecation=false" - fi - - antflags="${antflags} -Dnetbeans.no.pre.unscramble=true" - antflags="${antflags} -Dstop.when.broken.modules=true" - - # The build will attempt to display graphical - # dialogs for the licence agreements if this is set. - unset DISPLAY - - # Sun JDK doesnt like that very much, so lets pleasure them too ;-) - export ANT_OPTS="${ANT_OPTS} -Djava.awt.headless=true" - - # The location of the main build.xml file - cd ${S}/nbbuild - - # Specify the build-nozip target otherwise it will build - # a zip file of the netbeans folder, which will copy directly. - yes yes 2>/dev/null | ant ${antflags} build-nozip || die "Compiling failed!" - - # Remove non-x86 Linux binaries - find ${BUILDDESTINATION} -type f \ - -name "*.exe" -o \ - -name "*.cmd" -o \ - -name "*.bat" -o \ - -name "*.dll" \ - | xargs rm -f - - # Removing external stuff. They are api docs from external libs. - cd ${BUILDDESTINATION}/ide4/docs - rm -f *.zip - - # The next directory seems to be empty - if ! rmdir doc 2> /dev/null; then - use doc || rm -fr ./doc - fi - - # Use the system ant - cd ${BUILDDESTINATION}/ide4/ant - - rm -fr ./lib - rm -fr ./bin -} - -src_install() { - local DESTINATION="${ROOT}/usr/share/netbeans-${SLOT}" - insinto $DESTINATION - - einfo "Installing the program..." - cd ${BUILDDESTINATION} - doins -r * - - symlink_extjars ${D}/${DESTINATION} - - fperms 755 \ - ${DESTINATION}/bin/netbeans \ - ${DESTINATION}/platform4/lib/nbexec - - # The wrapper wrapper :) - newbin ${FILESDIR}/startscript.sh netbeans-${SLOT} - - # Ant installation - local ANTDIR="${DESTINATION}/ide4/ant" - cd ${D}/${ANTDIR} - - dodir /usr/share/ant-core/lib - dosym /usr/share/ant-core/lib ${ANTDIR}/lib - - dodir /usr/share/ant-core/bin - dosym /usr/share/ant-core/bin ${ANTDIR}/bin - - # Documentation - einfo "Installing Documentation..." - - cd ${D}/${DESTINATION} - - use doc && java-pkg_dohtml -r ${WORKDIR}/javadoc/* - - dodoc build_info - dohtml CREDITS.html README.html netbeans.css - - rm -f build_info CREDITS.html README.html netbeans.css - - # Icons and shortcuts - einfo "Installing icons..." - - dodir ${DESTINATION}/icons - insinto ${DESTINATION}/icons - doins ${S}/core/ide/release/bin/icons/*png - - for res in "16x16" "24x24" "32x32" "48x48" "128x128" ; do - dodir /usr/share/icons/hicolor/${res}/apps - dosym ${DESTINATION}/icons/nb${res}.png /usr/share/icons/hicolor/${res}/apps/netbeans.png - done - - make_desktop_entry netbeans-${SLOT} Netbeans netbeans Development -} - -pkg_postinst () { - einfo "Your tomcat directory might not have the right permissions." - einfo "Please make sure that normal users can read the directory:" - einfo "${ROOT}/usr/share/tomcat-${TOMCATSLOT}" - einfo - einfo "The integrated Tomcat is not installed, but you can easily" - einfo "use the system Tomcat. See Netbeans documentation if you" - einfo "don't know how to do that. The relevant settings are in the" - einfo "runtime window." -} - -# Supporting functions for this ebuild - -function fix_manifest() { - sed -i "s%ext/${1}%$(java-pkg_getjar ${2} ${3})%" ${4} -} - -function symlink_extjars() { - cd ${1}/ide4/modules/ext - java-pkg_jar-from ${COMMONS_LOGGING} - java-pkg_jar-from flute - java-pkg_jar-from ${JMI} - java-pkg_jar-from ${JUNIT} - java-pkg_jar-from ${MOF} - java-pkg_jar-from sac - - cd ${1}/ide4/modules/autoload/ext - java-pkg_jar-from commons-el - java-pkg_jar-from ${SERVLET22} - java-pkg_jar-from ${SERVLET23} - java-pkg_jar-from ${SERVLET24} - java-pkg_jar-from ${XERCES} - java-pkg_jar-from ${JSR} - java-pkg_jar-from ${JASPERCOMPILER} - java-pkg_jar-from ${JASPERRUNTIME} - java-pkg_jar-from ${XMLCOMMONS} - java-pkg_jar-from ${JSPAPI} - - cd ${1}/ide4/config/TagLibraries/JSTL11 - java-pkg_jar-from jakarta-jstl jstl.jar - java-pkg_jar-from jakarta-jstl standard.jar - - cd ${1}/platform4/modules/ext - java-pkg_jar-from ${JH} -} diff --git a/dev-util/netbeans/netbeans-4.0-r2.ebuild b/dev-util/netbeans/netbeans-4.0-r2.ebuild new file mode 100644 index 000000000000..b43568581acd --- /dev/null +++ b/dev-util/netbeans/netbeans-4.0-r2.ebuild @@ -0,0 +1,408 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-util/netbeans/netbeans-4.0-r2.ebuild,v 1.1 2005/07/19 18:39:17 axxo Exp $ + +inherit eutils java-pkg + +DESCRIPTION="NetBeans IDE for Java" +HOMEPAGE="http://www.netbeans.org" + +# ant-mis is stuff we never use put instead of pactching we let the build process use this file +# so adding the license just to be sure +# The list of files in here is not complete but just some I listed. +# Apache-1.1: webserver.jar +# Apache-2.0: ant-misc-1.6.2.zip +# as-is: docbook-xsl-1.65.1.zip, pmd-netbeans35-bin-0.91.zip + +# There are many other scrambled files in Netbeans but the +# default module configuration doesn't use all of them. +# +# Check the experimental tree for useful stuff. +# https://gentooexperimental.org/svn/java/gentoo-java-experimental/dev-util/netbeans/files +# +# This command should be run after ebuild unpack in the source root +# 'ebuild netbeans-${PVR}.ebuild compile | grep Unscrambling | grep "\.jar"' +# Check which jars are actually being used to compile Netbeans +# +# This command should be run after ebuild install in the image root +# 'find . -name "*.jar" -type f | less' +# Check the list to see that no packed jars get copied to the image +# +# Remove the unset DISPLAY line from src_compile to get graphical license dialogs and pause before +# unscramble + +MY_PV=${PV/./_} + +BASELOCATION="http://www.netbeans.org/download/${MY_PV}/fcs/200412081800/d5a0f13566068cb86e33a46ea130b207" +MAINTARBALL="netbeans-${MY_PV}-src-ide_sources.tar.bz2" +JAVADOCTARBALL="netbeans-${MY_PV}-docs-javadoc.tar.bz2" + +SRC_URI="${BASELOCATION}/${MAINTARBALL} + doc? ( ${BASELOCATION}/${JAVADOCTARBALL} )" + +LICENSE="Apache-1.1 Apache-2.0 SPL W3C sun-bcla-j2eeeditor sun-bcla-javac sun-javac as-is docbook sun-resolver" +SLOT="4.0" +KEYWORDS="~x86 ~amd64" +IUSE="debug doc" + +# dev-java/xml-commons-resolver for future versions +RDEPEND=">=virtual/jre-1.4.2 + =dev-java/commons-logging-1.0* + dev-java/commons-el + =dev-java/junit-3.8* + =dev-java/servletapi-2.2* + =dev-java/servletapi-2.3* + =dev-java/servletapi-2.4* + =dev-java/xerces-2.6.2* + dev-java/sac + dev-java/flute + >=dev-java/jmi-interface-1.0-r1 + >=dev-java/javahelp-bin-2.0.02-r1 + ~www-servers/tomcat-5.0.28 + dev-java/sun-j2ee-deployment-bin + dev-java/xml-commons + dev-java/jakarta-jstl" +DEPEND="${RDEPEND} + >=virtual/jdk-1.4.2 + >=dev-java/ant-1.6.1 + =dev-java/jakarta-regexp-1.3* + =dev-java/xalan-2* + dev-java/jtidy + =dev-java/jaxen-1.1* + dev-java/saxpath + dev-java/javamake-bin + dev-util/pmd + dev-libs/libxslt" + +TOMCATSLOT="5" + +# Replacement JARs for Netbeans +COMMONS_LOGGING="commons-logging commons-logging.jar commons-logging-1.0.4.jar" +JASPERCOMPILER="tomcat-${TOMCATSLOT} jasper-compiler.jar jasper-compiler-5.0.28.jar" +JASPERRUNTIME="tomcat-${TOMCATSLOT} jasper-runtime.jar jasper-runtime-5.0.28.jar" +JH="javahelp-bin jh.jar jh-2.0_01.jar" +JMI="jmi-interface jmi.jar jmi.jar" +JSPAPI="servletapi-2.4 jsp-api.jar jsp-api-2.0.jar" +JSR="sun-j2ee-deployment-bin-1.1 sun-j2ee-deployment-bin.jar jsr88javax.jar" +JSTL="jakarta-jstl jstl.jar jstl-1.1.2.jar" +JUNIT="junit junit.jar junit-3.8.1.jar" +MOF="jmi-interface mof.jar mof.jar" +PMD="pmd pmd.jar pmd-1.3.jar" +REGEXP="jakarta-regexp-1.3 jakarta-regexp.jar regexp-1.2.jar" +SERVLET22="servletapi-2.2 servlet.jar servlet-2.2.jar" +SERVLET23="servletapi-2.3 servlet.jar servlet-2.3.jar" +SERVLET24="servletapi-2.4 servlet-api.jar servlet-api-2.4.jar" +STANDARD="jakarta-jstl standard.jar standard-1.1.2.jar" +XERCES="xerces-2 xercesImpl.jar xerces-2.6.2.jar" +XMLCOMMONS="xml-commons xml-apis.jar xml-commons-dom-ranges-1.0.b2.jar" + +S=${WORKDIR}/netbeans-src +BUILDDESTINATION="${S}/nbbuild/netbeans" +IDE_VERSION="4" +MY_FDIR="${FILESDIR}/4.0" +DESTINATION="${ROOT}usr/share/netbeans-${SLOT}" + +antflags="" + +set_env() { + + antflags="" + + if use debug; then + antflags="${antflags} -Dbuild.compiler.debug=true" + antflags="${antflags} -Dbuild.compiler.deprecation=true" + else + antflags="${antflags} -Dbuild.compiler.deprecation=false" + fi + + antflags="${antflags} -Dnetbeans.no.pre.unscramble=true" + antflags="${antflags} -Dstop.when.broken.modules=true" + + # The build will attempt to display graphical + # dialogs for the licence agreements if this is set. + unset DISPLAY + + # -Xmx1g: Increase Java maximum heap size, otherwise ant will die with + # an OutOfMemoryError while building. + # -Djava.awt.headless=true: Sun JDK doesnt like that very much, so + # lets pleasure them too ;-) + # + # We use the ANT_OPTS environment variable because other ways seem to + # fail. + # + export ANT_OPTS="${ANT_OPTS} -Xmx1g -Djava.awt.headless=true" + +} + +src_unpack () { + unpack ${MAINTARBALL} + + if use doc; then + mkdir javadoc && cd javadoc + unpack ${JAVADOCTARBALL} || die "Unable to extract javadoc" + rm -f *.zip + fi + + cd ${S}/nbbuild + # Disable the bundled Tomcat in favor of Portage installed version + sed -i -e "s%tomcatint/tomcat5/bundled,%%g" *.properties + + einfo "Symlinking packed jars to system jars" + + set_env + + cd ${S}/ant/external/ + touch ant-api-1.6.2.zip + touch ant-docs-1.6.2.zip + unscramble_and_empty + + # We have ant libs here so using the system libs + cd lib + rm -fr *.jar + java-pkg_jar-from ant-tasks + java-pkg_jar-from ant-core + + cd ${S}/core/external + unscramble_and_empty + java-pkg_jar-from ${JH} + + cd ${S}/mdr/external/ + unscramble_and_empty + java-pkg_jar-from ${JMI} + java-pkg_jar-from ${MOF} + + cd ${S}/nbbuild/external + unscramble_and_empty + java-pkg_jar-from javahelp-bin jhall.jar jhall-2.0_01.jar + + cd ${S}/libs/external/ + unscramble_and_empty + java-pkg_jar-from ${XERCES} + java-pkg_jar-from ${COMMONS_LOGGING} + java-pkg_jar-from xalan xalan.jar xalan-2.5.2.jar + java-pkg_jar-from ${XMLCOMMONS} + java-pkg_jar-from ${PMD} + java-pkg_jar-from ${REGEXP} + # j2eeeditor-1.0.jar is only used in Netbeans but licensed under + # Sun's bcla + supplemental terms + + cd ${S}/xml/external/ + unscramble_and_empty + java-pkg_jar-from sac + java-pkg_jar-from xerces-2 xercesImpl.jar xerces2.jar + java-pkg_jar-from flute + # There's also resolver-1_1_nb.jar in this directory. + # The implementation is from Sun and I haven't found it. + # In later Netbeans versions xml-commons is used so we will use it + # then. + + cd ${S}/httpserver/external/ + unscramble_and_empty + java-pkg_jar-from ${SERVLET22} + # The webserver.jar in here is a stripped down version of Tomcat 3.3. + # We will use the included jar because we don't want to have Tomcat 3.X + # in the tree and because maintaining it would probably be a pain. + + cd ${S}/j2eeserver/external + unscramble_and_empty + java-pkg_jar-from ${JSR} + + cd ${S}/java/external/ + unscramble_and_empty + java-pkg_jar-from javamake-bin javamake.jar javamake-1.2.12.jar + # gjast.jar is a mix of Netbeans stuff with sun javac stuff + # It is not available elsewhere. + + cd ${S}/junit/external/ + touch junit-3.8.1-api.zip + java-pkg_jar-from ${JUNIT} + unscramble_and_empty + + cd ${S}/tasklist/external/ + unscramble_and_empty + java-pkg_jar-from jtidy Tidy.jar Tidy-r7.jar + + cd ${S}/web/external + touch jsp20-docs.zip + touch jstl-1.1.2-javadoc.zip + touch servlet24-docs.zip + unscramble_and_empty + java-pkg_jar-from ${SERVLET23} + java-pkg_jar-from ${SERVLET24} + java-pkg_jar-from commons-el + java-pkg_jar-from jaxen-1.1 jaxen.jar jaxen-full.jar + java-pkg_jar-from saxpath + java-pkg_jar-from ${JASPERCOMPILER} + java-pkg_jar-from ${JASPERRUNTIME} + java-pkg_jar-from ${JSPAPI} + java-pkg_jar-from ${JSTL} + java-pkg_jar-from ${STANDARD} + +} + +src_compile() { + + set_env + + # The location of the main build.xml file + cd ${S}/nbbuild + + # Specify the build-nozip target otherwise it will build + # a zip file of the netbeans folder, which will copy directly. + yes yes 2>/dev/null | ant ${antflags} build-nozip || die "Compiling failed!" + + # Remove non-x86 Linux binaries + find ${BUILDDESTINATION} -type f \ + -name "*.exe" -o \ + -name "*.cmd" -o \ + -name "*.bat" -o \ + -name "*.dll" \ + | xargs rm -f + + # Removing external stuff. They are api docs from external libs. + cd ${BUILDDESTINATION}/ide${IDE_VERSION}/docs + rm -f *.zip + + # The next directory seems to be empty + if ! rmdir doc 2> /dev/null; then + use doc || rm -fr ./doc + fi + + # Use the system ant + cd ${BUILDDESTINATION}/ide${IDE_VERSION}/ant + + rm -fr ./lib + rm -fr ./bin +} + +src_install() { + insinto $DESTINATION + + einfo "Installing the program..." + cd ${BUILDDESTINATION} + doins -r * + + symlink_extjars ${D}/${DESTINATION} + + fperms 755 \ + ${DESTINATION}/bin/netbeans \ + ${DESTINATION}/platform${IDE_VERSION}/lib/nbexec + + # The wrapper wrapper :) + newbin ${MY_FDIR}/startscript.sh netbeans-${SLOT} + + # Ant installation + local ANTDIR="${DESTINATION}/ide${IDE_VERSION}/ant" + cd ${D}/${ANTDIR} + + dodir /usr/share/ant-core/lib + dosym /usr/share/ant-core/lib ${ANTDIR}/lib + + dodir /usr/share/ant-core/bin + dosym /usr/share/ant-core/bin ${ANTDIR}/bin + + # Documentation + einfo "Installing Documentation..." + + cd ${D}/${DESTINATION} + + use doc && java-pkg_dohtml -r ${WORKDIR}/javadoc/* + + dodoc build_info + dohtml CREDITS.html README.html netbeans.css + + rm -f build_info CREDITS.html README.html netbeans.css + + # Icons and shortcuts + einfo "Installing icons..." + + dodir ${DESTINATION}/icons + insinto ${DESTINATION}/icons + doins ${S}/core/ide/release/bin/icons/*png + + for res in "16x16" "24x24" "32x32" "48x48" "128x128" ; do + dodir /usr/share/icons/hicolor/${res}/apps + dosym ${DESTINATION}/icons/nb${res}.png /usr/share/icons/hicolor/${res}/apps/netbeans.png + done + + make_desktop_entry netbeans-${SLOT} "Netbeans ${SLOT}" netbeans Development +} + +pkg_postinst () { + einfo "Your tomcat directory might not have the right permissions." + einfo "Please make sure that normal users can read the directory: " + einfo "${ROOT}usr/share/tomcat-${TOMCATSLOT} " + einfo " " + einfo "The integrated Tomcat is not installed, but you can easily " + einfo "use the system Tomcat. See Netbeans documentation if you " + einfo "don't know how to do that. The relevant settings are in the" + einfo "runtime window. " +} + +pkg_postrm() { +# einfo "Removing symlinks to jars from" +# einfo "${DESTINATION}" +# find ${DESTINATION} -type l | xargs rm -fr + + if ! test -e /usr/bin/netbeans-${SLOT}; then + einfo "Because of the way Portage works at the moment" + einfo "symlinks to the system jars are left to:" + einfo "${DESTINATION}" + einfo "If you are uninstalling Netbeans you can safely" + einfo "remove everything in this directory" + fi +} + +# Supporting functions for this ebuild + +function fix_manifest() { + sed -i "s%ext/${1}%$(java-pkg_getjar ${2} ${3})%" ${4} +} + +function symlink_extjars() { + einfo "Added symlinks to system jars inside" + einfo "${DESTINATION}" + + cd ${1}/ide${IDE_VERSION}/modules/ext + java-pkg_jar-from ${COMMONS_LOGGING} + java-pkg_jar-from flute + java-pkg_jar-from sac + java-pkg_jar-from ${JMI} + java-pkg_jar-from ${MOF} + java-pkg_jar-from ${JUNIT} + + cd ${1}/ide${IDE_VERSION}/modules/autoload/ext + java-pkg_jar-from commons-el + java-pkg_jar-from ${SERVLET22} + java-pkg_jar-from ${SERVLET23} + java-pkg_jar-from ${SERVLET24} + java-pkg_jar-from ${XERCES} + java-pkg_jar-from ${JSR} + java-pkg_jar-from ${JASPERCOMPILER} + java-pkg_jar-from ${JASPERRUNTIME} + java-pkg_jar-from ${XMLCOMMONS} + java-pkg_jar-from ${JSPAPI} + + cd ${1}/ide4/config/TagLibraries/JSTL11 + java-pkg_jar-from jakarta-jstl jstl.jar + java-pkg_jar-from jakarta-jstl standard.jar + + cd ${1}/platform${IDE_VERSION}/modules/ext + java-pkg_jar-from ${JH} +} + +function unscramble_and_empty() { + echo $(pwd) + yes yes 2> /dev/null | ant ${antflags} unscramble > /dev/null || die "Failed to unscramble" + remove_unscrambling +} + +function remove_unscrambling() { + local file=${1} + + [ -z ${file} ] && file="build.xml" + + xsltproc -o ${T}/out.xml ${FILESDIR}/emptyunscramble.xsl ${file} \ + || die "Failed to remove unscrambling from one of the build.xml files" + mv ${T}/out.xml ${file} +} -- cgit v1.2.3-65-gdbad