Merge branch 'maven' into stream-javapackages-tools-202501-rhel-9.6.0

This commit is contained in:
Johnny Hughes 2025-01-15 11:34:17 -06:00
commit 885c7117f6
11 changed files with 1092 additions and 0 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

31
.gitignore vendored
View File

@ -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

37
ant-build.xml.patch Normal file
View File

@ -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 @@
</metainf>
<manifest>
<attribute name="Main-Class" value="org.apache.tools.ant.Main"/>
- <attribute name="Class-Path" value="ant.jar xalan.jar"/>
</manifest>
</jar>
@@ -1562,7 +1559,25 @@
verbose="${javadoc.verbose}"
additionalparam="${javadoc.doclint.none}">
- <packageset dir="${java.dir}"/>
+ <fileset dir="${java.dir}">
+ <include name="**/*.java"/>
+ <exclude name="org/apache/tools/ant/taskdefs/email/MimeMailer.java"/>
+ <exclude name="org/apache/tools/ant/taskdefs/optional/NetRexxC.java"/>
+ <exclude name="org/apache/tools/ant/taskdefs/optional/image/Image.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/Arc.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/BasicShape.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/Draw.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/DrawOperation.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/Ellipse.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/ImageOperation.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/Rectangle.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/Rotate.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/Scale.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/Text.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/TransformOperation.java"/>
+ <exclude name="org/apache/tools/ant/types/optional/image/ColorMapper.java"/>
+ <exclude name="org/apache/tools/ant/taskdefs/optional/image/ImageIOTask.java"/>
+ </fileset>
<!-- hide some meta information for javadoc -->
<tag name="todo" description="To do:" scope="all"/>

170
ant.asciidoc Normal file
View File

@ -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 <project> 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 <path>*::
specifies a path to search for jars and classes
*-logfile <file>, -l <file>*::
use given file for log
*-logger <classname>*::
the class which is to perform logging
*-listener <classname>*::
add an instance of class as a project listener
*-noinput*::
do not allow interactive input
*-buildfile <file>, -file <file>, -f <file>*::
use given buildfile
*-D<property>=<value>*::
use value for given property
*-keep-going, -k*::
execute all targets that do not depend on failed target(s)
*-propertyfile <name>*::
load all properties from file with *-D* properties taking precedence
*-inputhandler <class>*::
the class which will handle input requests
*-find <file>, -f <file>*::
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 <class>*::
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)

755
ant.spec Normal file
View File

@ -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 <mkoncek@redhat.com> - 1.10.15-19
- Import from Fedora
* Thu Jan 02 2025 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-18
- Drop Obsoletes on ant-javamail
* Wed Dec 04 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-17
- Exclude several subpackages from unbound test plan
* Tue Dec 03 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-16
- Fix ant-manual license field
* Mon Dec 02 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-15
- Use smaller jlink image
* Mon Dec 02 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-14
- Require /plans/matrix/unbound/jlink for gating
* Mon Dec 02 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-13
- Add test plan for ant-unbound
* Mon Dec 02 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-12
- Exclude ant-unbound from openjdk21 tests
* Fri Nov 29 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-11
- Drop explicit requires on javapackages-tools
* Fri Nov 22 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-10
- Generate bindings with %%jp_binding macro
* Wed Oct 30 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-9
- Work around iconv clobbering file permissions
* Wed Oct 30 2024 Marian Koncek <mkoncek@redhat.com> - 1.10.15-8
- Replace with %%{buildroot}
* Wed Oct 30 2024 Marian Koncek <mkoncek@redhat.com> - 1.10.15-7
- Add ant-openjdk21 subpackage
* Wed Oct 30 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-6
- Respect JAVA_HOME set by user
* Wed Oct 30 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-5
- Switch to matrix tests
* Thu Sep 19 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-4
- Require OpenJDK 21 for runtime
* Wed Sep 18 2024 Marian Koncek <mkoncek@redhat.com> - 1.10.15-3
- Use asciidoctor instead of asciidoc for manpage generation
* Tue Sep 03 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-2
- Use %%autosetup -C
* Tue Sep 03 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.15-1
- Update to upstream version 1.10.15
- Resolves: rhbz#2309001
* Mon Aug 26 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.10.14-22
- Drop explicit LC_ALL setting

24
apache-ant-1.8.ant.conf Normal file
View File

@ -0,0 +1,24 @@
# ant.conf (Ant 1.8.x)
# JPackage Project <http://www.jpackage.org/>
# 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

1
ci.fmf Normal file
View File

@ -0,0 +1 @@
resultsdb-testcase: separate

10
gating.yaml Normal file
View File

@ -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}

7
plans/javapackages.fmf Normal file
View File

@ -0,0 +1,7 @@
summary: Run javapackages-specific tests
discover:
how: fmf
url: https://src.fedoraproject.org/tests/javapackages
ref: c9s
execute:
how: tmt

55
plans/matrix.fmf Normal file
View File

@ -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

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (apache-ant-1.10.15-src.tar.bz2) = fd9477ce9ee0f4dcf000ab1583d1b6b85bc65be45a1a0d7366420029be6983e47fe44c3293263c54cde957b13a6bb2a29ea1b059a30f745ccc6219480feefac2