Add reproducible.patch to make lv2 package build reproducible (boo#1047218) OBS-URL: https://build.opensuse.org/request/show/621773 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/lv2?expand=0&rev=22
110 lines
3.7 KiB
Diff
110 lines
3.7 KiB
Diff
Author: Bernhard M. Wiedemann <bwiedemann suse de>
|
|
Date: 2018-04-16
|
|
|
|
https://github.com/drobilla/lv2/pull/21
|
|
https://github.com/drobilla/lv2/pull/22
|
|
|
|
make lv2 package build reproducible
|
|
|
|
Index: lv2-1.14.0/lv2specgen/lv2specgen.py
|
|
===================================================================
|
|
--- lv2-1.14.0.orig/lv2specgen/lv2specgen.py
|
|
+++ lv2-1.14.0/lv2specgen/lv2specgen.py
|
|
@@ -45,6 +45,7 @@ import optparse
|
|
import os
|
|
import re
|
|
import sys
|
|
+import time
|
|
import xml.sax.saxutils
|
|
import xml.dom
|
|
import xml.dom.minidom
|
|
@@ -113,7 +114,7 @@ def findStatements(model, s, p, o):
|
|
def findOne(m, s, p, o):
|
|
l = findStatements(m, s, p, o)
|
|
try:
|
|
- return l.next()
|
|
+ return sorted(l)[0]
|
|
except:
|
|
return None
|
|
|
|
@@ -396,7 +397,7 @@ def rdfsPropertyInfo(term, m):
|
|
domains = findStatements(m, term, rdfs.domain, None)
|
|
domainsdoc = ""
|
|
first = True
|
|
- for d in domains:
|
|
+ for d in sorted(domains):
|
|
union = findOne(m, getObject(d), owl.unionOf, None)
|
|
if union:
|
|
uris = parseCollection(m, getObject(union))
|
|
@@ -414,7 +415,7 @@ def rdfsPropertyInfo(term, m):
|
|
ranges = findStatements(m, term, rdfs.range, None)
|
|
rangesdoc = ""
|
|
first = True
|
|
- for r in ranges:
|
|
+ for r in sorted(ranges):
|
|
union = findOne(m, getObject(r), owl.unionOf, None)
|
|
if union:
|
|
uris = parseCollection(m, getObject(union))
|
|
@@ -477,13 +478,14 @@ def rdfsClassInfo(term, m):
|
|
restrictions.append(getSubject(meta_type))
|
|
|
|
if len(superclasses) > 0:
|
|
+ superclasses.sort()
|
|
doc += "\n<tr><th>Sub-class of</th>"
|
|
first = True
|
|
for superclass in superclasses:
|
|
doc += getProperty(getTermLink(superclass), first)
|
|
first = False
|
|
|
|
- for r in restrictions:
|
|
+ for r in sorted(restrictions):
|
|
props = findStatements(m, r, None, None)
|
|
onProp = None
|
|
comment = None
|
|
@@ -529,6 +531,7 @@ def rdfsClassInfo(term, m):
|
|
# Find out about properties which have rdfs:domain of t
|
|
d = classdomains.get(str(term), "")
|
|
if d:
|
|
+ d.sort()
|
|
dlist = ''
|
|
first = True
|
|
for k in d:
|
|
@@ -539,6 +542,7 @@ def rdfsClassInfo(term, m):
|
|
# Find out about properties which have rdfs:range of t
|
|
r = classranges.get(str(term), "")
|
|
if r:
|
|
+ r.sort()
|
|
rlist = ''
|
|
first = True
|
|
for k in r:
|
|
@@ -606,7 +610,7 @@ def rdfsInstanceInfo(term, m):
|
|
doc = ""
|
|
|
|
first = True
|
|
- for match in findStatements(m, term, rdf.type, None):
|
|
+ for match in sorted(findStatements(m, term, rdf.type, None)):
|
|
doc += getProperty(getTermLink(getObject(match),
|
|
term,
|
|
rdf.type),
|
|
@@ -942,7 +946,7 @@ def releaseChangeset(m, release, prefix=
|
|
|
|
entry = ''
|
|
#entry = '<dd><ul>\n'
|
|
- for i in findStatements(m, getObject(changeset), dcs.item, None):
|
|
+ for i in sorted(findStatements(m, getObject(changeset), dcs.item, None)):
|
|
item = getObject(i)
|
|
label = findOne(m, item, rdfs.label, None)
|
|
if not label:
|
|
@@ -1276,8 +1280,9 @@ def specgen(specloc, indir, style_uri, d
|
|
else:
|
|
template = template.replace('@COMMENT@', '')
|
|
|
|
- template = template.replace('@DATE@', datetime.datetime.utcnow().strftime('%F'))
|
|
- template = template.replace('@TIME@', datetime.datetime.utcnow().strftime('%F %H:%M UTC'))
|
|
+ build_date = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))
|
|
+ template = template.replace('@DATE@', build_date.strftime('%F'))
|
|
+ template = template.replace('@TIME@', build_date.strftime('%F %H:%M UTC'))
|
|
|
|
return template
|
|
|