Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:bmwiedemann:reproducible:test
petsc
reproducible.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File reproducible.patch of Package petsc
diff --git a/config/PETSc/Configure.py b/config/PETSc/Configure.py index 9d1072c..df864ab 100644 --- a/config/PETSc/Configure.py +++ b/config/PETSc/Configure.py @@ -97,13 +97,13 @@ class Configure(config.base.Configure): self.externalpackagesdir = framework.require('PETSc.options.externalpackagesdir',self) self.mpi = framework.require('config.packages.MPI',self) - for utility in os.listdir(os.path.join('config','PETSc','options')): + for utility in sorted(os.listdir(os.path.join('config','PETSc','options'))): self.registerPythonFile(utility,'PETSc.options') - for utility in os.listdir(os.path.join('config','BuildSystem','config','utilities')): + for utility in sorted(os.listdir(os.path.join('config','BuildSystem','config','utilities'))): self.registerPythonFile(utility,'config.utilities') - for package in os.listdir(os.path.join('config', 'BuildSystem', 'config', 'packages')): + for package in sorted(os.listdir(os.path.join('config', 'BuildSystem', 'config', 'packages'))): obj = self.registerPythonFile(package,'config.packages') if obj: obj.archProvider = self.framework.requireModule(obj.archProvider, obj) @@ -460,6 +460,7 @@ prepend-path PATH %s def dumpMachineInfo(self): import platform + import datetime import time import script def escape(s): @@ -467,7 +468,11 @@ prepend-path PATH %s fd = file(os.path.join(self.arch.arch,'include','petscmachineinfo.h'),'w') fd.write('static const char *petscmachineinfo = \"\\n\"\n') fd.write('\"-----------------------------------------\\n\"\n') - fd.write('\"Libraries compiled on %s on %s \\n\"\n' % (time.ctime(time.time()), platform.node())) + buildhost = platform.node() + if os.environ.get('SOURCE_DATE_EPOCH'): + buildhost = "reproducible" + buildtime = datetime.datetime.utcfromtimestamp(int(os.environ.get('SOURCE_DATE_EPOCH', time.time()))) + fd.write('\"Libraries compiled on %s on %s \\n\"\n' % (buildtime, buildhost)) fd.write('\"Machine characteristics: %s\\n\"\n' % (platform.platform())) fd.write('\"Using PETSc directory: %s\\n\"\n' % (escape(self.petscdir.dir))) fd.write('\"Using PETSc arch: %s\\n\"\n' % (escape(self.arch.arch))) diff --git a/config/builder.py b/config/builder.py index 8653452..51e6289 100644 --- a/config/builder.py +++ b/config/builder.py @@ -1248,6 +1248,8 @@ class DirectoryTreeWalker(logger.Logger): if not self.checkDir(rootDir): self.logPrint('Nothing to be done in '+rootDir) for root, dirs, files in os.walk(rootDir): + dirs.sort() + files.sort() yield root, files for badDir in [d for d in dirs if not self.checkDir(os.path.join(root, d))]: dirs.remove(badDir) @@ -1884,12 +1886,14 @@ class PETScMaker(script.Script): futures = [] for d in dirs: for root, files in walker.walk(d): + files.sort() futures += self.buildDirParallel(root, files, objDir) for future in futures: objects += future.finish() else: for d in dirs: for root, files in walker.walk(d): + files.sort() objects += self.buildDir(root, files, objDir) if len(objects): @@ -1905,6 +1909,7 @@ class PETScMaker(script.Script): walker = DirectoryTreeWalker(self.argDB, self.log, self.configInfo) for root, files in walker.walk(rootDir): + files.sort() depBuilder.buildDependencies(root, files) if not len(self.sourceDatabase): self.logPrint('No dependency information found -- disabling dependency tracking') diff --git a/config/cmakegen.py b/config/cmakegen.py index d995937..3a71726 100755 --- a/config/cmakegen.py +++ b/config/cmakegen.py @@ -154,6 +154,8 @@ def pkgsources(pkg, mistakes): allconditions = defaultdict(set) sources = defaultdict(deque) for root,dirs,files in os.walk(os.path.join('src',pkg)): + dirs.sort() + files.sort() conditions = allconditions[os.path.dirname(root)].copy() makefile = os.path.join(root,'makefile') if not os.path.exists(makefile): diff --git a/config/gmakegen.py b/config/gmakegen.py index 9f8d6f1..2908a97 100755 --- a/config/gmakegen.py +++ b/config/gmakegen.py @@ -116,6 +116,8 @@ class Petsc(object): for lang in LANGS: pkgsrcs[lang] = [] for root, dirs, files in os.walk(os.path.join(self.petsc_dir, 'src', pkg)): + dirs.sort() + files.sort() makefile = os.path.join(root,'makefile') if not os.path.exists(makefile): dirs[:] = [] diff --git a/config/gmakegentest.py b/config/gmakegentest.py index 6f3c1e9..a5f036b 100755 --- a/config/gmakegentest.py +++ b/config/gmakegentest.py @@ -705,6 +705,8 @@ class generateExamples(Petsc): # Goal of action is to fill this dictionary dataDict={} for root, dirs, files in os.walk(top, topdown=False): + dirs.sort() + files.sort() if not "examples" in root: continue if not os.path.isfile(os.path.join(root,"makefile")): continue bname=os.path.basename(root.rstrip("/")) diff --git a/config/testparse.py b/config/testparse.py index bc038b1..f9ef581 100755 --- a/config/testparse.py +++ b/config/testparse.py @@ -439,7 +439,7 @@ def parseTestDir(directory,verbosity): os.chdir(basedir) tDict={} - for test_file in glob.glob("new_ex*.*"): + for test_file in sorted(glob.glob("new_ex*.*")): tDict.update(parseTestFile(test_file,verbosity)) os.chdir(curdir)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor