diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-10-21 04:04:33 +0100 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-10-21 04:04:33 +0100 |
commit | 3dc4de6331223493015f198dc61854af604da86c (patch) | |
tree | 626add8c88d96adf9429cdb19226d9de60e6dafd /dev-java/ant | |
parent | d895362f98ae63a6ed12cd16d3b3df95d6967f25 (diff) |
gentoo auto-resync : 21:10:2024 - 04:04:33
Diffstat (limited to 'dev-java/ant')
-rw-r--r-- | dev-java/ant/Manifest | 3 | ||||
-rw-r--r-- | dev-java/ant/ant-1.10.15.ebuild | 392 |
2 files changed, 395 insertions, 0 deletions
diff --git a/dev-java/ant/Manifest b/dev-java/ant/Manifest index c9da780f64d4..9fa83a9c9eeb 100644 --- a/dev-java/ant/Manifest +++ b/dev-java/ant/Manifest @@ -6,5 +6,8 @@ AUX ant-1.10.14-LinkTest.patch 4329 BLAKE2B d4165d378dd63cab2a9d813c9d26c1ef7404 AUX ant-1.10.14-PathTest.patch 1114 BLAKE2B 870f35f250b4cd31317972c09f4a90eb26b71a8f198d1e96a085f99e0d6e41fd06c0598bcdae35c400aa8ba9b65e52b7dc0d7119308c60c8573a185907f2b7ba SHA512 9847fb3f6f3c2a37ac1e483ca7ac5685cc3d296b92ae35816fc4c58bb4de57d89196c50fabfa546efbec2303ea360066658507be0b4bdaeae3d5ff00e023f498 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 EBUILD ant-1.10.14-r3.ebuild 13076 BLAKE2B 2168f00aeb12dd66b46d063c3d593c985c9123ae3ef940d5f7a52e40d22240075040b78437a4a23e2f951901380e3022ec99009a87a93a9327edd2a546f1576a SHA512 df08ce210a32da087e045590d63c3ee0337e307f964174c79ed1c2f2f2a4d07441ed506c1ef2c6ef4e6181a7992ba82fdfafe808f911f4efc2d2fce0e69aaa3d +EBUILD ant-1.10.15.ebuild 12964 BLAKE2B e07dcecda289e3d97a612b7b78b2639fb80db994f11c342ce4ef2aabc1b2594d831d2cfdbe87dd4c697f340054a6e3ecaee82e4e007603ee0955f9f07e4a0902 SHA512 efb98501074856dce0cc95a25b0c249ae647b1f9db796baa9772dbd944640cc21dc325389d0fb170240e3aa599e006e62503279456715b62d1f3fdaab56978cd MISC metadata.xml 1928 BLAKE2B b48dbca1bf2ab76b0107466c68489722f4ceed5fa53f2a26d983dfd36c74efad96fce9f58d0e6bb5ba1e02d8e44135bcf96bd77b2db7491fd260da907c02fbab SHA512 9313f5e0914d9c64482c4897e659313480630316ca29b57190e976248a63a17b3c293198f82d4143bd25be0766cd4ce9556d2489d76adf74b0203a9dc4998726 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/* +} |