File sde.patch of Package pesign

diff --git a/src/signer_info.c b/src/signer_info.c
index afa00e2..44470aa 100644
--- a/src/signer_info.c
+++ b/src/signer_info.c
@@ -19,6 +19,7 @@
 
 #include "pesign.h"
 
+#include <stdlib.h>
 #include <string.h>
 #include <syslog.h>
 #include <time.h>
@@ -74,6 +75,8 @@ int
 generate_signed_attributes(cms_context *cms, SECItem *sattrs)
 {
 	Attribute *attrs[5];
+	time_t sigt;
+	char *source_date_epoch;
 	memset(attrs, '\0', sizeof (attrs));
 
 	SECItem encoded;
@@ -124,7 +127,10 @@ generate_signed_attributes(cms_context *cms, SECItem *sattrs)
 	attrs[2]->attrType = oid->oid;
 
 	SECItem *signing_time[2] = { NULL, NULL };
-	if (generate_time(cms, &encoded, time(NULL)) < 0)
+        if ((source_date_epoch = getenv("SOURCE_DATE_EPOCH")) == NULL ||
+            (sigt = (time_t)strtoll(source_date_epoch, NULL, 10)) <= 0)
+                time(&sigt);
+	if (generate_time(cms, &encoded, sigt) < 0)
 		goto err;
 	signing_time[0] = SECITEM_ArenaDupItem(cms->arena, &encoded);
 	if (!signing_time[0])
openSUSE Build Service is sponsored by