# Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-util/netbeans/netbeans-6.5-r4.ebuild,v 1.3 2009/03/29 17:48:38 betelgeuse Exp $ EAPI="2" WANT_SPLIT_ANT="true" inherit eutils java-pkg-2 java-ant-2 DESCRIPTION="NetBeans IDE for Java" HOMEPAGE="http://www.netbeans.org" SLOT="6.5" SRC_URI="http://download.netbeans.org/netbeans/6.5/final/zip/netbeans-6.5-200811100001-ml-src.zip http://dev.gentoo.org/~fordfrog/distfiles/netbeans-6.5-l10n-20081119172200.tar.bz2" LICENSE="|| ( CDDL GPL-2-with-linking-exception )" KEYWORDS="~amd64 ~x86" # NOTE: ruby support is currently disabled as we are not able to build it because we currently do not have support # for putting tools.jar on ant classpath. IUSE_NETBEANS_MODULES=" +netbeans_modules_apisupport netbeans_modules_cnd netbeans_modules_groovy netbeans_modules_gsf +netbeans_modules_harness +netbeans_modules_ide netbeans_modules_identity netbeans_modules_j2ee +netbeans_modules_java netbeans_modules_mobility +netbeans_modules_nb netbeans_modules_php netbeans_modules_profiler netbeans_modules_soa netbeans_modules_visualweb netbeans_modules_webcommon +netbeans_modules_websvccommon netbeans_modules_xml" IUSE_LINGUAS=" linguas_de linguas_es linguas_fr linguas_it linguas_ja linguas_pl linguas_pt_BR linguas_ru linguas_sq linguas_tr linguas_zh_CN linguas_zh_TW" IUSE="debug doc ${IUSE_NETBEANS_MODULES} ${IUSE_LINGUAS}" RDEPEND=">=virtual/jdk-1.5 java-virtuals/jdk-with-com-sun >=dev-java/ant-core-1.7.1_beta2 netbeans_modules_gsf? ( dev-java/bytelist:0 dev-java/jvyamlb:0 ) netbeans_modules_harness? ( >=dev-java/javahelp-2:0 ) netbeans_modules_ide? ( >=dev-java/commons-logging-1.1:0 >=dev-java/commons-net-1.4:0 >=dev-java/flyingsaucer-7:0 >=dev-java/freemarker-2.3.8:2.3 >=dev-java/jakarta-oro-2:2.0 >=dev-java/jaxb-2:2 >=dev-java/jdbc-mysql-5.1:0 >=dev-java/jdbc-postgresql-8.3_p603:0 >=dev-java/jsch-0.1.24:0 dev-java/jsr173:0 >=dev-java/lucene-2.3.2:2.3 dev-java/sun-jaf:0 ~dev-java/tomcat-servlet-api-3:2.2 >=dev-java/xerces-2.8.1:2 >=dev-util/subversion-1.5:0[java] ) netbeans_modules_j2ee? ( >=dev-java/antlr-2.7.7:0[java] >=dev-java/asm-3.1:3 dev-java/commons-beanutils:1.7 dev-java/commons-collections:0 dev-java/commons-digester:0 >=dev-java/commons-fileupload-1:0 >=dev-java/commons-logging-1.1:0 dev-java/commons-validator:0 >=dev-java/httpunit-1.6:0 dev-java/jakarta-jstl:0 >=dev-java/jakarta-oro-2:2.0 dev-java/jdom:1.0 dev-java/rome:0 ) netbeans_modules_java? ( >=dev-java/ant-1.7:0 >=dev-java/antlr-2.7.7:0[java] dev-java/asm:2.2 >=dev-java/beansbinding-1.2.1:0 >=dev-java/cglib-2.1:2.1 dev-java/commons-collections:0 >=dev-java/dom4j-1.6:1 dev-java/fastinfoset:0 dev-java/glassfish-persistence:0 dev-java/glassfish-transaction-api:0 dev-java/javassist:3 dev-java/jax-ws:2 dev-java/jax-ws-api:2 dev-java/jsr181:0 dev-java/jsr250:0 dev-java/jsr67:0 dev-java/jtidy:0 >=dev-java/junit-3.8.2:0 dev-java/saaj:0 dev-java/sjsxp:0 dev-java/stax-ex:0 dev-java/xmlstreambuffer:0 ) netbeans_modules_mobility? ( >=dev-java/ant-contrib-1.0_beta:0 dev-java/bcprov:0 >=dev-java/commons-codec-1.3:0 dev-java/commons-httpclient:3 dev-java/jdom:1.0 >=dev-java/proguard-4.2:0 ) netbeans_modules_php? ( >=dev-java/javacup-0.11a_beta20060608 ) netbeans_modules_soa? ( dev-java/jsr173:0 dev-java/wsdl4j:0 dev-java/xml-xmlbeans:1 ) netbeans_modules_xml? ( >=dev-java/commons-jxpath-1.1:0 dev-java/prefuse:2006 )" # These are packages from RDEPEND that are not currently in the tree but they are either in java-overlay or java-experimental # netbeans_modules_ide # >=dev-java/ini4j-0.2.6:0 # netbeans_modules_java: # >=dev-java/appframework-1:0 # dev-java/ehcache:1.4 # dev-java/hibernate:3.2 # dev-java/hibernate-annotations:3.2 # dev-java/hibernate-entitymanager:3.2 # dev-java/jdbc2-stdext:0 # dev-java/toplink-essentials:0 DEPEND=">=virtual/jdk-1.5 java-virtuals/jdk-with-com-sun app-arch/unzip >=dev-java/ant-core-1.7.1_beta2 >=dev-java/ant-nodeps-1.7.1 >=dev-java/javahelp-2:0 dev-java/jsr223:0 >=dev-java/junit-4:4 >=dev-java/swing-layout-1:1 doc? ( dev-java/ant-trax:0 ) netbeans_modules_gsf? ( dev-java/bytelist:0 >=dev-java/flute-1.3:0 dev-java/jvyamlb:0 >=dev-java/sac-1.3:0 ) netbeans_modules_ide? ( >=dev-java/commons-logging-1.1:0 >=dev-java/commons-net-1.4:0 >=dev-java/flyingsaucer-7:0 >=dev-java/freemarker-2.3.8:2.3 >=dev-java/jakarta-oro-2:2.0 >=dev-java/javacc-3.2:0 >=dev-java/jaxb-2:2 >=dev-java/jdbc-mysql-5.1:0 >=dev-java/jdbc-postgresql-8.3_p603:0 >=dev-java/jsch-0.1.24:0 dev-java/jsr173:0 >=dev-java/lucene-2.3.2:2.3 dev-java/sun-jaf:0 ~dev-java/tomcat-servlet-api-3:2.2 >=dev-java/xerces-2.8.1:2 >=dev-util/subversion-1.5:0[java] ) netbeans_modules_j2ee? ( >=dev-java/commons-fileupload-1:0 >=dev-java/httpunit-1.6:0 dev-java/jakarta-jstl:0 dev-java/tomcat-servlet-api:2.3 ) netbeans_modules_java? ( >=dev-java/beansbinding-1.2.1:0 >=dev-java/cglib-2.1:2.1 >=dev-java/junit-3.8.2:0 ) netbeans_modules_mobility? ( >=dev-java/ant-contrib-1.0_beta:0 dev-java/bcprov:0 >=dev-java/commons-codec-1.3:0 dev-java/commons-httpclient:3 >=dev-java/jakarta-slide-webdavclient-2.1:0 dev-java/jdom:1.0 >=dev-java/proguard-4.2:0 ) netbeans_modules_php? ( >=dev-java/javacup-0.11a_beta20060608 ) netbeans_modules_soa? ( >=dev-java/itext-2:0 ) netbeans_modules_xml? ( >=dev-java/commons-jxpath-1.1:0 dev-java/prefuse:2006 )" # These are packages from DEPEND that are not currently in the tree but they are either in java-overlay or java-experimental # no use flag # >=dev-java/jna-3:0 # netbeans_modules_ide # >=dev-java/jaxb-tools-2:2 # >=dev-java/ini4j-0.2.6:0 # netbeans_modules_java # >=dev-java/appframework-1:0 S="${WORKDIR}" BUILDDESTINATION="${S}/nbbuild/netbeans" ENTERPRISE="5" IDE_VERSION="10" PLATFORM="9" MY_FDIR="${FILESDIR}/${SLOT}" DESTINATION="/usr/share/netbeans-${SLOT}" JAVA_PKG_BSFIX="off" pkg_setup() { # direct deps: harness, ide, java if use netbeans_modules_apisupport && ! ( \ use netbeans_modules_harness && \ use netbeans_modules_ide && \ use netbeans_modules_java && \ use netbeans_modules_websvccommon ) ; then eerror "'apisupport' module requires 'harness', 'ide', 'java' and 'websvccommon' modules" die fi local need_apisupport="" local need_groovy="" local need_gsf="" local need_harness="" local need_ide="" local need_j2ee="" local need_java="" local need_websvccommon="" local need_xml="" # direct deps: ide if use netbeans_modules_cnd ; then need_ide="1" fi # direct deps: gsf, ide, java if use netbeans_modules_groovy ; then need_gsf="1" need_ide="1" need_java="1" need_websvccommon="1" fi # direct deps: ide if use netbeans_modules_gsf ; then need_ide="1" fi # direct deps: gsf, ide, j2ee, java if use netbeans_modules_identity ; then need_groovy="1" need_gsf="1" need_ide="1" need_j2ee="1" need_java="1" need_websvccommon="1" fi # direct deps: groovy, gsf, ide, java if use netbeans_modules_j2ee ; then need_groovy="1" need_gsf="1" need_ide="1" need_java="1" need_websvccommon="1" fi # direct deps: ide, websvccommon if use netbeans_modules_java ; then need_ide="1" need_websvccommon="1" fi # because of bug http://www.netbeans.org/issues/show_bug.cgi?id=151535 'j2ee' cluster is also # needed to build 'mobility' cluster # because of bug http://www.netbeans.org/issues/show_bug.cgi?id=151538 'apisupport' cluster is also # needed to build 'mobility' cluster # direct deps: apisupport, ide, j2ee, java if use netbeans_modules_mobility ; then need_apisupport="1" need_groovy="1" need_gsf="1" need_harness="1" need_ide="1" need_j2ee="1" need_java="1" need_websvccommon="1" fi # direct deps: harness, ide if use netbeans_modules_nb ; then need_harness="1" need_ide="1" fi # direct deps: gsf, ide, websvccommon if use netbeans_modules_php ; then need_gsf="1" need_ide="1" need_websvccommon="1" fi # direct deps: gsf, ide, j2ee, java if use netbeans_modules_profiler ; then need_groovy="1" need_gsf="1" need_ide="1" need_j2ee="1" need_java="1" need_websvccommon="1" fi # direct deps: gsf, ide #if use netbeans_modules_ruby && ! ( use netbeans_modules_gsf && use netbeans_modules_ide ) ; then # eerror "'ruby' module requires 'gsf' and 'ide' module" # die #fi # direct deps: gsf, ide, j2ee, java, xml if use netbeans_modules_soa ; then need_groovy="1" need_gsf="1" need_ide="1" need_j2ee="1" need_java="1" need_websvccommon="1" need_xml="1" fi # direct deps: gsf, ide, j2ee, java if use netbeans_modules_visualweb ; then need_groovy="1" need_gsf="1" need_ide="1" need_j2ee="1" need_java="1" need_websvccommon="1" fi # direct deps: gsf, ide if use netbeans_modules_webcommon ; then need_gsf="1" need_ide="1" fi # direct deps: ide if use netbeans_modules_websvccommon ; then need_ide="1" fi # direct deps: ide if use netbeans_modules_xml ; then need_ide="1" fi local missing="" [ -n "${need_apisupport}" ] && ! use netbeans_modules_apisupport && missing="${missing} apisupport" [ -n "${need_groovy}" ] && ! use netbeans_modules_groovy && missing="${missing} groovy" [ -n "${need_gsf}" ] && ! use netbeans_modules_gsf && missing="${missing} gsf" [ -n "${need_harness}" ] && ! use netbeans_modules_harness && missing="${missing} harness" [ -n "${need_ide}" ] && ! use netbeans_modules_ide && missing="${missing} ide" [ -n "${need_j2ee}" ] && ! use netbeans_modules_j2ee && missing="${missing} j2ee" [ -n "${need_java}" ] && ! use netbeans_modules_java && missing="${missing} java" [ -n "${need_websvccommon}" ] && ! use netbeans_modules_websvccommon && missing="${missing} websvccommon" [ -n "${need_xml}" ] && ! use netbeans_modules_xml && missing="${missing} xml" if [ -n "${missing}" ] ; then eerror "You need to add these modules to NETBEANS_MODULES because they are needed by modules you have selected" eerror " Missing NETBEANS_MODULES: ${missing}" die "Missing NETBEANS_MODULES" fi if ! use netbeans_modules_nb ; then ewarn "You are building netbeans without 'nb' module, this way you will build only specified" ewarn "clusters, not a functional IDE. In case you want functional IDE, add 'nb' to NETBEANS_MODULES." epause 5 fi java-pkg-2_pkg_setup } src_prepare () { epatch "${FILESDIR}"/${SLOT}/nbbuild_build.xml.patch \ "${FILESDIR}"/${SLOT}/nbbuild_templates_projectized.xml.patch if use netbeans_modules_visualweb ; then cd "${S}"/visualweb.insync/src/org/netbeans/modules/visualweb/insync/markup || die epatch "${FILESDIR}"/${SLOT}/all-visualweb.insync.JspxSerializer.java.patch fi # Clean up nbbuild einfo "Removing prebuilt *.class files from nbbuild" find "${S}" -name "*.class" -delete if [ -z "${JAVA_PKG_NB_USE_BUNDLED}" ] ; then place_unpack_symlinks fi local tmpfile="${T}/bundled.txt" einfo "Removing rest of the bundled jars..." find "${S}" -type f -name "*.jar" > ${tmpfile} || die "Cannot put jars in tmp file" # We do not remove the jars that we ar not able to unbundle atm # More info at: https://overlays.gentoo.org/proj/java/wiki/Netbeans_Maintenance sed -e "/libs\.jna\/external\/jna-3\.0\.2\.jar/d" -i ${tmpfile} || die if use netbeans_modules_groovy ; then sed -e "/groovy\.editor\/external\/groovy-all-1\.5\.6\.jar/d" -i ${tmpfile} || die fi if use netbeans_modules_ide ; then sed -e "/libs\.jaxb\/external\/jaxb-xjc\.jar/d" -i ${tmpfile} || die sed -e "/libs\.jaxb\/external\/jaxb-impl\.jar/d" -i ${tmpfile} || die sed -e "/libs\.svnClientAdapter\/external\/svnClientAdapter-1\.4\.0\.jar/d" -i ${tmpfile} || die sed -e "/o\.apache\.xml\.resolver\/external\/resolver-1\.2\.jar/d" -i ${tmpfile} || die sed -e "/libs\.javacapi\/external\/javac-api-nb-7\.0-b07\.jar/d" -i ${tmpfile} || die sed -e "/httpserver\/external\/tomcat-webserver-3\.2\.jar/d" -i ${tmpfile} || die sed -e "/libs\.ini4j\/external\/ini4j-0\.2\.6\.jar/d" -i ${tmpfile} || die fi if use netbeans_modules_j2ee ; then sed -e "/j2eeapis\/external\/jsr88javax\.jar/d" -i ${tmpfile} || die sed -e "/servletjspapi\/external\/servlet2\.5-jsp2\.1-api\.jar/d" -i ${tmpfile} || die sed -e "/web\.jspparser\/external\/glassfish-jspparser-2\.0\.jar/d" -i ${tmpfile} || die sed -e "/j2ee\.sun\.appsrv81\/external\/appservapis-2\.0\.58\.3\.jar/d" -i ${tmpfile} || die sed -e "/j2ee\.sun\.appsrv81\/external\/org-netbeans-modules-j2ee-sun-appsrv81\.jar/d" -i ${tmpfile} || die sed -e "/libs\.glassfish_logging\/external\/glassfish-logging-2\.0\.jar/d" -i ${tmpfile} || die sed -e "/spring\.webmvc\/external\/spring-webmvc-2\.5\.jar/d" -i ${tmpfile} || die sed -e "/web\.jsf\/external\/shale-remoting-1\.0\.4\.jar/d" -i ${tmpfile} || die sed -e "/websvc\.restlib\/external\/jsr311-api-doc\.jar/d" -i ${tmpfile} || die sed -e "/websvc\.restlib\/external\/jersey-api-doc\.jar/d" -i ${tmpfile} || die fi if use netbeans_modules_java ; then sed -e "/libs\.javacimpl\/external\/javac-impl-nb-7\.0-b07\.jar/d" -i ${tmpfile} || die sed -e "/j2ee\.toplinklib\/external\/glassfish-persistence-v2ur1-build-09d\.jar/d" -i ${tmpfile} || die sed -e "/junit\/external\/Ant-1\.7\.1-binary-patch-72080\.jar/d" -i ${tmpfile} || die sed -e "/libs\.springframework\/external\/spring-2\.5\.jar/d" -i ${tmpfile} || die sed -e "/junit\/external\/junit-4\.5-src\.jar/d" -i ${tmpfile} || die sed -e "/swingapp\/external\/appframework-1\.0\.3\.jar/d" -i ${tmpfile} || die fi if use netbeans_modules_mobility ; then sed -e "/o\.n\.mobility\.lib\.activesync\/external\/nbactivesync-5\.0\.jar/d" -i ${tmpfile} || die sed -e "/j2me\.cdc\.project\.bdj\/external\/security\.jar/d" -i ${tmpfile} || die sed -e "/j2me\.cdc\.project\.bdj\/external\/bdjo\.jar/d" -i ${tmpfile} || die sed -e "/j2me\.cdc\.project\.ricoh\/external\/RicohAntTasks-2\.0\.jar/d" -i ${tmpfile} || die sed -e "/mobility\.databindingme\/lib\/netbeans_databindingme\.jar/d" -i ${tmpfile} || die sed -e "/mobility\.databindingme\/lib\/netbeans_databindingme_pim\.jar/d" -i ${tmpfile} || die sed -e "/mobility\.databindingme\/lib\/netbeans_databindingme_svg\.jar/d" -i ${tmpfile} || die sed -e "/mobility\.deployment\.webdav\/external\/jakarta-slide-ant-webdav-2\.1\.jar/d" -i ${tmpfile} || die sed -e "/mobility\.j2meunit\/external\/jmunit4cldc11-1\.2\.1\.jar/d" -i ${tmpfile} || die sed -e "/mobility\.j2meunit\/external\/jmunit4cldc10-1\.2\.1\.jar/d" -i ${tmpfile} || die sed -e "/svg\.perseus\/external\/perseus-nb-1\.0\.jar/d" -i ${tmpfile} || die sed -e "/vmd\.components\.midp\/netbeans_midp_components_basic\/dist\/netbeans_midp_components_basic\.jar/d" -i ${tmpfile} || die sed -e "/vmd\.components\.midp\.pda\/netbeans_midp_components_pda\/dist\/netbeans_midp_components_pda\.jar/d" -i ${tmpfile} || die sed -e "/vmd\.components\.midp\.wma\/netbeans_midp_components_wma\/dist\/netbeans_midp_components_wma\.jar/d" -i ${tmpfile} || die sed -e "/vmd\.components\.svg\/nb_svg_midp_components\/dist\/nb_svg_midp_components\.jar/d" -i ${tmpfile} || die fi if use netbeans_modules_soa ; then sed -e "/bpel\.debugger\.bdi\/external\/bdi-1\.0\.0\.jar/d" -i ${tmpfile} || die sed -e "/o\.n\.soa\.libs\.jgo\/external\/JGoLayout5\.1\.jar/d" -i ${tmpfile} || die sed -e "/o\.n\.soa\.libs\.jgo\/external\/JGo5\.1\.jar/d" -i ${tmpfile} || die sed -e "/o\.n\.soa\.libs\.jgo\/external\/JGoInstruments5\.1\.jar/d" -i ${tmpfile} || die fi if use netbeans_modules_xml ; then sed -e "/libs\.jxpath\/external\/jxpath1\.1\.jar/d" -i ${tmpfile} || die sed -e "/o\.n\.soa\.libs\.jbiadmincommon\/external\/jbi-admin-common\.jar/d" -i ${tmpfile} || die fi } src_compile() { local antflags="-Dstop.when.broken.modules=true -Dpermit.jdk6.builds=true" if use debug; then antflags="${antflags} -Dbuild.compiler.debug=true" antflags="${antflags} -Dbuild.compiler.deprecation=true" else antflags="${antflags} -Dbuild.compiler.deprecation=false" fi local clusters="-Dnb.clusters.list=nb.cluster.platform" for netbeans_module in ${IUSE_NETBEANS_MODULES} ; do netbeans_module=${netbeans_module/[+]/} local short_netbeans_module=${netbeans_module/netbeans_modules_/} use ${netbeans_module} && clusters="${clusters},nb.cluster.${short_netbeans_module}" done #TODO use netbeans_modules_ruby && clusters="${clusters},nb.cluster.ruby" local build_target="" if use netbeans_modules_nb ; then build_target="build-nozip" else build_target="build-clusters" mkdir -p "${BUILDDESTINATION}" || die fi # Fails to compile java-pkg_filter-compiler ecj-3.2 ecj-3.3 ecj-3.4 # Build the clusters #use netbeans_modules_ruby && addpredict /root/.jruby ANT_TASKS="ant-nodeps" ANT_OPTS="-Xmx1g -Djava.awt.headless=true" eant ${antflags} ${clusters} -f nbbuild/build.xml ${build_target} local locales="" for lang in ${IUSE_LINGUAS} ; do local mylang=${lang/linguas_/} if use ${lang} ; then if [ -z "${locales}" ] ; then locales="${mylang}" else locales="${locales},${mylang}" fi fi done if [ -n "${locales}" ] ; then einfo "Compiling support for locales: ${locales}" eant ${antflags} -Dlocales=${locales} -Ddist.dir=../nbbuild/netbeans -Dnbms.dir="" -Dnbms.dist.dir="" \ -f l10n/build.xml build fi # Running build-javadoc from the same command line as build-nozip doesn't work # so we must run it separately if use doc ; then ANT_TASKS="ant-nodeps ant-trax" ANT_OPTS="-Xmx1g" eant ${antflags} ${clusters} -f nbbuild/build.xml build-javadoc fi # Remove non-Linux binaries einfo "Removing libraries and scripts for different archs..." find "${BUILDDESTINATION}" -type f \ -name "*.exe" -o \ -name "*.cmd" -o \ -name "*.bat" -o \ -name "*.dll" \ | grep -v "/profiler3/" | xargs rm -fv if use netbeans_modules_cnd ; then rm -fv "${BUILDDESTINATION}"/cnd2/bin/*-SunOS-* rm -fv "${BUILDDESTINATION}"/cnd2/bin/*-Mac_OS_X-* fi # Removing external stuff. They are api docs from external libs. rm -f "${BUILDDESTINATION}"/ide${IDE_VERSION}/docs/*.zip # Remove zip files from generated javadocs. rm -f "${BUILDDESTINATION}"/javadoc/*.zip # Use the system ant if use netbeans_modules_java ; then cd "${BUILDDESTINATION}"/java2/ant || die "Cannot cd to "${BUILDDESTINATION}"/java2/ant" rm -fr lib rm -fr bin fi # Set initial default jdk if [[ -e "${BUILDDESTINATION}"/etc/netbeans.conf ]]; then echo "netbeans_jdkhome=\"\$(java-config -O)\"" >> "${BUILDDESTINATION}"/etc/netbeans.conf fi # Install Gentoo Netbeans ID # This ID is used to identify our netbeans package while contacting update center mkdir -p "${BUILDDESTINATION}"/nb${SLOT}/config || die echo "NBGNT" > "${BUILDDESTINATION}"/nb${SLOT}/config/productid || die "Could not set Gentoo Netbeans ID" # fix paths per bug# 163483 if [[ -e "${BUILDDESTINATION}"/bin/netbeans ]]; then sed -i -e 's:"$progdir"/../etc/:/etc/netbeans-6.5/:' "${BUILDDESTINATION}"/bin/netbeans sed -i -e 's:"${userdir}"/etc/:/etc/netbeans-6.5/:' "${BUILDDESTINATION}"/bin/netbeans fi } src_install() { insinto ${DESTINATION} einfo "Installing the program..." cd "${BUILDDESTINATION}" doins -r * # Remove the build helper files rm -f "${D}"/${DESTINATION}/nb.cluster.* rm -f "${D}"/${DESTINATION}/*.built rm -f "${D}"/${DESTINATION}/moduleCluster.properties rm -f "${D}"/${DESTINATION}/module_tracking.xml rm -f "${D}"/${DESTINATION}/build_info # Change location of etc files if [[ -e "${BUILDDESTINATION}"/etc ]]; then insinto /etc/${PN}-${SLOT} doins "${BUILDDESTINATION}"/etc/* rm -fr "${D}"/${DESTINATION}/etc dosym /etc/${PN}-${SLOT} ${DESTINATION}/etc fi # Replace bundled jars with system jars - currently commented out symlink_extjars # Correct permissions on executables and possibly remove executables that are not needed on linux local nbexec_exe="${DESTINATION}/platform${PLATFORM}/lib/nbexec" fperms 775 ${nbexec_exe} || die if [[ -e "${D}"/${DESTINATION}/bin/netbeans ]] ; then fperms 755 "${DESTINATION}/bin/netbeans" || die fi if use netbeans_modules_cnd ; then cd "${D}"/${DESTINATION}/cnd2/bin || die for file in *.sh ; do fperms 755 ${file} || die done fi if use netbeans_modules_profiler ; then cd "${D}"/${DESTINATION}/profiler3/remote-pack-defs || die for file in *.sh ; do fperms 755 ${file} || die done fi #if use netbeans_modules_ruby ; then # local ruby_path="${DESTINATION}/ruby2/jruby-1.1.4/bin" # cd "${D}"/${DESTINATION}/ruby2/jruby-1.1.4/bin || die # for file in * ; do # fperms 755 ${file} || die # done #fi # Link netbeans executable from bin if [[ -f "${D}"/${DESTINATION}/bin/netbeans ]]; then dosym ${DESTINATION}/bin/netbeans /usr/bin/${PN}-${SLOT} else dosym ${DESTINATION}/platform7/lib/nbexec /usr/bin/${PN}-${SLOT} fi # Ant installation if use netbeans_modules_java ; then local ANTDIR="${DESTINATION}/java2/ant" dosym /usr/share/ant/lib ${ANTDIR}/lib dosym /usr/share/ant-core/bin ${ANTDIR}/bin fi # Documentation einfo "Installing Documentation..." cd "${D}"/${DESTINATION} dohtml CREDITS.html README.html netbeans.css rm -f build_info CREDITS.html README.html netbeans.css use doc && java-pkg_dojavadoc "${S}"/nbbuild/build/javadoc # Icons and shortcuts if use netbeans_modules_nb ; then einfo "Installing icon..." dodir /usr/share/icons/hicolor/32x32/apps dosym ${DESTINATION}/nb${SLOT}/netbeans.png /usr/share/icons/hicolor/32x32/apps/netbeans-${SLOT}.png fi make_desktop_entry netbeans-${SLOT} "Netbeans ${SLOT}" netbeans-${SLOT}.png Development } pkg_postinst() { if use netbeans_modules_nb ; then einfo "If you want to use specific locale of netbeans, use --locale argument, for example:" einfo "${PN}-${SLOT} --locale de" einfo "${PN}-${SLOT} --locale pt:BR" fi } # Supporting functions for this ebuild place_unpack_symlinks() { local target="" einfo "Symlinking compilation-time jars" dosymcompilejar "javahelp/external" javahelp jh.jar jh-2.0_05.jar dosymcompilejar "o.jdesktop.layout/external" swing-layout-1 swing-layout.jar swing-layout-1.0.3.jar # dosymcompilejar "libs.jna/external" jna jna.jar jna-3.0.2.jar dosymcompilejar "libs.jsr223/external" jsr223 script-api.jar jsr223-api.jar dosymcompilejar "libs.junit4/external" junit-4 junit.jar junit-4.5.jar if use netbeans_modules_harness || use netbeans_modules_ide ; then dosymcompilejar "apisupport.harness/external" javahelp jhall.jar jsearch-2.0_05.jar fi #if use netbeans_modules_groovy ; then #dosymcompilejar "groovy.editor/external" groovy-1 groovy.jar groovy-all-1.5.6.jar #fi if use netbeans_modules_gsf ; then dosymcompilejar "css.visual/external" sac sac.jar sac-1.3.jar dosymcompilejar "css.visual/external" flute flute.jar flute-1.3.jar dosymcompilejar "libs.bytelist/external" bytelist bytelist.jar bytelist-0.1.jar dosymcompilejar "libs.jvyamlb/external" jvyamlb jvyamlb.jar jvyamlb-0.2.3.jar fi if use netbeans_modules_ide ; then dosymcompilejar "db.drivers/external" jdbc-postgresql jdbc-postgresql.jar postgresql-8.3-603.jdbc3.jar dosymcompilejar "db.drivers/external" jdbc-mysql jdbc-mysql.jar mysql-connector-java-5.1.6-bin.jar dosymcompilejar "db.sql.visualeditor/external" javacc javacc.jar javacc-3.2.jar dosymcompilejar "servletapi/external" tomcat-servlet-api-2.2 servlet.jar servlet-2.2.jar dosymcompilejar "libs.commons_logging/external" commons-logging commons-logging.jar commons-logging-1.1.jar dosymcompilejar "libs.jakarta_oro/external" jakarta-oro-2.0 jakarta-oro.jar jakarta-oro-2.0.8.jar dosymcompilejar "libs.commons_net/external" commons-net commons-net.jar commons-net-1.4.1.jar dosymcompilejar "libs.freemarker/external" freemarker-2.3 freemarker.jar freemarker-2.3.8.jar #dosymcompilejar "libs.ini4j/external" ini4j ini4j.jar ini4j-0.2.6.jar dosymcompilejar "libs.jaxb/external" jsr173 jsr173.jar jsr173_api.jar dosymcompilejar "libs.jaxb/external" jaxb-2 jaxb-api.jar jaxb-api.jar dosymcompilejar "libs.jaxb/external" sun-jaf activation.jar activation.jar #dosymcompilejar "libs.jaxb/external" jaxb-2 jaxb-impl.jar jaxb-impl.jar #dosymcompilejar "libs.jaxb/external" jaxb-tools-2 jaxb-tools.jar jaxb-xjc.jar #dosymcompilejar "o.apache.xml.resolver/external" xml-commons resolver.jar resolver-1.2.jar dosymcompilejar "libs.jsch/external" jsch jsch.jar jsch-0.1.39.jar dosymcompilejar "libs.lucene/external" lucene-2.3 lucene-core.jar lucene-core-2.3.2.jar # svnClientAdapter dosymcompilejar "libs.svnClientAdapter/external" subversion svn-javahl.jar svnjavahl-1.5.0.jar # javac-api-nb-7.0-b07.jar # tomcat-webserver-3.2.jar dosymcompilejar "libs.xerces/external" xerces-2 xercesImpl.jar xerces-2.8.0.jar dosymcompilejar "web.flyingsaucer/external" flyingsaucer core-renderer.jar core-renderer-R7final.jar # jersey-api-doc.jar fi if use netbeans_modules_j2ee ; then # j2eeapis/external/jsr88javax.jar # servlet2.5-jsp2.1-api.jar # appservapis-2.0.58.3.jar # org-netbeans-modules-j2ee-sun-appsrv81.jar dosymcompilejar "libs.commons_fileupload/external" commons-fileupload commons-fileupload.jar commons-fileupload-1.0.jar # glassfish-logging-2.0.jar dosymcompilejar "libs.httpunit/external" httpunit httpunit.jar httpunit-1.6.2.jar # spring-webmvc-2.5.jar # shale-remoting-1.0.4.jar dosymcompilejar "web.jstl11/external" jakarta-jstl jstl.jar jstl-1.1.2.jar dosymcompilejar "web.jstl11/external" jakarta-jstl standard.jar standard-1.1.2.jar dosymcompilejar "web.monitor/external" tomcat-servlet-api-2.3 servlet.jar servlet-2.3.jar # jsr311-api-doc.jar fi if use netbeans_modules_java ; then # javac-impl-nb-7.0-b07.jar dosymcompilejar "o.jdesktop.beansbinding/external" beansbinding beansbinding.jar beansbinding-1.2.1.jar # glassfish-persistence-v2ur1-build-09d.jar # Ant-1.7.1-binary-patch-72080.jar dosymcompilejar "junit/external" junit junit.jar junit-3.8.2.jar dosymcompilejar "libs.cglib/external" cglib-2.1 cglib.jar cglib-2.2.jar # spring-2.5.jar # dosymcompilejar "swingapp/external" appframework appframework.jar appframework-1.0.3.jar # junit-4.5-src.jar fi if use netbeans_modules_mobility ; then dosymcompilejar "mobility.antext/external" ant-contrib ant-contrib.jar ant-contrib-1.0b3.jar # nbactivesync-5.0.jar # security.jar # bdjo.jar dosymcompilejar "j2me.cdc.project.bdj/external" bcprov bcprov.jar bcprov-jdk15-139.jar # RicohAntTasks-2.0.jar dosymcompilejar "j2me.cdc.project.ricoh/external" commons-httpclient-3 commons-httpclient.jar commons-httpclient-3.0.jar dosymcompilejar "j2me.cdc.project.ricoh/external" commons-codec commons-codec.jar commons-codec-1.3.jar # netbeans_databindingme.jar # netbeans_databindingme_pim.jar # netbeans_databindingme_svg.jar dosymcompilejar "mobility.deployment.webdav/external" jakarta-slide-webdavclient jakarta-slide-webdavlib.jar jakarta-slide-webdavlib-2.1.jar dosymcompilejar "mobility.deployment.webdav/external" commons-httpclient-3 commons-httpclient.jar commons-httpclient-3.0.1.jar # jakarta-slide-ant-webdav-2.1.jar dosymcompilejar "mobility.deployment.webdav/external" jdom-1.0 jdom.jar jdom-1.0.jar # jmunit4cldc11-1.2.1.jar # jmunit4cldc10-1.2.1.jar dosymcompilejar "mobility.proguard/external" proguard proguard.jar proguard4.2.jar # perseus-nb-1.0.jar # netbeans_midp_components_basic.jar # netbeans_midp_components_pda.jar # netbeans_midp_components_wma.jar # nb_svg_midp_components.jar fi if use netbeans_modules_php ; then dosymcompilejar "libs.javacup/external" javacup javacup.jar java-cup-11a.jar fi if use netbeans_modules_soa ; then # bdi-1.0.0.jar dosymcompilejar "soa.reportgenerator/external" itext iText.jar itext-2.0.5.jar # jbi-admin-common.jar # JGoLayout5.1.jar # JGo5.1.jar # JGoInstruments5.1.jar fi if use netbeans_modules_xml ; then #dosymcompilejar "libs.jxpath/external" commons-jxpath commons-jxpath.jar jxpath1.1.jar dosymcompilejar "o.n.xml.libs.jxpath/external" commons-jxpath commons-jxpath.jar jxpath-1.2.jar dosymcompilejar "visdev.prefuse/external" prefuse-2006 prefuse.jar prefuse-beta.jar fi if [ -n "${NB_DOSYMCOMPILEJARFAILED}" ] ; then die "Some compilation-time jars could not be symlinked" fi } symlink_extjars() { local targetdir="" einfo "Symlinking runtime jars" targetdir="platform${PLATFORM}/modules/ext" dosyminstjar ${targetdir} javahelp jh.jar jh-2.0_05.jar dosyminstjar ${targetdir} jna jna.jar jna-3.0.2.jar dosyminstjar ${targetdir} jsr223 script-api.jar script-api.jar dosyminstjar ${targetdir} junit-4 junit.jar junit-4.5.jar dosyminstjar ${targetdir} swing-layout-1 swing-layout.jar swing-layout-1.0.3.jar if use netbeans_modules_gsf ; then targetdir="gsf1/modules/ext" dosyminstjar ${targetdir} bytelist bytelist.jar bytelist-0.1.jar dosyminstjar ${targetdir} jvyamlb jvyamlb.jar jvyamlb-0.2.3.jar fi if use netbeans_modules_groovy ; then targetdir="groovy1/modules/ext" # groovy-all.jar fi if use netbeans_modules_gsf ; then targetdir="gsf1/modules" # org-mozilla-rhino-patched.jar targetdir="gsf1/modules/ext" dosyminstjar ${targetdir} flute flute.jar flute-1.3.jar dosyminstjar ${targetdir} sac sac.jar sac-1.3.jar fi if use netbeans_modules_harness ; then targetdir="harness" dosyminstjar ${targetdir} javahelp jhall.jar jsearch-2.0_05.jar fi if use netbeans_modules_ide ; then targetdir="ide${IDE_VERSION}/modules/ext" dosyminstjar ${targetdir} commons-logging commons-logging.jar commons-logging-1.1.jar dosyminstjar ${targetdir} commons-net commons-net.jar commons-net-1.4.1.jar dosyminstjar ${targetdir} flyingsaucer core-renderer.jar core-renderer.jar dosyminstjar ${targetdir} freemarker-2.3 freemarker.jar freemarker-2.3.8.jar # dosyminstjar ${targetdir} ini4j ini4j.jar ini4j-0.2.6.jar dosyminstjar ${targetdir} jakarta-oro-2.0 jakarta-oro.jar jakarta-oro-2.0.8.jar dosyminstjar ${targetdir} jdbc-mysql jdbc-mysql.jar mysql-connector-java-5.1.6-bin.jar dosyminstjar ${targetdir} jdbc-postgresql jdbc-postgresql.jar postgresql-8.3-603.jdbc3.jar dosyminstjar ${targetdir} jsch jsch.jar jsch-0.1.39.jar dosyminstjar ${targetdir} lucene-2.3 lucene-core.jar lucene-core-2.3.2.jar # resolver-1.2.jar dosyminstjar ${targetdir} tomcat-servlet-api-2.2 servlet.jar servlet-2.2.jar # svnClientAdapter-1.4.0.jar dosyminstjar ${targetdir} subversion svn-javahl.jar svnjavahl-1.5.0.jar # webserver.jar dosyminstjar ${targetdir} xerces-2 xercesImpl.jar xerces-2.8.0.jar targetdir="ide${IDE_VERSION}/modules/ext/jaxb" dosyminstjar ${targetdir} sun-jaf activation.jar activation.jar # jaxb-impl.jar # jaxb-xjc.jar targetdir="ide${IDE_VERSION}/modules/ext/jaxb/api" dosyminstjar ${targetdir} jsr173 jsr173.jar jsr173_api.jar dosyminstjar ${targetdir} jaxb-2 jaxb-api.jar jaxb-api.jar fi if use netbeans_modules_j2ee ; then targetdir="/enterprise5/modules/ext" dosyminstjar ${targetdir} commons-fileupload commons-fileupload.jar commons-fileupload-1.0.jar # glassfish-jspparser-2.0.jar # glassfish-logging-2.0.jar dosyminstjar ${targetdir} httpunit httpunit.jar httpunit-1.6.2.jar dosyminstjar ${targetdir} jakarta-jstl jstl.jar jstl.jar dosyminstjar ${targetdir} jakarta-jstl standard.jar standard.jar # jsr88javax.jar # servlet2.5-jsp2.1-api.jar # shale-remoting-1.0.4.jar targetdir="enterprise5/modules/ext/jsf-1_2" dosyminstjar ${targetdir} commons-beanutils-1.7 commons-beanutils.jar commons-beanutils.jar dosyminstjar ${targetdir} commons-collections commons-collections.jar commons-collections.jar dosyminstjar ${targetdir} commons-digester commons-digester.jar commons-digester.jar dosyminstjar ${targetdir} commons-logging commons-logging.jar commons-logging.jar # jsf-impl.jar # jsf-api.jar targetdir="/enterprise5/modules/ext/rest" dosyminstjar ${targetdir} asm-3 asm.jar asm-3.1.jar # grizzly-servlet-webserver-1.7.3.2.jar # http.jar dosyminstjar ${targetdir} jdom-1.0 jdom.jar jdom-1.0.jar # jersey.jar # jersey-spring-0.9-ea-SNAPSHOT.jar # jettison-1.0-RC1.jar # jsr311-api.jar dosyminstjar ${targetdir} rome rome.jar rome-0.9.jar # wadl2java.jar targetdir="enterprise5/modules/ext/spring" # spring-webmvc-2.5.jar targetdir="enterprise5/modules/ext/struts" dosyminstjar ${targetdir} antlr antlr.jar antlr.jar dosyminstjar ${targetdir} commons-beanutils-1.7 commons-beanutils.jar commons-beanutils.jar dosyminstjar ${targetdir} commons-digester commons-digester.jar commons-digester.jar dosyminstjar ${targetdir} commons-logging commons-logging.jar commons-logging.jar dosyminstjar ${targetdir} commons-validator commons-validator.jar commons-validator.jar dosyminstjar ${targetdir} jakarta-oro-2.0 jakarta-oro.jar jakarta-oro.jar # struts.jar fi if use netbeans_modules_java ; then targetdir="java2/ant/etc" dosyminstjar ${targetdir} ant ant-bootstrap.jar ant-bootstrap.jar targetdir="java2/ant/nblib" # bridge.jar targetdir="java2/ant/patches" # 72080.jar targetdir="java2/modules" # org-apache-tools-ant-module.jar targetdir="java2/modules/ext" # dosyminstjar ${targetdir} appframework appframework.jar appframework-1.0.3.jar dosyminstjar ${targetdir} beansbinding beansbinding.jar beansbinding-1.2.1.jar dosyminstjar ${targetdir} cglib-2.1 cglib.jar cglib-2.2.jar # javac-impl-nb-7.0-b07.jar # javac-api-nb-7.0-b07.jar dosyminstjar ${targetdir} junit junit.jar junit-3.8.2.jar targetdir="java2/modules/ext/jaxws21" dosyminstjar ${targetdir} fastinfoset fastinfoset.jar FastInfoset.jar # http.jar dosyminstjar ${targetdir} jax-ws-2 jax-ws.jar jaxws-rt.jar #dosyminstjar ${targetdir} jax-ws-tools-2 jax-ws-tools.jar jaxws-tools.jar # mimepull.jar # resolver.jar dosyminstjar ${targetdir} saaj saaj.jar saaj-impl.jar dosyminstjar ${targetdir} sjsxp sjsxp.jar sjsxp.jar dosyminstjar ${targetdir} stax-ex stax-ex.jar stax-ex.jar dosyminstjar ${targetdir} xmlstreambuffer streambuffer.jar streambuffer.jar targetdir="java2/modules/ext/jaxws21/api" dosyminstjar ${targetdir} jax-ws-api-2 jax-ws-api.jar jaxws-api.jar dosyminstjar ${targetdir} jsr181 jsr181.jar jsr181-api.jar dosyminstjar ${targetdir} jsr250 jsr250.jar jsr250-api.jar dosyminstjar ${targetdir} jsr67 jsr67.jar saaj-api.jar targetdir="java2/modules/ext/hibernate" dosyminstjar ${targetdir} antlr antlr.jar antlr-2.7.6.jar dosyminstjar ${targetdir} asm-2.2 asm.jar asm.jar dosyminstjar ${targetdir} asm-2.2 asm-attrs.jar asm-attrs.jar dosyminstjar ${targetdir} cglib-2.1 cglib.jar cglib-2.1.3.jar dosyminstjar ${targetdir} commons-collections commons-collections,jar commons-collections-2.1.1.jar dosyminstjar ${targetdir} dom4j-1 dom4j.jar dom4j-1.6.1.jar # dosyminstjar ${targetdir} ehcache-1.4 ehcache.jar ehcache-1.2.3.jar dosyminstjar ${targetdir} glassfish-persistence glassfish-persistence.jar ejb3-persistence.jar # dosyminstjar ${targetdir} hibernate-annotations-3.2 hibernate-annotations.jar hibernate-annotations.jar # hibernate-commons-annotations.jar # dosyminstjar ${targetdir} hibernate-entitymanager hibernate-entitymanager.jar hibernate-entitymanager.jar # hibernate-tools.jar # dosyminstjar ${targetdir} hibernate-3.2 hibernate3.jar hibernate3.jar dosyminstjar ${targetdir} javassist-3 javassist.jar javassist.jar # dosyminstjar ${targetdir} jdbc2-stdext jdbc2-stdext.jar jdbc2_0-stdext.jar dosyminstjar ${targetdir} glassfish-transaction-api jta.jar jta.jar dosyminstjar ${targetdir} jtidy Tidy.jar jtidy-r8-20060801.jar targetdir="java2/modules/ext/spring" # spring-2.5.jar targetdir="java2/modules/ext/toplink" # dosyminstjar ${targetdir} toplink-essentials toplink-essentials.jar toplink-essentials.jar # dosyminstjar ${targetdir} toplink-essentials toplink-essentials-agent.jar toplink-essentials-agent.jar fi if use netbeans_modules_mobility ; then targetdir="mobility8/external/proguard" dosyminstjar ${targetdir} proguard proguard.jar proguard4.2.jar targetdir="mobility8/modules/ext" dosyminstjar ${targetdir} ant-contrib ant-contrib.jar ant-contrib-1.0b3.jar dosyminstjar ${targetdir} bcprov bcprov.jar bcprov-jdk15-139.jar # cdc-agui-swing-layout.jar # cdc-pp-awt-layout.jar dosyminstjar ${targetdir} commons-codec commons-codec.jar commons-codec-1.3.jar dosyminstjar ${targetdir} commons-httpclient-3 commons-httpclient.jar commons-httpclient-3.0.jar dosyminstjar ${targetdir} commons-httpclient-3 commons-httpclient.jar commons-httpclient-3.0.1.jar # bdjo.jar # jakarta-slide-ant-webdav-2.1.jar dosyminstjar ${targetdir} jakarta-slide-webdavclient jakarta-slide-webdavlib.jar jakarta-slide-webdavlib-2.1.jar dosyminstjar ${targetdir} jdom-1.0 jdom.jar jdom-1.0.jar # jmunit4cldc11-1.1.0.jar # jmunit4cldc10-1.1.0.jar # perseus-nb-1.0.jar # RicohAntTasks-2.0.jar # security.jar fi if use netbeans_modules_php ; then targetdir="php1/modules/ext" dosyminstjar ${targetdir} javacup javacup.jar java-cup-11a.jar fi if use netbeans_modules_soa ; then targetdir="soa2/modules/ext/jbi" # jbi-admin-common.jar targetdir="soa2/modules/ext/jgo" # JGo5.1.jar # JGoInstruments5.1.jar # JGoLayout5.1.jar targetdir="soa2/modules/ext/reportgenerator" dosyminstjar ${targetdir} itext iText.jar itext-2.0.5.jar targetdir="soa2/modules/ext/wsdl4j-1.5.2" dosyminstjar ${targetdir} wsdl4j wsdl4j.jar wsdl4j.jar dosyminstjar ${targetdir} wsdl4j qname.jar qname.jar targetdir="soa2/modules/ext/xmlbeans-2.1.0" dosyminstjar ${targetdir} jsr173 jsr173.jar jsr173_1.0_api.jar dosyminstjar ${targetdir} xml-xmlbeans-1 xbean.jar xbean.jar dosyminstjar ${targetdir} xml-xmlbeans-1 xbean_xpath.jar xbean_xpath.jar # resolver.jar # xmlpublic.jar fi if use netbeans_modules_xml ; then targetdir="xml2/modules/ext" dosyminstjar ${targetdir} prefuse-2006 prefuse.jar prefuse-beta.jar targetdir="xml2/modules/ext/jxpath" dosyminstjar ${targetdir} commons-jxpath commons-jxpath.jar jxpath1.1.jar targetdir="xml2/modules/ext/xpath" # jxpath-1.2.jar fi if [ -n "${NB_DOSYMINSTJARFAILED}" ] ; then die "Some runtime jars could not be symlinked" fi } dosymcompilejar() { if [ -z "${JAVA_PKG_NB_BUNDLED}" ] ; then local dest="${1}" local package="${2}" local jar_file="${3}" local target_file="${4}" # We want to know whether the target jar exists and fail if it doesn't so we know # something is wrong local target="${S}/${dest}/${target_file}" if [ -e "${target}" ] ; then java-pkg_jar-from --build-only --into "${S}"/${dest} ${package} ${jar_file} ${target_file} else ewarn "Target jar does not exist so will not create link: ${target}" NB_DOSYMCOMPILEJARFAILED="1" fi fi } dosyminstjar() { if [ -z "${JAVA_PKG_NB_BUNDLED}" ] ; then local dest="${1}" local package="${2}" local jar_file="${3}" local target_file="" if [ -z "${4}" ]; then target_file="${3}" else target_file="${4}" fi # We want to know whether the target jar exists and fail if it doesn't so we know # something is wrong local target="${DESTINATION}/${dest}/${target_file}" if [ -e "${D}/${target}" ] ; then dosym /usr/share/${package}/lib/${jar_file} ${target} else ewarn "Target jar does not exist so will not create link: ${D}/${target}" NB_DOSYMINSTJARFAILED="1" fi fi }