Commit Graph

145 Commits

Author SHA1 Message Date
Zooko O'Whielacronx
3b8fbc6ef2 setup: put back "chmod +x bin/tahoe" in the build target 2008-01-23 16:40:20 -07:00
Zooko O'Whielacronx
573502c12a tests: it is okay to leave a src/allmydata/_auto_deps.py lying around after a build 2008-01-23 10:43:37 -07:00
robk-tahoe
68c2d54c0b add mac native build
This patch adds support for a mac native build.

At the moment it's a fairly simple .app - i.e. so simple as to be unacceptable
for a shipping product, but ok for testing and experiment at this point.

notably once launched, the app's ui does not respond at all, although its dock
icon does allow it to be force-quit.

this produces a single .app bundle, which when run will look for a node basedir
in ~/.tahoe.  If one is not found, one will be created in ~/Library/Application
Support/Allmydata Tahoe, and that will be symlinked to ~/.tahoe

if the basedir is lacking basic config (introducer.furl and root_dir.cap) then
the wx config wizard will be launched to log into an account and to set up
those files.

if a webport file is not found, the default value of 8123 will be written into
it.

once the node has started running, a webbrowser will be opened to the webish
interface at the users root_dir

note that, once configured, the node runs as the main thread of the .app,
no daemonisation is done, twistd is not involved.

the binary itself, from within the .app bundle, i.e.
"Allmydata Tahoe.app/Contents/MacOS/Allmydata Tahoe"
can be used from the command line and functions as the 'tahoe' executable
would in a unix environment, with one exception - when launched with no args
it triggers the default behaviour of running a node, and if necessary config
wizard, as if the user had launched the .app

one other gotcha to be aware of is that symlinking to this binary from some
other place in ones $PATH will most likely not work. when I tried this,
something - wx I believe - exploded, since it seems to use argv[0] to figure
out where necessary libraries reside and fails if argv[0] isn't in the .app
bundle.  it's pretty easy to set up a script a la
    #!/bin/bash
    /Blah/blah/blah/Allmydata\ Tahoe.app/Contents/MacOS/Allmydata\ Tahoe "${@}"
2008-01-22 19:32:26 -07:00
Zooko O'Whielacronx
348eecd615 setup: require specific versions of dependencies, both at run-time (if pkg_resources is available) and at build-time, and make there be only once place where we specify those versions
Using pkg_resources.require() like this also apparently allows people to install multiple different versions of packages on their system and tahoe (if pkg_resources is available to it) will import the version of the package that it requires.  I haven't tested this feature.
2008-01-22 17:24:33 -07:00
Zooko O'Whielacronx
8fc26ea4c4 setup: for reasons that I do not understand "show-eggspath" gives me a GNUmake error unless I move it down a couple of stanzas (until after the stanza that sets PYTHONPATH) 2008-01-22 17:22:38 -07:00
Zooko O'Whielacronx
eaed7a0690 setup: use setuptools (if it is present) at run-time to give a specific error message on startup if a too-old version of a dependency is installed 2008-01-22 17:42:54 -07:00
Zooko O'Whielacronx
5188929e72 setup: remove the hatch-eggs make script since the setup.cfg accomplishes it, and make windows-exe depend on .built 2008-01-22 13:47:48 -07:00
Zooko O'Whielacronx
84289b2446 setup: update some docs, metadata, and docstrings 2008-01-22 10:22:51 -07:00
Zooko O'Whielacronx
c740da9b6d setup: it is okay to leave src/allmydata_tahoe.egg-info in place
This directory allows programs to programmatically identify tahoe and its version number while "running from source" -- i.e. using ./setup.py develop.
2008-01-22 09:35:54 -07:00
Zooko O'Whielacronx
1f2e3fc912 setup: simplify the setup by removing the "tahoe dependencies" fake project
Now we use "./setup.py develop" to ensure that changes to our source code are immediately used without requiring a "make" step.  This simplification will hopefully pave the way for easier py2exe and py2app, solving the "Unit tests test the installed version" bug (#145), and perhaps also #164 and #176.

This patch also conditionalizes the use of setuptools_darcs on the absence of a PKG-INFO file, which is part of fixing #263.
2008-01-22 08:35:38 -07:00
robk-tahoe
7443121a9c simplify buildbot upload of windows installer
since the installer upload got more complex (needing to chmod files before
rsyncing) I promoted it to a makefile target, simplifying the buildbot steps
involved
2008-01-16 20:29:30 -07:00
robk-tahoe
146b290597 more minor build tweaks for windows
tweaking version number display, and fixing a couple of small bugs
2008-01-15 17:38:06 -07:00
Brian Warner
acaedfdbd6 Makefile: move use of 'cygpath' into win32-conditionalized section 2008-01-14 18:22:36 -07:00
robk-tahoe
3cb08209d2 windows installer build refinements
this resolves problems of py2exe's modulefinder collection of sources from
.zipped egg files, not by using easy_install to reach the --always-unzip
option, but rather with a small tool which unpacks any zipped egg files found
in misc/dependencies.  this fixes the py2exe build given rollback of the 
easy_install stuff which had broken the unix builds.  misc/hatch-eggs.py
performs the honours.

this also includes a misc/sub-ver.py tool which substitutes elements of the
verion number for the current code base (by importing allmydata.__version__
hence make-version should be run first, and the python path carefully managed)
into template files using python's string interpolation of named args from a
dict as the templating syntax.  i.e. %(major)d %(minor)d %(point)d %(nano)d
each expand to the individual components of the version number as codified
by the pyutil.version_class.Version class.  there is also a %(build)s tag
which expands to the string form of the whole version number.  This tool is
used to interpolate the automatically generated version information into the
innosetup source file in a form consistent with innosetup/windows' restrictions
2008-01-14 17:53:54 -07:00
robk-tahoe
2dd5d2fc63 add windows installer target to build
add 'windows-installer' target to top level makefile to build a windows setup.exe package
using innosetup.  this assumes innosetup 5 is installed in program files as normal.

this doesn't include any logic to manage version numbers at this point, it's just a 
simple experiment to test out building an installer as yet.
2008-01-11 20:41:21 -07:00
Zooko O'Whielacronx
4cfd695002 setup: fix name of setup script again 2008-01-11 18:46:03 -07:00
Zooko O'Whielacronx
54e8f430b8 setup: fix name of setup script 2008-01-11 18:44:48 -07:00
Zooko O'Whielacronx
4bb75db568 setup: switch back from using "misc/dependencies/setup.py easy_install --always-unzip misc/dependencies" to using "misc/dependencies/setup.py install"
because I don't fully understand the former, I suspect it of being implicated in the current buildslave redness, and we require --always-unzip solely for py2exe.
2008-01-11 18:40:43 -07:00
Zooko O'Whielacronx
6a6d198e1d setup: if the build fails, make returns a failure exit code 2008-01-11 14:43:31 -07:00
Brian Warner
0af1a9e1c5 Makefile: add new misc/dependencies/ litter to the 'clean' target 2008-01-10 20:24:44 -07:00
robk-tahoe
38ff96b2f8 resolve makefile conflicts
and surpress echo of echoes
2008-01-09 21:21:15 -07:00
robk-tahoe
33715f3ba3 add windows-exe target to makefile 2008-01-09 19:06:28 -07:00
robk-tahoe
2585908296 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.
2008-01-09 19:02:53 -07:00
Brian Warner
bc67f94546 Makefile: pyflakes: the newest pyflakes is more picky, more verbose, and prints the same message multiple times 2008-01-09 20:23:12 -07:00
Zooko O'Whielacronx
ab03cbee25 setup: fix it to direct the user to install.html in case of build failure 2008-01-08 10:39:49 -07:00
Zooko O'Whielacronx
e3af9ecef4 setup: direct user to doc/install.html if the build fails 2008-01-07 17:23:02 -07:00
Brian Warner
d32f210917 Makefile: don't run darcsver if we already have _version.py. Ought to fix building on non-darcs checkouts, and close #257 2008-01-04 17:25:46 -07:00
Brian Warner
65a8a8c405 Makefile: run 'make-version' at least once, in the 'build' target, to make sure we populate src/allmydata/_version.py 2008-01-03 14:33:33 -07:00
Zooko O'Whielacronx
5242e25c61 setup: add back "build-deps" as an alias for "build-auto-deps" since I don't know how to configure the buildmaster
And I am very tired.
2008-01-01 01:58:02 -07:00
Zooko O'Whielacronx
70be8d6a8a setup: rename build-deps to build-auto-deps 2008-01-01 01:49:21 -07:00
Zooko O'Whielacronx
f18a6167ca 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".
2008-01-01 00:44:30 -07:00
Zooko O'Whielacronx
7326b8bae0 setup: clean up darcsver egg on "make clean" 2007-12-31 23:58:25 -07:00
Zooko O'Whielacronx
2755f28e76 setup: use darcsver instead of pyutil for darcsver, use setup.py plugin instead of executable for darcsver
This hopefully fixes the deb builders.
2007-12-31 23:28:31 -07:00
Zooko O'Whielacronx
0eb31774d1 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.

More to come.
2007-12-30 05:47:17 -07:00
Brian Warner
5bd89b378b Makefile: put an existing PYTHONPATH in front of our generated EGGSPATH, to make it easier to test tahoe against development versions of dependent libraries 2007-12-24 17:21:53 -07:00
Zooko O'Whielacronx
2de4c07d76 setup: allow shell built-ins "true" and "false" so that I can experiment with deb builders on an OSX box. ;-) 2007-12-22 11:50:10 -07:00
Zooko O'Whielacronx
4a11c320f7 setup: small tidy-up of Make rules 2007-12-22 10:46:31 -07:00
Zooko O'Whielacronx
cbd6881a47 setup: remove misc/make-version.py and invoke "darcsver" from the pyutil library
misc/make-version.py has a limitation which prevents it from generating version
stamps from our current darcs history.  This limitation has been fixed in
pyutil's "darcsver".  Rather than copy the fix from there to
misc/make-version.py, I'm making it so that you have to install pyutil if you
want to automatically generate _version.py files from the current darcs
history.
2007-12-20 18:17:55 -07:00
Brian Warner
f3a3548d02 Makefile check-speed: force-quit any leftover client before starting a new test 2007-12-14 02:04:25 -07:00
Zooko O'Whielacronx
1ac09840a4 a few documentation and naming convention updates
Notable: the argument to make REPORTER has been renamed to TRIALARGS.
2007-12-12 19:34:08 -07:00
Zooko O'Whielacronx
2eeac5cff8 setup: make dependency failures more helpful (thanks to Priyanka) 2007-11-20 00:07:44 -07:00
Zooko O'Whielacronx
41cd3011ac setup: pass INCLUDE_DIRS and LIBRARY_DIRS variables, if any to setup.py from Makefile 2007-11-13 20:16:59 -07:00
Zooko O'Whielacronx
a2edc7bdf2 setup: fix formatting of error messages from makefile 2007-11-09 13:13:39 -07:00
Brian Warner
22d386292b Makefile: check-deps: check for pycryptopp 2007-11-07 19:50:46 -07:00
Brian Warner
1e8a693512 Makefile: add 'find-trailing-spaces' tool and target 2007-11-05 21:32:08 -07:00
Brian Warner
b70bda01f1 Makefile: add simple 'repl' target to start a python interpreter with a useful PYTHONPATH 2007-11-02 22:32:55 -07:00
Brian Warner
c6bbe74f59 Makefile: add ubuntu 'gutsy' as a .deb target 2007-10-17 13:35:11 -07:00
Brian Warner
1e04ad4720 Makefile: define TRIALCMD with '=' not ':=', to fix make-clean test. Closes #180 2007-10-15 15:01:59 -07:00
Zooko O'Whielacronx
bf3f629a68 setup: use the new find_exe module to find trial 2007-10-15 11:52:26 -07:00
Zooko O'Whielacronx
a25ef2f031 setup: remove an explanation from the top of the Makefile now that the topic is addresses in the README 2007-10-14 20:03:32 -07:00