diff --git a/ant-antlr.changes b/ant-antlr.changes
index 0003ef0..5fd7775 100644
--- a/ant-antlr.changes
+++ b/ant-antlr.changes
@@ -1,3 +1,23 @@
+-------------------------------------------------------------------
+Fri May 19 08:08:28 UTC 2017 - tchvatal@suse.com
+
+- Disable javadoc completely it is on the web in much better form
+- Remove if0 conditions
+- Remove patch apache-ant-old-gcj-build.patch for sle11 and unused
+- Fix build with split javapackages-tools
+
+-------------------------------------------------------------------
+Mon May 8 20:05:59 UTC 2017 - bwiedemann@suse.com
+
+- Version bump to 1.9.9:
+ * Read WHATSNEW file for full changelist
+
+-------------------------------------------------------------------
+Mon May 8 07:43:51 UTC 2017 - bwiedemann@suse.de
+
+- Add reproducible.patch to allow reproducible builds of ant itself
+ and packages built with ant like jcodings
+
-------------------------------------------------------------------
Mon Feb 20 10:12:01 UTC 2017 - tchvatal@suse.com
diff --git a/ant-antlr.spec b/ant-antlr.spec
index 1677120..e01dd03 100644
--- a/ant-antlr.spec
+++ b/ant-antlr.spec
@@ -23,20 +23,12 @@
%bcond_with junit
%bcond_without antlr
-# disable javadoc build on arm platform - it delays a build a lot
-# mvyskocil: ifarch does not work for noarch packages ...
-%if %{_arch} != arm
-%global build_javadoc 1
-%else
-%global build_javadoc 0
-%endif
-
%global ant_home %{_datadir}/ant
%global major_version 1.9
Name: ant-antlr
-Version: 1.9.6
+Version: 1.9.9
Release: 0
Summary: Antlr Task for ant
License: Apache-2.0
@@ -49,8 +41,8 @@ Source1001: http://www.apache.org/dist/ant/source/apache-ant-%{version}-src.
Source1002: ant.keyring
Patch0: apache-ant-no-test-jar.patch
Patch1: apache-ant-class-path-in-manifest.patch
-#PATCH-FIX-SLE: fix building with old gcj by working around bugs
-Patch2: apache-ant-old-gcj-build.patch
+#PATCH-FIX-UPSTREAM -- https://bz.apache.org/bugzilla/show_bug.cgi?id=61079
+Patch3: reproducible.patch
%if %{with bootstrap}
BuildRequires: java-1_5_0-gcj-compat-devel
#!BuildIgnore: java-1_6_0-openjdk java-1_6_0-openjdk-devel
@@ -60,6 +52,8 @@ BuildRequires: java-devel >= 1.5.0
%endif
BuildRequires: antlr-bootstrap
BuildRequires: javapackages-tools
+# Needed for maven conversions
+BuildRequires: javapackages-local
BuildRequires: unzip
#BuildRequires: xerces-j2-bootstrap
#!BuildIgnore: xerces-j2-bootstrap
@@ -73,6 +67,9 @@ BuildRequires: junit
BuildRequires: xerces-j2
BuildRequires: xml-commons-apis
%endif
+%if 0%{?suse_version} > 1320
+BuildRequires: strip-nondeterminism
+%endif
%if %{with bootstrap}
Requires: java-devel >= 1.5.0
Requires: javapackages-tools
@@ -90,6 +87,7 @@ Provides: ant-trax = %{version}
Requires: antlr
%requires_eq ant
Provides: ant-antlr = %{version}-%{release}
+Obsoletes: ant-javadoc
%endif
%if %{with junit}
Requires: junit4
@@ -104,41 +102,9 @@ Apache Ant is a Java-based build tool.
This package contains optional JUnit tasks for Apache Ant.
%else
-# FIXME: this should be different for antlr
%description
Apache Ant is a Java-based build tool. In theory, it is kind of like
Make, but without Make's wrinkles.
-
-Why another build tool when there is already make, gnumake, nmake, jam,
-and others? Because all those tools have limitations that Ant's
-original author could not live with when developing software across
-multiple platforms. Make-like tools are inherently shell-based--they
-evaluate a set of dependencies then execute commands, not unlike what
-you would issue in a shell. This means that you can easily extend these
-tools by using or writing any program for the OS that you are working
-on. However, this also means that you limit yourself to the OS, or at
-least the OS type, such as Unix, that you are working on.
-
-Makefiles are inherently evil as well. Anybody who has worked on them
-for any time has run into the dreaded tab problem. "Is my command not
-executing because I have a space in front of my tab???" said the
-original author of Ant way too many times. Tools like Jam took care of
-this to a great degree, but still have yet another format to use and
-remember.
-
-Ant is different. Instead of a model where it is extended with
-shell-based commands, Ant is extended using Java classes. Instead of
-writing shell commands, the configuration files are XML-based, calling
-out a target tree where various tasks are executed. Each task is run by
-an object that implements a particular task interface.
-
-Granted, this removes some of the expressive power that is inherent by
-being able to construct a shell command such as `find . -name foo -exec
-rm {}`, but it gives you the ability to be cross-platform--to work
-anywhere and everywhere. If you really need to execute a shell command,
-Ant has an task that allows different commands to be executed
-based on the OS used.
-
%endif
%if %{with bootstrap}
@@ -236,20 +202,6 @@ Apache Ant is a Java-based build tool.
This package contains optional commons net tasks for Apache Ant.
-# Disable because we don't ship the dependencies
-%if 0
-%package -n ant-jai
-Summary: Optional jai tasks for ant
-License: Apache-2.0
-Group: Development/Tools/Building
-Requires: jai
-%requires_eq ant
-BuildRequires: jai
-
-%description -n ant-jai
-Optional jai tasks for ant.
-%endif
-
%package -n ant-apache-bcel
Summary: Optional apache bcel tasks for ant
License: Apache-2.0
@@ -381,17 +333,6 @@ Apache Ant is a Java-based build tool.
This package contains the manual for Apache Ant.
-%if 0%{?build_javadoc}
-%package -n ant-javadoc
-Summary: Javadoc for ant
-License: Apache-2.0
-Group: Development/Tools/Building
-
-%description -n ant-javadoc
-Apache Ant is a Java-based build tool.
-
-This package contains the javadoc documentation for Apache Ant.
-%endif #javadoc
%endif
%prep
@@ -402,13 +343,9 @@ find -name build.xml -o -name pom.xml | xargs sed -i -e s/-SNAPSHOT//
# When bootstrapping, we don't have junit
%if %{with bootstrap}
%patch0 -p1
-%if 0%{?suse_version} < 1200
-%patch2 -p1
%endif
-%endif
-
-# Fix class-path-in-manifest rpmlint warning
%patch1
+%patch3 -p1
# clean jar files
%{_bindir}/find . -name "*.jar" | %{_bindir}/xargs -t rm
@@ -420,9 +357,6 @@ rm src/tests/junit/org/apache/tools/ant/types/selectors/SignedSelectorTest.java
src/tests/junit/org/apache/tools/ant/taskdefs/JarTest.java \
src/tests/junit/org/apache/tools/mail/MailMessageTest.java
-#FIXME: need newer junit4 package
-#rm src/tests/junit/org/example/junit/JUnit4Skippable.java
-
#install jars
%if %{with junit}
build-jar-repository -s -p lib/optional junit4
@@ -447,12 +381,6 @@ ant -Dbuild.sysclasspath=first jars test-jar
#remove empty jai and netrexx jars. Due to missing dependencies they contain only manifests.
rm -rf build/lib/ant-jai.jar build/lib/ant-netrexx.jar
-
-%if 0%{?build_javadoc}
-export CLASSPATH=$(build-classpath xerces-j2 xml-commons-jaxp-1.3-apis antlr bcel jaf javamail/mailapi jdepend junit4 log4j oro regexp bsf commons-logging commons-net jsch xalan-j2 xml-commons-resolver)
-ant javadocs
-%endif
-
%endif
%if %{with bootstrap}
@@ -463,6 +391,7 @@ export BOOTJAVAC_OPTS="-C -Wno-deprecated"
sh -x ./build.sh --noconfig jars
%endif
+%?strip_all_nondeterminism
%install
# ANT_HOME and subdirs
@@ -584,7 +513,6 @@ echo "bsf ant/ant-apache-bsf" > %{buildroot}%{_sysconfdir}/ant.d/apache-bsf
echo "xml-commons-resolver ant/ant-apache-resolver" > %{buildroot}%{_sysconfdir}/ant.d/apache-resolver
echo "jakarta-commons-logging ant/ant-commons-logging" > %{buildroot}%{_sysconfdir}/ant.d/commons-logging
echo "jakarta-commons-net ant/ant-commons-net" > %{buildroot}%{_sysconfdir}/ant.d/commons-net
-#echo "jai ant/ant-jai" > %{buildroot}%{_sysconfdir}/ant.d/jai
echo "bcel ant/ant-apache-bcel" > %{buildroot}%{_sysconfdir}/ant.d/apache-bcel
echo "log4j ant/ant-apache-log4j" > %{buildroot}%{_sysconfdir}/ant.d/apache-log4j
echo "oro ant/ant-apache-oro" > %{buildroot}%{_sysconfdir}/ant.d/apache-oro
@@ -596,20 +524,6 @@ echo "jsch ant/ant-jsch" > %{buildroot}%{_sysconfdir}/ant.d/jsch
echo "testutil ant/ant-testutil" > %{buildroot}%{_sysconfdir}/ant.d/testutil
%endif
-%if %{with antlr}
-
-%if 0%{?build_javadoc}
-mkdir -p %{buildroot}%{_javadocdir}/ant
-cp -pr build/javadocs/* %{buildroot}%{_javadocdir}/ant
-%endif #javadoc
-
-%endif
-
-%if 0%{?build_javadoc}
-# fix link between manual and javadoc
-(cd manual; ln -sf %{_javadocdir}/%{name} api)
-%endif #javadoc
-
%if %{with bootstrap}
find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
-a ! -name ant-update.xsl \
@@ -655,7 +569,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{_mavenpomdir}/JPP-ant-launcher.pom
%{_mavenpomdir}/JPP-ant-parent.pom
%{_mavenpomdir}/JPP-ant.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant
+%endif
%dir %{_mavenpomdir}
%endif
@@ -666,7 +584,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{ant_home}/lib/ant-antlr.jar
%config(noreplace) %{_sysconfdir}/ant.d/antlr
%{_mavenpomdir}/JPP.ant-ant-antlr.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant-antlr.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant-antlr
+%endif
%dir %{_mavenpomdir}
%endif
@@ -680,7 +602,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{ant_home}/etc/junit-frames.xsl
%{ant_home}/etc/junit-noframes.xsl
%{_mavenpomdir}/JPP.ant-ant-junit*.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant-junit.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant-junit
+%endif
%dir %{_mavenpomdir}
%endif
@@ -741,15 +667,6 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%config(noreplace) %{_sysconfdir}/ant.d/commons-net
%{_mavenpomdir}/JPP.ant-ant-commons-net.pom
%dir %{_mavenpomdir}
-# Disable as we dont ship the dependencies
-%if 0
-
-%files -n ant-jai
-%defattr(0644,root,root,0755)
-%{_javadir}/ant/ant-jai.jar
-%{ant_home}/lib/ant-jai.jar
-%config(noreplace) %{_sysconfdir}/ant.d/jai
-%endif
%files -n ant-apache-bcel
%defattr(0644,root,root,0755)
@@ -829,13 +746,6 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%files -n ant-manual
%defattr(0644,root,root,0755)
%doc manual/*
-
-%if 0%{?build_javadoc}
-
-%files -n ant-javadoc
-%defattr(0644,root,root,0755)
-%{_javadocdir}/ant
-%endif #javadoc
%endif
%changelog
diff --git a/ant-junit.changes b/ant-junit.changes
index 0003ef0..5fd7775 100644
--- a/ant-junit.changes
+++ b/ant-junit.changes
@@ -1,3 +1,23 @@
+-------------------------------------------------------------------
+Fri May 19 08:08:28 UTC 2017 - tchvatal@suse.com
+
+- Disable javadoc completely it is on the web in much better form
+- Remove if0 conditions
+- Remove patch apache-ant-old-gcj-build.patch for sle11 and unused
+- Fix build with split javapackages-tools
+
+-------------------------------------------------------------------
+Mon May 8 20:05:59 UTC 2017 - bwiedemann@suse.com
+
+- Version bump to 1.9.9:
+ * Read WHATSNEW file for full changelist
+
+-------------------------------------------------------------------
+Mon May 8 07:43:51 UTC 2017 - bwiedemann@suse.de
+
+- Add reproducible.patch to allow reproducible builds of ant itself
+ and packages built with ant like jcodings
+
-------------------------------------------------------------------
Mon Feb 20 10:12:01 UTC 2017 - tchvatal@suse.com
diff --git a/ant-junit.spec b/ant-junit.spec
index 04ceea9..9ac17aa 100644
--- a/ant-junit.spec
+++ b/ant-junit.spec
@@ -23,20 +23,12 @@
%bcond_without junit
%bcond_with antlr
-# disable javadoc build on arm platform - it delays a build a lot
-# mvyskocil: ifarch does not work for noarch packages ...
-%if %{_arch} != arm
-%global build_javadoc 1
-%else
-%global build_javadoc 0
-%endif
-
%global ant_home %{_datadir}/ant
%global major_version 1.9
Name: ant-junit
-Version: 1.9.6
+Version: 1.9.9
Release: 0
Summary: Optional junit tasks for ant
License: Apache-2.0
@@ -49,8 +41,8 @@ Source1001: http://www.apache.org/dist/ant/source/apache-ant-%{version}-src.
Source1002: ant.keyring
Patch0: apache-ant-no-test-jar.patch
Patch1: apache-ant-class-path-in-manifest.patch
-#PATCH-FIX-SLE: fix building with old gcj by working around bugs
-Patch2: apache-ant-old-gcj-build.patch
+#PATCH-FIX-UPSTREAM -- https://bz.apache.org/bugzilla/show_bug.cgi?id=61079
+Patch3: reproducible.patch
%if %{with bootstrap}
BuildRequires: java-1_5_0-gcj-compat-devel
#!BuildIgnore: java-1_6_0-openjdk java-1_6_0-openjdk-devel
@@ -60,6 +52,8 @@ BuildRequires: java-devel >= 1.5.0
%endif
BuildRequires: antlr-bootstrap
BuildRequires: javapackages-tools
+# Needed for maven conversions
+BuildRequires: javapackages-local
BuildRequires: unzip
#BuildRequires: xerces-j2-bootstrap
#!BuildIgnore: xerces-j2-bootstrap
@@ -73,6 +67,9 @@ BuildRequires: junit
BuildRequires: xerces-j2
BuildRequires: xml-commons-apis
%endif
+%if 0%{?suse_version} > 1320
+BuildRequires: strip-nondeterminism
+%endif
%if %{with bootstrap}
Requires: java-devel >= 1.5.0
Requires: javapackages-tools
@@ -90,6 +87,7 @@ Provides: ant-trax = %{version}
Requires: antlr
%requires_eq ant
Provides: ant-antlr = %{version}-%{release}
+Obsoletes: ant-javadoc
%endif
%if %{with junit}
Requires: junit4
@@ -104,41 +102,9 @@ Apache Ant is a Java-based build tool.
This package contains optional JUnit tasks for Apache Ant.
%else
-# FIXME: this should be different for antlr
%description
Apache Ant is a Java-based build tool. In theory, it is kind of like
Make, but without Make's wrinkles.
-
-Why another build tool when there is already make, gnumake, nmake, jam,
-and others? Because all those tools have limitations that Ant's
-original author could not live with when developing software across
-multiple platforms. Make-like tools are inherently shell-based--they
-evaluate a set of dependencies then execute commands, not unlike what
-you would issue in a shell. This means that you can easily extend these
-tools by using or writing any program for the OS that you are working
-on. However, this also means that you limit yourself to the OS, or at
-least the OS type, such as Unix, that you are working on.
-
-Makefiles are inherently evil as well. Anybody who has worked on them
-for any time has run into the dreaded tab problem. "Is my command not
-executing because I have a space in front of my tab???" said the
-original author of Ant way too many times. Tools like Jam took care of
-this to a great degree, but still have yet another format to use and
-remember.
-
-Ant is different. Instead of a model where it is extended with
-shell-based commands, Ant is extended using Java classes. Instead of
-writing shell commands, the configuration files are XML-based, calling
-out a target tree where various tasks are executed. Each task is run by
-an object that implements a particular task interface.
-
-Granted, this removes some of the expressive power that is inherent by
-being able to construct a shell command such as `find . -name foo -exec
-rm {}`, but it gives you the ability to be cross-platform--to work
-anywhere and everywhere. If you really need to execute a shell command,
-Ant has an task that allows different commands to be executed
-based on the OS used.
-
%endif
%if %{with bootstrap}
@@ -236,20 +202,6 @@ Apache Ant is a Java-based build tool.
This package contains optional commons net tasks for Apache Ant.
-# Disable because we don't ship the dependencies
-%if 0
-%package -n ant-jai
-Summary: Optional jai tasks for ant
-License: Apache-2.0
-Group: Development/Tools/Building
-Requires: jai
-%requires_eq ant
-BuildRequires: jai
-
-%description -n ant-jai
-Optional jai tasks for ant.
-%endif
-
%package -n ant-apache-bcel
Summary: Optional apache bcel tasks for ant
License: Apache-2.0
@@ -381,17 +333,6 @@ Apache Ant is a Java-based build tool.
This package contains the manual for Apache Ant.
-%if 0%{?build_javadoc}
-%package -n ant-javadoc
-Summary: Javadoc for ant
-License: Apache-2.0
-Group: Development/Tools/Building
-
-%description -n ant-javadoc
-Apache Ant is a Java-based build tool.
-
-This package contains the javadoc documentation for Apache Ant.
-%endif #javadoc
%endif
%prep
@@ -402,13 +343,9 @@ find -name build.xml -o -name pom.xml | xargs sed -i -e s/-SNAPSHOT//
# When bootstrapping, we don't have junit
%if %{with bootstrap}
%patch0 -p1
-%if 0%{?suse_version} < 1200
-%patch2 -p1
%endif
-%endif
-
-# Fix class-path-in-manifest rpmlint warning
%patch1
+%patch3 -p1
# clean jar files
%{_bindir}/find . -name "*.jar" | %{_bindir}/xargs -t rm
@@ -420,9 +357,6 @@ rm src/tests/junit/org/apache/tools/ant/types/selectors/SignedSelectorTest.java
src/tests/junit/org/apache/tools/ant/taskdefs/JarTest.java \
src/tests/junit/org/apache/tools/mail/MailMessageTest.java
-#FIXME: need newer junit4 package
-#rm src/tests/junit/org/example/junit/JUnit4Skippable.java
-
#install jars
%if %{with junit}
build-jar-repository -s -p lib/optional junit4
@@ -447,12 +381,6 @@ ant -Dbuild.sysclasspath=first jars test-jar
#remove empty jai and netrexx jars. Due to missing dependencies they contain only manifests.
rm -rf build/lib/ant-jai.jar build/lib/ant-netrexx.jar
-
-%if 0%{?build_javadoc}
-export CLASSPATH=$(build-classpath xerces-j2 xml-commons-jaxp-1.3-apis antlr bcel jaf javamail/mailapi jdepend junit4 log4j oro regexp bsf commons-logging commons-net jsch xalan-j2 xml-commons-resolver)
-ant javadocs
-%endif
-
%endif
%if %{with bootstrap}
@@ -463,6 +391,7 @@ export BOOTJAVAC_OPTS="-C -Wno-deprecated"
sh -x ./build.sh --noconfig jars
%endif
+%?strip_all_nondeterminism
%install
# ANT_HOME and subdirs
@@ -584,7 +513,6 @@ echo "bsf ant/ant-apache-bsf" > %{buildroot}%{_sysconfdir}/ant.d/apache-bsf
echo "xml-commons-resolver ant/ant-apache-resolver" > %{buildroot}%{_sysconfdir}/ant.d/apache-resolver
echo "jakarta-commons-logging ant/ant-commons-logging" > %{buildroot}%{_sysconfdir}/ant.d/commons-logging
echo "jakarta-commons-net ant/ant-commons-net" > %{buildroot}%{_sysconfdir}/ant.d/commons-net
-#echo "jai ant/ant-jai" > %{buildroot}%{_sysconfdir}/ant.d/jai
echo "bcel ant/ant-apache-bcel" > %{buildroot}%{_sysconfdir}/ant.d/apache-bcel
echo "log4j ant/ant-apache-log4j" > %{buildroot}%{_sysconfdir}/ant.d/apache-log4j
echo "oro ant/ant-apache-oro" > %{buildroot}%{_sysconfdir}/ant.d/apache-oro
@@ -596,20 +524,6 @@ echo "jsch ant/ant-jsch" > %{buildroot}%{_sysconfdir}/ant.d/jsch
echo "testutil ant/ant-testutil" > %{buildroot}%{_sysconfdir}/ant.d/testutil
%endif
-%if %{with antlr}
-
-%if 0%{?build_javadoc}
-mkdir -p %{buildroot}%{_javadocdir}/ant
-cp -pr build/javadocs/* %{buildroot}%{_javadocdir}/ant
-%endif #javadoc
-
-%endif
-
-%if 0%{?build_javadoc}
-# fix link between manual and javadoc
-(cd manual; ln -sf %{_javadocdir}/%{name} api)
-%endif #javadoc
-
%if %{with bootstrap}
find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
-a ! -name ant-update.xsl \
@@ -655,7 +569,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{_mavenpomdir}/JPP-ant-launcher.pom
%{_mavenpomdir}/JPP-ant-parent.pom
%{_mavenpomdir}/JPP-ant.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant
+%endif
%dir %{_mavenpomdir}
%endif
@@ -666,7 +584,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{ant_home}/lib/ant-antlr.jar
%config(noreplace) %{_sysconfdir}/ant.d/antlr
%{_mavenpomdir}/JPP.ant-ant-antlr.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant-antlr.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant-antlr
+%endif
%dir %{_mavenpomdir}
%endif
@@ -680,7 +602,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{ant_home}/etc/junit-frames.xsl
%{ant_home}/etc/junit-noframes.xsl
%{_mavenpomdir}/JPP.ant-ant-junit*.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant-junit.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant-junit
+%endif
%dir %{_mavenpomdir}
%endif
@@ -741,15 +667,6 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%config(noreplace) %{_sysconfdir}/ant.d/commons-net
%{_mavenpomdir}/JPP.ant-ant-commons-net.pom
%dir %{_mavenpomdir}
-# Disable as we dont ship the dependencies
-%if 0
-
-%files -n ant-jai
-%defattr(0644,root,root,0755)
-%{_javadir}/ant/ant-jai.jar
-%{ant_home}/lib/ant-jai.jar
-%config(noreplace) %{_sysconfdir}/ant.d/jai
-%endif
%files -n ant-apache-bcel
%defattr(0644,root,root,0755)
@@ -829,13 +746,6 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%files -n ant-manual
%defattr(0644,root,root,0755)
%doc manual/*
-
-%if 0%{?build_javadoc}
-
-%files -n ant-javadoc
-%defattr(0644,root,root,0755)
-%{_javadocdir}/ant
-%endif #javadoc
%endif
%changelog
diff --git a/ant.changes b/ant.changes
index 0003ef0..5fd7775 100644
--- a/ant.changes
+++ b/ant.changes
@@ -1,3 +1,23 @@
+-------------------------------------------------------------------
+Fri May 19 08:08:28 UTC 2017 - tchvatal@suse.com
+
+- Disable javadoc completely it is on the web in much better form
+- Remove if0 conditions
+- Remove patch apache-ant-old-gcj-build.patch for sle11 and unused
+- Fix build with split javapackages-tools
+
+-------------------------------------------------------------------
+Mon May 8 20:05:59 UTC 2017 - bwiedemann@suse.com
+
+- Version bump to 1.9.9:
+ * Read WHATSNEW file for full changelist
+
+-------------------------------------------------------------------
+Mon May 8 07:43:51 UTC 2017 - bwiedemann@suse.de
+
+- Add reproducible.patch to allow reproducible builds of ant itself
+ and packages built with ant like jcodings
+
-------------------------------------------------------------------
Mon Feb 20 10:12:01 UTC 2017 - tchvatal@suse.com
diff --git a/ant.spec b/ant.spec
index 2aa020f..53bc6de 100644
--- a/ant.spec
+++ b/ant.spec
@@ -22,20 +22,12 @@
%bcond_with junit
%bcond_with antlr
-# disable javadoc build on arm platform - it delays a build a lot
-# mvyskocil: ifarch does not work for noarch packages ...
-%if %{_arch} != arm
-%global build_javadoc 1
-%else
-%global build_javadoc 0
-%endif
-
%global ant_home %{_datadir}/ant
%global major_version 1.9
Name: ant
-Version: 1.9.6
+Version: 1.9.9
Release: 0
Summary: Java-based build tool
License: Apache-2.0
@@ -48,17 +40,21 @@ Source1001: http://www.apache.org/dist/ant/source/apache-ant-%{version}-src.
Source1002: ant.keyring
Patch0: apache-ant-no-test-jar.patch
Patch1: apache-ant-class-path-in-manifest.patch
-#PATCH-FIX-SLE: fix building with old gcj by working around bugs
-Patch2: apache-ant-old-gcj-build.patch
+#PATCH-FIX-UPSTREAM -- https://bz.apache.org/bugzilla/show_bug.cgi?id=61079
+Patch3: reproducible.patch
%if %{with bootstrap}
BuildRequires: java-1_5_0-gcj-compat-devel
#!BuildIgnore: java-1_6_0-openjdk java-1_6_0-openjdk-devel
#!BuildIgnore: java-1_7_0-openjdk java-1_7_0-openjdk-devel
+#!BuildIgnore: java-1_8_0-openjdk java-1_8_0-openjdk-devel
+#!BuildIgnore: java-9-openjdk java-9-openjdk-devel
%else
BuildRequires: java-devel >= 1.5.0
%endif
BuildRequires: antlr-bootstrap
BuildRequires: javapackages-tools
+# Needed for maven conversions
+BuildRequires: javapackages-local
BuildRequires: unzip
#BuildRequires: xerces-j2-bootstrap
#!BuildIgnore: xerces-j2-bootstrap
@@ -72,6 +68,9 @@ BuildRequires: junit
BuildRequires: xerces-j2
BuildRequires: xml-commons-apis
%endif
+%if 0%{?suse_version} > 1320
+BuildRequires: strip-nondeterminism
+%endif
%if %{with bootstrap}
Requires: java-devel >= 1.5.0
Requires: javapackages-tools
@@ -89,6 +88,7 @@ Provides: ant-trax = %{version}
Requires: antlr
%requires_eq ant
Provides: ant-antlr = %{version}-%{release}
+Obsoletes: ant-javadoc
%endif
%if %{with junit}
Requires: junit4
@@ -103,41 +103,9 @@ Apache Ant is a Java-based build tool.
This package contains optional JUnit tasks for Apache Ant.
%else
-# FIXME: this should be different for antlr
%description
Apache Ant is a Java-based build tool. In theory, it is kind of like
Make, but without Make's wrinkles.
-
-Why another build tool when there is already make, gnumake, nmake, jam,
-and others? Because all those tools have limitations that Ant's
-original author could not live with when developing software across
-multiple platforms. Make-like tools are inherently shell-based--they
-evaluate a set of dependencies then execute commands, not unlike what
-you would issue in a shell. This means that you can easily extend these
-tools by using or writing any program for the OS that you are working
-on. However, this also means that you limit yourself to the OS, or at
-least the OS type, such as Unix, that you are working on.
-
-Makefiles are inherently evil as well. Anybody who has worked on them
-for any time has run into the dreaded tab problem. "Is my command not
-executing because I have a space in front of my tab???" said the
-original author of Ant way too many times. Tools like Jam took care of
-this to a great degree, but still have yet another format to use and
-remember.
-
-Ant is different. Instead of a model where it is extended with
-shell-based commands, Ant is extended using Java classes. Instead of
-writing shell commands, the configuration files are XML-based, calling
-out a target tree where various tasks are executed. Each task is run by
-an object that implements a particular task interface.
-
-Granted, this removes some of the expressive power that is inherent by
-being able to construct a shell command such as `find . -name foo -exec
-rm {}`, but it gives you the ability to be cross-platform--to work
-anywhere and everywhere. If you really need to execute a shell command,
-Ant has an task that allows different commands to be executed
-based on the OS used.
-
%endif
%if %{with bootstrap}
@@ -235,20 +203,6 @@ Apache Ant is a Java-based build tool.
This package contains optional commons net tasks for Apache Ant.
-# Disable because we don't ship the dependencies
-%if 0
-%package -n ant-jai
-Summary: Optional jai tasks for ant
-License: Apache-2.0
-Group: Development/Tools/Building
-Requires: jai
-%requires_eq ant
-BuildRequires: jai
-
-%description -n ant-jai
-Optional jai tasks for ant.
-%endif
-
%package -n ant-apache-bcel
Summary: Optional apache bcel tasks for ant
License: Apache-2.0
@@ -380,17 +334,6 @@ Apache Ant is a Java-based build tool.
This package contains the manual for Apache Ant.
-%if 0%{?build_javadoc}
-%package -n ant-javadoc
-Summary: Javadoc for ant
-License: Apache-2.0
-Group: Development/Tools/Building
-
-%description -n ant-javadoc
-Apache Ant is a Java-based build tool.
-
-This package contains the javadoc documentation for Apache Ant.
-%endif #javadoc
%endif
%prep
@@ -401,13 +344,9 @@ find -name build.xml -o -name pom.xml | xargs sed -i -e s/-SNAPSHOT//
# When bootstrapping, we don't have junit
%if %{with bootstrap}
%patch0 -p1
-%if 0%{?suse_version} < 1200
-%patch2 -p1
%endif
-%endif
-
-# Fix class-path-in-manifest rpmlint warning
%patch1
+%patch3 -p1
# clean jar files
%{_bindir}/find . -name "*.jar" | %{_bindir}/xargs -t rm
@@ -419,9 +358,6 @@ rm src/tests/junit/org/apache/tools/ant/types/selectors/SignedSelectorTest.java
src/tests/junit/org/apache/tools/ant/taskdefs/JarTest.java \
src/tests/junit/org/apache/tools/mail/MailMessageTest.java
-#FIXME: need newer junit4 package
-#rm src/tests/junit/org/example/junit/JUnit4Skippable.java
-
#install jars
%if %{with junit}
build-jar-repository -s -p lib/optional junit4
@@ -446,12 +382,6 @@ ant -Dbuild.sysclasspath=first jars test-jar
#remove empty jai and netrexx jars. Due to missing dependencies they contain only manifests.
rm -rf build/lib/ant-jai.jar build/lib/ant-netrexx.jar
-
-%if 0%{?build_javadoc}
-export CLASSPATH=$(build-classpath xerces-j2 xml-commons-jaxp-1.3-apis antlr bcel jaf javamail/mailapi jdepend junit4 log4j oro regexp bsf commons-logging commons-net jsch xalan-j2 xml-commons-resolver)
-ant javadocs
-%endif
-
%endif
%if %{with bootstrap}
@@ -462,6 +392,7 @@ export BOOTJAVAC_OPTS="-C -Wno-deprecated"
sh -x ./build.sh --noconfig jars
%endif
+%?strip_all_nondeterminism
%install
# ANT_HOME and subdirs
@@ -583,7 +514,6 @@ echo "bsf ant/ant-apache-bsf" > %{buildroot}%{_sysconfdir}/ant.d/apache-bsf
echo "xml-commons-resolver ant/ant-apache-resolver" > %{buildroot}%{_sysconfdir}/ant.d/apache-resolver
echo "jakarta-commons-logging ant/ant-commons-logging" > %{buildroot}%{_sysconfdir}/ant.d/commons-logging
echo "jakarta-commons-net ant/ant-commons-net" > %{buildroot}%{_sysconfdir}/ant.d/commons-net
-#echo "jai ant/ant-jai" > %{buildroot}%{_sysconfdir}/ant.d/jai
echo "bcel ant/ant-apache-bcel" > %{buildroot}%{_sysconfdir}/ant.d/apache-bcel
echo "log4j ant/ant-apache-log4j" > %{buildroot}%{_sysconfdir}/ant.d/apache-log4j
echo "oro ant/ant-apache-oro" > %{buildroot}%{_sysconfdir}/ant.d/apache-oro
@@ -595,20 +525,6 @@ echo "jsch ant/ant-jsch" > %{buildroot}%{_sysconfdir}/ant.d/jsch
echo "testutil ant/ant-testutil" > %{buildroot}%{_sysconfdir}/ant.d/testutil
%endif
-%if %{with antlr}
-
-%if 0%{?build_javadoc}
-mkdir -p %{buildroot}%{_javadocdir}/ant
-cp -pr build/javadocs/* %{buildroot}%{_javadocdir}/ant
-%endif #javadoc
-
-%endif
-
-%if 0%{?build_javadoc}
-# fix link between manual and javadoc
-(cd manual; ln -sf %{_javadocdir}/%{name} api)
-%endif #javadoc
-
%if %{with bootstrap}
find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
-a ! -name ant-update.xsl \
@@ -654,7 +570,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{_mavenpomdir}/JPP-ant-launcher.pom
%{_mavenpomdir}/JPP-ant-parent.pom
%{_mavenpomdir}/JPP-ant.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant
+%endif
%dir %{_mavenpomdir}
%endif
@@ -665,7 +585,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{ant_home}/lib/ant-antlr.jar
%config(noreplace) %{_sysconfdir}/ant.d/antlr
%{_mavenpomdir}/JPP.ant-ant-antlr.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant-antlr.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant-antlr
+%endif
%dir %{_mavenpomdir}
%endif
@@ -679,7 +603,11 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%{ant_home}/etc/junit-frames.xsl
%{ant_home}/etc/junit-noframes.xsl
%{_mavenpomdir}/JPP.ant-ant-junit*.pom
+%if %{?suse_version} > 1320
%{_datadir}/maven-metadata/ant-junit.xml
+%else
+%config(noreplace) %{_mavendepmapfragdir}/ant-junit
+%endif
%dir %{_mavenpomdir}
%endif
@@ -740,15 +668,6 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%config(noreplace) %{_sysconfdir}/ant.d/commons-net
%{_mavenpomdir}/JPP.ant-ant-commons-net.pom
%dir %{_mavenpomdir}
-# Disable as we dont ship the dependencies
-%if 0
-
-%files -n ant-jai
-%defattr(0644,root,root,0755)
-%{_javadir}/ant/ant-jai.jar
-%{ant_home}/lib/ant-jai.jar
-%config(noreplace) %{_sysconfdir}/ant.d/jai
-%endif
%files -n ant-apache-bcel
%defattr(0644,root,root,0755)
@@ -828,13 +747,6 @@ find %{buildroot}%{_datadir}/ant/etc -type f -name "*.xsl" \
%files -n ant-manual
%defattr(0644,root,root,0755)
%doc manual/*
-
-%if 0%{?build_javadoc}
-
-%files -n ant-javadoc
-%defattr(0644,root,root,0755)
-%{_javadocdir}/ant
-%endif #javadoc
%endif
%changelog
diff --git a/apache-ant-1.9.6-src.tar.bz2 b/apache-ant-1.9.6-src.tar.bz2
deleted file mode 100644
index 64bb4f7..0000000
--- a/apache-ant-1.9.6-src.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:2ad98dd3a4805452e546e0f5b682360370ae11692a2157fff8ec6d177c957123
-size 3808558
diff --git a/apache-ant-1.9.6-src.tar.bz2.asc b/apache-ant-1.9.6-src.tar.bz2.asc
deleted file mode 100644
index 85fec1a..0000000
--- a/apache-ant-1.9.6-src.tar.bz2.asc
+++ /dev/null
@@ -1,7 +0,0 @@
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1
-
-iEYEABECAAYFAlWQ0NgACgkQohFa4V9ri3IODACdFpgbfaQV8W1WqECEJjwd/W4O
-kqAAmwb7sak1nWioHVp3n8U2/vA89mEi
-=bOy8
------END PGP SIGNATURE-----
diff --git a/apache-ant-1.9.9-src.tar.bz2 b/apache-ant-1.9.9-src.tar.bz2
new file mode 100644
index 0000000..970bc68
--- /dev/null
+++ b/apache-ant-1.9.9-src.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69aa251ffb9f31312c21d67db197843e0b03b3c8cc3e0af6e6e92d98eb0f2ead
+size 3832876
diff --git a/apache-ant-1.9.9-src.tar.bz2.asc b/apache-ant-1.9.9-src.tar.bz2.asc
new file mode 100644
index 0000000..ec60063
--- /dev/null
+++ b/apache-ant-1.9.9-src.tar.bz2.asc
@@ -0,0 +1,7 @@
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1
+
+iEYEABECAAYFAliTeuMACgkQohFa4V9ri3JKrwCfeUXDKRaGVSVPi8pJJdDnh+mz
+UkUAn0TPQC0YCk45FrYkWw42dwzkWcIh
+=veU8
+-----END PGP SIGNATURE-----
diff --git a/apache-ant-old-gcj-build.patch b/apache-ant-old-gcj-build.patch
deleted file mode 100644
index fa469ac..0000000
--- a/apache-ant-old-gcj-build.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -urN apache-ant-1.9.4.old/src/main/org/apache/tools/ant/util/VectorSet.java apache-ant-1.9.4/src/main/org/apache/tools/ant/util/VectorSet.java
---- apache-ant-1.9.4.old/src/main/org/apache/tools/ant/util/VectorSet.java 2014-07-04 14:36:26.370041107 +0200
-+++ apache-ant-1.9.4/src/main/org/apache/tools/ant/util/VectorSet.java 2014-07-04 14:44:12.888084246 +0200
-@@ -122,7 +122,7 @@
- count - index);
- }
- for (Object o : toAdd) {
-- elementData[index++] = o;
-+ elementData[index++] = (E) o;
- }
- elementCount += toAdd.size();
- return true;
-diff -urN apache-ant-1.9.4.old/src/main/org/apache/tools/zip/Simple8BitZipEncoding.java apache-ant-1.9.4/src/main/org/apache/tools/zip/Simple8BitZipEncoding.java
---- apache-ant-1.9.4.old/src/main/org/apache/tools/zip/Simple8BitZipEncoding.java 2014-07-04 14:36:26.372041107 +0200
-+++ apache-ant-1.9.4/src/main/org/apache/tools/zip/Simple8BitZipEncoding.java 2014-07-04 14:42:23.841074163 +0200
-@@ -101,7 +101,7 @@
- * stored as an array of 128 chars.
- */
- public Simple8BitZipEncoding(char[] highChars) {
-- this.highChars = highChars.clone();
-+ this.highChars = (char[]) highChars.clone();
- List temp =
- new ArrayList(this.highChars.length);
-
diff --git a/reproducible.patch b/reproducible.patch
new file mode 100644
index 0000000..3339385
--- /dev/null
+++ b/reproducible.patch
@@ -0,0 +1,141 @@
+commit 7c6c749c952153170e82b791d97086e99fe2a3cb
+Author: Stefan Bodewig
+Date: Mon May 8 18:44:07 2017 +0200
+
+ add magic property that override's tstamp's idea of "now"
+
+ https://bz.apache.org/bugzilla/show_bug.cgi?id=61079
+
+diff --git a/manual/Tasks/tstamp.html b/manual/Tasks/tstamp.html
+index 82812a579..6baa0c882 100644
+--- a/manual/Tasks/tstamp.html
++++ b/manual/Tasks/tstamp.html
+@@ -40,6 +40,12 @@
+ to indicate, for example, the release date. The best place for this task is
+ probably in an initialization target.
+
++Since Ant 1.9.10 the magic
++ property ant.tstamp.now
can be used to specify a fixed
++ date value in order to create reproducible builds. Its value must be
++ a number and is interpreted as seconds since the epoch (midnight
++ 1970-01-01).
++
+ Parameters
+
+
+diff --git a/manual/running.html b/manual/running.html
+index 529afc7dc..3bfb500c8 100644
+--- a/manual/running.html
++++ b/manual/running.html
+@@ -485,6 +485,11 @@
+ ArgumentProcessor internal repository.
+
+
++
++ ant.tstamp.now |
++ number, seconds since the epoch (midnight 1970-01-01) |
++ The value to use as current time and date for <tstamp> |
++
+
+
+
+diff --git a/src/main/org/apache/tools/ant/MagicNames.java b/src/main/org/apache/tools/ant/MagicNames.java
+index bc39a2578..67ab8a810 100644
+--- a/src/main/org/apache/tools/ant/MagicNames.java
++++ b/src/main/org/apache/tools/ant/MagicNames.java
+@@ -289,5 +289,18 @@ public final class MagicNames {
+ * Value {@value}
+ */
+ public static final String HTTP_AGENT_PROPERTY = "ant.http.agent";
++
++ /**
++ * Magic property that can be set to contain a value for tstamp's
++ * "now" in order to make builds that use the task create
++ * reproducible results.
++ *
++ *
The value is expected to be a number representing the date
++ * as seconds since the epoch.
++ *
++ * Value: {@value}
++ * @since Ant 1.9.10
++ */
++ public static final String TSTAMP_NOW = "ant.tstamp.now";
+ }
+
+diff --git a/src/main/org/apache/tools/ant/taskdefs/Tstamp.java b/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
+index 805427aba..a6a35d7b4 100644
+--- a/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
++++ b/src/main/org/apache/tools/ant/taskdefs/Tstamp.java
+@@ -32,6 +32,7 @@ import java.util.Vector;
+
+ import org.apache.tools.ant.BuildException;
+ import org.apache.tools.ant.Location;
++import org.apache.tools.ant.MagicNames;
+ import org.apache.tools.ant.Project;
+ import org.apache.tools.ant.Task;
+ import org.apache.tools.ant.types.EnumeratedAttribute;
+@@ -68,7 +69,7 @@ public class Tstamp extends Task {
+ */
+ public void execute() throws BuildException {
+ try {
+- Date d = new Date();
++ Date d = getNow();
+
+ Enumeration i = customFormats.elements();
+ while (i.hasMoreElements()) {
+@@ -110,6 +111,22 @@ public class Tstamp extends Task {
+ }
+
+ /**
++ * Return the {@link Date} instance to use as base for DSTAMP, TSTAMP and TODAY.
++ */
++ protected Date getNow() {
++ String magicNow = getProject().getProperty(MagicNames.TSTAMP_NOW);
++ if (magicNow != null && magicNow.length() > 0) {
++ try {
++ return new Date(1000 * Long.parseLong(magicNow));
++ } catch (NumberFormatException ex) {
++ log("magic property " + MagicNames.TSTAMP_NOW + " ignored as "
++ + magicNow + " is not a valid number");
++ }
++ }
++ return new Date();
++ }
++
++ /**
+ * This nested element that allows a property to be set
+ * to the current date and time in a given format.
+ * The date/time patterns are as defined in the
+diff --git a/src/tests/antunit/taskdefs/tstamp-test.xml b/src/tests/antunit/taskdefs/tstamp-test.xml
+new file mode 100644
+index 000000000..c9bebf866
+--- /dev/null
++++ b/src/tests/antunit/taskdefs/tstamp-test.xml
+@@ -0,0 +1,27 @@
++
++
++
++
++
++
++
++
++
++
++
++