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.nownumber, 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 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++