commit:     47d14c2b0150eaebe4c14f2adfb0b7661c29eaa6
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Wed Oct  2 07:29:14 2024 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Sun Oct 20 10:13:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=47d14c2b

dev-java/ant: add 1.10.15

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Closes: 
https://github.com/gentoo/gentoo/pull/38836/commits/4afe54b2d7630671bb6df42277793ac3d2ef69f7
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-java/ant/Manifest           |   2 +
 dev-java/ant/ant-1.10.15.ebuild | 392 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 394 insertions(+)

diff --git a/dev-java/ant/Manifest b/dev-java/ant/Manifest
index 4fdf2d20cd0a..174a42745cc1 100644
--- a/dev-java/ant/Manifest
+++ b/dev-java/ant/Manifest
@@ -1,2 +1,4 @@
 DIST apache-ant-1.10.14-src.tar.xz 3779488 BLAKE2B 
40091c208c795d03b8f34656594cbf6c414f345cdacf637ece89a19a3ab0373cd8d65c342e0c4603569f9120f8f99a0b2eae8df874e6183649b39d7b88c614b8
 SHA512 
52936dfceb808a11dc842d2dc957a031508689270b59a2a6e3589f40465f6fa1aae87b189737cdd83eadfaf41b0c3f1ba2579bbd07591153107a5a27422521bd
 DIST apache-ant-1.10.14-src.tar.xz.asc 833 BLAKE2B 
4f8b1bb8bbd6d77b6e9eedf86818d42bb448e1b394e00590163e96967e36fe8e8e73e3f4fbf3b5bd1dab51cf69a39b99409bd8604cb7695cd6ae875ff13344a9
 SHA512 
2b91eda436210247ba39b82ba8aa1859051cf9baaf8ac8b551052e7986aeaa03c8b594347b8a734e08d12d8e270e29bf89b814562550a418abd0d2393ad4ac66
+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.ebuild b/dev-java/ant/ant-1.10.15.ebuild
new file mode 100644
index 000000000000..9738f6ec6e14
--- /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 ~amd64-linux ~x86-linux ~ppc-macos ~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/*
+}

Reply via email to