Commit Graph

324 Commits

Author SHA1 Message Date
Brian Warner
eff82174d5 Makefile: upload-tarballs: switch from xfer-client to flappclient, closes #350
I've also set up a new flappserver on source@allmydata.org to receive the
tarballs. We still need to replace the gutsy buildslave (which is where the
tarballs used to be generated+uploaded) and give it the new FURL.
2009-12-27 11:37:03 -05:00
Zooko O'Whielacronx
4706859967 setup: ignore _darcs in the "test-clean" test and make the "clean" step remove all .egg's in the root dir 2009-12-06 10:48:35 -08:00
Brian Warner
131e05b155 clean up uri-vs-cap terminology, emphasize cap instances instead of URI strings
* "cap" means a python instance which encapsulates a filecap/dircap (uri.py)
 * "uri" means a string with a "URI:" prefix
 * FileNode instances are created with (and retain) a cap instance, and
   generate uri strings on demand
 * .get_cap/get_readcap/get_verifycap/get_repaircap return cap instances
 * .get_uri/get_readonly_uri return uri strings

* add filenode.download_to_filename() for control.py, should find a better way
* use MutableFileNode.init_from_cap, not .init_from_uri
* directory URI instances: use get_filenode_cap, not get_filenode_uri
* update/cleanup bench_dirnode.py to match, add Makefile target to run it
2009-11-11 14:26:19 -08:00
Brian Warner
7dc17aa078 new approach for debian packaging, sharing pieces across distributions. Still experimental, still only works for sid. 2009-08-18 12:05:27 -07:00
Brian Warner
24b1805ca0 new experimental deb-packaging rules. Only works for sid so far. 2009-08-17 18:40:52 -07:00
Brian Warner
d79b2a02b4 clean up debian packaging: we have control files for etch/lenny/sid, and
everything else uses one of those. Add dependency on python-pysqlite2 for
platforms that use py2.4 by default. Update foolscap dependency to 0.4.1.
2009-07-03 00:28:04 -07:00
Brian Warner
2100aef655 Makefile: add jaunty support, rearrange debian sections in order of release 2009-06-17 22:05:02 -07:00
Brian Warner
a0e3c586b2 fix quicktest: stop using setuptools, add misc/run-with-pythonpath.py, to make it run faster 2009-04-14 13:14:00 -07:00
Zooko O'Whielacronx
32c541cffc setup: create a "make deb-lenny-head" target
I made this patch by copying [20090305220021-92b7f-89d987c7d05306b5cb03a64f2956a652c10a7296] and changing the name from "intrepid" to "lenny".  I haven't tested it.
2009-03-06 13:10:57 -07:00
Zooko O'Whielacronx
e9199a89ab trivial: remove unused import detected by pyflakes, and remove trailing whitespace 2009-03-05 16:32:04 -07:00
Zooko O'Whielacronx
341c7aad83 setup: enable build of .debs for Ubuntu Intrepid, thanks to DarKNesS_WolF 2009-03-05 16:00:21 -07:00
Brian Warner
dc6fe89629 Makefile: minor, add .PHONY declarations 2009-02-13 01:23:41 -07:00
Brian Warner
666652ed84 Makefile: add figleaf-delta-output, to render figleaf coverage differences with a previous run 2009-02-12 15:18:29 -07:00
Brian Warner
020715c8e7 Makefile: include the figleaf pickle in the uploaded coverage data, for later differential analysis 2009-02-11 18:09:13 -07:00
Brian Warner
8fd9cbe351 Makefile: fix test-clean, by ignoring _appname.py and removing src/allmydata_tahoe.egg-info 2009-02-11 18:04:34 -07:00
Brian Warner
f0572421fe Makefile: fix 'clean' target to remove bin/tahoe and bin/tahoe-script.py, since both are now generated 2009-02-02 17:03:07 -07:00
Brian Warner
a6eb434b57 Makefile: use 'setup.py test' for test/quicktest targets (instead of
'setup.py trial'). 'setup.py trial' clobbers the tahoe .egg's PKG-INFO
"Version:" field (resetting it to 0.0.0), possibly because it isn't invoking
the darcsver subcommand that 'setup.py test' does before it runs the 'trial'
subcommand.

This slows down quicktest by another couple of seconds (see #591) and adds
more noise to its output, but without this change, 'make test' and 'make
quicktest' fail on test_runner (which spawns bin/tahoe as a subprocess, and
with a mangled Version:, the setuptools-based entry point script refuses to
recognize our source tree as a usable version of Tahoe).
2009-01-30 04:25:36 -07:00
Brian Warner
20ebfcc0c6 Makefile: remove the obsolete stats-gatherer-run target 2009-01-29 19:01:31 -07:00
Zooko O'Whielacronx
4e6c09d306 setup: remove the "build three times in a row" kludge now that #229 is fixed, and spell build "build" instead of "build_tahoe" 2009-01-29 13:59:52 -07:00
Brian Warner
66b8190fb1 rollback the #591 fix, since it breaks quicktest entirely 2009-01-23 17:28:12 -07:00
Zooko O'Whielacronx
2cf9505d5f setup: use "trial" executable instead of the setuptools_trial plugin for "make quicktest"
This is to fix #591 ("make quicktest" could be quicker and less noisy).  This means that "make quicktest" won't work unless the user has manually installed Twisted already such that the "trial" executable is on their PATH and the Twisted package is on their PYTHONPATH.  This bypasses the behavior of setuptools_trial which builds and checks package dependencies before executing the tests.
2009-01-23 16:58:30 -07:00
cgalvan
5cd6ed17fb use_setuptools_trial.patch 2008-11-21 14:57:59 -07:00
robk-tahoe
e1f7008e47 makefile: added 'fuse-test' target to makefile, to run 'runtests' 2008-10-19 06:25:18 -07:00
robk-tahoe
00aa75d1e8 fuse/impl_c: move mac tahoefuse impl out into contrib/fuse
For a variety of reasons, high amongst them the fact that many people 
interested in fuse support for tahoe seem to have missed its existence,
the existing fuse implementation for tahoe, previously 'mac/tahoefuse.py'
has been renamed and moved.

It was suggested that, even though the mac build depends upon it, that
the mac/tahoefuse implementation be moved into contrib/fuse along with
the other fuse implementations.  The fact that it's not as extensively
covered by unit tests as mainline tahoe was given as corroboration.

In a bid to try and stem the confusion inherent in having tahoe_fuse,
tfuse and tahoefuse jumbled together (not necessarily helped by 
referring to them as impl_a, b and c respectively) I'm hereby renaming
tahoefuse as 'blackmatch'  (black match is, per wikipedia "a type of 
crude fuse" hey, I'm a punny guy)  Maybe one day it'll be promoted to
be 'quickmatch' instead...

Anyway, this patch moves mac/tahoefuse.py out to contrib/fuse/impl_c/
as blackmatch.py, and makes appropriate changes to the mac build process
to transclude blackmatch therein.  this leaves the extant fuse.py and
fuseparts business in mac/ as-is and doesn't attempt to address such
issues in contrib/fuse/impl_c.

it is left as an exercise to the reader (or the reader of a message
to follow) as to how to deal with the 'fuse' python module on the mac.

as of this time, blackmatch should work on both mac and linux, and
passes the four extant tests in runtests.  (fwiw neither impl_a nor
impl_b have I managed to get working on the mac yet)

since blackmatch supports a read-write and caching fuse interface to
tahoe, some write tests obviously need to be added to runtests.
2008-09-24 18:42:14 -07:00
Brian Warner
050bee8fdc setup.py,Makefile: move the 'chmod +x bin/tahoe' into setup.py 2008-09-17 16:07:56 -07:00
Brian Warner
09603212ca Makefile,docs: tahoe-deps.tar.gz now lives in separate source/deps/ directory on http://allmydata.org 2008-09-17 13:44:52 -07:00
Brian Warner
749c5a95e0 setup.py,Makefile: teat sdist --sumo about tahoe-deps/, use -SUMO suffix on tarballs, add sumo to 'make tarballs' target 2008-09-17 13:01:19 -07:00
Brian Warner
880df93c8b Makefile: pyutil from a dependent lib causes a #455-ish problem, the workaround is to run build-once *three* times 2008-09-16 22:36:43 -07:00
Brian Warner
00debea3a9 Makefile: desert-island: don't re-fetch tahoe-deps.tar.gz if it's already there, remove the tahoe-deps/ before untarring directory to avoid unpacking weirdness 2008-09-16 22:22:04 -07:00
Brian Warner
1853020a5f #249: add 'test-desert-island', to assert that a tahoe-deps.tar.gz -enabled build does not download anything 2008-09-16 18:37:02 -07:00
Brian Warner
0afe7afac0 Makefile: fix windows issues 2008-09-11 22:09:19 -07:00
Brian Warner
3035c6bcf1 Makefile: use run_with_pythonpath, move windows targets into a separate Makefile 2008-09-11 21:45:08 -07:00
Brian Warner
5ca999fb72 Makefile: convert check-auto-deps target into 'setup.py check_auto_deps' 2008-09-11 20:59:04 -07:00
Brian Warner
39552404d7 rewrite parts of the Makefile in setup.py. Add 'build_tahoe' and 'trial' subcommands.
The 'make build' target now runs 'setup.py build_tahoe', which figures out
where the target 'supportlib' directory should go, and invokes 'setup.py
develop' with the appropriate arguments.

The 'make test' target now runs 'setup.py trial', which manages sys.path and
runs trial as a subroutine instead of spawning an external process. This
simplifies the case where Twisted was built as a dependent library (and thus
the 'trial' executable is not on PATH).

setup.py now manages sys.path and PYTHONPATH for its internal subcommands, so
the $(PP) prefix was removed from all Makefile targets that invoke setup.py .
For the remaining ones, the 'setup.py -q show_pythonpath' subcommand was
added to compute this prefix with python rather than with fragile
shell/Makefile syntax.
2008-09-11 18:03:21 -07:00
Brian Warner
ae6cc14a2d Makefile: give setup.py develop a '--site-dirs' arg to work around the #249 setuptools bug which causes us to unnecessarily rebuild pyopenssl and other support libs installed via debian's python-support. Should be harmless on other platforms. 2008-09-10 16:34:32 -07:00
Zooko O'Whielacronx
3fab96493e setup: don't assert that trial is present when the Makefile is evaluated
This should fix #506, but it means that if (for some weird reason) Twisted can't be auto-installed and the find_trial.py script doesn't work, the user will get a weird failure message instead of a clean failure message explaining that trial couldn't be found.  Oh well.

Chris Galvan is working on a much nicer fix to all these issues -- see #505.
2008-09-03 10:18:37 -07:00
Zooko O'Whielacronx
5786ddd36a setup: remove accidentally duplicated lines from Makefile 2008-08-07 12:30:29 -07:00
Brian Warner
c4405b529f Makefile: avoid bare quotes, since the emacs syntax-highlighter gets confused by them 2008-08-07 11:30:01 -07:00
Zooko O'Whielacronx
d44fc9fb88 setup: don't attempt to escape quote marks, just delete them. Ugly, but it works okay. 2008-08-06 16:27:42 -07:00
Zooko O'Whielacronx
960a648d5b setup: escape any double-quote chars in the PATH before using the PATH to find and invoke trial 2008-08-06 16:11:43 -07:00
Zooko O'Whielacronx
2ed1d03a49 setup: if the user passes a TRIALOPT env var then pass that on to trial
This is useful for --reporter=bwverbose, for example.
2008-07-30 13:58:06 -07:00
Zooko O'Whielacronx
8aab91115a setup: turn back on reactor=poll for cygwin trial (else it runs out of fds) 2008-07-30 11:12:17 -07:00
Zooko O'Whielacronx
5a0e98d693 setup: fix bug in Makefile -- ifeq, not ifneq -- so that now it sets poll reactor only if the user hasn't specified a REACTOR variable, instead of setting poll reactor only if the user has specified a REACTOR variable 2008-07-30 09:04:29 -07:00
Zooko O'Whielacronx
bd0fe3588b setup: whoops, really remove the default reactor=poll this time 2008-07-29 20:23:58 -07:00
Zooko O'Whielacronx
677f26f0f4 setup: instead of setting --reactor=poll for trial in all cases (which fails on platforms that don't have poll reactor, such as Windows and some Mac OS X), just set --reactor=poll for linux2. 2008-07-29 20:16:56 -07:00
Zooko O'Whielacronx
3eb5f221d7 setup: pass --reactor=poll to trial unless REACTOR variable is set, in which case pass --reactor=$(REACTOR)
This hopefully works around the problem that Twisted v8.1.0 has a bug when used
with pyOpenSSL v0.7 which bug causes some unit tests to spuriously fail -- see
known_issues.txt r2788:

http://allmydata.org/trac/tahoe/browser/docs/known_issues.txt?rev=2788#L122

Also it matches with the fact that --reactor=poll is required on cygwin.
2008-07-29 19:39:06 -07:00
Zooko O'Whielacronx
1a62904289 setup: don't use "python" in Makefile, use $(PYTHON) everywhere 2008-07-21 09:28:49 -07:00
Brian Warner
9ed9eb2048 check_grid.py: make it work, move node start/stop responsibility from Makefile to script 2008-06-19 12:39:52 -07:00
Brian Warner
2fffdbd439 Makefile: minor comment 2008-06-18 15:49:30 -07:00
Brian Warner
164c3f83a1 Makefile: edit check-grid comment a bit 2008-06-18 13:15:55 -07:00
Brian Warner
50d945ea8f start work on 'check-grid' target, for use in an automated prodnet tester. Just a docstring so far. 2008-06-18 12:57:47 -07:00
Brian Warner
0cba951ca0 Makefile: add ubuntu/hardy deb targets 2008-06-17 15:26:18 -07:00
Zooko O'Whielacronx
4b8632b7e5 setup: quote another place where spaces in paths cause shell command misparsing 2008-06-09 16:21:50 -07:00
Brian Warner
08d07f0cc5 Makefile: build twice, since sometimes the Nevow build fails the first time. See #455. This ought to be undone once that ticket is fixed by a new release of setuptools 2008-06-09 16:06:29 -07:00
Zooko O'Whielacronx
78791ab36d setup: don't quote REACTOROPT -- when it is empty then we want no argument at all to be passed to trial, rather than the empty-string-argument 2008-06-09 11:53:24 -07:00
Zooko O'Whielacronx
74908b9334 setup: don't quote TRIALCMD in Makefile -- it can be a pair of (python executable, path to command) paths 2008-06-05 16:39:12 -07:00
Zooko O'Whielacronx
065625738a setup: quote variables which are going to be passed through a shell and which might contain spaces 2008-06-05 15:19:51 -07:00
Zooko O'Whielacronx
36182fb1ac setup: indentation 2008-06-05 14:02:49 -07:00
Zooko O'Whielacronx
970edc5c65 setup and docs: various improvements to setup and docs
Remove docs/install-details.html and README.win32 for now (see #282).
Remove checks for pywin32 and pyopenssl in Makefile -- that is (or will be) automated by setuptools.
Remove twisted from setup_requires.  This causes the problem in which Nevow doesn't declare its dependency on Twisted (#440) to yield a clear ImportError mentioning Twisted and to fail repeatedly, rather than yielding a weird ImportError and working on the second identical attempt.
Fix Makefile to set PATH so that trial and twistd can be found by "make test" after Twisted was installed into support/ during "make"
2008-06-05 13:55:05 -07:00
Zooko O'Whielacronx
59cdfb8f35 setup: tiny fix to syntax in makefile 2008-05-07 05:37:11 -07:00
Zooko O'Whielacronx
a097f45243 setup: remove specific checks for twisted dependency in makefile
Now that the twisted dependency is handled by the automatic dependency mechanism.
2008-05-06 12:09:00 -07:00
Brian Warner
19a40d7a2d Makefile: add quicktest-figleaf: this is in my edit-test-repeat loop, and I need it to be fast 2008-04-24 11:30:38 -07:00
Zooko O'Whielacronx
c559769e78 setup: test depends on build, which means it invokes setup.py every time, which is slower but does "the right thing" more often
There is a new target "quicktest" which depends on the .built and .checked-deps files.  test-figleaf also depends on the build target now.
2008-04-24 09:57:04 -07:00
Zooko O'Whielacronx
5fb895c021 setup: remove obsolete makefile target build-deps 2008-04-22 12:07:12 -07:00
Zooko O'Whielacronx
6a112914aa setup: fix spacing in error output messages from makefile
Looking over Brian's shoulder the other day, I saw a message that said "Please seedocs/install.html".
Looking at the source code of the Makefile, it seems like it should say 

       @echo "ERROR: Not all of Tahoe's dependencies are in place.  Please see \
docs/install.html for help on installing dependencies."

instead of its current:

       @echo "ERROR: Not all of Tahoe's dependencies are in place.  Please see\
docs/install.html for help on installing dependencies."

But, I remember changing this more than once in the past, so either there is a different version of make somewhere which interprets trailing backslashes differently, or someone (possibly me) has repeatedly gotten confused about this issue.  Anyway, this time around, I'm trying:

       @echo "ERROR: Not all of Tahoe's dependencies are in place.  Please see docs/install.html for help on installing dependencies."

Even though it is > 80 chars.
2008-04-14 06:52:21 -07:00
Brian Warner
4b68eb0d95 minor patch, to trigger the buildbot 2008-04-10 16:47:52 -07:00
Zooko O'Whielacronx
d6c66f99c0 setup: rename GNUmakefile to Makefile
It's evil and wrong to call something a "Makefile" when it contains code that can't be interpreted by POSIX make and requires GNU make.
But everyone else is doing it.  ;-)
2008-04-01 12:36:09 -07:00
Brian Warner
667037a6d6 appease some unspecified audience by naming our GNU-extension-using makefile 'GNUmakefile'. Closes #214 2008-03-10 18:53:36 -07:00
Peter Secor
ff1b2c770e reverting a change zooko made (2258) to see if it clears up problems in the windows build 2008-03-10 11:37:49 -07:00
Zooko O'Whielacronx
3945188401 setup: don't install, just "develop" in setup.py in build target 2008-03-06 18:28:20 -07:00
Zooko O'Whielacronx
56c71f1bf4 setup: don't echo the echo of EGGSPATH 2008-03-06 18:18:56 -07:00
Zooko O'Whielacronx
854ae28ad6 tests: test depends on _version.py
because there is a test that asserts that our version is not "unknown"
2008-02-28 14:29:24 -07:00
robk-tahoe
1a02f38cf3 mac build: updates to respect UPLOAD_DEST argument to make
the make mac-upload target now requires an UPLOAD_DEST argument to be given,
which is the rsync destination (including trailing '/') to which the version
stamped directory containing the .dmg should be placed.  the account the 
build is running as (e.g. 'buildslave') should have ssh access to the account
specified in that dest. one might also consider locking the key down to the
target directory by adding something like 
command="rsync --server -vlogDtpr . /home/amduser/public_html/dist/mac-blah/"
to the corresponding authorized_key entry on the target machine.
2008-02-26 17:03:53 -07:00
Brian Warner
19b76cfadd Makefile: add 'upload-tarballs' target, using a foolscap-based file-transfer tool 2008-01-31 19:00:40 -07:00
Brian Warner
bf25a041f3 tarballs: stick with setup.py's sdist command, which gives us bz2/gz/zip but not rz/7z/lrz. Closes #298. 2008-01-31 13:52:48 -07:00
Brian Warner
4a363f0281 add 'tarballs' target, to generate compressed source tarballs 2008-01-30 20:45:14 -07:00
robk-tahoe
7b9f3207d0 stats: add a simple stats gathering system
We have a desire to collect runtime statistics from multiple nodes primarily
for server monitoring purposes.   This implements a simple implementation of
such a system, as a skeleton to build more sophistication upon.

Each client now looks for a 'stats_gatherer.furl' config file.  If it has
been configured to use a stats gatherer, then it instantiates internally
a StatsProvider.  This is a central place for code which wishes to offer
stats up for monitoring to report them to, either by calling 
stats_provider.count('stat.name', value) to increment a counter, or by
registering a class as a stats producer with sp.register_producer(obj).

The StatsProvider connects to the StatsGatherer server and provides its
provider upon startup.  The StatsGatherer is then responsible for polling
the attached providers periodically to retrieve the data provided.
The provider queries each registered producer when the gatherer queries
the provider.  Both the internal 'counters' and the queried 'stats' are
then reported to the gatherer.

This provides a simple gatherer app, (c.f. make stats-gatherer-run)
which prints its furl and listens for incoming connections.  Once a
minute, the gatherer polls all connected providers, and writes the
retrieved data into a pickle file.

Also included is a munin plugin which knows how to read the gatherer's
stats.pickle and output data munin can interpret.  this plugin, 
tahoe-stats.py can be symlinked as multiple different names within
munin's 'plugins' directory, and inspects argv to determine which
data to display, doing a lookup in a table within that file.
It looks in the environment for 'statsfile' to determine the path to
the gatherer's stats.pickle.  An example plugins-conf.d file is
provided.
2008-01-30 20:11:07 -07:00
Brian Warner
8e1439d12d Makefile: touch .built on every build, so other targets can depend upon .built and avoid redundant rebuilds 2008-01-30 01:32:57 -07:00
Brian Warner
07a45cd232 Makefile: split mac 'make .dmg' and 'upload' into separate steps 2008-01-25 16:29:13 -07:00
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
Brian Warner
1c7f52265f deb: add docs/* to the debian package 2007-10-11 14:37:29 -07:00
Brian Warner
dc573554c8 rename bin/allmydata-tahoe to bin/tahoe. Closes #155. 2007-10-11 03:38:24 -07:00
Zooko O'Whielacronx
2b6951bf20 setup: we needn't depend on make-version targets because setup.py always attempts to make a version whenever it is executed 2007-10-04 14:14:48 -07:00
Zooko O'Whielacronx
2ed8a272ed setup: attempt to work-around the problem that paths might end with trailing back-slashes (on Windows) by appending a PATHSEP (i.e. ":" or ";") instead of an OSSEP (i.e. "/" or "\")
I don't know what will happen if the path ends up with something like
"C:\Programs and Files\Whatever\;" on Windows, and then that gets passed to
cygwin bash.  This reminds me of Brian's suggestion to use Python helper
scripts (c.f. misc/find-dep-eggs.py) instead of writing this stuff in the
GNUmake language.  And *that* reminds me of the idea of writing the whole damn
thing in Python instead of in GNUmake, i.e. make all of our build tools be
plugins for setuptools instead of being GNUmake targets.
2007-10-04 14:11:16 -07:00
Zooko O'Whielacronx
fe899da1b0 setup: formatting of dependency-missing errors 2007-09-21 14:40:12 -07:00
Zooko O'Whielacronx
7e1b67cf2e setup: check for the pywin32 dep only on Windows 2007-09-21 14:11:16 -07:00
Zooko O'Whielacronx
aff7e8d436 setup: alas, pywin32 doesn't actually work as an easy_install; also make dependency missing errors more useful 2007-09-21 13:40:28 -07:00
Brian Warner
1fe6575385 Makefile: check-speed: leave the client node stopped when we're done 2007-09-20 19:03:16 -07:00
Brian Warner
2632c0ad8c check_speed: upload multiple files, measure Ax+B 2007-09-20 16:55:33 -07:00
Zooko O'Whielacronx
1e8fc6cffd Makefile: attempt to workaround problem caused by workaround for backslashes glomming onto the following double-quote. ... 2007-09-20 17:02:54 -07:00
Zooko O'Whielacronx
60573a2917 Makefile: end PYTHONPATH with "." because the string might end with "\", which will cause shell to later escape whatever character comes after the string 2007-09-19 20:26:54 -07:00
Brian Warner
f6be35e122 started framework for an automated speed-checking tool. Doesn't do much yet. 2007-09-19 18:27:47 -07:00
Brian Warner
7e4090edfb Makefile: fix and-vs-or bug in check-deps, hide errmsg in non-failing cases 2007-09-19 16:23:55 -07:00
Zooko O'Whielacronx
95067ae522 Makefile: give explicit failure message to user if dependencies aren't found 2007-09-19 17:04:36 -07:00
Brian Warner
53c9594f52 Makefile: check-memory: run mode=receive along with everything else 2007-09-19 20:39:17 -07:00
Brian Warner
bede39a156 check-memory: add 'receive' mode, for #97 (consumption during share receive 2007-09-19 12:59:32 -07:00
Brian Warner
af4d706b18 Makefile: check-memory-once: add a convenience target for focussed testing 2007-09-19 12:29:16 -07:00
Brian Warner
a97cd074ff Makefile: use .built to only require one tahoe-compile pass 2007-09-19 12:28:30 -07:00
Brian Warner
08cc32bb77 check_memory: add download-GET-slow, to simulate memory usage of a node feeding downloaded data via HTTP GET to a slow client 2007-09-18 20:35:27 -07:00
Brian Warner
f6acf5a0c3 check_memory: add download, download-GET 2007-09-18 18:56:05 -07:00
Brian Warner
941d1551a0 Makefile: figleaf2el.py needs PYTHONPATH to get allmydata.util 2007-09-17 01:10:27 -07:00