robk-tahoe [Thu, 10 Jan 2008 22:26:19 +0000 (15:26 -0700)]
fix nevow build prob for py2exe
nevow attempts to use pkg_resources to find the formless css file upon
import, if pkg_resources is available. unfortunately using pkg_resources
to find files is not supported if the files are being loaded from a zip
archive (i.e. only source and egg), and further py2exe uses a zip bundle
for all the code and dependent libraries. hence having both pkg_resources
and nevow built into an exe causes nevow to explode upon import.
this tells py2exe not to link pkg_resources into the target, so that
this behaviour isn't stimulated. the side effect being that pkg_resources
isn't available.
robk-tahoe [Thu, 10 Jan 2008 22:23:41 +0000 (15:23 -0700)]
added tweaked sibpath implementation
use of twisted.python.util.sibpath to find files relative to modules doesn't
work when those modules are bundled into a library by py2exe. this provides
an alternative implementation (in allmydata.util.sibpath) which checks for
the existence of the file, and if it is not found, attempts to find it relative
to sys.executable instead.
robk-tahoe [Thu, 10 Jan 2008 02:54:12 +0000 (19:54 -0700)]
add 'run' command to tahoe
adds a 'run' commands to bin/tahoe / tahoe.exe
it loads a client node into the tahoe process itself,
running in the base dir specified by --basedir/-C and
defaulting to the current working dir.
it runs synchronously, and the tahoe process blocks until
the reactor is stopped.
robk-tahoe [Thu, 10 Jan 2008 02:25:38 +0000 (19:25 -0700)]
add build dependencies to support py2exe's modulefinder
adds windows/depends.py as a container for modules which are needed at runtime
but which py2exe's modulefinder dependency analysis fails to find as requisites.
robk-tahoe [Thu, 10 Jan 2008 02:19:52 +0000 (19:19 -0700)]
added a 'repl' command to tahoe.exe
this is probably not of very high utility in the unix case of bin/tahoe
but is useful when working with native builds, e.g. py2exe's tahoe.exe,
to examine and debug the runtime environment, linking problems etc.
robk-tahoe [Thu, 10 Jan 2008 02:02:53 +0000 (19:02 -0700)]
tweaks to build process to support py2exe
py2exe is unable to handle .eggs which are packaged as zip files
in preference it will pull in other versions of libraries if they
can be found in the environment.
this changes causes .eggs to be built as .egg directories, which
py2exe can handle.
robk-tahoe [Thu, 10 Jan 2008 02:01:56 +0000 (19:01 -0700)]
first stab at windows build details.
there are many and various fiddly details that were involved in this process
on mountain view. This is a stripped down version of the build process used
there. there's hence a good chance that one or two necessary details got
stripped down through the cracks.
this provides a py2exe setup.py to build a tahoe.exe and a tahoesvc.exe
the former is equivalent to bin/tahoe, but without the start/stop commands.
the latter is a windows service that instantiates a client whose basedir
is found in the registry.
setup: require setuptools >= v0.6c6 on all platforms
Technically, we could get away with v0.6c5 or v0.6c4 on non-cygwin platforms, but if someone currently doesn't have setuptools >= v0.6c6 installed then our setup process will just use our bundled setuptools v0.6c7 anyway, so it will still work, and this makes the setup.py and the accompanying documentation simpler.
setup: remove the hack to determine if we can avoid the explicit setuptools-managed dependency on nevow (which was useful for building on dapper)
For simplicity, and to avoid weird failure modes that result from importing nevow during the build process, we now simply require nevow >= 0.6.0. We currently bundle in misc/dependencies nevow v0.9.18, which will not work on Dapper, since it requires Twisted >= 2.4.0, and Dapper comes with Twisted 2.2.0. Dapper users can (a) install a newer Twisted, (b) install nevow 0.6.0 in egg form so that setuptools can tell that it is installed (without importing it), (c) beg us to start shipping nevow 0.6.0 instead of nevow 0.9.18 in our bundle.
docs: add require version numbers of deps to install.html, move pywin32 from install.html to install-details.html, change ref to install-details.html in install.html
robk-tahoe [Tue, 8 Jan 2008 01:04:56 +0000 (18:04 -0700)]
reinstate creation of node.url files upon startup
a recent purge of the start.html code also took away the logic that wrote
'node.url' into the node root. this is required for the tahoe cli tool to
find the node. this puts back a limited fraction of that code, so that the
node writes out a node.url file upon startup.
robk-tahoe [Sat, 5 Jan 2008 01:34:10 +0000 (18:34 -0700)]
added "tahoe webopen" command
taking the same arguments as tahoe ls, it does a webbrowser.open to the page
specified by those args. hence "tahoe webopen" will open a browser to the
root dir specified in private/root_dir.cap by default.
this might be a good alternative to the start.html page.
more introductory doc cleanup
mv README to docs/about.html and reformat it as HTML
add a new README which is a text file pointing to docs/{about,install,running}.html
include the Transitive Grace Period Public Licence in its HTML form (it is too big)
remove automatic private dir
* rename my_private_dir.cap to root_dir.cap
* move it into the private subdir
* change the cmdline argument "--root-uri=[private]" to "--dir-uri=[root]"
setup: fix bin/tahoe to include .egg's from the source tree root dir as well
This is necessary, as we can't prevent setuptools from respecting any such eggs, therefore we need to respect them in order to maintain consistency. However, we don't normally install any "install_requires" eggs into the source tree root dir.
setup: "make" now defaults to "simple-build", which depends on build-deps
This is for conformance with the simple new install.html. People who don't want build-deps can run "make build".
docs: a bunch of updates to simplify the process of installing from source and running Tahoe
These changes are a work-in-progress -- there are many incomplete and incorrect parts, but the install.html and running.html files
are complete and should work (and they are delightfully concise!). I'm pushing this just to let people see incremental progress
and to solicit feedback. "Testing out" the install.html and running.html files and submitting patches or bug reports would be
quite welcome.