[tahoe-lafs-trac-stream] [Tahoe-LAFS] #2357: document in what ways Tahoe-LAFS builds are not currently verifiable
Tahoe-LAFS
trac at tahoe-lafs.org
Fri Jan 9 02:21:32 UTC 2015
#2357: document in what ways Tahoe-LAFS builds are not currently verifiable
-------------------------------+------------------------------------------
Reporter: daira | Owner: daira
Type: task | Status: assigned
Priority: normal | Milestone: soon
Component: documentation | Version: 1.10.0
Resolution: | Keywords: openitp-packaging build docs
Launchpad Bug: |
-------------------------------+------------------------------------------
Comment (by daira):
OpenITP meeting 5 January 2014
note: nondeterminism that results in obvious build failures is ok
different build targets can have different fingerprints
* what counts as a build target?
[NONDET: operating system versions, patches, variants, distribution if
counted as the same target]
quickstart build flow:
install Python if necessary
download the allmydata-tahoe-*.zip file (for a given build target)
unzip it
[NONDET: unzip programs might vary in e.g. permissions of unzipped
files]
[NONDET: file timestamps may depend on the clock of the build system]
[NONDET: order of files/subdirs in directories, if filesystem does not
sort them]
run setup.py build in a command prompt
[NONDET: which Python version runs setup.py?]
[NONDET: other installed Python versions might affect the build?]
[NONDET: which setuptools/pkg_resources/virtualenv version?]
[NONDET: system or virtualenv?]
[NONDET: which other Python packages installed on system and in
virtualenv?]
[NONDET: PYTHONPATH]
* it has some set of URLs where it looks for package distributions
("dists")
[NONDET: using the net at all is hopeless wrt determinism]
* which dists it chooses can influence further choices of dist for other
dependencies
* try to build each dist
[NONDET: order of builds? not sure what algorithm is used]
* dists are either pure Python or have C/C++ code
[NONDET: buildchain for C/C++ code (includes many non-obvious
dependencies)]
[NONDET: build process for C/C++ code]
[NONDET: distutils properties that affect compilation]
[NONDET: environment vars that affect compilation]
[NONDET: execution of Python code for building a dist (e.g dict order
etc.)]
[NONDET: do any dependencies rely on entropy sources (e.g. os.urandom)?]
[NONDET: can operations like running tests affect the built copy of
Tahoe?]
* sources of nondeterminism from builds of dependencies
--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2357#comment:3>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list