Hello community,

here is the log from the commit of package ant for openSUSE:Factory checked in 
at 2017-05-31 13:31:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ant (Old)
 and      /work/SRC/openSUSE:Factory/.ant.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ant"

Wed May 31 13:31:05 2017 rev:59 rq:496829 version:1.9.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/ant/ant-antlr.changes    2017-02-28 
23:46:41.318139471 +0100
+++ /work/SRC/openSUSE:Factory/.ant.new/ant-antlr.changes       2017-05-31 
13:31:07.716635490 +0200
@@ -1,0 +2,20 @@
+Fri May 19 08:08:28 UTC 2017 - [email protected]
+
+- 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 - [email protected]
+
+- Version bump to 1.9.9:
+  * Read WHATSNEW file for full changelist
+
+-------------------------------------------------------------------
+Mon May  8 07:43:51 UTC 2017 - [email protected]
+
+- Add reproducible.patch to allow reproducible builds of ant itself
+  and packages built with ant like jcodings
+
+-------------------------------------------------------------------
ant-junit.changes: same change
ant.changes: same change

Old:
----
  apache-ant-1.9.6-src.tar.bz2
  apache-ant-1.9.6-src.tar.bz2.asc
  apache-ant-old-gcj-build.patch

New:
----
  apache-ant-1.9.9-src.tar.bz2
  apache-ant-1.9.9-src.tar.bz2.asc
  reproducible.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ant-antlr.spec ++++++
--- /var/tmp/diff_new_pack.BLdtgl/_old  2017-05-31 13:31:10.616226779 +0200
+++ /var/tmp/diff_new_pack.BLdtgl/_new  2017-05-31 13:31:10.620226216 +0200
@@ -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 @@
 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 @@
 %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:  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 @@
 Requires:       antlr
 %requires_eq    ant
 Provides:       ant-antlr = %{version}-%{release}
+Obsoletes:      ant-javadoc
 %endif
 %if %{with junit}
 Requires:       junit4
@@ -104,41 +102,9 @@
 
 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 <exec> task that allows different commands to be executed
-based on the OS used.
-
 %endif
 
 %if %{with bootstrap}
@@ -236,20 +202,6 @@
 
 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 @@
 
 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 @@
 # 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 @@
    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 @@
 
 #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 @@
 sh -x ./build.sh --noconfig jars
 
 %endif
+%?strip_all_nondeterminism
 
 %install
 # ANT_HOME and subdirs
@@ -584,7 +513,6 @@
 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 "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 @@
 %{_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 @@
 %{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 @@
 %{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 @@
 %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 @@
 %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

++++++ ant-junit.spec ++++++
--- /var/tmp/diff_new_pack.BLdtgl/_old  2017-05-31 13:31:10.652221706 +0200
+++ /var/tmp/diff_new_pack.BLdtgl/_new  2017-05-31 13:31:10.656221142 +0200
@@ -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 @@
 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 @@
 %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:  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 @@
 Requires:       antlr
 %requires_eq    ant
 Provides:       ant-antlr = %{version}-%{release}
+Obsoletes:      ant-javadoc
 %endif
 %if %{with junit}
 Requires:       junit4
@@ -104,41 +102,9 @@
 
 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 <exec> task that allows different commands to be executed
-based on the OS used.
-
 %endif
 
 %if %{with bootstrap}
@@ -236,20 +202,6 @@
 
 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 @@
 
 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 @@
 # 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 @@
    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 @@
 
 #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 @@
 sh -x ./build.sh --noconfig jars
 
 %endif
+%?strip_all_nondeterminism
 
 %install
 # ANT_HOME and subdirs
@@ -584,7 +513,6 @@
 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 "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 @@
 %{_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 @@
 %{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 @@
 %{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 @@
 %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 @@
 %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

++++++ ant.spec ++++++
--- /var/tmp/diff_new_pack.BLdtgl/_old  2017-05-31 13:31:10.688216632 +0200
+++ /var/tmp/diff_new_pack.BLdtgl/_new  2017-05-31 13:31:10.688216632 +0200
@@ -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 @@
 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:  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 @@
 Requires:       antlr
 %requires_eq    ant
 Provides:       ant-antlr = %{version}-%{release}
+Obsoletes:      ant-javadoc
 %endif
 %if %{with junit}
 Requires:       junit4
@@ -103,41 +103,9 @@
 
 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 <exec> task that allows different commands to be executed
-based on the OS used.
-
 %endif
 
 %if %{with bootstrap}
@@ -235,20 +203,6 @@
 
 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 @@
 
 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 @@
 # 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 @@
    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 @@
 
 #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 @@
 sh -x ./build.sh --noconfig jars
 
 %endif
+%?strip_all_nondeterminism
 
 %install
 # ANT_HOME and subdirs
@@ -583,7 +514,6 @@
 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 "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 @@
 %{_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 @@
 %{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 @@
 %{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 @@
 %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 @@
 %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

++++++ apache-ant-1.9.6-src.tar.bz2 -> apache-ant-1.9.9-src.tar.bz2 ++++++
++++ 13226 lines of diff (skipped)

++++++ reproducible.patch ++++++
commit 7c6c749c952153170e82b791d97086e99fe2a3cb
Author: Stefan Bodewig <[email protected]>
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.</p>
 
+<p><em>Since Ant 1.9.10</em> the magic
+  property <code>ant.tstamp.now</code> 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).</p>
+
 <h3>Parameters</h3>
 <table border="1" cellpadding="2" cellspacing="0">
   <tr>
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 @@
   <a href="argumentprocessor.html#repository">ArgumentProcessor internal 
repository</a>.
   </td>
 </tr>
+<tr>
+  <td><code>ant.tstamp.now</code></td>
+  <td>number, seconds since the epoch (midnight 1970-01-01)</td>
+  <td>The value to use as current time and date for &lt;tstamp&gt;</td>
+</tr>
 </table>
 
 <p>
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.
+     *
+     * <p>The value is expected to be a number representing the date
+     * as seconds since the epoch.</p>
+     *
+     * 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 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
+  <import file="../antunit-base.xml" />
+
+  <target name="testMagicProperty">
+    <local name="ant.tstamp.now"/>
+    <property name="ant.tstamp.now" value="100000"/>
+    <tstamp/>
+    <au:assertPropertyEquals name="DSTAMP" value="19700102"/>
+  </target>
+</project>

Reply via email to