diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index e69de29..b0b1a70 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1,31 @@ +/results_* +/*.src.rpm + +/apache-ant-1.7.1-src.tar.bz2 +/apache-ant-1.8.1-src.tar.bz2 +/apache-ant-1.8.2-src.tar.bz2 +/apache-ant-1.8.3-src.tar.bz2 +/apache-ant-1.8.4-src.tar.bz2 +/apache-ant-1.9.0-src.tar.bz2 +/apache-ant-1.9.1-src.tar.bz2 +/apache-ant-1.9.2-src.tar.bz2 +/apache-ant-1.9.3-src.tar.bz2 +/apache-ant-1.9.4-src.tar.bz2 +/apache-ant-1.9.5-src.tar.bz2 +/apache-ant-1.9.6-src.tar.bz2 +/apache-ant-1.9.7-src.tar.bz2 +/apache-ant-1.10.0-src.tar.bz2 +/apache-ant-1.10.1-src.tar.bz2 +/apache-ant-1.10.2-src.tar.bz2 +/apache-ant-1.10.3-src.tar.bz2 +/apache-ant-1.10.4-src.tar.bz2 +/apache-ant-1.10.5-src.tar.bz2 +/apache-ant-1.10.6-src.tar.bz2 +/apache-ant-1.10.7-src.tar.bz2 +/apache-ant-1.10.8-src.tar.bz2 +/apache-ant-1.10.9-src.tar.bz2 +/apache-ant-1.10.11-src.tar.bz2 +/apache-ant-1.10.12-src.tar.bz2 +/apache-ant-1.10.13-src.tar.bz2 +/apache-ant-1.10.14-src.tar.bz2 +/apache-ant-1.10.15-src.tar.bz2 diff --git a/ant-build.xml.patch b/ant-build.xml.patch new file mode 100644 index 0000000..46706ee --- /dev/null +++ b/ant-build.xml.patch @@ -0,0 +1,37 @@ +--- ant/build.xml~ 2021-05-17 12:32:48.406394876 +0200 ++++ ant/build.xml 2021-05-17 12:32:39.990389601 +0200 +@@ -819,7 +817,6 @@ + + + +- + + + +@@ -1562,7 +1559,25 @@ + verbose="${javadoc.verbose}" + additionalparam="${javadoc.doclint.none}"> + +- ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ + + + diff --git a/ant.asciidoc b/ant.asciidoc new file mode 100644 index 0000000..22332e0 --- /dev/null +++ b/ant.asciidoc @@ -0,0 +1,170 @@ +ant(1) +====== +:doctype: manpage +:man source: ANT +:man manual: Apache Ant + +NAME +---- +ant - Java build tool + +SYNOPSIS +-------- +*ant* [OPTIONS] [TARGET [TARGET2 [TARGET3] ...]] + +DESCRIPTION +----------- +Apache Ant is a Java library and command-line tool whose mission is to drive +processes described in build files as targets and extension points dependent +upon each other. The main known usage of Ant is the build of Java applications. +Ant supplies a number of built-in tasks allowing to compile, assemble, test and +run Java applications. Ant can also be used effectively to build non Java +applications, for instance C or C++ applications. More generally, Ant can be +used to pilot any type of process which can be described in terms of targets +and tasks. + +USAGE +----- +When no arguments are specified, Ant looks for a build.xml file in the current +directory and, if found, uses that file as the build file and runs the target +specified in the default attribute of the tag. To make Ant use +a build file other than build.xml, use the command-line option *-buildfile* +file, where file is the name of the build file you want to use (or a directory +containing a build.xml file). + +If you use the *-find* [file] option, Ant will search for a build file first in +the current directory, then in the parent directory, and so on, until either +a build file is found or the root of the filesystem has been reached. By +default, it will look for a build file called build.xml. To have it search for +a build file other than build.xml, specify a file argument. Note: If you +include any other flags or arguments on the command line after the *-find* +flag, you must include the file argument for the *-find* flag, even if the name +of the build file you want to find is build.xml. + +You can also set properties on the command line. This can be done with the +*-Dproperty*=value option, where property is the name of the property, and +value is the value for that property. If you specify a property that is also +set in the build file (see the property task), the value specified on the +command line will override the value specified in the build file. Defining +properties on the command line can also be used to pass in the value of +environment variables; just pass *-DMYVAR*=$MYVAR to Ant. You can then access +these variables inside your build file as ${MYVAR}. You can also access +environment variables using the property task's environment attribute. + +Options that affect the amount of logging output by Ant are: *-quiet*, which +instructs Ant to print less information to the console; *-verbose*, which +causes Ant to print additional information to the console; *-debug*, which +causes Ant to print considerably more additional information; and *-silent* +which makes Ant print nothing but task output and build failures (useful to +capture Ant output by scripts). + +It is also possible to specify one or more targets that should be executed. +When omitted, the target that is specified in the default attribute of the +project tag is used. + +The *-projecthelp* option prints out a list of the build file's targets. +Targets that include a description attribute are listed as "Main targets", +those without a description are listed as "Other targets", then the "Default" +target is listed ("Other targets" are only displayed if there are no main +targets, or if Ant is invoked in *-verbose* or *-debug* mode). + +OPTIONS +------- + +*-help, -h*:: +print this message and exit +*-projecthelp, -p*:: +print project help information and exit +*-version*:: +print the version information and exit +*-diagnostics*:: +print information that might be helpful to diagnose or report problems and exit +*-quiet, -q*:: +be extra quiet +*-silent, -S*:: +print nothing but task outputs and build failures +*-verbose, -v*:: +be extra verbose +*-debug, -d*:: +print debugging information +*-emacs, -e*:: +produce logging information without adornments +*-lib *:: +specifies a path to search for jars and classes +*-logfile , -l *:: +use given file for log +*-logger *:: +the class which is to perform logging +*-listener *:: +add an instance of class as a project listener +*-noinput*:: +do not allow interactive input +*-buildfile , -file , -f *:: +use given buildfile +*-D=*:: +use value for given property +*-keep-going, -k*:: +execute all targets that do not depend on failed target(s) +*-propertyfile *:: +load all properties from file with *-D* properties taking precedence +*-inputhandler *:: +the class which will handle input requests +*-find , -f *:: +search for buildfile towards the root of the filesystem and use it +*-nice number*:: +A niceness value for the main thread: +1 (lowest) to 10 (highest); 5 is the default +*-nouserlib*:: +Run ant without using the jar files from `${user.home}/.ant/lib` +*-noclasspath*:: +Run ant without using `CLASSPATH` +*-autoproxy*:: +Java1.5+: use the OS proxy settings +*-main *:: +override Ant's normal entry point + +EXAMPLES +-------- +*ant*:: + +runs Ant using the build.xml file in the current directory, on the default target. + +*ant -buildfile test.xml*:: + +runs Ant using the test.xml file in the current directory, on the default target. + +*ant -buildfile test.xml dist*:: + +runs Ant using the test.xml file in the current directory, on the target called dist. + +*ant -buildfile test.xml -Dbuild=build/classes dist*:: + +runs Ant using the test.xml file in the current directory, on the target called dist, setting the build property to the value "build/classes". + +*ant -lib /home/ant/extras*:: + +runs Ant picking up additional task and support jars from the /home/ant/extras location + +*ant -lib one.jar;another.jar*:: + +adds two jars to Ants classpath. + +FILES +----- +The Ant wrapper script for Unix will source (read and evaluate) the file *~/.antrc* before it does anything. You can use the file, for example, to set/unset environment variables that should only be visible during the execution of Ant. + +ENVIRONMENT VARIABLES +--------------------- +The wrapper scripts use the following environment variables (if set): + +JAVACMD:: +full path of the Java executable. Use this to invoke a different JVM than JAVA_HOME/bin/java. +ANT_OPTS:: +command-line arguments that should be passed to the JVM. For example, you can define system properties or set the maximum Java heap size here. +ANT_ARGS:: +Ant command-line arguments. For example, set ANT_ARGS to point to a different logger, include a listener, and to include the *-find* flag. +Note: If you include *-find* in ANT_ARGS, you should include the name of the build file to find, even if the file is called build.xml. + +SEE ALSO +-------- +java(1), make(1), mvn(1) diff --git a/ant.spec b/ant.spec new file mode 100644 index 0000000..0a01369 --- /dev/null +++ b/ant.spec @@ -0,0 +1,755 @@ +# Copyright (c) 2000-2008, JPackage Project +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the +# distribution. +# 3. Neither the name of the JPackage Project nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# + +%bcond_with bootstrap + +%if %{without bootstrap} +%bcond_with ant_minimal +%else +%bcond_without ant_minimal +%endif + +%global ant_home %{_datadir}/ant + +Name: ant +Version: 1.10.15 +Release: 18%{?dist} +Summary: Java build tool +Summary(it): Tool per la compilazione di programmi java +Summary(fr): Outil de compilation pour java +License: Apache-2.0 +URL: https://ant.apache.org/ +BuildArch: noarch +ExclusiveArch: %{java_arches} noarch + +Source0: https://archive.apache.org/dist/ant/source/apache-ant-%{version}-src.tar.bz2 +Source2: apache-ant-1.8.ant.conf +# manpage +Source3: ant.asciidoc + +Patch: %{name}-build.xml.patch + +BuildRequires: rubygem-asciidoctor + +%if %{with bootstrap} +BuildRequires: javapackages-bootstrap +%else +BuildRequires: javapackages-local +BuildRequires: ant +BuildRequires: ant-junit +%endif + +%if %{without ant_minimal} +BuildRequires: mvn(antlr:antlr) +BuildRequires: mvn(bcel:bcel) +BuildRequires: mvn(bsf:bsf) +BuildRequires: mvn(com.jcraft:jsch) +BuildRequires: mvn(commons-net:commons-net) +BuildRequires: mvn(jakarta.activation:jakarta.activation-api) +BuildRequires: mvn(jakarta.mail:jakarta.mail-api) +BuildRequires: mvn(jdepend:jdepend) +BuildRequires: mvn(junit:junit) +BuildRequires: mvn(org.apache.commons:commons-logging::api:) +BuildRequires: mvn(org.tukaani:xz) +BuildRequires: mvn(oro:oro) +BuildRequires: mvn(regexp:regexp) +BuildRequires: mvn(xalan:xalan) +BuildRequires: mvn(xml-resolver:xml-resolver) +BuildRequires: mvn(org.hamcrest:hamcrest-core) +BuildRequires: mvn(org.hamcrest:hamcrest-library) + +BuildRequires: junit5 +%endif + +Requires: %{name}-lib = %{version}-%{release} +Requires: %{name}-jdk-binding +Suggests: %{name}-openjdk21 = %{version}-%{release} + +%description +Apache Ant is a Java library and command-line tool whose mission is to +drive processes described in build files as targets and extension +points dependent upon each other. The main known usage of Ant is the +build of Java applications. Ant supplies a number of built-in tasks +allowing to compile, assemble, test and run Java applications. Ant +can also be used effectively to build non Java applications, for +instance C or C++ applications. More generally, Ant can be used to +pilot any type of process which can be described in terms of targets +and tasks. + +%description -l fr +Ant est un outil de compilation multi-plateformes pour java. Il est +utilisé par les projets apache-jakarta et apache-xml. + +%description -l it +Ant e' un tool indipendente dalla piattaforma creato per faciltare la +compilazione di programmi java. +Allo stato attuale viene utilizzato dai progetti apache jakarta ed +apache xml. + +%package lib +Summary: Core part of %{name} + +%description lib +Core part of Apache Ant that can be used as a library. + +%package junit +Summary: Optional junit tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description junit +Optional junit tasks for %{name}. + +%description junit -l fr +Taches junit optionelles pour %{name}. + +%if %{without ant_minimal} + +%package jmf +Summary: Optional jmf tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description jmf +Optional jmf tasks for %{name}. + +%description jmf -l fr +Taches jmf optionelles pour %{name}. + +%package swing +Summary: Optional swing tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description swing +Optional swing tasks for %{name}. + +%description swing -l fr +Taches swing optionelles pour %{name}. + +%package antlr +Summary: Optional antlr tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description antlr +Optional antlr tasks for %{name}. + +%description antlr -l fr +Taches antlr optionelles pour %{name}. + +%package apache-bsf +Summary: Optional apache bsf tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description apache-bsf +Optional apache bsf tasks for %{name}. + +%description apache-bsf -l fr +Taches apache bsf optionelles pour %{name}. + +%package apache-resolver +Summary: Optional apache resolver tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description apache-resolver +Optional apache resolver tasks for %{name}. + +%description apache-resolver -l fr +Taches apache resolver optionelles pour %{name}. + +%package commons-logging +Summary: Optional commons logging tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description commons-logging +Optional commons logging tasks for %{name}. + +%description commons-logging -l fr +Taches commons logging optionelles pour %{name}. + +%package commons-net +Summary: Optional commons net tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description commons-net +Optional commons net tasks for %{name}. + +%description commons-net -l fr +Taches commons net optionelles pour %{name}. + +%package apache-bcel +Summary: Optional apache bcel tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description apache-bcel +Optional apache bcel tasks for %{name}. + +%description apache-bcel -l fr +Taches apache bcel optionelles pour %{name}. + +%package apache-oro +Summary: Optional apache oro tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description apache-oro +Optional apache oro tasks for %{name}. + +%description apache-oro -l fr +Taches apache oro optionelles pour %{name}. + +%package apache-regexp +Summary: Optional apache regexp tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description apache-regexp +Optional apache regexp tasks for %{name}. + +%description apache-regexp -l fr +Taches apache regexp optionelles pour %{name}. + +%package apache-xalan2 +Summary: Optional apache xalan2 tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description apache-xalan2 +Optional apache xalan2 tasks for %{name}. + +%description apache-xalan2 -l fr +Taches apache xalan2 optionelles pour %{name}. + +%package imageio +Summary: Optional imageio tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description imageio +Optional imageio tasks for %{name}. + +%package jakartamail +Summary: Optional jakartamail tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description jakartamail +Optional jakartamail tasks for %{name}. + +%description jakartamail -l fr +Taches jakartamail optionelles pour %{name}. + +%package jdepend +Summary: Optional jdepend tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description jdepend +Optional jdepend tasks for %{name}. + +%description jdepend -l fr +Taches jdepend optionelles pour %{name}. + +%package jsch +Summary: Optional jsch tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description jsch +Optional jsch tasks for %{name}. + +%description jsch -l fr +Taches jsch optionelles pour %{name}. + +%package junit5 +Summary: Optional junit5 tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description junit5 +Optional junit5 tasks for %{name}. + +%description junit5 -l fr +Taches junit5 optionelles pour %{name}. + +%package testutil +Summary: Test utility classes for %{name} +Requires: %{name} = %{version}-%{release} + +%description testutil +Test utility tasks for %{name}. + +%package xz +Summary: Optional xz tasks for %{name} +Requires: %{name} = %{version}-%{release} + +%description xz +Optional xz tasks for %{name}. + +%package manual +Summary: Manual for %{name} +# ant-manual contains file tutorial-tasks-filesets-properties.zip +# which in turn contains src/Find.java and src/FindTest.java both +# licensed under ASL 1.1. See rhbz#1055629 +License: Apache-2.0 AND Apache-1.1 + +%description manual +Documentation for %{name}. + +%description manual -l it +Documentazione di %{name}. + +%description manual -l fr +Documentation pour %{name}. + +%package javadoc +Summary: Javadoc for %{name} + +%description javadoc +Javadoc for %{name}. + +%description javadoc -l fr +Javadoc pour %{name}. + +%endif + +%package -n ant-openjdk21 +Summary: ant binding for openjdk21 +Provides: ant-jdk-binding +Requires: java-21-openjdk-headless +Recommends: java-21-openjdk-devel +Requires: javapackages-tools +Requires(meta): ant + +%description -n ant-openjdk21 +Configures ant to work with openjdk21. + +%files -n ant-openjdk21 +%ghost /usr/share/jpbinding/ant.conf +%dir /usr/share/jpbinding/ant.conf.d +%{_jpbindingdir}/ant.conf.d/openjdk21 + +%package -n ant-unbound +Summary: ant binding for unbound +Provides: ant-jdk-binding +Requires: javapackages-tools +Requires(meta): ant + +%description -n ant-unbound +Configures ant to work with unbound. + +%files -n ant-unbound +%ghost /usr/share/jpbinding/ant.conf +%dir /usr/share/jpbinding/ant.conf.d +%{_jpbindingdir}/ant.conf.d/unbound + +# ----------------------------------------------------------------------------- + +%prep +%autosetup -p1 -n apache-ant-%{version} + +# clean jar files +find . -name "*.jar" | xargs -t rm + +# failing testcases. TODO see why +rm src/tests/junit/org/apache/tools/ant/types/selectors/SignedSelectorTest.java \ + src/tests/junit/org/apache/tools/ant/taskdefs/condition/IsFileSelectedTest.java \ + src/tests/junit/org/apache/tools/ant/taskdefs/condition/IsSignedTest.java \ + src/tests/junit/org/apache/tools/ant/taskdefs/optional/image/ImageIOTest.java \ + src/tests/junit/org/apache/tools/ant/taskdefs/JarTest.java \ + src/tests/junit/org/apache/tools/mail/MailMessageTest.java + +# Test relies on internal JUnit 5 API that was changed +rm src/tests/junit/org/apache/tools/ant/taskdefs/optional/junitlauncher/LegacyXmlResultFormatterTest.java + +# Log4jListener is deprecated by upstream: Apache Log4j (1) is not +# developed any more. Last release is 1.2.17 from 26 May 2012 and +# contains vulnerability issues. +rm src/main/org/apache/tools/ant/listener/Log4jListener.java + +#install jars +%if %{with bootstrap} +ln -s %{_prefix}/lib/javapackages-bootstrap/junit.jar lib/optional/junit.jar +ln -s %{_prefix}/lib/javapackages-bootstrap/hamcrest-core.jar lib/optional/hamcrest-core.jar +%else +%if %{with ant_minimal} +build-jar-repository -s -p lib/optional junit hamcrest/core hamcrest/library +%else +build-jar-repository -s -p lib/optional antlr bcel commons-lang3 jakarta-mail/jakarta.mail-api jakarta-activation/jakarta.activation-api jdepend junit oro regexp bsf commons-logging commons-net jsch xalan-j2 xml-commons-resolver xalan-j2-serializer hamcrest/core hamcrest/library xz-java junit5 opentest4j +%endif +%endif + +# fix hardcoded paths in ant script and conf +cp -p %{SOURCE2} %{name}.conf +sed -e 's:/etc/ant.conf:%{_sysconfdir}/ant.conf:g' \ + -e 's:/etc/ant.d:%{_sysconfdir}/ant.d:g' \ + -e 's:/usr/share/ant:%{_datadir}/ant:g' \ + -e 's:/usr/bin/build-classpath:%{_bindir}/build-classpath:g' \ + -e 's:/usr/share/java-utils/java-functions:%{_javadir}-utils/java-functions:g' \ + -i src/script/ant %{name}.conf + +# Remove unnecessary JARs from the classpath +sed -i 's/jaxp_parser_impl//;s/xml-commons-apis//' src/script/ant + +# Fix file-not-utf8 rpmlint warning +iconv KEYS -f iso-8859-1 -t utf-8 >KEYS.utf8 +mv KEYS.utf8 KEYS +iconv LICENSE -f iso-8859-1 -t utf-8 >LICENSE.utf8 +mv LICENSE.utf8 LICENSE + +# We want a hard dep on antlr +%pom_xpath_remove pom:optional src/etc/poms/ant-antlr/pom.xml + +# fix javamail dependency coordinates (remove once javamail is updated) +%pom_change_dep com.sun.mail:jakarta.mail jakarta.mail:jakarta.mail-api src/etc/poms/ant-jakartamail/pom.xml + +%pom_change_dep commons-logging:commons-logging-api org.apache.commons:commons-logging::api: src/etc/poms/ant-commons-logging/pom.xml + +%build +%if %{with ant_minimal} +%{ant} jars +%else +%{ant} jars test-jar javadocs +%endif + +# typeset the manpage +asciidoctor -b manpage -D man %{SOURCE3} + +# remove empty jai and netrexx jars. Due to missing dependencies they contain only manifests. +rm build/lib/ant-jai.jar build/lib/ant-netrexx.jar +# log4j logging is deprecated +rm build/lib/ant-apache-log4j.jar +# dropped in favor of jakartamail +rm build/lib/ant-javamail.jar + +%install +# ANT_HOME and subdirs +mkdir -p %{buildroot}%{ant_home}/{lib,etc,bin} + +%mvn_alias :ant org.apache.ant:ant-nodeps apache:ant ant:ant +%mvn_alias :ant-launcher ant:ant-launcher + +%mvn_file ':{ant,ant-bootstrap,ant-launcher}' %{name}/@1 @1 + +%if %{with ant_minimal} +mv build/lib build/lib0 +mkdir build/lib/ +mv build/lib0/ant.jar build/lib/ +mv build/lib0/ant-bootstrap.jar build/lib/ +mv build/lib0/ant-launcher.jar build/lib/ +mv build/lib0/ant-junit.jar build/lib/ +mv build/lib0/ant-junit4.jar build/lib/ +%endif + +for jar in build/lib/*.jar; do + # Make sure that installed JARs are not empty + jar tf ${jar} | grep -E -q '.*\.class' + + jarname=$(basename $jar .jar) + + # jar aliases + ln -sf ../../java/%{name}/${jarname}.jar %{buildroot}%{ant_home}/lib/${jarname}.jar + + pom=src/etc/poms/${jarname}/pom.xml + + # bootstrap does not have a pom, generate one + [ $jarname == ant-bootstrap ] && pom='org.apache.ant:ant-bootstrap:%{version}' + + %mvn_artifact ${pom} ${jar} +done + +# ant-parent pom +%mvn_artifact src/etc/poms/pom.xml + +%mvn_package :ant lib +%mvn_package :ant-launcher lib +%mvn_package :ant-bootstrap lib +%mvn_package :ant-parent lib +%mvn_package :ant-junit4 junit +# catchall rule for the rest +%mvn_package ':ant-{*}' @1 + +%mvn_install + +# scripts: remove dos and os/2 scripts +rm -f src/script/*.bat +rm -f src/script/*.cmd + +# XSLs +%if %{with ant_minimal} +rm src/etc/jdepend-frames.xsl +rm src/etc/jdepend.xsl +rm src/etc/maudit-frames.xsl +%endif +cp -p src/etc/*.xsl %{buildroot}%{ant_home}/etc + +# install everything else +mkdir -p %{buildroot}%{_bindir} +cp -p src/script/ant %{buildroot}%{_bindir}/ +ln -sf %{_bindir}/ant %{buildroot}%{ant_home}/bin/ +cp -p src/script/antRun %{buildroot}%{ant_home}/bin/ + +# default ant.conf +mkdir -p %{buildroot}%{_sysconfdir} +cp -p %{name}.conf %{buildroot}%{_sysconfdir}/%{name}.conf + +# OPT_JAR_LIST fragments +mkdir -p %{buildroot}%{_sysconfdir}/%{name}.d +echo "junit hamcrest/core ant/ant-junit" > %{buildroot}%{_sysconfdir}/%{name}.d/junit +echo "junit hamcrest/core ant/ant-junit4" > %{buildroot}%{_sysconfdir}/%{name}.d/junit4 + +# JDK bindings +%if !0%{?specpartsdir:1} +export RPM_SPECPARTS_DIR=/tmp +%endif +install -d -m 755 %{buildroot}%{_javaconfdir}/ +ln -sf %{_jpbindingdir}/ant.conf %{buildroot}%{_javaconfdir}/ant.conf +echo 'JAVA_HOME=%{_jvmdir}/jre-21-openjdk' > %{buildroot}%{_javaconfdir}/ant-openjdk21.conf +%jp_binding --verbose --variant openjdk21 --ghost ant.conf --target %{_javaconfdir}/ant-openjdk21.conf --provides %{name}-jdk-binding --requires java-21-openjdk-headless --recommends java-21-openjdk-devel +touch %{buildroot}%{_javaconfdir}/ant-unbound.conf +%jp_binding --verbose --variant unbound --ghost ant.conf --target %{_javaconfdir}/ant-unbound.conf --provides %{name}-jdk-binding + +%if %{without ant_minimal} + +echo "ant/ant-jmf" > %{buildroot}%{_sysconfdir}/%{name}.d/jmf +echo "ant/ant-swing" > %{buildroot}%{_sysconfdir}/%{name}.d/swing +echo "antlr ant/ant-antlr" > %{buildroot}%{_sysconfdir}/%{name}.d/antlr +echo "bsf commons-logging ant/ant-apache-bsf" > %{buildroot}%{_sysconfdir}/%{name}.d/apache-bsf +echo "xml-commons-resolver ant/ant-apache-resolver" > %{buildroot}%{_sysconfdir}/%{name}.d/apache-resolver +echo "apache-commons-logging ant/ant-commons-logging" > %{buildroot}%{_sysconfdir}/%{name}.d/commons-logging +echo "apache-commons-net ant/ant-commons-net" > %{buildroot}%{_sysconfdir}/%{name}.d/commons-net +echo "bcel commons-lang3 ant/ant-apache-bcel" > %{buildroot}%{_sysconfdir}/%{name}.d/apache-bcel +echo "oro ant/ant-apache-oro" > %{buildroot}%{_sysconfdir}/%{name}.d/apache-oro +echo "regexp ant/ant-apache-regexp" > %{buildroot}%{_sysconfdir}/%{name}.d/apache-regexp +echo "xalan-j2 xalan-j2-serializer ant/ant-apache-xalan2" > %{buildroot}%{_sysconfdir}/%{name}.d/apache-xalan2 +echo "ant/ant-imageio" > %{buildroot}%{_sysconfdir}/%{name}.d/imageio +echo "jakartamail jaf ant/ant-jakartamail" > %{buildroot}%{_sysconfdir}/%{name}.d/jakartamail +echo "jdepend ant/ant-jdepend" > %{buildroot}%{_sysconfdir}/%{name}.d/jdepend +echo "jsch ant/ant-jsch" > %{buildroot}%{_sysconfdir}/%{name}.d/jsch +echo "junit5 hamcrest/core junit opentest4j ant/ant-junitlauncher" > %{buildroot}%{_sysconfdir}/%{name}.d/junitlauncher +echo "testutil ant/ant-testutil" > %{buildroot}%{_sysconfdir}/%{name}.d/testutil +echo "xz-java ant/ant-xz" > %{buildroot}%{_sysconfdir}/%{name}.d/xz + +# javadoc +mkdir -p %{buildroot}%{_javadocdir}/%{name} +cp -pr build/javadocs/* %{buildroot}%{_javadocdir}/%{name} + +# fix link between manual and javadoc +(cd manual; ln -sf %{_javadocdir}/%{name} api) + +%endif + +# manpage +install -d -m 755 %{buildroot}%{_mandir}/man1/ +install -p -m 644 man/%{name}.1 %{buildroot}%{_mandir}/man1/%{name}.1 + +%if %{without ant_minimal} +%check +%{ant} -Doffline=true test +%endif + +%files +%doc KEYS README WHATSNEW +%license LICENSE NOTICE +%config %{_javaconfdir}/%{name}*.conf +%config(noreplace) %{_sysconfdir}/%{name}.conf +%attr(0755,root,root) %{_bindir}/ant +%dir %{ant_home}/bin +%{ant_home}/bin/ant +%attr(0755,root,root) %{ant_home}/bin/antRun +%{_mandir}/man1/%{name}.* +%dir %{ant_home}/etc +%{ant_home}/etc/ant-update.xsl +%{ant_home}/etc/changelog.xsl +%{ant_home}/etc/coverage-frames.xsl +%{ant_home}/etc/mmetrics-frames.xsl +%{ant_home}/etc/log.xsl +%{ant_home}/etc/tagdiff.xsl +%{ant_home}/etc/common2master.xsl +%{ant_home}/etc/printFailingTests.xsl +%dir %{_sysconfdir}/%{name}.d + +%files lib -f .mfiles-lib +%dir %{ant_home} +%dir %{ant_home}/lib +%{ant_home}/lib/%{name}.jar +%{ant_home}/lib/%{name}-launcher.jar +%{ant_home}/lib/%{name}-bootstrap.jar + +%files junit -f .mfiles-junit +%{ant_home}/lib/%{name}-junit.jar +%{ant_home}/lib/%{name}-junit4.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/junit +%config(noreplace) %{_sysconfdir}/%{name}.d/junit4 +%{ant_home}/etc/junit-frames.xsl +%{ant_home}/etc/junit-noframes.xsl +%{ant_home}/etc/junit-frames-xalan1.xsl +%{ant_home}/etc/junit-frames-saxon.xsl +%{ant_home}/etc/junit-noframes-saxon.xsl + +%if %{without ant_minimal} + +%files jmf -f .mfiles-jmf +%{ant_home}/lib/%{name}-jmf.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/jmf + +%files swing -f .mfiles-swing +%{ant_home}/lib/%{name}-swing.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/swing + +%files antlr -f .mfiles-antlr +%{ant_home}/lib/%{name}-antlr.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/antlr + +%files apache-bsf -f .mfiles-apache-bsf +%{ant_home}/lib/%{name}-apache-bsf.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/apache-bsf + +%files apache-resolver -f .mfiles-apache-resolver +%{ant_home}/lib/%{name}-apache-resolver.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/apache-resolver + +%files commons-logging -f .mfiles-commons-logging +%{ant_home}/lib/%{name}-commons-logging.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/commons-logging + +%files commons-net -f .mfiles-commons-net +%{ant_home}/lib/%{name}-commons-net.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/commons-net + +%files apache-bcel -f .mfiles-apache-bcel +%{ant_home}/lib/%{name}-apache-bcel.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/apache-bcel + +%files apache-oro -f .mfiles-apache-oro +%{ant_home}/lib/%{name}-apache-oro.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/apache-oro +%{ant_home}/etc/maudit-frames.xsl + +%files apache-regexp -f .mfiles-apache-regexp +%{ant_home}/lib/%{name}-apache-regexp.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/apache-regexp + +%files apache-xalan2 -f .mfiles-apache-xalan2 +%{ant_home}/lib/%{name}-apache-xalan2.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/apache-xalan2 + +%files imageio -f .mfiles-imageio +%{ant_home}/lib/%{name}-imageio.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/imageio + +%files jakartamail -f .mfiles-jakartamail +%{ant_home}/lib/%{name}-jakartamail.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/jakartamail + +%files jdepend -f .mfiles-jdepend +%{ant_home}/lib/%{name}-jdepend.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/jdepend +%{ant_home}/etc/jdepend.xsl +%{ant_home}/etc/jdepend-frames.xsl + +%files jsch -f .mfiles-jsch +%{ant_home}/lib/%{name}-jsch.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/jsch + +%files junit5 -f .mfiles-junitlauncher +%{ant_home}/lib/%{name}-junitlauncher.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/junitlauncher + +%files testutil -f .mfiles-testutil +%{ant_home}/lib/%{name}-testutil.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/testutil + +%files xz -f .mfiles-xz +%{ant_home}/lib/%{name}-xz.jar +%config(noreplace) %{_sysconfdir}/%{name}.d/xz + +%files manual +%license LICENSE NOTICE +%doc manual/* + +%files javadoc +%license LICENSE NOTICE +%{_javadocdir}/%{name} + +%endif + +# ----------------------------------------------------------------------------- + +%changelog +* Fri Jan 10 2025 Marian Koncek - 1.10.15-19 +- Import from Fedora + +* Thu Jan 02 2025 Mikolaj Izdebski - 1.10.15-18 +- Drop Obsoletes on ant-javamail + +* Wed Dec 04 2024 Mikolaj Izdebski - 1.10.15-17 +- Exclude several subpackages from unbound test plan + +* Tue Dec 03 2024 Mikolaj Izdebski - 1.10.15-16 +- Fix ant-manual license field + +* Mon Dec 02 2024 Mikolaj Izdebski - 1.10.15-15 +- Use smaller jlink image + +* Mon Dec 02 2024 Mikolaj Izdebski - 1.10.15-14 +- Require /plans/matrix/unbound/jlink for gating + +* Mon Dec 02 2024 Mikolaj Izdebski - 1.10.15-13 +- Add test plan for ant-unbound + +* Mon Dec 02 2024 Mikolaj Izdebski - 1.10.15-12 +- Exclude ant-unbound from openjdk21 tests + +* Fri Nov 29 2024 Mikolaj Izdebski - 1.10.15-11 +- Drop explicit requires on javapackages-tools + +* Fri Nov 22 2024 Mikolaj Izdebski - 1.10.15-10 +- Generate bindings with %%jp_binding macro + +* Wed Oct 30 2024 Mikolaj Izdebski - 1.10.15-9 +- Work around iconv clobbering file permissions + +* Wed Oct 30 2024 Marian Koncek - 1.10.15-8 +- Replace with %%{buildroot} + +* Wed Oct 30 2024 Marian Koncek - 1.10.15-7 +- Add ant-openjdk21 subpackage + +* Wed Oct 30 2024 Mikolaj Izdebski - 1.10.15-6 +- Respect JAVA_HOME set by user + +* Wed Oct 30 2024 Mikolaj Izdebski - 1.10.15-5 +- Switch to matrix tests + +* Thu Sep 19 2024 Mikolaj Izdebski - 1.10.15-4 +- Require OpenJDK 21 for runtime + +* Wed Sep 18 2024 Marian Koncek - 1.10.15-3 +- Use asciidoctor instead of asciidoc for manpage generation + +* Tue Sep 03 2024 Mikolaj Izdebski - 1.10.15-2 +- Use %%autosetup -C + +* Tue Sep 03 2024 Mikolaj Izdebski - 1.10.15-1 +- Update to upstream version 1.10.15 +- Resolves: rhbz#2309001 + +* Mon Aug 26 2024 Mikolaj Izdebski - 1.10.14-22 +- Drop explicit LC_ALL setting diff --git a/apache-ant-1.8.ant.conf b/apache-ant-1.8.ant.conf new file mode 100644 index 0000000..1a27083 --- /dev/null +++ b/apache-ant-1.8.ant.conf @@ -0,0 +1,24 @@ +# ant.conf (Ant 1.8.x) +# JPackage Project + +# Validate --noconfig setting in case being invoked +# from pre Ant 1.6.x environment +if [ -z "$no_config" ] ; then + no_config=true +fi + +# Setup ant configuration +if $no_config ; then + # Disable RPM layout + rpm_mode=false +else + # Use RPM layout + rpm_mode=true + + # ANT_HOME for rpm layout + ANT_HOME=/usr/share/ant + + if [ -z "$JAVA_HOME" ] ; then + . /etc/java/ant.conf + fi +fi diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..aea4399 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,10 @@ +--- !Policy +product_versions: + - rhel-9 +decision_contexts: + - osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/matrix/jdk21/full.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/matrix/jdk21/headless.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/matrix/unbound/jlink.functional} + - !PassingTestCaseRule {test_case_name: osci.brew-build./plans/javapackages.functional} diff --git a/plans/javapackages.fmf b/plans/javapackages.fmf new file mode 100644 index 0000000..8ba3510 --- /dev/null +++ b/plans/javapackages.fmf @@ -0,0 +1,7 @@ +summary: Run javapackages-specific tests +discover: + how: fmf + url: https://src.fedoraproject.org/tests/javapackages + ref: c9s +execute: + how: tmt diff --git a/plans/matrix.fmf b/plans/matrix.fmf new file mode 100644 index 0000000..950839c --- /dev/null +++ b/plans/matrix.fmf @@ -0,0 +1,55 @@ +discover: + how: fmf + url: https://src.fedoraproject.org/tests/ant + +execute: + how: tmt + +/jdk21: + environment: + OPENJDK_VERSION: 21 + prepare: + - how: install + exclude: + - ant-unbound + + /full: + summary: Ant matrix tests - OpenJDK 21 full + discover+: + filter: tag:jdk21 & tier:0,1 + + /headless: + summary: Ant matrix tests - OpenJDK 21 headless + discover+: + filter: tag:jre21 & tier:0,1 + environment+: + OPENJDK_HEADLESS: "true" + prepare+: + - how: shell + script: | + dnf -y remove java-*-openjdk + +/unbound: + prepare: + - how: install + exclude: + - ant-openjdk21 + # These subpackages pull in packaged Java through their dependencies + - ant-antlr + - ant-apache-regexp + - ant-apache-resolver + - ant-apache-xalan2 + - ant-junit5 + + /jlink: + summary: Ant matrix tests - unbound jlink-based Java + discover+: + filter: tag:unbound & tier:0,1 + prepare+: + - how: shell + script: | + test -d /opt/java && test -x /usr/local/bin/java && exit 0 + dnf -y install java-21-openjdk-jmods + jlink --add-modules java.base,java.xml --output /opt/java + ln -s /opt/java/bin/java /usr/local/bin/java + dnf -y remove java-21-openjdk-jmods diff --git a/sources b/sources new file mode 100644 index 0000000..ce47a63 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (apache-ant-1.10.15-src.tar.bz2) = fd9477ce9ee0f4dcf000ab1583d1b6b85bc65be45a1a0d7366420029be6983e47fe44c3293263c54cde957b13a6bb2a29ea1b059a30f745ccc6219480feefac2