From b91e2d083d635ba9753affa9fb890a05e250999e Mon Sep 17 00:00:00 2001 From: Vagrant Cascadian Date: Fri, 26 Feb 2021 19:10:10 +0000 Subject: [PATCH] [PATCH] XMPSchemaAdapter.java: Use UTC timezone when SOURCE_DATE_EPOCH is set. SOURCE_DATE_EPOCH specifies the timestamp, but needs to be rendered in UTC timezone to ensure reproducible builds. https://reproducible-builds.org/docs/source-date-epoch/ This is a follow-up to https://bugs.debian.org/978499 in apache fop, as there is no way for fop itself to pass the timezone information for some values. Gbp-Pq: Name 0001-XMPSchemaAdapter.java-Use-UTC-timezone-when-SOURCE_D.patch --- .../java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java b/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java index 9a41eba..19811a8 100644 --- a/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java +++ b/src/main/java/org/apache/xmlgraphics/xmp/XMPSchemaAdapter.java @@ -157,6 +157,11 @@ public class XMPSchemaAdapter { * @return the formatted date */ public static String formatISO8601Date(Date dt) { + // https://reproducible-builds.org/docs/source-date-epoch/ + String source_date_epoch = System.getenv("SOURCE_DATE_EPOCH"); + if (source_date_epoch != null) { + return formatISO8601Date(dt, TimeZone.getTimeZone("Etc/UTC")); + } return formatISO8601Date(dt, TimeZone.getDefault()); }