# TODO
+# - review config files in /etc/ant.d. Something seems to be broken there.
# - prepare all BR and test the full build
-# (TODO: stylebook, starteam, weblogic)
+# TODO:
+# - stylebook: http://svn.apache.org/viewcvs.cgi/xml/stylebook/
+# - starteam: http://www.borland.com/downloads/download_starteam.html (30-day trial, needs registration)
+# - weblogic: http://www.bea.com/ ? (needs registration)
#
# Conditional build:
%bcond_with bootstrap # minimal build for bootstrap
%bcond_without jsch # disable building jsch optional task(s)
%bcond_without junit # disable building junit optional task(s)
%bcond_without netrexx # disable building netrexx optional taks(s)
-#
-%if !%{with nonfree}
+
+%if %{without nonfree}
%undefine with_jai
%endif
%if %{with bootstrap}
%undefine with_jsch
%undefine with_netrexx
%endif
-#
-%define _rel 0.1
+
+%define rel 1
+%include /usr/lib/rpm/macros.java
Summary: Ant build tool for Java
Summary(fr.UTF-8): Outil de compilation pour java
Summary(it.UTF-8): Tool per la compilazione di programmi java
Summary(pl.UTF-8): Ant - narzędzie do budowania w Javie
Name: ant
-Version: 1.7.0
-Release: %{?with_bootstrap:bootstrap.}%{_rel}
+Version: 1.8.4
+Release: %{bootstrap_release %rel}
License: Apache
Group: Development/Languages/Java
Source0: http://www.apache.org/dist/ant/source/apache-%{name}-%{version}-src.tar.bz2
-# Source0-md5: 22b378e27ab300e4d73bf09d91c7e2a6
+# Source0-md5: c474fa9d0c35a24037c23b6e476862c1
Source1: %{name}.conf
Patch0: %{name}-antRun.patch
+
+Patch2: no-resourcecount.patch
URL: http://ant.apache.org/
%{?with_antlr:BuildRequires: antlr}
-%{?with_apache_bsf:BuildRequires: beanshell}
-%{?with_apache_bsf:BuildRequires: bsf}
-%{?with_javamail:BuildRequires: jaf}
-%{?with_apache_bcel:BuildRequires: jakarta-bcel}
-%{?with_commons_logging:BuildRequires: jakarta-commons-logging}
-%{?with_commons_net:BuildRequires: jakarta-commons-net}
-%{?with_apache_oro:BuildRequires: jakarta-oro}
-%{?with_apache_regexp:BuildRequires: jakarta-regexp}
-%{?with_jai:BuildRequires: jai}
-%{?with_javamail:BuildRequires: javamail}
-BuildRequires: jaxp_parser_impl
+%{!?with_bootstrap:BuildRequires: ant}
+%{?with_javamail:BuildRequires: java(jaf)}
+%{?with_jai:BuildRequires: java(jai)}
+%{?with_javamail:BuildRequires: java(javamail)}
+%{?with_apache_bcel:BuildRequires: java-bcel}
+%{?with_apache_bsf:BuildRequires: java-beanshell}
+%{?with_apache_bsf:BuildRequires: java-bsf}
+%{?with_commons_logging:BuildRequires: java-commons-logging}
+%{?with_commons_net:BuildRequires: java-commons-net1}
+%{?with_jdepend:BuildRequires: java-jdepend}
+%{?with_jsch:BuildRequires: java-jsch >= 0.1.21}
+%{?with_junit:BuildRequires: java-junit}
+%{?with_apache_log4j:BuildRequires: java-log4j >= 1.2}
+%{?with_netrexx:BuildRequires: java-netrexx}
+%{?with_apache_oro:BuildRequires: java-oro}
+%{?with_apache_regexp:BuildRequires: java-regexp}
+BuildRequires: java-xerces
+%{?with_apache_resolver:BuildRequires: java-xml-commons-resolver}
BuildRequires: jdk
BuildRequires: jpackage-utils
-%{?with_jsch:BuildRequires: jsch >= 0.1.21}
-%{?with_junit:BuildRequires: junit}
%{?with_apache_bsf:BuildRequires: jython}
-%{?with_apache_log4j:BuildRequires: logging-log4j >= 1.2}
-%{?with_netrexx:BuildRequires: netrexx}
+BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpm-javaprov
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.300
-%{?with_apache_resolver:BuildRequires: xml-commons-resolver}
-Requires: jdk
Requires: jpackage-utils
Obsoletes: jakarta-ant
+Obsoletes: ant-nodeps
BuildArch: noarch
-ExclusiveArch: i586 i686 pentium3 pentium4 athlon %{x8664} noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define ant_home %{_datadir}/ant
Summary(pl.UTF-8): Opcjonalne zadania apache bcel dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jakarta-bcel
+Requires: java-bcel
Provides: ant-jakarta-bcel = %{version}-%{release}
Obsoletes: ant-jakarta-bcel
Conflicts: ant-optional-clean
Summary(pl.UTF-8): Opcjonalne zadania apache bsf dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: bsf
+Requires: java-bsf
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania apache log4j dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: logging-log4j >= 1.2
+Requires: java-log4j >= 1.2
Provides: ant-jakarta-log4j = %{version}-%{release}
Obsoletes: ant-jakarta-log4j
Conflicts: ant-optional-clean
Summary(pl.UTF-8): Opcjonalne zadania apache oro dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jakarta-oro
+Requires: java-oro
Provides: ant-jakarta-oro = %{version}-%{release}
Obsoletes: ant-jakarta-oro
Conflicts: ant-optional-clean
Summary(pl.UTF-8): Opcjonalne zadania apache regexp dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jakarta-regexp
+Requires: java-regexp
Obsoletes: ant-jakarta-regexp
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania apache resolver dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: xml-commons-resolver
+Requires: java-xml-commons-resolver
Provides: ant-apache-resolver = %{version}-%{release}
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania commons logging dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jakarta-commons-logging
+Requires: java-commons-logging
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania commons net dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jakarta-commons-net
+Requires: java-commons-net1
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania javamail dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jaf
-Requires: javamail >= 1.2
+Requires: java(jaf)
+Requires: java(javamail) >= 1.2
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania jdepend dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jdepend
+Requires: java-jdepend
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania jsch dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: jsch >= 0.1.21
+Requires: java-jsch
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
Summary(pl.UTF-8): Opcjonalne zadania junit dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
-Requires: junit
+Requires: java-junit
Conflicts: ant-optional-clean
Conflicts: ant-optional-full
%description netrexx -l pl.UTF-8
Opcjonalne zadania netrexx dla anta.
-%package nodeps
-Summary: Optional tasks for %{name}
-Summary(fr.UTF-8): Taches optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania dla anta
-Group: Development/Languages/Java
-Requires: %{name} = %{version}-%{release}
-Conflicts: ant-optional-clean
-Conflicts: ant-optional-full
-
-%description nodeps
-Optional tasks for %{name}.
-
-%description nodeps -l fr.UTF-8
-Taches optionelles pour %{name}.
-
-%description nodeps -l pl.UTF-8
-Opcjonalne zadania dla anta.
-
%package swing
Summary: Optional swing tasks for %{name}
Summary(fr.UTF-8): Taches swing optionelles pour %{name}
%description swing -l pl.UTF-8
Opcjonalne zadania swing dla anta.
-%package trax
-Summary: Optional trax tasks for %{name}
-Summary(fr.UTF-8): Taches trax optionelles pour %{name}
-Summary(pl.UTF-8): Dodatkowe zadania trax dla anta
-Group: Development/Languages/Java
-Requires: %{name} = %{version}-%{release}
-Requires: jaxp_transform_impl
-# The ant-xalan jar has been merged into the ant-trax one
-Obsoletes: ant-xalan2
-Conflicts: ant-optional-clean
-Conflicts: ant-optional-full
-
-%description trax
-Optional trax tasks for %{name}.
-
-%description trax -l fr.UTF-8
-Taches trax optionelles pour %{name}.
-
-%description trax -l pl.UTF-8
-Dodatkowe zadania trax dla anta.
-
%package scripts
Summary: Additional scripts for %{name}
Summary(fr.UTF-8): Scripts additionels pour %{name}
Summary(pl.UTF-8): Dodatkowe skrypty dla anta
Group: Development/Languages/Java
-AutoReqProv: no
Requires: %{name} = %{version}-%{release}
Requires: /usr/bin/perl
Requires: /usr/bin/python
+AutoReqProv: no
%description scripts
Additional Perl and Python scripts for %{name}.
%setup -q -n apache-%{name}-%{version}
%patch0 -p1
+%{?with_bootstrap:%patch2 -p1}
+
# clean jar files
find . -name "*.jar" -exec rm -f {} \;
src/main/org/apache/tools/ant/taskdefs/Exec.java \
src/main/org/apache/tools/ant/taskdefs/Execute.java
+# avoid building test-jar
+sed -i -e 's#depends="jars,test-jar"#depends="jars"#g' build.xml
+
%build
export JAVA_HOME="%{java_home}"
%{?with_apache_bsf:required_jars="$required_jars bsf jython bsh"}
%{?with_apache_resolver:required_jars="$required_jars resolver"}
%{?with_commons_logging:required_jars="$required_jars commons-logging"}
-%{?with_commons_net:required_jars="$required_jars commons-net"}
+%{?with_commons_net:required_jars="$required_jars commons-net1"}
%{?with_jai:required_jars="$required_jars jai_core jai_codec"}
%{?with_apache_bcel:required_jars="$required_jars bcel"}
%{?with_apache_log4j:required_jars="$required_jars log4j"}
%{?with_apache_oro:required_jars="$required_jars oro"}
%{?with_apache_regexp:required_jars="$required_jars regexp"}
-%{?with_javamail:required_jars="$required_jars mailapi activation"}
+%{?with_javamail:required_jars="$required_jars mail activation"}
%{?with_jdepend:required_jars="$required_jars jdepend"}
%{?with_jsch:required_jars="$required_jars jsch"}
%{?with_netrexx:required_jars="$required_jars NetRexxC"}
-export CLASSPATH="`/usr/bin/build-classpath $required_jars`"
+CLASSPATH=$(build-classpath $required_jars)
+export CLASSPATH
+export SHELL=/bin/sh
+
+%if %{with bootstrap}
sh build.sh --noconfig main javadocs
+%else
+%ant -Dbuild.compiler=extJavac main javadocs
+%endif
%install
rm -rf $RPM_BUILD_ROOT
install dist/lib/%{name}-launcher.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-launcher-%{version}.jar
# optional jars
-install build/lib/%{name}-nodeps.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-nodeps-%{version}.jar
-install build/lib/%{name}-trax.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-trax-%{version}.jar
install build/lib/%{name}-jmf.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-jmf-%{version}.jar
install build/lib/%{name}-swing.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-swing-%{version}.jar
echo "ant/ant-jmf" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/jmf
-echo "ant/ant-nodeps" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/nodeps
echo "ant/ant-swing" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/swing
-echo "jaxp_transform_impl ant/ant-trax" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/trax
%if %{with junit}
install build/lib/%{name}-junit.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-junit-%{version}.jar
%if %{with apache_resolver}
install build/lib/%{name}-apache-resolver.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-apache-resolver-%{version}.jar
-echo "xml-commons-resolver ant/ant-apache-resolver" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-resolver
+echo "resolver ant/ant-apache-resolver" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/apache-resolver
%endif
%if %{with commons_logging}
install build/lib/%{name}-commons-logging.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-commons-logging-%{version}.jar
-echo "jakarta-commons-logging ant/ant-commons-logging" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/commons-logging
+echo "commons-logging ant/ant-commons-logging" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/commons-logging
%endif
%if %{with commons_net}
install build/lib/%{name}-commons-net.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-commons-net-%{version}.jar
-echo "jakarta-commons-net ant/ant-commons-net" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/commons-net
+echo "commons-net1 ant/ant-commons-net" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/commons-net
%endif
%if %{with jai}
%if %{with javamail}
install build/lib/%{name}-javamail.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/%{name}-javamail-%{version}.jar
-echo "javamail/mailapi jaf ant/ant-javamail" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/javamail
+echo "mail jaf ant/ant-javamail" > $RPM_BUILD_ROOT%{_sysconfdir}/%{name}.d/javamail
%endif
%if %{with jdepend}
# javadoc
install -d $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -pr build/javadocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
-
-# fix link between manual and javadoc
-cd docs/manual
-ln -sf %{_javadocdir}/%{name}-%{version} api
-cd ..
+ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink
%clean
rm -rf $RPM_BUILD_ROOT
%post javadoc
-rm -f %{_javadocdir}/%{name}
-ln -s %{name}-%{version} %{_javadocdir}/%{name}
-
-%postun javadoc
-if [ "$1" = "0" ]; then
- rm -f %{_javadocdir}/%{name}
-fi
+ln -nfs %{name}-%{version} %{_javadocdir}/%{name}
%files
%defattr(644,root,root,755)
%{_javadir}/%{name}-launcher-%{version}.jar
%dir %{_javadir}/%{name}
%dir %{ant_home}
-%dir %{ant_home}/etc
-%{ant_home}/etc/ant-update.xsl
-%{ant_home}/etc/changelog.xsl
-%{ant_home}/etc/common2master.xsl
-%{ant_home}/etc/log.xsl
-%{ant_home}/etc/tagdiff.xsl
-%{ant_home}/etc/junit-frames-xalan1.xsl
+%dir %{ant_home}%{_sysconfdir}
+%{ant_home}%{_sysconfdir}/ant-update.xsl
+%{ant_home}%{_sysconfdir}/changelog.xsl
+%{ant_home}%{_sysconfdir}/common2master.xsl
+%{ant_home}%{_sysconfdir}/coverage-frames.xsl
+%{ant_home}%{_sysconfdir}/log.xsl
+%{ant_home}%{_sysconfdir}/mmetrics-frames.xsl
+%{ant_home}%{_sysconfdir}/tagdiff.xsl
+%{ant_home}%{_sysconfdir}/junit-frames-xalan1.xsl
+%{ant_home}%{_sysconfdir}/printFailingTests.xsl
%dir %{ant_home}/lib
%dir %{_sysconfdir}/%{name}.d
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}.conf
%{_javadir}/%{name}/%{name}-apache-oro-%{version}.jar
%{_javadir}/%{name}/%{name}-jakarta-oro.jar
%{_sysconfdir}/%{name}.d/apache-oro
-%{ant_home}/etc/maudit-frames.xsl
+%{ant_home}%{_sysconfdir}/maudit-frames.xsl
%endif
%if %{with apache_regexp}
%{_javadir}/%{name}/%{name}-jdepend.jar
%{_javadir}/%{name}/%{name}-jdepend-%{version}.jar
%{_sysconfdir}/%{name}.d/jdepend
-%{ant_home}/etc/jdepend.xsl
-%{ant_home}/etc/jdepend-frames.xsl
+%{ant_home}%{_sysconfdir}/jdepend.xsl
+%{ant_home}%{_sysconfdir}/jdepend-frames.xsl
%endif
%files jmf
%{_javadir}/%{name}/%{name}-junit.jar
%{_javadir}/%{name}/%{name}-junit-%{version}.jar
%{_sysconfdir}/%{name}.d/junit
-%{ant_home}/etc/junit-frames.xsl
-%{ant_home}/etc/junit-noframes.xsl
+%{ant_home}%{_sysconfdir}/junit-frames.xsl
+%{ant_home}%{_sysconfdir}/junit-noframes.xsl
%endif
%if %{with netrexx}
%{_sysconfdir}/%{name}.d/netrexx
%endif
-%files nodeps
-%defattr(644,root,root,755)
-%{_javadir}/%{name}/%{name}-nodeps.jar
-%{_javadir}/%{name}/%{name}-nodeps-%{version}.jar
-%{_sysconfdir}/%{name}.d/nodeps
-
%files swing
%defattr(644,root,root,755)
%{_javadir}/%{name}/%{name}-swing.jar
%{_javadir}/%{name}/%{name}-swing-%{version}.jar
%{_sysconfdir}/%{name}.d/swing
-%files trax
-%defattr(644,root,root,755)
-%{_javadir}/%{name}/%{name}-trax.jar
-%{_javadir}/%{name}/%{name}-trax-%{version}.jar
-%{_sysconfdir}/%{name}.d/trax
-%{ant_home}/etc/mmetrics-frames.xsl
-%{ant_home}/etc/coverage-frames.xsl
-
%files scripts
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/*.pl
%files doc
%defattr(644,root,root,755)
-%doc docs/*
+%doc manual/*
%files javadoc
%defattr(644,root,root,755)
%{_javadocdir}/%{name}-%{version}
+%ghost %{_javadocdir}/%{name}