Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ant for openSUSE:Factory checked in at 2024-07-19 15:25:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ant (Old) and /work/SRC/openSUSE:Factory/.ant.new.17339 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ant" Fri Jul 19 15:25:58 2024 rev:97 rq:1188402 version:1.10.14 Changes: -------- --- /work/SRC/openSUSE:Factory/ant/ant-antlr.changes 2024-05-06 17:52:23.529201116 +0200 +++ /work/SRC/openSUSE:Factory/.ant.new.17339/ant-antlr.changes 2024-07-19 15:26:13.064514672 +0200 @@ -2 +2,12 @@ -Sat May 4 00:53:40 UTC 2024 - Anton Shvetz <[email protected]> +Thu Jul 18 12:09:04 UTC 2024 - Fridrich Strba <[email protected]> + +- Added patches: + * reproducible-jar-mtime.patch + + make the modification times of files in a jar file + reproducible + * reproducible-javadoc.patch + + make javadoc generation reproducible: don't generate + timestamps, and normalize locale and encoding + +------------------------------------------------------------------- +Sat May 4 00:54:38 UTC 2024 - Anton Shvetz <[email protected]> ant-junit.changes: same change ant-junit5.changes: same change --- /work/SRC/openSUSE:Factory/ant/ant.changes 2024-05-06 17:52:23.813211474 +0200 +++ /work/SRC/openSUSE:Factory/.ant.new.17339/ant.changes 2024-07-19 15:26:14.460570219 +0200 @@ -1,0 +2,11 @@ +Thu Jul 18 12:09:04 UTC 2024 - Fridrich Strba <[email protected]> + +- Added patches: + * reproducible-jar-mtime.patch + + make the modification times of files in a jar file + reproducible + * reproducible-javadoc.patch + + make javadoc generation reproducible: don't generate + timestamps, and normalize locale and encoding + +------------------------------------------------------------------- New: ---- reproducible-jar-mtime.patch reproducible-javadoc.patch BETA DEBUG BEGIN: New:/work/SRC/openSUSE:Factory/.ant.new.17339/ant-antlr.changes-- Added patches: /work/SRC/openSUSE:Factory/.ant.new.17339/ant-antlr.changes: * reproducible-jar-mtime.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant-antlr.changes- + make the modification times of files in a jar file -- /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit.changes-- Added patches: /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit.changes: * reproducible-jar-mtime.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit.changes- + make the modification times of files in a jar file -- /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit5.changes-- Added patches: /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit5.changes: * reproducible-jar-mtime.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit5.changes- + make the modification times of files in a jar file -- /work/SRC/openSUSE:Factory/.ant.new.17339/ant.changes-- Added patches: /work/SRC/openSUSE:Factory/.ant.new.17339/ant.changes: * reproducible-jar-mtime.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant.changes- + make the modification times of files in a jar file New:/work/SRC/openSUSE:Factory/.ant.new.17339/ant-antlr.changes- reproducible /work/SRC/openSUSE:Factory/.ant.new.17339/ant-antlr.changes: * reproducible-javadoc.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant-antlr.changes- + make javadoc generation reproducible: don't generate -- /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit.changes- reproducible /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit.changes: * reproducible-javadoc.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit.changes- + make javadoc generation reproducible: don't generate -- /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit5.changes- reproducible /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit5.changes: * reproducible-javadoc.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant-junit5.changes- + make javadoc generation reproducible: don't generate -- /work/SRC/openSUSE:Factory/.ant.new.17339/ant.changes- reproducible /work/SRC/openSUSE:Factory/.ant.new.17339/ant.changes: * reproducible-javadoc.patch /work/SRC/openSUSE:Factory/.ant.new.17339/ant.changes- + make javadoc generation reproducible: don't generate BETA DEBUG END: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ant-antlr.spec ++++++ --- /var/tmp/diff_new_pack.FRcLbR/_old 2024-07-19 15:26:15.520612398 +0200 +++ /var/tmp/diff_new_pack.FRcLbR/_new 2024-07-19 15:26:15.524612557 +0200 @@ -46,6 +46,8 @@ Patch6: apache-ant-xml-apis.patch # PATCH-FEATURE-OPENSUSE debian patch to use SOURCE_DATE_EPOCH for timestamp in property files Patch7: reproducible-propertyfile-task.patch +Patch8: reproducible-jar-mtime.patch +Patch9: reproducible-javadoc.patch BuildRequires: antlr-bootstrap BuildRequires: java-devel >= 1.8 BuildRequires: javapackages-local >= 6 @@ -395,6 +397,8 @@ %patch -P 5 -p1 %patch -P 6 -p1 %patch -P 7 -p1 +%patch -P 8 -p1 +%patch -P 9 -p1 # clean jar files find . -name "*.jar" -print -delete ant-junit.spec: same change ant-junit5.spec: same change ++++++ ant.spec ++++++ --- /var/tmp/diff_new_pack.FRcLbR/_old 2024-07-19 15:26:15.624616536 +0200 +++ /var/tmp/diff_new_pack.FRcLbR/_new 2024-07-19 15:26:15.624616536 +0200 @@ -45,6 +45,8 @@ Patch6: apache-ant-xml-apis.patch # PATCH-FEATURE-OPENSUSE debian patch to use SOURCE_DATE_EPOCH for timestamp in property files Patch7: reproducible-propertyfile-task.patch +Patch8: reproducible-jar-mtime.patch +Patch9: reproducible-javadoc.patch BuildRequires: antlr-bootstrap BuildRequires: java-devel >= 1.8 BuildRequires: javapackages-local >= 6 @@ -394,6 +396,8 @@ %patch -P 5 -p1 %patch -P 6 -p1 %patch -P 7 -p1 +%patch -P 8 -p1 +%patch -P 9 -p1 # clean jar files find . -name "*.jar" -print -delete ++++++ reproducible-jar-mtime.patch ++++++ --- apache-ant-1.10.14/src/main/org/apache/tools/ant/taskdefs/Jar.java 2024-07-16 14:41:00.996055227 +0200 +++ apache-ant-1.10.14/src/main/org/apache/tools/ant/taskdefs/Jar.java 2024-07-16 14:52:07.583866195 +0200 @@ -450,6 +450,13 @@ serviceList.add(service); } + private long currentTimeMillisOrSourceDateEpoch() { + if ( System.getenv("SOURCE_DATE_EPOCH") != null ) { + return 1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH")); + } + return System.currentTimeMillis(); + } + /** * Write SPI Information to JAR */ @@ -459,7 +466,7 @@ //stolen from writeManifest super.zipFile(is, zOut, "META-INF/services/" + service.getType(), - System.currentTimeMillis(), null, + currentTimeMillisOrSourceDateEpoch(), null, ZipFileSet.DEFAULT_FILE_MODE); } } @@ -579,7 +586,7 @@ new ByteArrayInputStream(baos.toByteArray()); try { super.zipFile(bais, zOut, MANIFEST_NAME, - System.currentTimeMillis(), null, + currentTimeMillisOrSourceDateEpoch(), null, ZipFileSet.DEFAULT_FILE_MODE); } finally { // not really required @@ -656,7 +663,7 @@ writer.close(); try (ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray())) { - super.zipFile(bais, zOut, INDEX_NAME, System.currentTimeMillis(), + super.zipFile(bais, zOut, INDEX_NAME, currentTimeMillisOrSourceDateEpoch(), null, ZipFileSet.DEFAULT_FILE_MODE); } } --- apache-ant-1.10.14/src/main/org/apache/tools/ant/taskdefs/Zip.java 2024-07-16 14:41:00.999388566 +0200 +++ apache-ant-1.10.14/src/main/org/apache/tools/ant/taskdefs/Zip.java 2024-07-17 14:27:00.917945219 +0200 @@ -682,6 +682,7 @@ "Failed to create missing parent directory for %s", zipFile); } + parent.setLastModified(currentTimeMillisOrSourceDateEpoch()); updatedFile = true; if (!zipFile.exists() && state.isWithoutAnyResources()) { @@ -1669,6 +1670,13 @@ extra); } + private long currentTimeMillisOrSourceDateEpoch() { + if ( System.getenv("SOURCE_DATE_EPOCH") != null ) { + return 1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH")); + } + return System.currentTimeMillis(); + } + /** * Add a directory to the zip stream. * @param dir the directory to add to the archive @@ -1708,7 +1716,7 @@ } else if (dir != null && dir.isExists()) { ze.setTime(dir.getLastModified() + millisToAdd); } else { - ze.setTime(System.currentTimeMillis() + millisToAdd); + ze.setTime(currentTimeMillisOrSourceDateEpoch() + millisToAdd); } ze.setSize(0); ze.setMethod(ZipEntry.STORED); @@ -1794,7 +1802,11 @@ if (!skipWriting) { final ZipEntry ze = new ZipEntry(vPath); - ze.setTime(fixedModTime != null ? modTimeMillis : lastModified); + long newLastModified = lastModified; + if ( System.getenv("SOURCE_DATE_EPOCH") != null ) { + newLastModified = 1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH")); + } + ze.setTime(fixedModTime != null ? modTimeMillis : newLastModified); ze.setMethod(doCompress ? ZipEntry.DEFLATED : ZipEntry.STORED); // if the input stream doesn't support mark/reset ability, we wrap it in a // stream that adds that support. ++++++ reproducible-javadoc.patch ++++++ --- apache-ant-1.10.14/src/main/org/apache/tools/ant/taskdefs/Javadoc.java 2024-07-17 15:06:13.718343866 +0200 +++ apache-ant-1.10.14/src/main/org/apache/tools/ant/taskdefs/Javadoc.java 2024-07-18 14:51:50.362329096 +0200 @@ -1297,6 +1297,15 @@ } /** + * Control generation of timestamps. + * + * @param b if true, don't generate timestamps. + */ + public void setNoTimestamp(final boolean b) { + addArgIf(b, "-notimestamp"); + } + + /** * Create link to Javadoc output at the given URL. * * @return link argument to configure @@ -1807,6 +1816,19 @@ */ @Override public void execute() throws BuildException { + if (System.getenv("SOURCE_DATE_EPOCH") != null) { + java.util.List<String> arguments = java.util.Arrays.asList(cmd.getCommandline()); + if (!arguments.contains("-locale")) { + setLocale("en"); + } + if (!arguments.contains("-encoding")) { + setEncoding("UTF-8"); + } + if (!arguments.contains("-notimestamp")) { + setNoTimestamp(true); + } + } + checkTaskName(); final List<String> packagesToDoc = new Vector<>();
