diff --git a/ant-build.xml.patch b/ant-build.xml.patch
new file mode 100644
index 0000000..9c4652f
--- /dev/null
+++ b/ant-build.xml.patch
@@ -0,0 +1,46 @@
+--- build.xml~ 2021-05-17 12:32:48.406394876 +0200
++++ build.xml 2021-05-17 12:32:39.990389601 +0200
+@@ -145,8 +145,6 @@
+ -->
+
+
+-
+-
+
+
+
+
diff --git a/ant.spec b/ant.spec
index 799f3a8..9f77dcc 100644
--- a/ant.spec
+++ b/ant.spec
@@ -1,3 +1,7 @@
+# Workaround for rhbz#1969370: __bootstrap macro is not defined in
+# CentOS Stream, See https://bugzilla.redhat.com/1969370
+%global __bootstrap ~bootstrap
+
# Copyright (c) 2000-2008, JPackage Project
# All rights reserved.
#
@@ -28,16 +32,13 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-%bcond_without tests
-%bcond_with javadoc
-%bcond_without junit5
+%bcond_without bootstrap
%global ant_home %{_datadir}/ant
Name: ant
-Epoch: 0
Version: 1.10.9
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Java build tool
Summary(it): Tool per la compilazione di programmi java
Summary(fr): Outil de compilation pour java
@@ -48,14 +49,19 @@ Source2: apache-ant-1.8.ant.conf
# manpage
Source3: ant.asciidoc
-BuildRequires: javapackages-local
-BuildRequires: java-devel >= 1:1.8.0
-BuildRequires: ant >= 1.10.2
-BuildRequires: ant-junit
+Patch0: %{name}-build.xml.patch
BuildRequires: asciidoc
BuildRequires: xmlto
+BuildRequires: javapackages-local
+%if %{with bootstrap}
+BuildRequires: javapackages-bootstrap
+%else
+BuildRequires: java-devel >= 1:1.8.0
+BuildRequires: ant >= 1.10.2
+BuildRequires: ant-junit
+
BuildRequires: mvn(antlr:antlr)
BuildRequires: mvn(bcel:bcel)
BuildRequires: mvn(bsf:bsf)
@@ -65,7 +71,7 @@ BuildRequires: mvn(commons-net:commons-net)
BuildRequires: mvn(javax.mail:mail)
BuildRequires: mvn(jdepend:jdepend)
BuildRequires: mvn(junit:junit)
-BuildRequires: mvn(org.apache.logging.log4j:log4j-1.2-api)
+BuildRequires: mvn(log4j:log4j:1.2.13)
BuildRequires: mvn(org.tukaani:xz)
BuildRequires: mvn(oro:oro)
BuildRequires: mvn(regexp:regexp)
@@ -74,15 +80,14 @@ BuildRequires: mvn(xml-resolver:xml-resolver)
BuildRequires: mvn(org.hamcrest:hamcrest-core)
BuildRequires: mvn(org.hamcrest:hamcrest-library)
-%if %{with junit5}
BuildRequires: junit5
%endif
# Theoretically Ant might be usable with just JRE, but typical Ant
# workflow requires full JDK, so we recommend it here.
-%{?fedora:Recommends}%{!?fedora:Requires}: java-devel >= 1:1.8.0
+Recommends: java-devel >= 1:1.8.0
-Requires: %{name}-lib = %{epoch}:%{version}-%{release}
+Requires: %{name}-lib = %{version}-%{release}
# Require full javapackages-tools since the ant script uses
# /usr/share/java-utils/java-functions
Requires: javapackages-tools
@@ -116,9 +121,21 @@ 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 bootstrap}
+
%package jmf
Summary: Optional jmf tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description jmf
Optional jmf tasks for %{name}.
@@ -128,7 +145,7 @@ Taches jmf optionelles pour %{name}.
%package swing
Summary: Optional swing tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description swing
Optional swing tasks for %{name}.
@@ -138,7 +155,7 @@ Taches swing optionelles pour %{name}.
%package antlr
Summary: Optional antlr tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description antlr
Optional antlr tasks for %{name}.
@@ -148,7 +165,7 @@ Taches antlr optionelles pour %{name}.
%package apache-bsf
Summary: Optional apache bsf tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description apache-bsf
Optional apache bsf tasks for %{name}.
@@ -158,7 +175,7 @@ Taches apache bsf optionelles pour %{name}.
%package apache-resolver
Summary: Optional apache resolver tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description apache-resolver
Optional apache resolver tasks for %{name}.
@@ -168,7 +185,7 @@ Taches apache resolver optionelles pour %{name}.
%package commons-logging
Summary: Optional commons logging tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description commons-logging
Optional commons logging tasks for %{name}.
@@ -178,7 +195,7 @@ Taches commons logging optionelles pour %{name}.
%package commons-net
Summary: Optional commons net tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description commons-net
Optional commons net tasks for %{name}.
@@ -186,22 +203,9 @@ Optional commons net tasks for %{name}.
%description commons-net -l fr
Taches commons net optionelles pour %{name}.
-# Disable because we don't ship the dependencies
-%if 0
-%package jai
-Summary: Optional jai tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
-
-%description jai
-Optional jai tasks for %{name}.
-
-%description jai -l fr
-Taches jai optionelles pour %{name}.
-%endif
-
%package apache-bcel
Summary: Optional apache bcel tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description apache-bcel
Optional apache bcel tasks for %{name}.
@@ -211,7 +215,7 @@ Taches apache bcel optionelles pour %{name}.
%package apache-log4j
Summary: Optional apache log4j tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description apache-log4j
Optional apache log4j tasks for %{name}.
@@ -221,7 +225,7 @@ Taches apache log4j optionelles pour %{name}.
%package apache-oro
Summary: Optional apache oro tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description apache-oro
Optional apache oro tasks for %{name}.
@@ -231,7 +235,7 @@ Taches apache oro optionelles pour %{name}.
%package apache-regexp
Summary: Optional apache regexp tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description apache-regexp
Optional apache regexp tasks for %{name}.
@@ -241,7 +245,7 @@ Taches apache regexp optionelles pour %{name}.
%package apache-xalan2
Summary: Optional apache xalan2 tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description apache-xalan2
Optional apache xalan2 tasks for %{name}.
@@ -251,14 +255,14 @@ Taches apache xalan2 optionelles pour %{name}.
%package imageio
Summary: Optional imageio tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description imageio
Optional imageio tasks for %{name}.
%package javamail
Summary: Optional javamail tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description javamail
Optional javamail tasks for %{name}.
@@ -268,7 +272,7 @@ Taches javamail optionelles pour %{name}.
%package jdepend
Summary: Optional jdepend tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description jdepend
Optional jdepend tasks for %{name}.
@@ -278,7 +282,7 @@ Taches jdepend optionelles pour %{name}.
%package jsch
Summary: Optional jsch tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description jsch
Optional jsch tasks for %{name}.
@@ -286,38 +290,26 @@ Optional jsch tasks for %{name}.
%description jsch -l fr
Taches jsch optionelles pour %{name}.
-%package junit
-Summary: Optional junit tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
-
-%description junit
-Optional junit tasks for %{name}.
-
-%description junit -l fr
-Taches junit optionelles pour %{name}.
-
-%if %{with junit5}
%package junit5
Summary: Optional junit5 tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description junit5
Optional junit5 tasks for %{name}.
%description junit5 -l fr
Taches junit5 optionelles pour %{name}.
-%endif
%package testutil
Summary: Test utility classes for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description testutil
Test utility tasks for %{name}.
%package xz
Summary: Optional xz tasks for %{name}
-Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: %{name} = %{version}-%{release}
%description xz
Optional xz tasks for %{name}.
@@ -343,13 +335,13 @@ Javadoc for %{name}.
%description javadoc -l fr
Javadoc pour %{name}.
+%endif
+
# -----------------------------------------------------------------------------
%prep
%setup -q -n apache-ant-%{version}
-
-# Fix class-path-in-manifest rpmlint warning
-%pom_xpath_remove 'attribute[@name="Class-Path"]' build.xml
+%patch0 -p0
# clean jar files
find . -name "*.jar" | xargs -t rm
@@ -362,9 +354,10 @@ rm src/tests/junit/org/apache/tools/ant/types/selectors/SignedSelectorTest.java
src/tests/junit/org/apache/tools/mail/MailMessageTest.java
#install jars
-build-jar-repository -s -p lib/optional antlr bcel javamail/mailapi jdepend junit log4j/log4j-1.2-api oro regexp bsf commons-logging commons-net jsch xalan-j2 xml-commons-resolver xalan-j2-serializer hamcrest/core hamcrest/library xz-java
-%if %{with junit5}
-build-jar-repository -s -p lib/optional junit5 opentest4j
+%if %{with bootstrap}
+build-jar-repository -s -p lib/optional javapackages-bootstrap/junit javapackages-bootstrap/hamcrest-core
+%else
+build-jar-repository -s -p lib/optional antlr bcel javamail/mailapi jdepend junit log4j-1 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
# fix hardcoded paths in ant script and conf
@@ -388,21 +381,14 @@ mv LICENSE.utf8 LICENSE
# We want a hard dep on antlr
%pom_xpath_remove pom:optional src/etc/poms/ant-antlr/pom.xml
-%if %{without junit5}
-%pom_xpath_inject 'target[@name="javadocs"]/javadoc/packageset' '' build.xml
-%endif
-
# fix javamail dependency coordinates (remove once javamail is updated)
%pom_change_dep -r com.sun.mail:jakarta.mail javax.mail:mail src/etc/poms/ant-javamail/pom.xml
-# switch from log4j 1.2 compat package to log4j 1.2 API shim
-%pom_change_dep log4j:log4j org.apache.logging.log4j:log4j-1.2-api:2.13.3 src/etc/poms/ant-apache-log4j/pom.xml
-
%build
-%{ant} jars test-jar
-
-%if %with javadoc
-%{ant} javadocs
+%if %{with bootstrap}
+%{ant} jars
+%else
+%{ant} jars test-jar javadocs
%endif
# typeset the manpage
@@ -412,9 +398,6 @@ xmlto man man/%{name}.xml -o man
#remove empty jai and netrexx jars. Due to missing dependencies they contain only manifests.
rm -fr build/lib/ant-jai.jar build/lib/ant-netrexx.jar
-%if %{without junit5}
-rm -f build/lib/ant-junitlauncher.jar
-%endif
# -----------------------------------------------------------------------------
%install
@@ -426,6 +409,16 @@ mkdir -p $RPM_BUILD_ROOT%{ant_home}/{lib,etc,bin}
%mvn_file ':{ant,ant-bootstrap,ant-launcher}' %{name}/@1 @1
+%if %{with bootstrap}
+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
@@ -462,6 +455,11 @@ rm -f src/script/*.bat
rm -f src/script/*.cmd
# XSLs
+%if %{with bootstrap}
+rm src/etc/jdepend-frames.xsl
+rm src/etc/jdepend.xsl
+rm src/etc/maudit-frames.xsl
+%endif
cp -p src/etc/*.xsl $RPM_BUILD_ROOT%{ant_home}/etc
# install everything else
@@ -476,6 +474,11 @@ cp -p %{name}.conf $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.conf
# OPT_JAR_LIST fragments
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d
+echo "junit hamcrest/core ant/ant-junit" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/junit
+echo "junit hamcrest/core ant/ant-junit4" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/junit4
+
+%if %{without bootstrap}
+
echo "ant/ant-jmf" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/jmf
echo "ant/ant-swing" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/swing
echo "antlr ant/ant-antlr" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/antlr
@@ -483,9 +486,8 @@ echo "rhino bsf ant/ant-apache-bsf" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/ap
echo "xml-commons-resolver ant/ant-apache-resolver" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-resolver
echo "apache-commons-logging ant/ant-commons-logging" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/commons-logging
echo "apache-commons-net ant/ant-commons-net" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/commons-net
-#echo "jai ant/ant-jai" > $RPM_BUILD_ROOT%%{_sysconfdir}/%%{name}.d/jai
echo "bcel ant/ant-apache-bcel" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-bcel
-echo "log4j/log4j-1.2-api log4j/log4j-api log4j/log4j-core ant/ant-apache-log4j" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-log4j
+echo "log4j12 ant/ant-apache-log4j" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-log4j
echo "oro ant/ant-apache-oro" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-oro
echo "regexp ant/ant-apache-regexp" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-regexp
echo "xalan-j2 xalan-j2-serializer ant/ant-apache-xalan2" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-xalan2
@@ -493,29 +495,24 @@ echo "ant/ant-imageio" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/imageio
echo "javamail jaf ant/ant-javamail" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/javamail
echo "jdepend ant/ant-jdepend" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/jdepend
echo "jsch ant/ant-jsch" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/jsch
-echo "junit hamcrest/core ant/ant-junit" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/junit
-echo "junit hamcrest/core ant/ant-junit4" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/junit4
+echo "junit5 hamcrest/core junit opentest4j ant/ant-junitlauncher" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/junitlauncher
echo "testutil ant/ant-testutil" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/testutil
echo "xz-java ant/ant-xz" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/xz
-%if %{with junit5}
-echo "junit5 hamcrest/core junit opentest4j ant/ant-junitlauncher" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/junitlauncher
-%endif
-
-%if %with javadoc
# javadoc
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}
cp -pr build/javadocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-%endif
# 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 %with tests
+%if %{without bootstrap}
%check
LC_ALL=C.UTF-8 %{ant} test
%endif
@@ -547,6 +544,19 @@ LC_ALL=C.UTF-8 %{ant} test
%{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 bootstrap}
+
%files jmf -f .mfiles-jmf
%{ant_home}/lib/%{name}-jmf.jar
%config(noreplace) %{_sysconfdir}/%{name}.d/jmf
@@ -575,13 +585,6 @@ LC_ALL=C.UTF-8 %{ant} test
%{ant_home}/lib/%{name}-commons-net.jar
%config(noreplace) %{_sysconfdir}/%{name}.d/commons-net
-# Disable as we dont ship the dependencies
-%if 0
-%files jai -f .mfiles-jai
-%{ant_home}/lib/%{name}-jai.jar
-%config(noreplace) %{_sysconfdir}/%{name}.d/jai
-%endif
-
%files apache-bcel -f .mfiles-apache-bcel
%{ant_home}/lib/%{name}-apache-bcel.jar
%config(noreplace) %{_sysconfdir}/%{name}.d/apache-bcel
@@ -621,22 +624,9 @@ LC_ALL=C.UTF-8 %{ant} test
%{ant_home}/lib/%{name}-jsch.jar
%config(noreplace) %{_sysconfdir}/%{name}.d/jsch
-%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 %{with junit5}
%files junit5 -f .mfiles-junitlauncher
%{ant_home}/lib/%{name}-junitlauncher.jar
%config(noreplace) %{_sysconfdir}/%{name}.d/junitlauncher
-%endif
%files testutil -f .mfiles-testutil
%{ant_home}/lib/%{name}-testutil.jar
@@ -650,17 +640,21 @@ LC_ALL=C.UTF-8 %{ant} test
%license LICENSE NOTICE
%doc manual/*
-%if %with javadoc
%files javadoc
%license LICENSE NOTICE
%{_javadocdir}/%{name}
+
%endif
# -----------------------------------------------------------------------------
%changelog
-* Thu Apr 15 2021 Mohan Boddu - 0:1.10.9-3
-- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
+* Tue Jun 08 2021 Mikolaj Izdebski - 1.10.9-4
+- Bootstrap Maven for CentOS Stream 9
+
+* Mon May 17 2021 Mikolaj Izdebski - 1.10.9-3
+- Bootstrap build
+- Non-bootstrap build
* Tue Jan 26 2021 Fedora Release Engineering - 0:1.10.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild