Author: Bernhard M. Wiedemann 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 += "\nSub-class of" 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 = '