[build] Use SOURCE_DATE_EPOCH for .iso timestamps if it exists

Originally-implemented-by: Bernhard M. Wiedemann <bwiedemann@suse.de>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
diff --git a/src/util/genfsimg b/src/util/genfsimg
index 1a0517c..3c8b0c8 100755
--- a/src/util/genfsimg
+++ b/src/util/genfsimg
@@ -240,6 +240,16 @@
     else
 	FATIMG=
     fi
+    if [ -n "${SOURCE_DATE_EPOCH:-}" ] ; then
+	DATE_FMT="+%Y%m%d%H%M%S00"
+	BUILD_DATE=$(date -u -d "@${SOURCE_DATE_EPOCH}" "${DATE_FMT}" \
+			  2>/dev/null || \
+		     date -u -r "${SOURCE_DATE_EPOCH}" "${DATE_FMT}" \
+			  2>/dev/null || \
+		     date -u "${DATE_FMT}")
+	ISOARGS="${ISOARGS} --set_all_file_dates ${BUILD_DATE}"
+	ISOARGS="${ISOARGS} --modification-date=${BUILD_DATE}"
+    fi
 fi
 
 # Create FAT filesystem image, if applicable