[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