diff options
author | Yuan Liao <liaoyuan@gmail.com> | 2022-01-17 16:28:22 -0800 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2022-01-18 10:51:17 +0100 |
commit | b9c527e63e7b06632120f95d09959af90c040ed2 (patch) | |
tree | 4cd20ab68667c1b2ae52b5a7f741aec9251f7140 /dev-java/ant-core | |
parent | net-im/pidgin: Fixed test suite (diff) | |
download | gentoo-b9c527e63e7b06632120f95d09959af90c040ed2.tar.gz gentoo-b9c527e63e7b06632120f95d09959af90c040ed2.tar.bz2 gentoo-b9c527e63e7b06632120f95d09959af90c040ed2.zip |
dev-java/ant-core: Fix Javadoc generation on JDK 11+; EAPI 8
Closes: https://bugs.gentoo.org/780531
Signed-off-by: Yuan Liao <liaoyuan@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/23849
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'dev-java/ant-core')
-rw-r--r-- | dev-java/ant-core/ant-core-1.10.9-r1.ebuild | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/dev-java/ant-core/ant-core-1.10.9-r1.ebuild b/dev-java/ant-core/ant-core-1.10.9-r1.ebuild new file mode 100644 index 000000000000..9c38f6a612b8 --- /dev/null +++ b/dev-java/ant-core/ant-core-1.10.9-r1.ebuild @@ -0,0 +1,161 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# Don't depend on itself. +JAVA_ANT_DISABLE_ANT_CORE_DEP="true" + +# Rewriting build.xml files for the testcases has no use at the moment. +JAVA_PKG_BSFIX_ALL="no" +JAVA_PKG_IUSE="doc source" + +inherit java-pkg-2 java-ant-2 prefix + +MY_P="apache-ant-${PV}" + +DESCRIPTION="Java-based build tool similar to 'make' that uses XML configuration files" +HOMEPAGE="https://ant.apache.org/" +SRC_URI="https://archive.apache.org/dist/ant/source/${MY_P}-src.tar.bz2 + https://dev.gentoo.org/~fordfrog/distfiles/ant-${PV}-gentoo.tar.bz2" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris" + +# Some dependencies for building Javadoc are unavailable on these architectures +REQUIRED_USE="doc? ( !arm !arm64 )" + +CDEPEND=">=virtual/jdk-1.8:*" +DEPEND="${CDEPEND} + doc? ( !arm? ( !arm64? ( + dev-java/bcel:0 + dev-java/bsf:2.3 + dev-java/commons-logging:0 + dev-java/commons-net:0 + dev-java/jakarta-activation-api:1 + dev-java/jakarta-regexp:1.4 + dev-java/jakarta-oro:2.0 + dev-java/jdepend:0 + dev-java/jsch:0 + dev-java/log4j:0 + dev-java/oracle-javamail:0 + dev-java/sun-jai-bin:0 + dev-java/xalan:0 + dev-java/xml-commons-resolver:0 + dev-java/xz-java:0 + ) ) )" +RDEPEND="${CDEPEND}" + +S="${WORKDIR}/${MY_P}" + +RESTRICT="test" + +PATCHES=( + "${WORKDIR}/${PV}-build.patch" + "${WORKDIR}/${PV}-launch.patch" +) + +src_prepare() { + default + + eprefixify "${S}/src/script/ant" + + # Fixes bug 556008. + java-ant_xml-rewrite -f build.xml \ + -c -e javadoc \ + -a failonerror \ + -v "false" + + # See bug #196080 for more details. + java-ant_bsfix_one build.xml + java-pkg-2_src_prepare + + # Remove JDK9+ stuff + einfo "Removing JDK9+ classes (Jmod and Link)" + rm "${S}"/src/main/org/apache/tools/ant/taskdefs/modules/{Jmod,Link}.java +} + +src_compile() { + export ANT_HOME="" + # Avoid error message that package ant-core was not found + export ANT_TASKS="none" + + local bsyscp + + # This ensures that when building ant with bootstrapped ant, + # only the source is used for resolving references, and not + # the classes in bootstrapped ant but jikes in kaffe has issues with this... + if ! java-pkg_current-vm-matches kaffe; then + bsyscp="-Dbuild.sysclasspath=ignore" + fi + + CLASSPATH="$(java-config -t)" ./build.sh ${bsyscp} jars dist-internal || + die "build failed" + + if use doc; then + # All Java packages imported by the source files need to present in + # the classpath, otherwise it would be https://bugs.gentoo.org/780531 + local doc_deps=( + bcel + bsf-2.3 + commons-logging + commons-net + jakarta-activation-api-1 + jakarta-oro-2.0 + jakarta-regexp-1.4 + jdepend + jsch + log4j + oracle-javamail + sun-jai-bin + xalan + xml-commons-resolver + xz-java + ) + for dep in "${doc_deps[@]}"; do + java-pkg_jar-from --build-only --into lib/optional/ "${dep}" + done + # This file imports netrexx.lang.Rexx, which is not available + # from ::gentoo. Fortunately, there is not a dev-java/ant-* + # package for it, so even if we could generate documentation + # for it, it would be irrelevant + rm src/main/org/apache/tools/ant/taskdefs/optional/NetRexxC.java || + die "Failed to remove Java source file blocking Javadoc generation" + ./build.sh ${bsyscp} javadocs || die "Javadoc build failed" + fi +} + +src_install() { + dodir /usr/share/ant/lib + + for jar in ant.jar ant-bootstrap.jar ant-launcher.jar ; do + java-pkg_dojar build/lib/${jar} + dosym ../../${PN}/lib/${jar} /usr/share/ant/lib/${jar} + done + + dobin src/script/ant + + dodir /usr/share/${PN}/bin + for each in antRun antRun.pl runant.pl runant.py ; do + dobin "${S}/src/script/${each}" + dosym ../../../bin/${each} /usr/share/${PN}/bin/${each} + done + dosym ../${PN}/bin /usr/share/ant/bin + + insinto /usr/share/${PN} + doins -r dist/etc + dosym ../${PN}/etc /usr/share/ant/etc + + echo "ANT_HOME=\"${EPREFIX}/usr/share/ant\"" > "${T}/20ant" + doenvd "${T}/20ant" + + dodoc NOTICE README WHATSNEW KEYS + + if use doc; then + dodoc -r manual/* + java-pkg_dojavadoc --symlink manual/api build/javadocs + fi + + use source && java-pkg_dosrc src/main/* +} |