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