commit ant for openSUSE:Factory
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 - 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 + +------------------------------------------------------------------- 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 <bodewig@apache.org> 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 <tstamp></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>
participants (1)
-
root@hilbert.suse.de