Use SOURCE_DATE_EPOCH for metadata timestamps

This include .buildinfo, .treeinfo and .discinfo.

Signed-off-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
This commit is contained in:
Marek Marczykowski-Górecki 2018-10-04 18:16:34 +02:00 committed by Brian C. Lane
parent 4e0c7b3fba
commit 876ec52215
3 changed files with 20 additions and 3 deletions

View File

@ -23,6 +23,7 @@ import logging
logger = logging.getLogger("pylorax.buildstamp") logger = logging.getLogger("pylorax.buildstamp")
import datetime import datetime
import os
class BuildStamp(object): class BuildStamp(object):
@ -34,6 +35,10 @@ class BuildStamp(object):
self.isfinal = isfinal self.isfinal = isfinal
self.variant = variant self.variant = variant
if 'SOURCE_DATE_EPOCH' in os.environ:
now = datetime.datetime.utcfromtimestamp(
int(os.environ['SOURCE_DATE_EPOCH']))
else:
now = datetime.datetime.now() now = datetime.datetime.now()
now = now.strftime("%Y%m%d%H%M") now = now.strftime("%Y%m%d%H%M")
self.uuid = "{0}.{1}".format(now, buildarch) self.uuid = "{0}.{1}".format(now, buildarch)

View File

@ -22,6 +22,7 @@
import logging import logging
logger = logging.getLogger("pylorax.discinfo") logger = logging.getLogger("pylorax.discinfo")
import os
import time import time
@ -32,8 +33,13 @@ class DiscInfo(object):
self.basearch = basearch self.basearch = basearch
def write(self, outfile): def write(self, outfile):
if 'SOURCE_DATE_EPOCH' in os.environ:
timestamp = int(os.environ['SOURCE_DATE_EPOCH'])
else:
timestamp = time.time()
logger.info("writing .discinfo file") logger.info("writing .discinfo file")
with open(outfile, "w") as fobj: with open(outfile, "w") as fobj:
fobj.write("{0:f}\n".format(time.time())) fobj.write("{0:f}\n".format(timestamp))
fobj.write("{0.release}\n".format(self)) fobj.write("{0.release}\n".format(self))
fobj.write("{0.basearch}\n".format(self)) fobj.write("{0.basearch}\n".format(self))

View File

@ -23,6 +23,7 @@ import logging
logger = logging.getLogger("pylorax.treeinfo") logger = logging.getLogger("pylorax.treeinfo")
import configparser import configparser
import os
import time import time
@ -33,8 +34,13 @@ class TreeInfo(object):
self.c = configparser.ConfigParser() self.c = configparser.ConfigParser()
if 'SOURCE_DATE_EPOCH' in os.environ:
timestamp = os.environ['SOURCE_DATE_EPOCH']
else:
timestamp = str(time.time())
section = "general" section = "general"
data = {"timestamp": str(time.time()), data = {"timestamp": timestamp,
"family": product, "family": product,
"version": version, "version": version,
"name": "%s-%s" % (product, version), "name": "%s-%s" % (product, version),