diff -ru orig/jdk-6fa770f9f8ab/make/common/JarArchive.gmk jdk-6fa770f9f8ab/make/common/JarArchive.gmk --- orig/jdk-6fa770f9f8ab/make/common/JarArchive.gmk 2022-04-13 19:24:10.107680441 +0200 +++ jdk-6fa770f9f8ab/make/common/JarArchive.gmk 2022-04-13 19:31:18.031271019 +0200 @@ -251,12 +251,14 @@ $(ECHO) "Main-Class: $$(strip $$($1_JARMAIN))" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \ $$(if $$($1_EXTRA_MANIFEST_ATTR), \ $(PRINTF) "$$($1_EXTRA_MANIFEST_ATTR)\n" >> $$($1_MANIFEST_FILE) $$(NEWLINE)) \ + $(TOUCH) -h -c -t 197001010000.00 $$($1_MANIFEST_FILE) $$(NEWLINE) \ $(ECHO) Creating $$($1_NAME) $$(NEWLINE) \ $$($1_JAR_CMD) $$($1_JAR_CREATE_OPTIONS) $$@ $$($1_MANIFEST_FILE) $$(NEWLINE) \ $$($1_SCAPTURE_CONTENTS) \ $$($1_SCAPTURE_METAINF) \ $$($1_SUPDATE_CONTENTS) \ - $$($1_JARINDEX) && true \ + $$($1_JARINDEX) && true $$(NEWLINE) \ + d="`mktemp -d`" && $(CP) -f $$@ "$$$$d/a.jar" && (cd "$$$$d" && unzip a.jar META-INF/MANIFEST.MF && $(TOUCH) -h -c -t 197001010000.00 META-INF && $(TOUCH) -h -c -t 197001010000.00 META-INF/MANIFEST.MF && (zip --symlinks -0 -X a.jar META-INF META-INF/MANIFEST.MF; zip --symlinks -0 -X a.jar META-INF META-INF/MANIFEST.MF)) && $(CP) -f "$$$$d/a.jar" $$@ \ , \ $(ECHO) Modifying $$($1_NAME) $$(NEWLINE) \ $$($1_CAPTURE_CONTENTS) \ diff -ru orig/jdk-6fa770f9f8ab/make/JrtfsJar.gmk jdk-6fa770f9f8ab/make/JrtfsJar.gmk --- orig/jdk-6fa770f9f8ab/make/JrtfsJar.gmk 2022-04-13 19:24:10.091680007 +0200 +++ jdk-6fa770f9f8ab/make/JrtfsJar.gmk 2022-04-13 19:29:30.044346222 +0200 @@ -57,13 +57,18 @@ # file will not be copied unless META-INF/services would also be added to the INCLUDES. # Adding META-INF/services would include all files in that directory when only the one # is needed, which is why this explicit copy is defined instead. -$(eval $(call SetupCopyFiles, COPY_JIMAGE_SERVICE_PROVIDER, \ +$(eval $(call SetupCopyFiles, COPY_JIMAGE_SERVICE_PROVIDER, \ SRC := $(TOPDIR)/src/java.base/share/classes, \ DEST := $(SUPPORT_OUTPUTDIR)/jrtfs_classes, \ FILES := META-INF/services/java.nio.file.spi.FileSystemProvider)) +.PHONY: $(COPY_JIMAGE_SERVICE_PROVIDER)_fix +$(COPY_JIMAGE_SERVICE_PROVIDER)_fix: $(COPY_JIMAGE_SERVICE_PROVIDER) + find $(SUPPORT_OUTPUTDIR)/jrtfs_classes -exec $(TOUCH) -h -c -t 197001010000.00 {} \; + $(TOUCH) -h -c -t 197001010000.00 $(SUPPORT_OUTPUTDIR)/java-main-manifest.mf + $(eval $(call SetupJarArchive,BUILD_JRTFS_JAR, \ - DEPENDENCIES := $(BUILD_JRTFS) $(COPY_JIMAGE_SERVICE_PROVIDER), \ + DEPENDENCIES := $(BUILD_JRTFS) $(COPY_JIMAGE_SERVICE_PROVIDER)_fix, \ SRCS := $(SUPPORT_OUTPUTDIR)/jrtfs_classes, \ JAR := $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/jrt-fs.jar, \ MANIFEST := $(SUPPORT_OUTPUTDIR)/java-main-manifest.mf, \ diff -ru orig/jdk-6fa770f9f8ab/src/jdk.jartool/share/classes/sun/tools/jar/Main.java jdk-6fa770f9f8ab/src/jdk.jartool/share/classes/sun/tools/jar/Main.java --- orig/jdk-6fa770f9f8ab/src/jdk.jartool/share/classes/sun/tools/jar/Main.java 2022-04-13 19:24:12.555746751 +0200 +++ jdk-6fa770f9f8ab/src/jdk.jartool/share/classes/sun/tools/jar/Main.java 2022-04-13 19:25:34.117955999 +0200 @@ -849,12 +849,18 @@ output(getMsg("out.added.manifest")); } ZipEntry e = new ZipEntry(MANIFEST_DIR); - e.setTime(System.currentTimeMillis()); + if (System.getenv("SOURCE_DATE_EPOCH") != null) + e.setTime(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); + else + e.setTime(System.currentTimeMillis()); e.setSize(0); e.setCrc(0); zos.putNextEntry(e); e = new ZipEntry(MANIFEST_NAME); - e.setTime(System.currentTimeMillis()); + if (System.getenv("SOURCE_DATE_EPOCH") != null) + e.setTime(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); + else + e.setTime(System.currentTimeMillis()); if (flag0) { crc32Manifest(e, manifest); } @@ -1021,7 +1027,10 @@ throws IOException { ZipEntry e = new ZipEntry(INDEX_NAME); - e.setTime(System.currentTimeMillis()); + if (System.getenv("SOURCE_DATE_EPOCH") != null) + e.setTime(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); + else + e.setTime(System.currentTimeMillis()); if (flag0) { CRC32OutputStream os = new CRC32OutputStream(); index.write(os); @@ -1040,7 +1049,10 @@ String name = mi.getKey(); byte[] bytes = mi.getValue(); ZipEntry e = new ZipEntry(name); - e.setTime(System.currentTimeMillis()); + if (System.getenv("SOURCE_DATE_EPOCH") != null) + e.setTime(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); + else + e.setTime(System.currentTimeMillis()); if (flag0) { crc32ModuleInfo(e, bytes); } @@ -1065,7 +1077,10 @@ addMultiRelease(m); } ZipEntry e = new ZipEntry(MANIFEST_NAME); - e.setTime(System.currentTimeMillis()); + if (System.getenv("SOURCE_DATE_EPOCH") != null) + e.setTime(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH"))); + else + e.setTime(System.currentTimeMillis()); if (flag0) { crc32Manifest(e, m); }