File reproducible-javadoc-timestamp.patch of Package java-11-openjdk.30326
From cf1f86d30b2e9d0b4ada535d16e6e9141dc6bb17 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Fri, 4 Aug 2023 17:43:52 +0200
Subject: [PATCH] Reproducible javadoc timestamp
---
.../doclets/formats/html/markup/Head.java | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Head.java b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Head.java
index 85ee310f0b..3c5260b1a0 100644
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Head.java
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Head.java
@@ -256,6 +256,9 @@ public class Head {
*/
public Content toContent() {
Date now = showTimestamp ? calendar.getTime() : null;
+ if (now != null && System.getenv("SOURCE_DATE_EPOCH") != null) {
+ now = new Date(1000 * Long.parseLong(System.getenv("SOURCE_DATE_EPOCH")));
+ }
HtmlTree tree = new HtmlTree(HtmlTag.HEAD);
if (showGeneratedBy) {
@@ -269,6 +272,9 @@ public class Head {
if (showMetaCreated) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ if (System.getenv("SOURCE_DATE_EPOCH") != null) {
+ dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
+ }
tree.addContent(HtmlTree.META(
(htmlVersion == HtmlVersion.HTML5) ? "dc.created" : "date",
dateFormat.format(now)));
@@ -298,7 +304,14 @@ public class Head {
private Comment getGeneratedBy(boolean timestamp, Date now) {
String text = "Generated by javadoc"; // marker string, deliberately not localized
if (timestamp) {
- text += " ("+ docletVersion + ") on " + now;
+ text += " ("+ docletVersion + ") on ";
+ if (System.getenv("SOURCE_DATE_EPOCH") == null) {
+ text += now;
+ } else {
+ SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z");
+ fmt.setTimeZone(TimeZone.getTimeZone("UTC"));
+ text += fmt.format(now);
+ }
}
return new Comment(text);
}
--
2.41.0