Implement bootstrap mode

This commit is contained in:
Mikolaj Izdebski 2021-05-14 13:10:07 +02:00
parent abbad1c3f6
commit c9ae62152d

View File

@ -28,6 +28,8 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
%bcond_with bootstrap
%global ant_home %{_datadir}/ant
Name: ant
@ -43,14 +45,17 @@ Source2: apache-ant-1.8.ant.conf
# manpage
Source3: ant.asciidoc
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: asciidoc
BuildRequires: xmlto
BuildRequires: mvn(antlr:antlr)
BuildRequires: mvn(bcel:bcel)
BuildRequires: mvn(bsf:bsf)
@ -70,6 +75,7 @@ BuildRequires: mvn(org.hamcrest:hamcrest-core)
BuildRequires: mvn(org.hamcrest:hamcrest-library)
BuildRequires: junit5
%endif
# Theoretically Ant might be usable with just JRE, but typical Ant
# workflow requires full JDK, so we recommend it here.
@ -109,6 +115,18 @@ 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} = %{version}-%{release}
@ -266,16 +284,6 @@ Optional jsch tasks for %{name}.
%description jsch -l fr
Taches jsch optionelles pour %{name}.
%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}.
%package junit5
Summary: Optional junit5 tasks for %{name}
Requires: %{name} = %{version}-%{release}
@ -321,6 +329,8 @@ Javadoc for %{name}.
%description javadoc -l fr
Javadoc pour %{name}.
%endif
# -----------------------------------------------------------------------------
%prep
@ -340,7 +350,11 @@ rm src/tests/junit/org/apache/tools/ant/types/selectors/SignedSelectorTest.java
src/tests/junit/org/apache/tools/mail/MailMessageTest.java
#install jars
%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/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 junit5 opentest4j
%endif
# fix hardcoded paths in ant script and conf
cp -p %{SOURCE2} %{name}.conf
@ -370,7 +384,11 @@ mv LICENSE.utf8 LICENSE
%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
%if %{with bootstrap}
%{ant} jars
%else
%{ant} jars test-jar javadocs
%endif
# typeset the manpage
mkdir man
@ -390,6 +408,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
@ -426,6 +454,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
@ -440,6 +473,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
@ -456,8 +494,6 @@ 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
@ -469,12 +505,16 @@ cp -pr build/javadocs/* $RPM_BUILD_ROOT%{_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 bootstrap}
%check
LC_ALL=C.UTF-8 %{ant} test
%endif
%files
%doc KEYS README WHATSNEW
@ -503,6 +543,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
@ -570,17 +623,6 @@ 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
%files junit5 -f .mfiles-junitlauncher
%{ant_home}/lib/%{name}-junitlauncher.jar
%config(noreplace) %{_sysconfdir}/%{name}.d/junitlauncher
@ -601,6 +643,8 @@ LC_ALL=C.UTF-8 %{ant} test
%license LICENSE NOTICE
%{_javadocdir}/%{name}
%endif
# -----------------------------------------------------------------------------
%changelog