diff options
Diffstat (limited to 'dev-java/ant')
| -rw-r--r-- | dev-java/ant/Manifest | 2 | ||||
| -rw-r--r-- | dev-java/ant/ant-1.10.15-r1.ebuild | 392 | ||||
| -rw-r--r-- | dev-java/ant/ant-1.10.15.ebuild | 392 | ||||
| -rw-r--r-- | dev-java/ant/files/1.10.9-launch.patch | 361 | ||||
| -rw-r--r-- | dev-java/ant/files/ant-1.10.14-AntTest.patch | 28 | ||||
| -rw-r--r-- | dev-java/ant/files/ant-1.10.14-AntlibTest.patch | 40 | ||||
| -rw-r--r-- | dev-java/ant/files/ant-1.10.14-JavaTest.patch | 102 | ||||
| -rw-r--r-- | dev-java/ant/files/ant-1.10.14-LinkTest.patch | 87 | ||||
| -rw-r--r-- | dev-java/ant/files/ant-1.10.14-PathTest.patch | 30 | ||||
| -rw-r--r-- | dev-java/ant/metadata.xml | 40 |
10 files changed, 1474 insertions, 0 deletions
diff --git a/dev-java/ant/Manifest b/dev-java/ant/Manifest new file mode 100644 index 000000000000..8202ae31468b --- /dev/null +++ b/dev-java/ant/Manifest @@ -0,0 +1,2 @@ +DIST apache-ant-1.10.15-src.tar.xz 3780456 BLAKE2B c157b488ac5f207daf5afcec3368395cacd44d82e0b8e19cbdf637e8ea43bafd340fcb13aede1292f7a0b31ae82a968831c51dabebfccf2fafb6479aa79f7dc4 SHA512 7513c0909abcc2ebcbb552ec97eaa35f476e57fec54022755d2e83d9d6df5295e0d75274e687208a4689a30592c19a0df041dff511dd3690627b1734ee2171c5 +DIST apache-ant-1.10.15-src.tar.xz.asc 833 BLAKE2B e8741004b141955c729778cb987034f133af174dfc07c75976c8eda13272703b9b6158c68594f54dfef47c0f546c43cc97176b2a9193263076251a75b2f12129 SHA512 3585f32ef230e502db6a376d6343c74eae390931ae6a5c842b668eda6fbce1557e5d400001bbb244544c186e9e51cae4c2c05ccd6ff38cdbb16899aff5d48659 diff --git a/dev-java/ant/ant-1.10.15-r1.ebuild b/dev-java/ant/ant-1.10.15-r1.ebuild new file mode 100644 index 000000000000..d1dce6837d65 --- /dev/null +++ b/dev-java/ant/ant-1.10.15-r1.ebuild @@ -0,0 +1,392 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="doc source test" +MAVEN_PROVIDES=" + org.apache.ant:ant:${PV} + org.apache.ant:ant-launcher:${PV} +" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple verify-sig prefix + +DESCRIPTION="Java-based build tool similar to 'make' that uses XML configuration files" +HOMEPAGE="https://ant.apache.org/" +SRC_URI="mirror://apache/ant/source/apache-${P}-src.tar.xz + verify-sig? ( https://downloads.apache.org/ant/source/apache-${P}-src.tar.xz.asc )" +S="${WORKDIR}/apache-${P}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 arm64 ppc64 ~x64-macos ~x64-solaris" +IUSE="antlr bcel bsf commonslogging commonsnet imageio jai jakartamail javamail jdepend + jmf jsch junit junit4 junitlauncher log4j oro regexp resolver swing testutil xalan xz" + +# At least 10 test cases would fail without network +PROPERTIES="test_network" +RESTRICT="test" + +REQUIRED_USE=" + junit4? ( junit ) + test? ( bsf ) + testutil? ( junit ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ant.apache.org.asc" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-ant )" +# jdk-11:* because it needs java/util/spi/ToolProvider, available since Java 9. +DEPEND=" + >=virtual/jdk-11:* + bcel? ( dev-java/bcel:0 ) + bsf? ( dev-java/bsf:2.3 ) + commonslogging? ( >=dev-java/commons-logging-1.3.5-r1:0 ) + commonsnet? ( dev-java/commons-net:0 ) + jai? ( dev-java/sun-jai-bin:0 ) + jakartamail? ( dev-java/jakarta-mail:0 ) + javamail? ( + dev-java/jakarta-activation-api:1 + dev-java/javax-mail:0 + ) + jdepend? ( >=dev-java/jdepend-2.10-r1:0 ) + jsch? ( dev-java/jsch:0 ) + junit4? ( dev-java/junit:4 ) + junit? ( dev-java/junit:4 ) + junitlauncher? ( dev-java/junit:5[vintage] ) + log4j? ( >=dev-java/log4j-12-api-2.25.2:0 ) + oro? ( dev-java/jakarta-oro:2.0 ) + regexp? ( dev-java/jakarta-regexp:1.4 ) + resolver? ( dev-java/xml-commons-resolver:0 ) + test? ( + dev-java/antunit:0 + dev-java/bsf:2.3[javascript] + dev-java/bsh:0 + dev-java/hamcrest-library:1.3 + dev-java/xerces:2 + ) + xalan? ( + dev-java/xalan:0 + dev-java/xalan-serializer:0 + ) + xz? ( dev-java/xz-java:0 ) +" +RDEPEND=" + !dev-java/ant-apache-regexp + !dev-java/ant-apache-log4j + !dev-java/ant-apache-xalan2 + !dev-java/ant-commons-logging + !<dev-java/ant-core-1.10.14 + !dev-java/ant-swing + !dev-java/ant-junit4 + !dev-java/ant-testutil + !dev-java/ant-junitlauncher + !dev-java/ant-jai + !dev-java/ant-commons-net + !dev-java/ant-apache-bsf + !dev-java/ant-jmf + !dev-java/ant-apache-oro + !dev-java/ant-javamail + !dev-java/ant-junit + !dev-java/ant-jdepend + !dev-java/ant-antlr + !dev-java/ant-apache-bcel + !dev-java/ant-apache-resolver + !dev-java/ant-jsch + !dev-java/ant-xz + >=virtual/jre-1.8:* +" + +DOCS=( CONTRIBUTORS INSTALL NOTICE README WHATSNEW ) +PATCHES=( + "${FILESDIR}/1.10.9-launch.patch" # reusing this patch since the script has not changed + "${FILESDIR}/ant-1.10.14-AntlibTest.patch" # skips 1 of 6 tests + "${FILESDIR}/ant-1.10.14-AntTest.patch" # skips 1 of 32 tests + "${FILESDIR}/ant-1.10.14-JavaTest.patch" # skips 12 of 38 tests + "${FILESDIR}/ant-1.10.14-LinkTest.patch" # skips 4 of 67 tests + "${FILESDIR}/ant-1.10.14-PathTest.patch" # skips 1 of 33 tests +) + +JAVADOC_SRC_DIRS=( + ant + ant-launcher/src/main +) +JAVA_TEST_GENTOO_CLASSPATH=" + bsh + hamcrest-library-1.3 + junit-4 + xerces-2 +" +JAVA_TEST_RESOURCE_DIRS=( + "src/etc/testcases" + "src/main" +) +JAVA_TEST_SRC_DIR="src/tests/junit" + +# $1 ant-apache-bsf (source directory) +# $2 bsf-2.3 (classpath of external dependency) +taskdeps() { + if [[ ${task} == $1 ]]; then + JAVA_CLASSPATH_EXTRA="${2}" + JAVADOC_CLASSPATH+=" ${2}" + JAVADOC_SRC_DIRS+=( "${task}/src/main" ) + JAVA_RESOURCE_DIRS="${3}" + fi +} + +src_prepare() { + default #780585 + java-pkg-2_src_prepare + java-pkg_clean ! -path "./src/etc/*" # keep test resources + + eprefixify "src/script/ant" + + ANT_TASKS=( + $(use antlr && echo ant-antlr) # no dependencies + $(use bcel && echo ant-apache-bcel) + $(use bsf && echo ant-apache-bsf) # REQUIRED_USE for tests + $(use log4j && echo ant-apache-log4j) + $(use oro && echo ant-apache-oro) # ORO is retired - replace with java.util.regex? + $(use regexp && echo ant-apache-regexp) + $(use resolver && echo ant-apache-resolver) + $(use xalan && echo ant-apache-xalan2) + $(use commonslogging && echo ant-commons-logging) + $(use commonsnet && echo ant-commons-net) + $(use imageio && echo ant-imageio) # no dependencies + $(use jai && echo ant-jai) + $(use jakartamail && echo ant-jakartamail) + $(use javamail && echo ant-javamail) + $(use jdepend && echo ant-jdepend) + $(use jmf && echo ant-jmf) # no dependencies + $(use jsch && echo ant-jsch) + $(use junit && echo ant-junit) # REQUIRED_USE for junit4 and for testutil + $(use junit4 && echo ant-junit4) + $(use junitlauncher && echo ant-junitlauncher) + # depends on "com.ibm.netrexx:netrexx:2.0.5" which is + # available on https://www.netrexx.org/downloads.nsp and states: + # "IBM's last NetRexx release, suitable for JVM versions 1.5 and below [...]" + # $(use netrexx && echo ant-netrexx) # src/etc/poms/ant-netrexx/pom.xml + $(use swing && echo ant-swing) # no dependencies + $(use testutil && echo ant-testutil) + $(use xz && echo ant-xz) + ) + + # defaultManifest.mf + sed -e "s:\${project.version}:${PV}:" \ + -i src/main/org/apache/tools/ant/defaultManifest.mf || die + + # version.txt + local mydate="$(date '+%B %d %Y')" + echo "VERSION=${PV}" > src/main/org/apache/tools/ant/version.txt || die + echo "DATE=${mydate}" >> src/main/org/apache/tools/ant/version.txt || die + + # src directory for ant.jar + mkdir ant || die "cannot create src directory for ant" + cp -r {src/main/,ant}/org || die "cannot copy ant sources" + + # resources directory for ant.jar according to lines 317-325 src/etc/poms/ant/pom.xml + local INCLUDES=( $( + sed -n '/<resources>/,/<\/resources>/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | sed -e 's:.*<include>\(.*\)</include>:\1:' || die + )) + cp -r {src/,ant}/resources || die "cannot copy ant resources" + pushd src/main > /dev/null || die "pushd src/main" + cp --parents -v "${INCLUDES[@]}" ../../ant/resources || die "CANNOT" + popd > /dev/null || die "popd" + + # Remove sources according to lines 158-187 src/etc/poms/ant/pom.xml + # We don't remove anything from src/main/org + local EXCLUDES=$( + sed -n '/<excludes>/,/<\/excludes/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | sed -e 's:<exclude>\(.*\)</exclude>:ant/\1:' || die + ) + rm -r ${EXCLUDES} || die + # Remove one more file directly, could not get it with sed. + rm ant/org/apache/tools/ant/taskdefs/optional/ANTLR.java || die + + # Same handling for everything between <testExcludes> </testExcludes> + # Removing non-existing files is not possible: We ignore them ( grep -v ). + local TEST_EXCLUDES=$( + sed -n '/<testExcludes>/,/<\/testExcludes/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | grep -v CommonsLoggingListener \ + | grep -v Log4jListener \ + | sed -e 's:<exclude>\(.*\)</exclude>:src/tests/junit/\1:' || die + ) + rm -r ${TEST_EXCLUDES} || die + + # Prepare a separate JAVA_SRC_DIR directory for each jar file to be created. + einfo "Copy source files of ant-tasks" + local task + for task in ant-launcher "${ANT_TASKS[@]}"; do + # "${task}/src/main" will be JAVA_SRC_DIR + mkdir -p "${task}/src/main" || die "mkdir ${task}" + # Read from pom.xml the file names which can still contain wildcards + local INCLUDES=( $( + sed -n '/<includes>/,/<\/includes>/p' "src/etc/poms/${task}/pom.xml" \ + | grep org \ + | sed -e 's:.*<include>\(.*\)</include>:\1:' || die + )) + local sourcefile + # Resolve wildcards in file names using find and copy the files to the corresponding + # "${task}"/src/main directory + # echo "${INCLUDES[@]}" + for sourcefile in "${INCLUDES[@]}"; do + # einfo "${task}: ${sourcefile}" + # Parameter substitution % to remove trailing slash from ${sourcefile}. + # Applies to ant-jdepend and ant-junitlauncher where find would otherwise fail. + find \ + -path "./src/*/${sourcefile%/}" \ + -exec cp -r --parents "{}" \ + "${task}/src/main" \; + done + # tree "${task}" + done + + # JAVA_RESOURCE_DIRS for ant-junit + mkdir -p ant-junit/src/resources/org/apache/tools/ant/taskdefs/optional/junit/xsl \ + || die "junit resource dir" + cp src/etc/{junit-frames,junit-noframes,junit-frames-saxon,junit-noframes-saxon}.xsl \ + ant-junit/src/resources/org/apache/tools/ant/taskdefs/optional/junit/xsl \ + || die "junit resources" +} + +src_compile() { + einfo "Compiling ant-launcher.jar" + JAVA_JAR_FILENAME="ant-launcher.jar" + JAVA_MAIN_CLASS="org.apache.tools.ant.launch.Launcher" + JAVA_SRC_DIR="ant-launcher/src/main" + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":ant-launcher.jar" + rm -r target || die + + einfo "Compiling ant.jar" + JAVA_JAR_FILENAME="ant.jar" + JAVA_LAUNCHER_FILENAME="ant" + JAVA_MAIN_CLASS="org.apache.tools.ant.Main" + JAVA_RESOURCE_DIRS="ant/resources" + JAVA_SRC_DIR="ant" + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":ant.jar" + rm -r target || die + + local task + for task in "${ANT_TASKS[@]}"; do + einfo "Compiling ${task}" + JAVA_JAR_FILENAME="${task}.jar" + JAVA_MAIN_CLASS="" + JAVA_RESOURCE_DIRS="" + JAVA_SRC_DIR="" + + JAVA_SRC_DIR="${task}/src/main" + taskdeps ant-apache-bcel bcel + taskdeps ant-apache-bsf bsf-2.3 + taskdeps ant-apache-log4j log4j-12-api + taskdeps ant-apache-oro jakarta-oro-2.0 + taskdeps ant-apache-regexp jakarta-regexp-1.4 + taskdeps ant-apache-resolver xml-commons-resolver + taskdeps ant-apache-xalan2 xalan + taskdeps ant-commons-logging commons-logging + taskdeps ant-commons-net commons-net + taskdeps ant-jai sun-jai-bin + taskdeps ant-jakartamail jakarta-mail + taskdeps ant-javamail 'javax-mail jakarta-activation-api-1' + taskdeps ant-jdepend jdepend + taskdeps ant-jsch jsch + taskdeps ant-junit junit-4 ant-junit/src/resources + taskdeps ant-junit4 junit-4 + taskdeps ant-junitlauncher junit-5 + # $(use netrexx && echo ant-netrexx) + taskdeps ant-xz xz-java + + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":${task}.jar" + rm -fr target || die + done + use doc && ejavadoc +} + +src_test() { + # Avoid "--with-dependencies" as used by JAVA_TEST_GENTOO_CLASSPATH. + # dev-java/antunit has a circular dependency with dev-java/ant[test] + JAVA_GENTOO_CLASSPATH_EXTRA+=":$(java-pkg_getjars --build-only antunit)" + # according to line 115 src/etc/poms/ant/pom.xml + jar -cvf src/etc/testcases/org/apache/tools/ant/taskdefs/test2-antlib.jar \ + -C src/etc/testcases taskdefs/test.antlib.xml || die "cannot test2-antlib.jar" + + JAVA_TEST_EXCLUDES=( + # according to lines 1956-1964 build.xml (abstract classes, not testcases) + org.apache.tools.ant.taskdefs.TaskdefsTest + org.apache.tools.ant.BuildFileTest + org.apache.tools.ant.util.regexp.RegexpMatcherTest + org.apache.tools.ant.util.regexp.RegexpTest + org.apache.tools.ant.types.selectors.BaseSelectorTest + # according to line 1970 build.xml (helper classes, not testcases) + org.apache.tools.ant.TestHelper + # lines 2097-2102 build.xml (interactive tests) + org.apache.tools.ant.taskdefs.TestProcess # 1. No runnable methods + # 1) testAll(org.apache.tools.ant.taskdefs.InitializeClassTest) + # /var/tmp/portage/dev-java/ant-1.10.14/work/apache-ant-1.10.14/ + # src/etc/testcases/taskdefs/initializeclass.xml:24: Java returned: 1 + # <pathelement path="${build.tests.value}"/> + # <pathelement location="${java.home}/lib/classes.zip"/> + org.apache.tools.ant.taskdefs.InitializeClassTest # Tests run: 1, Failures: 1 + ) + +# tests with patches to be revisited +# JAVA_TEST_RUN_ONLY=( +# org.apache.tools.ant.taskdefs.AntlibTest # Tests run: 6, Failures: 1 test2-antlib.jar? +# org.apache.tools.ant.taskdefs.AntTest # Tests run: 32, Failures: 1 +# org.apache.tools.ant.taskdefs.JavaTest # Tests run: 38, Failures: 12 +# org.apache.tools.ant.taskdefs.modules.LinkTest # Tests run: 67, Failures: 4 +# org.apache.tools.ant.types.PathTest # Tests run: 33, Failures: 1 +# ) + + # according to lines 276-297 src/etc/poms/ant/pom.xml + JAVA_TEST_EXTRA_ARGS=( + -Dant.home="${ANT_HOME}" + -Dbuild.classes.value=../../../target/test-classes # needed for org.apache.tools.ant.taskdefs.SignJarTest + -Dbuild.tests.value=target/test-classes + -Doffline=true + -Dant.test.basedir.ignore=true + ) + java-pkg-simple_src_test +} + +src_install() { + java-pkg_dojar ant.jar ant-launcher.jar + + for task in "${ANT_TASKS[@]}"; do + java-pkg_dojar "${task}.jar" + java-pkg_register-ant-task --version "${PV}" "${task}" + done + + dobin src/script/ant + + dodir /usr/share/ant/bin + for each in antRun antRun.pl runant.pl runant.py ; do + dobin "${S}/src/script/${each}" + done + + insinto /usr/share/ant/etc + doins -r src/etc/*.xsl + insinto /usr/share/ant/etc/checkstyle + doins -r src/etc/checkstyle/*.xsl + + echo "ANT_HOME=\"${EPREFIX}/usr/share/ant\"" > "${T}/20ant" + doenvd "${T}/20ant" + + einstalldocs + if use doc; then + java-pkg_dojavadoc target/api + docinto html + dodoc -r manual + fi + + use source && java-pkg_dosrc src/main/* +} diff --git a/dev-java/ant/ant-1.10.15.ebuild b/dev-java/ant/ant-1.10.15.ebuild new file mode 100644 index 000000000000..92e9ebaa2874 --- /dev/null +++ b/dev-java/ant/ant-1.10.15.ebuild @@ -0,0 +1,392 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +JAVA_PKG_IUSE="doc source test" +MAVEN_PROVIDES=" + org.apache.ant:ant:${PV} + org.apache.ant:ant-launcher:${PV} +" +JAVA_TESTING_FRAMEWORKS="junit-4" + +inherit java-pkg-2 java-pkg-simple verify-sig prefix + +DESCRIPTION="Java-based build tool similar to 'make' that uses XML configuration files" +HOMEPAGE="https://ant.apache.org/" +SRC_URI="mirror://apache/ant/source/apache-${P}-src.tar.xz + verify-sig? ( https://downloads.apache.org/ant/source/apache-${P}-src.tar.xz.asc )" +S="${WORKDIR}/apache-${P}" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="amd64 arm64 ppc64 ~x64-macos ~x64-solaris" +IUSE="antlr bcel bsf commonslogging commonsnet imageio jai jakartamail javamail jdepend + jmf jsch junit junit4 junitlauncher log4j oro regexp resolver swing testutil xalan xz" + +# At least 10 test cases would fail without network +PROPERTIES="test_network" +RESTRICT="test" + +REQUIRED_USE=" + junit4? ( junit ) + test? ( bsf ) + testutil? ( junit ) +" + +VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/ant.apache.org.asc" +BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-ant )" +# jdk-11:* because it needs java/util/spi/ToolProvider, available since Java 9. +DEPEND=" + >=virtual/jdk-11:* + bcel? ( dev-java/bcel:0 ) + bsf? ( dev-java/bsf:2.3 ) + commonslogging? ( dev-java/commons-logging:0 ) + commonsnet? ( dev-java/commons-net:0 ) + jai? ( dev-java/sun-jai-bin:0 ) + jakartamail? ( dev-java/jakarta-mail:0 ) + javamail? ( + dev-java/jakarta-activation-api:1 + dev-java/javax-mail:0 + ) + jdepend? ( >=dev-java/jdepend-2.10-r1:0 ) + jsch? ( dev-java/jsch:0 ) + junit4? ( dev-java/junit:4 ) + junit? ( dev-java/junit:4 ) + junitlauncher? ( dev-java/junit:5[vintage] ) + log4j? ( dev-java/log4j-12-api:2 ) + oro? ( dev-java/jakarta-oro:2.0 ) + regexp? ( dev-java/jakarta-regexp:1.4 ) + resolver? ( dev-java/xml-commons-resolver:0 ) + test? ( + dev-java/antunit:0 + dev-java/bsf:2.3[javascript] + dev-java/bsh:0 + dev-java/hamcrest-library:1.3 + dev-java/xerces:2 + ) + xalan? ( + dev-java/xalan:0 + dev-java/xalan-serializer:0 + ) + xz? ( dev-java/xz-java:0 ) +" +RDEPEND=" + !dev-java/ant-apache-regexp + !dev-java/ant-apache-log4j + !dev-java/ant-apache-xalan2 + !dev-java/ant-commons-logging + !<dev-java/ant-core-1.10.14 + !dev-java/ant-swing + !dev-java/ant-junit4 + !dev-java/ant-testutil + !dev-java/ant-junitlauncher + !dev-java/ant-jai + !dev-java/ant-commons-net + !dev-java/ant-apache-bsf + !dev-java/ant-jmf + !dev-java/ant-apache-oro + !dev-java/ant-javamail + !dev-java/ant-junit + !dev-java/ant-jdepend + !dev-java/ant-antlr + !dev-java/ant-apache-bcel + !dev-java/ant-apache-resolver + !dev-java/ant-jsch + !dev-java/ant-xz + >=virtual/jre-1.8:* +" + +DOCS=( CONTRIBUTORS INSTALL NOTICE README WHATSNEW ) +PATCHES=( + "${FILESDIR}/1.10.9-launch.patch" # reusing this patch since the script has not changed + "${FILESDIR}/ant-1.10.14-AntlibTest.patch" # skips 1 of 6 tests + "${FILESDIR}/ant-1.10.14-AntTest.patch" # skips 1 of 32 tests + "${FILESDIR}/ant-1.10.14-JavaTest.patch" # skips 12 of 38 tests + "${FILESDIR}/ant-1.10.14-LinkTest.patch" # skips 4 of 67 tests + "${FILESDIR}/ant-1.10.14-PathTest.patch" # skips 1 of 33 tests +) + +JAVADOC_SRC_DIRS=( + ant + ant-launcher/src/main +) +JAVA_TEST_GENTOO_CLASSPATH=" + bsh + hamcrest-library-1.3 + junit-4 + xerces-2 +" +JAVA_TEST_RESOURCE_DIRS=( + "src/etc/testcases" + "src/main" +) +JAVA_TEST_SRC_DIR="src/tests/junit" + +# $1 ant-apache-bsf (source directory) +# $2 bsf-2.3 (classpath of external dependency) +taskdeps() { + if [[ ${task} == $1 ]]; then + JAVA_CLASSPATH_EXTRA="${2}" + JAVADOC_CLASSPATH+=" ${2}" + JAVADOC_SRC_DIRS+=( "${task}/src/main" ) + JAVA_RESOURCE_DIRS="${3}" + fi +} + +src_prepare() { + default #780585 + java-pkg-2_src_prepare + java-pkg_clean ! -path "./src/etc/*" # keep test resources + + eprefixify "src/script/ant" + + ANT_TASKS=( + $(use antlr && echo ant-antlr) # no dependencies + $(use bcel && echo ant-apache-bcel) + $(use bsf && echo ant-apache-bsf) # REQUIRED_USE for tests + $(use log4j && echo ant-apache-log4j) + $(use oro && echo ant-apache-oro) # ORO is retired - replace with java.util.regex? + $(use regexp && echo ant-apache-regexp) + $(use resolver && echo ant-apache-resolver) + $(use xalan && echo ant-apache-xalan2) + $(use commonslogging && echo ant-commons-logging) + $(use commonsnet && echo ant-commons-net) + $(use imageio && echo ant-imageio) # no dependencies + $(use jai && echo ant-jai) + $(use jakartamail && echo ant-jakartamail) + $(use javamail && echo ant-javamail) + $(use jdepend && echo ant-jdepend) + $(use jmf && echo ant-jmf) # no dependencies + $(use jsch && echo ant-jsch) + $(use junit && echo ant-junit) # REQUIRED_USE for junit4 and for testutil + $(use junit4 && echo ant-junit4) + $(use junitlauncher && echo ant-junitlauncher) + # depends on "com.ibm.netrexx:netrexx:2.0.5" which is + # available on https://www.netrexx.org/downloads.nsp and states: + # "IBM's last NetRexx release, suitable for JVM versions 1.5 and below [...]" + # $(use netrexx && echo ant-netrexx) # src/etc/poms/ant-netrexx/pom.xml + $(use swing && echo ant-swing) # no dependencies + $(use testutil && echo ant-testutil) + $(use xz && echo ant-xz) + ) + + # defaultManifest.mf + sed -e "s:\${project.version}:${PV}:" \ + -i src/main/org/apache/tools/ant/defaultManifest.mf || die + + # version.txt + local mydate="$(date '+%B %d %Y')" + echo "VERSION=${PV}" > src/main/org/apache/tools/ant/version.txt || die + echo "DATE=${mydate}" >> src/main/org/apache/tools/ant/version.txt || die + + # src directory for ant.jar + mkdir ant || die "cannot create src directory for ant" + cp -r {src/main/,ant}/org || die "cannot copy ant sources" + + # resources directory for ant.jar according to lines 317-325 src/etc/poms/ant/pom.xml + local INCLUDES=( $( + sed -n '/<resources>/,/<\/resources>/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | sed -e 's:.*<include>\(.*\)</include>:\1:' || die + )) + cp -r {src/,ant}/resources || die "cannot copy ant resources" + pushd src/main > /dev/null || die "pushd src/main" + cp --parents -v "${INCLUDES[@]}" ../../ant/resources || die "CANNOT" + popd > /dev/null || die "popd" + + # Remove sources according to lines 158-187 src/etc/poms/ant/pom.xml + # We don't remove anything from src/main/org + local EXCLUDES=$( + sed -n '/<excludes>/,/<\/excludes/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | sed -e 's:<exclude>\(.*\)</exclude>:ant/\1:' || die + ) + rm -r ${EXCLUDES} || die + # Remove one more file directly, could not get it with sed. + rm ant/org/apache/tools/ant/taskdefs/optional/ANTLR.java || die + + # Same handling for everything between <testExcludes> </testExcludes> + # Removing non-existing files is not possible: We ignore them ( grep -v ). + local TEST_EXCLUDES=$( + sed -n '/<testExcludes>/,/<\/testExcludes/p' \ + src/etc/poms/ant/pom.xml \ + | grep org \ + | grep -v CommonsLoggingListener \ + | grep -v Log4jListener \ + | sed -e 's:<exclude>\(.*\)</exclude>:src/tests/junit/\1:' || die + ) + rm -r ${TEST_EXCLUDES} || die + + # Prepare a separate JAVA_SRC_DIR directory for each jar file to be created. + einfo "Copy source files of ant-tasks" + local task + for task in ant-launcher "${ANT_TASKS[@]}"; do + # "${task}/src/main" will be JAVA_SRC_DIR + mkdir -p "${task}/src/main" || die "mkdir ${task}" + # Read from pom.xml the file names which can still contain wildcards + local INCLUDES=( $( + sed -n '/<includes>/,/<\/includes>/p' "src/etc/poms/${task}/pom.xml" \ + | grep org \ + | sed -e 's:.*<include>\(.*\)</include>:\1:' || die + )) + local sourcefile + # Resolve wildcards in file names using find and copy the files to the corresponding + # "${task}"/src/main directory + # echo "${INCLUDES[@]}" + for sourcefile in "${INCLUDES[@]}"; do + # einfo "${task}: ${sourcefile}" + # Parameter substitution % to remove trailing slash from ${sourcefile}. + # Applies to ant-jdepend and ant-junitlauncher where find would otherwise fail. + find \ + -path "./src/*/${sourcefile%/}" \ + -exec cp -r --parents "{}" \ + "${task}/src/main" \; + done + # tree "${task}" + done + + # JAVA_RESOURCE_DIRS for ant-junit + mkdir -p ant-junit/src/resources/org/apache/tools/ant/taskdefs/optional/junit/xsl \ + || die "junit resource dir" + cp src/etc/{junit-frames,junit-noframes,junit-frames-saxon,junit-noframes-saxon}.xsl \ + ant-junit/src/resources/org/apache/tools/ant/taskdefs/optional/junit/xsl \ + || die "junit resources" +} + +src_compile() { + einfo "Compiling ant-launcher.jar" + JAVA_JAR_FILENAME="ant-launcher.jar" + JAVA_MAIN_CLASS="org.apache.tools.ant.launch.Launcher" + JAVA_SRC_DIR="ant-launcher/src/main" + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":ant-launcher.jar" + rm -r target || die + + einfo "Compiling ant.jar" + JAVA_JAR_FILENAME="ant.jar" + JAVA_LAUNCHER_FILENAME="ant" + JAVA_MAIN_CLASS="org.apache.tools.ant.Main" + JAVA_RESOURCE_DIRS="ant/resources" + JAVA_SRC_DIR="ant" + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":ant.jar" + rm -r target || die + + local task + for task in "${ANT_TASKS[@]}"; do + einfo "Compiling ${task}" + JAVA_JAR_FILENAME="${task}.jar" + JAVA_MAIN_CLASS="" + JAVA_RESOURCE_DIRS="" + JAVA_SRC_DIR="" + + JAVA_SRC_DIR="${task}/src/main" + taskdeps ant-apache-bcel bcel + taskdeps ant-apache-bsf bsf-2.3 + taskdeps ant-apache-log4j log4j-12-api-2 + taskdeps ant-apache-oro jakarta-oro-2.0 + taskdeps ant-apache-regexp jakarta-regexp-1.4 + taskdeps ant-apache-resolver xml-commons-resolver + taskdeps ant-apache-xalan2 xalan + taskdeps ant-commons-logging commons-logging + taskdeps ant-commons-net commons-net + taskdeps ant-jai sun-jai-bin + taskdeps ant-jakartamail jakarta-mail + taskdeps ant-javamail 'javax-mail jakarta-activation-api-1' + taskdeps ant-jdepend jdepend + taskdeps ant-jsch jsch + taskdeps ant-junit junit-4 ant-junit/src/resources + taskdeps ant-junit4 junit-4 + taskdeps ant-junitlauncher junit-5 + # $(use netrexx && echo ant-netrexx) + taskdeps ant-xz xz-java + + java-pkg-simple_src_compile + JAVA_GENTOO_CLASSPATH_EXTRA+=":${task}.jar" + rm -fr target || die + done + use doc && ejavadoc +} + +src_test() { + # Avoid "--with-dependencies" as used by JAVA_TEST_GENTOO_CLASSPATH. + # dev-java/antunit has a circular dependency with dev-java/ant[test] + JAVA_GENTOO_CLASSPATH_EXTRA+=":$(java-pkg_getjars --build-only antunit)" + # according to line 115 src/etc/poms/ant/pom.xml + jar -cvf src/etc/testcases/org/apache/tools/ant/taskdefs/test2-antlib.jar \ + -C src/etc/testcases taskdefs/test.antlib.xml || die "cannot test2-antlib.jar" + + JAVA_TEST_EXCLUDES=( + # according to lines 1956-1964 build.xml (abstract classes, not testcases) + org.apache.tools.ant.taskdefs.TaskdefsTest + org.apache.tools.ant.BuildFileTest + org.apache.tools.ant.util.regexp.RegexpMatcherTest + org.apache.tools.ant.util.regexp.RegexpTest + org.apache.tools.ant.types.selectors.BaseSelectorTest + # according to line 1970 build.xml (helper classes, not testcases) + org.apache.tools.ant.TestHelper + # lines 2097-2102 build.xml (interactive tests) + org.apache.tools.ant.taskdefs.TestProcess # 1. No runnable methods + # 1) testAll(org.apache.tools.ant.taskdefs.InitializeClassTest) + # /var/tmp/portage/dev-java/ant-1.10.14/work/apache-ant-1.10.14/ + # src/etc/testcases/taskdefs/initializeclass.xml:24: Java returned: 1 + # <pathelement path="${build.tests.value}"/> + # <pathelement location="${java.home}/lib/classes.zip"/> + org.apache.tools.ant.taskdefs.InitializeClassTest # Tests run: 1, Failures: 1 + ) + +# tests with patches to be revisited +# JAVA_TEST_RUN_ONLY=( +# org.apache.tools.ant.taskdefs.AntlibTest # Tests run: 6, Failures: 1 test2-antlib.jar? +# org.apache.tools.ant.taskdefs.AntTest # Tests run: 32, Failures: 1 +# org.apache.tools.ant.taskdefs.JavaTest # Tests run: 38, Failures: 12 +# org.apache.tools.ant.taskdefs.modules.LinkTest # Tests run: 67, Failures: 4 +# org.apache.tools.ant.types.PathTest # Tests run: 33, Failures: 1 +# ) + + # according to lines 276-297 src/etc/poms/ant/pom.xml + JAVA_TEST_EXTRA_ARGS=( + -Dant.home="${ANT_HOME}" + -Dbuild.classes.value=../../../target/test-classes # needed for org.apache.tools.ant.taskdefs.SignJarTest + -Dbuild.tests.value=target/test-classes + -Doffline=true + -Dant.test.basedir.ignore=true + ) + java-pkg-simple_src_test +} + +src_install() { + java-pkg_dojar ant.jar ant-launcher.jar + + for task in "${ANT_TASKS[@]}"; do + java-pkg_dojar "${task}.jar" + java-pkg_register-ant-task --version "${PV}" "${task}" + done + + dobin src/script/ant + + dodir /usr/share/ant/bin + for each in antRun antRun.pl runant.pl runant.py ; do + dobin "${S}/src/script/${each}" + done + + insinto /usr/share/ant/etc + doins -r src/etc/*.xsl + insinto /usr/share/ant/etc/checkstyle + doins -r src/etc/checkstyle/*.xsl + + echo "ANT_HOME=\"${EPREFIX}/usr/share/ant\"" > "${T}/20ant" + doenvd "${T}/20ant" + + einstalldocs + if use doc; then + java-pkg_dojavadoc target/api + docinto html + dodoc -r manual + fi + + use source && java-pkg_dosrc src/main/* +} diff --git a/dev-java/ant/files/1.10.9-launch.patch b/dev-java/ant/files/1.10.9-launch.patch new file mode 100644 index 000000000000..7babe6740fa9 --- /dev/null +++ b/dev-java/ant/files/1.10.9-launch.patch @@ -0,0 +1,361 @@ +diff --git a/src/script/ant b/src/script/ant +index 81107b5..a501081 100644 +--- a/src/script/ant ++++ b/src/script/ant +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#!@GENTOO_PORTAGE_EPREFIX@/bin/bash + + # Licensed to the Apache Software Foundation (ASF) under one or more + # contributor license agreements. See the NOTICE file distributed with +@@ -15,6 +15,10 @@ + # See the License for the specific language governing permissions and + # limitations under the License. + ++# Edited for Gentoo Linux ++ ++EPREFIX="@GENTOO_PORTAGE_EPREFIX@" ++ + # Extract launch and ant arguments, (see details below). + ant_exec_args= + no_config=false +@@ -83,9 +87,9 @@ if $no_config; then + usejikes=$use_jikes_default + else + # load system-wide ant configuration (ONLY if ANT_HOME has NOT been set) +- if [ -z "$ANT_HOME" -o "$ANT_HOME" = "/usr/share/ant" ]; then +- if [ -f "/etc/ant.conf" ]; then +- . /etc/ant.conf ++ if [ -z "$ANT_HOME" -o "$ANT_HOME" = "${EPREFIX}/usr/share/ant" ]; then ++ if [ -f "${EPREFIX}/etc/ant.conf" ]; then ++ . "${EPREFIX}"/etc/ant.conf + fi + fi + +@@ -106,69 +110,23 @@ else + fi + fi + +-# Setup Java environment in rpm mode +-if $rpm_mode; then +- if [ -f /usr/share/java-utils/java-functions ]; then +- . /usr/share/java-utils/java-functions +- set_jvm +- set_javacmd +- fi +-fi +- +-# OS specific support. $var _must_ be set to either true or false. +-cygwin=false; +-darwin=false; +-mingw=false; +-case "`uname`" in +- CYGWIN*) +- cygwin=true +- ;; +- Darwin*) +- darwin=true +- if [ -z "$JAVA_HOME" ]; then +- if [ -x '/usr/libexec/java_home' ]; then +- JAVA_HOME=`/usr/libexec/java_home` +- elif [ -d "/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home" ]; then +- JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home +- fi +- fi +- ;; +- MINGW*) +- mingw=true +- ;; +-esac +- +-if [ -z "$ANT_HOME" -o ! -d "$ANT_HOME" ]; then +- ## resolve links - $0 may be a link to ant's home +- PRG="$0" +- progname=`basename "$0"` +- +- # need this for relative symlinks +- while [ -h "$PRG" ]; do +- ls=`ls -ld "$PRG"` +- link=`expr "$ls" : '.*-> \(.*\)$'` +- if expr "$link" : '/.*' > /dev/null; then +- PRG="$link" +- else +- PRG=`dirname "$PRG"`"/$link" +- fi +- done +- +- ANT_HOME=`dirname "$PRG"`/.. ++export WANT_JAVA_CONFIG=2 + +- # make it fully qualified +- ANT_HOME=`cd "$ANT_HOME" > /dev/null && pwd` ++# Always get JAVA_HOME from java-config, unless ANT_RESPECT_JAVA_HOME is set ++# Use GENTOO_VM to change which VM is used instead. ++if [[ -z "${ANT_RESPECT_JAVA_HOME}" || -z "${JAVA_HOME}" ]]; then ++ export JAVA_HOME="$(java-config -g JAVA_HOME)" + fi + +-# For Cygwin and Mingw, ensure paths are in UNIX format before +-# anything is touched +-if $cygwin; then +- [ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --unix "$ANT_HOME"` +- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` ++if [ -z $JAVA_HOME ] ; then ++ echo 'Error: No JDK found!' ++ echo "Try using java-config script to set your JDK" ++ echo "Remember that you need a JDK not a JRE" ++ exit 1 + fi +-if $mingw; then +- [ -n "$ANT_HOME" ] && ANT_HOME="`(cd "$ANT_HOME"; pwd)`" +- [ -n "$JAVA_HOME" ] && JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" ++ ++if [[ -z "${ANT_HOME}" ]] ; then ++ ANT_HOME="${EPREFIX}"/usr/share/ant + fi + + # set ANT_LIB location +@@ -176,14 +134,7 @@ ANT_LIB="${ANT_HOME}/lib" + + if [ -z "$JAVACMD" ]; then + if [ -n "$JAVA_HOME" ]; then +- # IBM's JDK on AIX uses strange locations for the executables +- if [ -x "$JAVA_HOME/jre/sh/java" ]; then +- JAVACMD="$JAVA_HOME/jre/sh/java" +- elif [ -x "$JAVA_HOME/jre/bin/java" ]; then +- JAVACMD="$JAVA_HOME/jre/bin/java" +- else + JAVACMD="$JAVA_HOME/bin/java" +- fi + else + JAVACMD=`which java 2> /dev/null ` + if [ -z "$JAVACMD" ]; then +@@ -200,88 +151,61 @@ if [ ! -x "$JAVACMD" ]; then + exit 1 + fi + +-# Build local classpath using just the launcher in non-rpm mode or +-# use the Jpackage helper in rpm mode with basic and default jars +-# specified in the ant.conf configuration. Because the launcher is +-# used, libraries linked in ANT_HOME/lib will also be included, but this +-# is discouraged as it is not java-version safe. A user should +-# request optional jars and their dependencies via the OPT_JAR_LIST +-# variable +-if $rpm_mode && [ -x /usr/bin/build-classpath ]; then +- LOCALCLASSPATH="$(/usr/bin/build-classpath ant ant-launcher jaxp_parser_impl xml-commons-apis)" +- +- # If no optional jars have been specified then build the default list +- if [ -z "$OPT_JAR_LIST" ]; then +- for file in /etc/ant.d/*; do +- if [ -f "$file" ]; then +- case "$file" in +- *~|*#*|*.rpmsave|*.rpmnew) +- ;; +- *) +- for dep in `cat "$file"`; do +- OPT_JAR_LIST="$OPT_JAR_LIST${OPT_JAR_LIST:+ }$dep" +- done +- ;; +- esac +- fi +- done +- fi +- +- # If the user requested to try to add some other jars to the classpath +- if [ -n "$OPT_JAR_LIST" ]; then +- _OPTCLASSPATH="$(/usr/bin/build-classpath $OPT_JAR_LIST 2> /dev/null)" +- if [ -n "$_OPTCLASSPATH" ]; then +- LOCALCLASSPATH="$LOCALCLASSPATH:$_OPTCLASSPATH" +- fi +- fi +- +- # Explicitly add javac path to classpath, assume JAVA_HOME set +- # properly in rpm mode +- if [ -f "$JAVA_HOME/lib/tools.jar" ]; then +- LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/tools.jar" +- fi +- if [ -f "$JAVA_HOME/lib/classes.zip" ]; then +- LOCALCLASSPATH="$LOCALCLASSPATH:$JAVA_HOME/lib/classes.zip" +- fi ++if [ -z "$LOCALCLASSPATH" ] ; then ++ LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar ++else ++ LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar:$LOCALCLASSPATH ++fi ++ ++# if ANT_TASKS is not set, default to "all" ++ANT_TASKS="${ANT_TASKS:-all}" ++ ++# if ANT_TASKS is set to "all", get the tasks list from /usr/share/ant/tasks/ ++if [[ "${ANT_TASKS}" == "all" ]]; then ++ ANT_TASKS="" ++ # but only if it exists ++ if [[ -d "${EPREFIX}"/usr/share/ant/tasks ]]; then ++ ANT_TASKS="${ANT_TASKS} ${EPREFIX}"/usr/share/ant/tasks/* ++ fi ++ if [[ -d "${EPREFIX}"/usr/share/ant/tasks-1.8.2 ]]; then ++ ANT_TASKS="${ANT_TASKS} ${EPREFIX}"/usr/share/ant/tasks-1.8.2/* ++ fi ++# if set to "none", make ANT_TASKS empty list ++elif [[ "${ANT_TASKS}" == "none" ]]; then ++ ANT_TASKS="" ++fi ++# otherwise ANT_TASKS defines explicit task list ++ ++# construct the tasks list separated with commas to pass to java-config ++TASKS_LIST="" ++for task in $ANT_TASKS; do ++ TASKS_LIST="${TASKS_LIST},$(basename $task)" ++done ++TASKS_LIST=${TASKS_LIST#,} + +- # if CLASSPATH_OVERRIDE env var is set, LOCALCLASSPATH will be +- # user CLASSPATH first and ant-found jars after. +- # In that case, the user CLASSPATH will override ant-found jars +- # +- # if CLASSPATH_OVERRIDE is not set, we'll have the normal behaviour +- # with ant-found jars first and user CLASSPATH after +- if [ -n "$CLASSPATH" ]; then +- # merge local and specified classpath +- if [ -z "$LOCALCLASSPATH" ]; then +- LOCALCLASSPATH="$CLASSPATH" +- elif [ -n "$CLASSPATH_OVERRIDE" ]; then +- LOCALCLASSPATH="$CLASSPATH:$LOCALCLASSPATH" +- else +- LOCALCLASSPATH="$LOCALCLASSPATH:$CLASSPATH" +- fi ++# get the classpath for optional tasks and their dependency .jar files ++if [[ -n "${TASKS_LIST}" ]] ; then ++ ANT_TASKS_CLASSPATH="-lib \"$(java-config -dp ${TASKS_LIST})\"" ++ ANT_TASKS_LIBPATH="-Djava.library.path=\"$(java-config -di ${TASKS_LIST})\"" ++else ++ ANT_TASKS_CLASSPATH="" ++ ANT_TASKS_LIBPATH="" ++fi + +- # remove class path from launcher -cp option +- CLASSPATH="" +- fi ++# determine where to get tools.jar from ++if [[ -n "${ANT_RESPECT_JAVA_HOME}" ]]; then ++ TOOLS_JAR="${JAVA_HOME}/lib/tools.jar" + else +- # not using rpm_mode; use launcher to determine classpaths +- if [ -z "$LOCALCLASSPATH" ]; then +- LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar +- else +- LOCALCLASSPATH=$ANT_LIB/ant-launcher.jar:$LOCALCLASSPATH +- fi ++ TOOLS_JAR="$(java-config --tools)" + fi + +-if [ -n "$JAVA_HOME" ]; then +- # OSX hack to make Ant work with jikes +- if $darwin; then +- OSXHACK="${JAVA_HOME}/../Classes" +- if [ -d "${OSXHACK}" ]; then +- for i in "${OSXHACK}"/*.jar; do +- JIKESPATH="$JIKESPATH:$i" +- done +- fi +- fi ++if [[ -n "${TOOLS_JAR}" ]] ; then ++ LOCALCLASSPATH="$LOCALCLASSPATH:${TOOLS_JAR}" ++elif [[ $(java-config -f) != apple-jdk-bin* ]] ; then ++ echo "Warning: Unable to determine tools.jar location." ++ echo " If build fails because sun.* classes could not be found," ++ echo " Make sure you are using a JDK, not JRE as your user/system VM." ++ echo " and that you have java-config version 2.0.30 or above installed." + fi + + # Allow Jikes support (off by default) +@@ -289,29 +213,6 @@ if $usejikes; then + ANT_OPTS="$ANT_OPTS -Dbuild.compiler=jikes" + fi + +-# For Cygwin, switch paths to appropriate format before running java +-# For PATHs convert to unix format first, then to windows format to ensure +-# both formats are supported. Probably this will fail on directories with ; +-# in the name in the path. Let's assume that paths containing ; are more +-# rare than windows style paths on cygwin. +-if $cygwin; then +- if [ "$OS" = "Windows_NT" ] && cygpath -m .>/dev/null 2>/dev/null; then +- format=mixed +- else +- format=windows +- fi +- [ -n "$ANT_HOME" ] && ANT_HOME=`cygpath --$format "$ANT_HOME"` +- ANT_LIB=`cygpath --$format "$ANT_LIB"` +- [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --$format "$JAVA_HOME"` +- LCP_TEMP=`cygpath --path --unix "$LOCALCLASSPATH"` +- LOCALCLASSPATH=`cygpath --path --$format "$LCP_TEMP"` +- if [ -n "$CLASSPATH" ]; then +- CP_TEMP=`cygpath --path --unix "$CLASSPATH"` +- CLASSPATH=`cygpath --path --$format "$CP_TEMP"` +- fi +- CYGHOME=`cygpath --$format "$HOME"` +-fi +- + # Show script help if requested + if $show_help; then + echo $0 '[script options] [options] [target [target2 [target3] ..]]' +@@ -326,49 +227,20 @@ if $show_help; then + echo ' launch script' + echo '' + fi +-# add a second backslash to variables terminated by a backslash under cygwin +-if $cygwin; then +- case "$ANT_HOME" in +- *\\ ) +- ANT_HOME="$ANT_HOME\\" +- ;; +- esac +- case "$CYGHOME" in +- *\\ ) +- CYGHOME="$CYGHOME\\" +- ;; +- esac +- case "$JIKESPATH" in +- *\\ ) +- JIKESPATH="$JIKESPATH\\" +- ;; +- esac +- case "$LOCALCLASSPATH" in +- *\\ ) +- LOCALCLASSPATH="$LOCALCLASSPATH\\" +- ;; +- esac +- case "$CLASSPATH" in +- *\\ ) +- CLASSPATH="$CLASSPATH\\" +- ;; +- esac +-fi ++ + # Execute ant using eval/exec to preserve spaces in paths, + # java options, and ant args + ant_sys_opts= +-if [ -n "$CYGHOME" ]; then +- if [ -n "$JIKESPATH" ]; then +- ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\" -Dcygwin.user.home=\"$CYGHOME\"" +- else +- ant_sys_opts="-Dcygwin.user.home=\"$CYGHOME\"" +- fi +-else +- if [ -n "$JIKESPATH" ]; then +- ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\"" +- fi ++ ++if [ -n "$JIKESPATH" ]; then ++ ant_sys_opts="-Djikes.class.path=\"$JIKESPATH\"" + fi +-ant_exec_command="exec \"\$JAVACMD\" $ANT_OPTS -classpath \"\$LOCALCLASSPATH\" -Dant.home=\"\$ANT_HOME\" -Dant.library.dir=\"\$ANT_LIB\" $ant_sys_opts org.apache.tools.ant.launch.Launcher $ANT_ARGS -cp \"\$CLASSPATH\"" ++ ++ant_exec_command="exec \"${JAVACMD}\" ${ANT_OPTS} -classpath \"${LOCALCLASSPATH}\" \ ++ -Dant.home=\"${ANT_HOME}\" -Dant.library.dir=\"${ANT_LIB}\" ${ant_sys_opts} \ ++ ${ANT_TASKS_LIBPATH} org.apache.tools.ant.launch.Launcher \ ++ ${ANT_TASKS_CLASSPATH} ${ANT_ARGS} -cp \"${CLASSPATH}\"" ++ + if $ant_exec_debug; then + # using printf to avoid echo line continuation and escape interpretation confusion + printf "%s\n" "$ant_exec_command $ant_exec_args" diff --git a/dev-java/ant/files/ant-1.10.14-AntTest.patch b/dev-java/ant/files/ant-1.10.14-AntTest.patch new file mode 100644 index 000000000000..2e2e7fe38d96 --- /dev/null +++ b/dev-java/ant/files/ant-1.10.14-AntTest.patch @@ -0,0 +1,28 @@ +There was 1 failure: +1) testAntCoreLib(org.apache.tools.ant.taskdefs.AntTest) +java.lang.AssertionError: found ant.core.lib in: /var/tmp/portage/dev-java/ant-core-1.10.14/work/apache-ant-1.10.14/target/test-classes + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.assertTrue(Assert.java:42) + at org.apache.tools.ant.taskdefs.AntTest.testAntCoreLib(AntTest.java:377) + +FAILURES!!! +Tests run: 32, Failures: 1 +--- a/src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java ++++ b/src/tests/junit/org/apache/tools/ant/taskdefs/AntTest.java +@@ -33,6 +33,7 @@ import org.junit.After; + import org.junit.Before; + import org.junit.Rule; + import org.junit.Test; ++import org.junit.Ignore; + + import static org.hamcrest.Matchers.containsString; + import static org.junit.Assert.assertEquals; +@@ -369,7 +370,7 @@ public class AntTest { + assertEquals("dadctb", buildRule.getLog()); + } + +- @Test ++ @Test @Ignore + public void testAntCoreLib() { + // Cf. #42263 + buildRule.executeTarget("sub-show-ant.core.lib"); diff --git a/dev-java/ant/files/ant-1.10.14-AntlibTest.patch b/dev-java/ant/files/ant-1.10.14-AntlibTest.patch new file mode 100644 index 000000000000..d45925272beb --- /dev/null +++ b/dev-java/ant/files/ant-1.10.14-AntlibTest.patch @@ -0,0 +1,40 @@ +There was 1 failure: +1) testAntlibResource(org.apache.tools.ant.taskdefs.AntlibTest) +/var/tmp/portage/dev-java/ant-core-1.10.14/work/apache-ant-1.10.14/src/etc/testcases/taskdefs/antlib.xml:43: Problem: failed to create task or type mytask2 +Cause: The name is undefined. +Action: Check the spelling. +Action: Check that any custom tasks/types have been declared. +Action: Check that any <presetdef>/<macrodef> declarations have taken place. + + at org.apache.tools.ant.UnknownElement.getNotFoundException(UnknownElement.java:506) + at org.apache.tools.ant.UnknownElement.makeObject(UnknownElement.java:438) + at org.apache.tools.ant.UnknownElement.maybeConfigure(UnknownElement.java:166) + at org.apache.tools.ant.Task.perform(Task.java:349) + at org.apache.tools.ant.Target.execute(Target.java:449) + at org.apache.tools.ant.Target.performTasks(Target.java:470) + at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401) + at org.apache.tools.ant.Project.executeTarget(Project.java:1374) + at org.apache.tools.ant.BuildFileRule.executeTarget(BuildFileRule.java:197) + at org.apache.tools.ant.taskdefs.AntlibTest.testAntlibResource(AntlibTest.java:67) + +FAILURES!!! +Tests run: 6, Failures: 1 +--- a/src/tests/junit/org/apache/tools/ant/taskdefs/AntlibTest.java ++++ b/src/tests/junit/org/apache/tools/ant/taskdefs/AntlibTest.java +@@ -24,6 +24,7 @@ import org.apache.tools.ant.Task; + import org.junit.Before; + import org.junit.Rule; + import org.junit.Test; ++import org.junit.Ignore; + + import static org.junit.Assert.assertEquals; + import static org.junit.Assert.assertNotNull; +@@ -61,7 +62,7 @@ public class AntlibTest { + * can collect several antlibs in one Definer call. + * @see <a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=24024">bug 24024</a> + */ +- @Test ++ @Test @Ignore + public void testAntlibResource() { + assertNotNull("build.tests.value not set", System.getProperty("build.tests.value")); + buildRule.executeTarget("antlib.resource"); diff --git a/dev-java/ant/files/ant-1.10.14-JavaTest.patch b/dev-java/ant/files/ant-1.10.14-JavaTest.patch new file mode 100644 index 000000000000..9143cba43ca2 --- /dev/null +++ b/dev-java/ant/files/ant-1.10.14-JavaTest.patch @@ -0,0 +1,102 @@ +bug #922775 +--- a/src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java ++++ b/src/tests/junit/org/apache/tools/ant/taskdefs/JavaTest.java +@@ -42,6 +42,7 @@ import org.junit.AssumptionViolatedException; + import org.junit.Before; + import org.junit.Rule; + import org.junit.Test; ++import org.junit.Ignore; + import org.junit.rules.ExpectedException; + + import static org.hamcrest.Matchers.containsString; +@@ -241,7 +242,7 @@ public class JavaTest { + buildRule.executeTarget("testRunFailFoeFork"); + } + +- @Test ++ @Test @Ignore + public void testExcepting() { + buildRule.executeTarget("testExcepting"); + assertThat(buildRule.getLog(), containsString("Exception raised inside called program")); +@@ -253,7 +254,7 @@ public class JavaTest { + assertThat(buildRule.getLog(), containsString("Java Result:")); + } + +- @Test ++ @Test @Ignore + public void testExceptingFoe() { + thrown.expect(BuildException.class); + thrown.expectMessage("Exception raised inside called program"); +@@ -267,13 +268,13 @@ public class JavaTest { + buildRule.executeTarget("testExceptingFoeFork"); + } + +- @Test ++ @Test @Ignore + public void testResultPropertyZero() { + buildRule.executeTarget("testResultPropertyZero"); + assertEquals("0", buildRule.getProject().getProperty("exitcode")); + } + +- @Test ++ @Test @Ignore + public void testResultPropertyNonZero() { + buildRule.executeTarget("testResultPropertyNonZero"); + assertEquals("2", buildRule.getProject().getProperty("exitcode")); +@@ -301,12 +302,12 @@ public class JavaTest { + buildRule.executeTarget("testRunFailWithFailOnError"); + } + +- @Test ++ @Test @Ignore + public void testRunSuccessWithFailOnError() { + buildRule.executeTarget("testRunSuccessWithFailOnError"); + } + +- @Test ++ @Test @Ignore + public void testSpawn() throws InterruptedException { + File logFile = FILE_UTILS.createTempFile("spawn", "log", + new File(buildRule.getProject().getProperty("output")), false, false); +@@ -326,27 +327,27 @@ public class JavaTest { + assertTrue("log file exists", logFile.exists()); + } + +- @Test ++ @Test @Ignore + public void testRedirect1() { + buildRule.executeTarget("redirect1"); + } + +- @Test ++ @Test @Ignore + public void testRedirect2() { + buildRule.executeTarget("redirect2"); + } + +- @Test ++ @Test @Ignore + public void testRedirect3() { + buildRule.executeTarget("redirect3"); + } + +- @Test ++ @Test @Ignore + public void testRedirector1() { + buildRule.executeTarget("redirector1"); + } + +- @Test ++ @Test @Ignore + public void testRedirector2() { + buildRule.executeTarget("redirector2"); + } +@@ -397,7 +398,7 @@ public class JavaTest { + assertEquals("foo", buildRule.getProject().getProperty("input.value")); + } + +- @Test ++ @Test @Ignore + public void testFlushedInput() throws Exception { + final PipedOutputStream out = new PipedOutputStream(); + final PipedInputStream in = new PipedInputStream(out); diff --git a/dev-java/ant/files/ant-1.10.14-LinkTest.patch b/dev-java/ant/files/ant-1.10.14-LinkTest.patch new file mode 100644 index 000000000000..23075707fb9b --- /dev/null +++ b/dev-java/ant/files/ant-1.10.14-LinkTest.patch @@ -0,0 +1,87 @@ +There were 4 failures: +1) testLocalesInAttributeAndNested(org.apache.tools.ant.taskdefs.modules.LinkTest) +java.lang.AssertionError: Verifying that image has access to locales specified during linking. expected:<0> but was:<1> + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:647) + at org.apache.tools.ant.taskdefs.modules.LinkTest.verifyLocales(LinkTest.java:289) + at org.apache.tools.ant.taskdefs.modules.LinkTest.testLocalesInAttributeAndNested(LinkTest.java:330) +2) testLocales(org.apache.tools.ant.taskdefs.modules.LinkTest) +java.lang.AssertionError: Verifying that image has access to locales specified during linking. expected:<0> but was:<1> + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:647) + at org.apache.tools.ant.taskdefs.modules.LinkTest.verifyLocales(LinkTest.java:289) + at org.apache.tools.ant.taskdefs.modules.LinkTest.testLocales(LinkTest.java:306) +3) testNestedLocales(org.apache.tools.ant.taskdefs.modules.LinkTest) +java.lang.AssertionError: Verifying that image has access to locales specified during linking. expected:<0> but was:<1> + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:647) + at org.apache.tools.ant.taskdefs.modules.LinkTest.verifyLocales(LinkTest.java:289) + at org.apache.tools.ant.taskdefs.modules.LinkTest.testNestedLocales(LinkTest.java:315) +4) testIgnoreSigning(org.apache.tools.ant.taskdefs.modules.LinkTest) +/var/tmp/portage/dev-java/ant-core-1.10.14/work/apache-ant-1.10.14/src/etc/testcases/taskdefs/link.xml:1119: exec returned: 1 + at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:675) + at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:699) + at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:527) + at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:299) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) + at java.base/java.lang.reflect.Method.invoke(Method.java:580) + at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99) + at org.apache.tools.ant.Task.perform(Task.java:350) + at org.apache.tools.ant.Target.execute(Target.java:449) + at org.apache.tools.ant.Target.performTasks(Target.java:470) + at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1401) + at org.apache.tools.ant.Project.executeTarget(Project.java:1374) + at org.apache.tools.ant.BuildFileRule.executeTarget(BuildFileRule.java:197) + at org.apache.tools.ant.taskdefs.modules.LinkTest.testIgnoreSigning(LinkTest.java:901) + +FAILURES!!! +Tests run: 67, Failures: 4 +--- a/src/tests/junit/org/apache/tools/ant/taskdefs/modules/LinkTest.java ++++ b/src/tests/junit/org/apache/tools/ant/taskdefs/modules/LinkTest.java +@@ -46,6 +46,7 @@ import org.junit.Assume; + import org.junit.Before; + import org.junit.Rule; + import org.junit.Test; ++import org.junit.Ignore; + import org.junit.rules.ExpectedException; + + import org.apache.tools.ant.BuildException; +@@ -297,7 +298,7 @@ public class LinkTest { + + "not specified during linking.", 0, exitCode); + } + +- @Test ++ @Test @Ignore + public void testLocales() + throws IOException, + InterruptedException { +@@ -306,7 +307,7 @@ public class LinkTest { + verifyLocales(); + } + +- @Test ++ @Test @Ignore + public void testNestedLocales() + throws IOException, + InterruptedException { +@@ -321,7 +322,7 @@ public class LinkTest { + buildRule.executeTarget("locales-nested-missing-name"); + } + +- @Test ++ @Test @Ignore + public void testLocalesInAttributeAndNested() + throws IOException, + InterruptedException { +@@ -896,7 +897,7 @@ public class LinkTest { + 1, nonLinkCount); + } + +- @Test ++ @Test @Ignore + public void testIgnoreSigning() { + buildRule.executeTarget("ignoresigning"); + verifyImageBuiltNormally(); diff --git a/dev-java/ant/files/ant-1.10.14-PathTest.patch b/dev-java/ant/files/ant-1.10.14-PathTest.patch new file mode 100644 index 000000000000..022377ecc4d7 --- /dev/null +++ b/dev-java/ant/files/ant-1.10.14-PathTest.patch @@ -0,0 +1,30 @@ +There was 1 failure: +1) testDirSet(org.apache.tools.ant.types.PathTest) +java.lang.AssertionError: expected:<1> but was:<0> + at org.junit.Assert.fail(Assert.java:89) + at org.junit.Assert.failNotEquals(Assert.java:835) + at org.junit.Assert.assertEquals(Assert.java:647) + at org.junit.Assert.assertEquals(Assert.java:633) + at org.apache.tools.ant.types.PathTest.testDirSet(PathTest.java:585) + +FAILURES!!! +Tests run: 33, Failures: 1 +--- a/src/tests/junit/org/apache/tools/ant/types/PathTest.java ++++ b/src/tests/junit/org/apache/tools/ant/types/PathTest.java +@@ -29,6 +29,7 @@ import org.apache.tools.ant.taskdefs.condition.Os; + import org.junit.Before; + import org.junit.Rule; + import org.junit.Test; ++import org.junit.Ignore; + import org.junit.rules.ExpectedException; + + import static org.hamcrest.Matchers.endsWith; +@@ -570,7 +571,7 @@ public class PathTest { + assertEquals(project.resolveFile("build.xml").getAbsolutePath(), l[0]); + } + +- @Test ++ @Test @Ignore + public void testDirSet() { + DirSet d = new DirSet(); + d.setProject(project); diff --git a/dev-java/ant/metadata.xml b/dev-java/ant/metadata.xml new file mode 100644 index 000000000000..61ca646a80d3 --- /dev/null +++ b/dev-java/ant/metadata.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>java@gentoo.org</email> + <name>Java</name> + </maintainer> + <use> + <flag name="antlr">Enable ANTLR Ant tasks</flag> + <flag name="bcel">Enable bcel (bytecode manipulation) Ant tasks</flag> + <flag name="bsf">Enable support for Apache Bean Scripting Framework + (<pkg>dev-java/bsf</pkg>)</flag> + <flag name="commonslogging">Enable commons-logging Ant tasks</flag> + <flag name="commonsnet">Enable commons-net Ant tasks</flag> + <flag name="imageio">Enable imageio Ant tasks</flag> + <flag name="jai">Enable JAI (Java Imaging) Ant task</flag> + <flag name="jakartamail">Enable Jakartamail Ant task</flag> + <flag name="javamail">Enable JavaMail Ant task</flag> + <flag name="jdepend">Enable Jdepend Ant tasks</flag> + <flag name="jmf">Enable JMF (Java Media Framework) Ant tasks</flag> + <flag name="jsch">Disable Jsch (ssh, scp and related) Ant tasks</flag> + <flag name="junit">Enable JUnit Ant tasks</flag> + <flag name="junit4">Enable JUnit4 Ant tasks</flag> + <flag name="junitlauncher">Enable JUnit5 Ant tasks</flag> + <flag name="log4j">Enable Apache log4j Ant tasks</flag> + <flag name="oro">Enable Apache Oro Ant tasks</flag> + <flag name="regexp">Enable Apache Regexp Ant tasks</flag> + <flag name="resolver">Enable Apache Resolver Ant tasks</flag> + <flag name="swing">Enable Swing Ant tasks</flag> + <flag name="testutil">Enable optional test util classes</flag> + <flag name="xalan">Enable Apache Xalan2 Ant tasks</flag> + <flag name="xz">Enable XZ Ant tasks</flag> + </use> + <upstream> + <bugs-to>https://bz.apache.org/bugzilla/enter_bug.cgi?product=Ant</bugs-to> + <doc>https://ant.apache.org/manual/</doc> + <remote-id type="cpe">cpe:/a:apache:ant</remote-id> + </upstream> + <origin>baldeagleos-repo</origin> +</pkgmetadata> |
