# TODO
# - prepare all BR and test the full build
-# (TODO: stylebook, starteam, jai, jdepend, 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_with nonfree # build tasks with non-distributable dependencies
%bcond_without antlr # disable building antlr optional task(s)
%bcond_without apache_bcel # disable building apache-bcel optional task(s)
%bcond_without apache_bsf # disable building apache-bsf optional task(s)
%bcond_without apache_resolver # disable building apache-resolver optional task(s)
%bcond_without commons_logging # disable building commons-logging optional task(s)
%bcond_without commons_net # disable building commons-net optional task(s)
-%bcond_with jai # enable building jai optional task(s)
+%bcond_without jai # disable building jai optional task(s)
%bcond_without javamail # disable building javamail optional task(s)
-%bcond_with jdepend # enable building jdepend optional task(s)
+%bcond_without jdepend # disable building jdepend optional task(s)
%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 %{without nonfree}
+%undefine with_jai
+%endif
%if %{with bootstrap}
%undefine with_antlr
%undefine with_apache_bcel
%undefine with_apache_resolver
%undefine with_commons_logging
%undefine with_commons_net
+%undefine with_jai
%undefine with_javamail
+%undefine with_jdepend
%undefine with_jsch
%undefine with_netrexx
%endif
#
-%define _rel 0.1
+%define _rel 4
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
+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.7.1
+Release: %{_rel}%{?with_bootstrap:.bootstrap}
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: 0d68db4a1ada5c91bcbf53cefd0c2fd7
Source1: %{name}.conf
Patch0: %{name}-antRun.patch
+# patch1 has been applied to ant sources in svn. It won't be needed for the
+# next release of ant.
+Patch1: %{name}-gcjtask.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_jai:BuildRequires: jai}
%{?with_apache_bcel:BuildRequires: jakarta-bcel}
%{?with_commons_logging:BuildRequires: jakarta-commons-logging}
%{?with_commons_net:BuildRequires: jakarta-commons-net}
%{?with_apache_regexp:BuildRequires: jakarta-regexp}
%{?with_javamail:BuildRequires: javamail}
BuildRequires: jaxp_parser_impl
+%{?with_jdepend:BuildRequires: jdepend}
BuildRequires: jdk
BuildRequires: jpackage-utils
%{?with_jsch:BuildRequires: jsch >= 0.1.21}
%{?with_netrexx:BuildRequires: netrexx}
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(macros) >= 1.300
+%{?with_apache_resolver:BuildRequires: xml-commons-resolver}
Requires: jdk
Requires: jpackage-utils
Obsoletes: jakarta-ant
%package antlr
Summary: Optional antlr tasks for %{name}
-Summary(fr.UTF-8): Taches antlr optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania antlr dla anta
+Summary(fr.UTF-8): Taches antlr optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania antlr dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: antlr
%package apache-bcel
Summary: Optional apache bcel tasks for %{name}
-Summary(fr.UTF-8): Taches apache bcel optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania apache bcel dla anta
+Summary(fr.UTF-8): Taches apache bcel optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania apache bcel dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jakarta-bcel
%package apache-bsf
Summary: Optional apache bsf tasks for %{name}
-Summary(fr.UTF-8): Taches apache bsf optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania apache bsf dla anta
+Summary(fr.UTF-8): Taches apache bsf optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania apache bsf dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: bsf
%package apache-log4j
Summary: Optional apache log4j tasks for %{name}
-Summary(fr.UTF-8): Taches apache log4j optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania apache log4j dla anta
+Summary(fr.UTF-8): Taches apache log4j optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania apache log4j dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: logging-log4j >= 1.2
%package apache-oro
Summary: Optional apache oro tasks for %{name}
-Summary(fr.UTF-8): Taches apache oro optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania apache oro dla anta
+Summary(fr.UTF-8): Taches apache oro optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania apache oro dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jakarta-oro
%package apache-regexp
Summary: Optional apache regexp tasks for %{name}
-Summary(fr.UTF-8): Taches apache regexp optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania apache regexp dla anta
+Summary(fr.UTF-8): Taches apache regexp optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania apache regexp dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jakarta-regexp
%package apache-resolver
Summary: Optional apache resolver tasks for %{name}
-Summary(fr.UTF-8): Taches apache resolver optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania apache resolver dla anta
+Summary(fr.UTF-8): Taches apache resolver optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania apache resolver dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: xml-commons-resolver
%package commons-logging
Summary: Optional commons logging tasks for %{name}
-Summary(fr.UTF-8): Taches commons logging optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania commons logging dla anta
+Summary(fr.UTF-8): Taches commons logging optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania commons logging dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jakarta-commons-logging
%package commons-net
Summary: Optional commons net tasks for %{name}
-Summary(fr.UTF-8): Taches commons net optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania commons net dla anta
+Summary(fr.UTF-8): Taches commons net optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania commons net dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jakarta-commons-net
%package jai
Summary: Optional jai tasks for %{name}
-Summary(fr.UTF-8): Taches jai optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania jai dla anta
+Summary(fr.UTF-8): Taches jai optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania jai dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jai
%package javamail
Summary: Optional javamail tasks for %{name}
-Summary(fr.UTF-8): Taches javamail optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania javamail dla anta
+Summary(fr.UTF-8): Taches javamail optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania javamail dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jaf
%package jdepend
Summary: Optional jdepend tasks for %{name}
-Summary(fr.UTF-8): Taches jdepend optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania jdepend dla anta
+Summary(fr.UTF-8): Taches jdepend optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania jdepend dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jdepend
%package jmf
Summary: Optional jmf tasks for %{name}
-Summary(fr.UTF-8): Taches jmf optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania jmf dla anta
+Summary(fr.UTF-8): Taches jmf optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania jmf dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Conflicts: ant-optional-clean
%package jsch
Summary: Optional jsch tasks for %{name}
-Summary(fr.UTF-8): Taches jsch optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania jsch dla anta
+Summary(fr.UTF-8): Taches jsch optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania jsch dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: jsch >= 0.1.21
%package junit
Summary: Optional junit tasks for %{name}
-Summary(fr.UTF-8): Taches junit optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania junit dla anta
+Summary(fr.UTF-8): Taches junit optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania junit dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: junit
%package netrexx
Summary: Optional netrexx tasks for %{name}
-Summary(fr.UTF-8): Taches netrexx optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania netrexx dla anta
+Summary(fr.UTF-8): Taches netrexx optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania netrexx dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Conflicts: ant-optional-clean
%package nodeps
Summary: Optional tasks for %{name}
-Summary(fr.UTF-8): Taches optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania dla anta
+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
%package swing
Summary: Optional swing tasks for %{name}
-Summary(fr.UTF-8): Taches swing optionelles pour %{name}
-Summary(pl.UTF-8): Opcjonalne zadania swing dla anta
+Summary(fr.UTF-8): Taches swing optionelles pour %{name}
+Summary(pl.UTF-8): Opcjonalne zadania swing dla anta
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Conflicts: ant-optional-clean
%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
+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
%package scripts
Summary: Additional scripts for %{name}
-Summary(fr.UTF-8): Scripts additionels pour %{name}
-Summary(pl.UTF-8): Dodatkowe skrypty dla anta
+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}
%package doc
Summary: Manual for %{name}
-Summary(fr.UTF-8): Documentation pour %{name}
-Summary(it.UTF-8): Documentazione di %{name}
-Summary(pl.UTF-8): Podręcznik dla anta
+Summary(fr.UTF-8): Documentation pour %{name}
+Summary(it.UTF-8): Documentazione di %{name}
+Summary(pl.UTF-8): Podręcznik dla anta
Group: Development/Languages/Java
%description doc
%package javadoc
Summary: Online manual for ant
-Summary(pl.UTF-8): Dokumentacja online do ant
+Summary(pl.UTF-8): Dokumentacja online do ant
Group: Documentation
Requires: jpackage-utils
Obsoletes: jakarta-ant-doc
%prep
%setup -q -n apache-%{name}-%{version}
%patch0 -p1
+%patch1 -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
+# fix link between manual and javadoc
+ln -sf %{_javadocdir}/%{name}-%{version} docs/manual/api
+
%build
export JAVA_HOME="%{java_home}"
%{?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_jai:required_jars="$required_jars jait"}
+%{?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_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
sh build.sh --noconfig main javadocs
# 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)
%files javadoc
%defattr(644,root,root,755)
%{_javadocdir}/%{name}-%{version}
+%ghost %{_javadocdir}/%{name}