robk-tahoe [Wed, 24 Sep 2008 18:28:54 +0000 (11:28 -0700)]
fuse/impl_{a,b}: improve node-url handling
specifically change the expectation of the code to be such that the node-url
(self.url) always includes the trailing slash to be a correctly formed url
moreover read the node-url from the 'node.url' file found in the node 'basedir'
and only if that doesn't exist, then fall back to reading the 'webport' file
from therein and assuming localhost. This then supports the general tahoe
pattern that tools needing only a webapi server can be pointed at a directory
containing the node.url file, which can optionally point to another server,
rather than requiring a complete node dir and locally running node instance.
robk-tahoe [Wed, 24 Sep 2008 18:07:38 +0000 (11:07 -0700)]
fuse/impl_b: tweaks from testing on hardy
from testing on linux (specifically ubuntu hardy) the libfuse dll has a
different name, specifically libfuse.so.2. this patch tries libfuse.so
and then falls back to trying .2 if the former fails.
it also changes the unmount behaviour, to simply return from the handler's
loop_forever() loop upon being unmounted, rather than raising an EOFError,
since none of the client code I looked at actually handled that exception,
but did seem to expect to fall off of main() when loop_forever() returned.
Additionally, from my testing unmount typically led to an OSError from the
fuse fd read, rather than an empty read, as the code seemed to expect.
also removed a spurious import pyflakes quibbled about.
robk-tahoe [Wed, 24 Sep 2008 17:42:55 +0000 (10:42 -0700)]
setup: fix site-dirs to find system installed twisted on mac.
zooko helped me unravel a build weirdness today. somehow the system installed
twisted (/System/Library) was pulling in parts of the other twisted (/Library)
which had been installed by easy_install, and exploding.
getting rid of the latter helped, but it took this change to get the tahoe
build to stop trying to rebuild twisted and instead use the one that was
already installed. c.f. tkt #229
robk-tahoe [Wed, 24 Sep 2008 16:45:23 +0000 (09:45 -0700)]
CLI: rework webopen, and moreover its tests w.r.t. path handling
in the recent reconciliation of webopen patches, I wound up adjusting
webopen to 'pass through' the state of the trailing slash on the given
argument to the resultant url passed to the browser. this change
removes the requirement that arguments must be directories, and allows
webopen to be used with files. it also broke the tests that assumed
that webopen would always normalise the url to have a trailing slash.
in fixing the tests, I realised that, IMHO, there's something deeply
awry with the way tahoe handles paths; specifically in the combination
of '/' being the name of the root path within an alias, but a leading
slash on paths, e.g. 'alias:/path', is catagorically incorrect. i.e.
'tahoe:' == 'tahoe:/' == '/'
but 'tahoe:/foo' is an invalid path, and must be 'tahoe:foo'
I wound up making the internals of webopen simply spot a 'path' of
'/' and smash it to '', which 'fixes' webopen to match the behaviour
of tahoe's path handling elsewhere, but that special case sort of
points to the weirdness.
(fwiw, I personally found the fact that the leading / in a path was
disallowed to be weird - I'm just used to seeing paths qualified by
the leading / I guess - so in a debate about normalising path handling
I'd vote to include the /)
robk-tahoe [Wed, 24 Sep 2008 15:20:02 +0000 (08:20 -0700)]
CLI: reconcile webopen changes
I think this is largely attributable to a cleanup patch I'd made
which never got committed upstream somehow, but at any rate various
conflicting changes to webopen had been made. This cleans up the
conflicts therein, and hopefully brings 'tahoe webopen' in line with
other cli commands.
robk-tahoe [Wed, 18 Jun 2008 20:19:40 +0000 (13:19 -0700)]
cli: cleanup webopen command
moved the body of webopen out of cli.py into tahoe_webopen.py
made its invocation consistent with the other cli commands, most
notably replacing its 'vdrive path' with the same alias parsing,
allowing usage such as 'tahoe webopen private:Pictures/xti'
robk-tahoe [Wed, 11 Jun 2008 00:31:45 +0000 (17:31 -0700)]
macapp: changed to remove 'Tahoe' from .app name
Change the build product from 'Allmydata Tahoe' to 'Allmydata'
more inkeeping with the branding of the Allmydata product
Brian Warner [Thu, 25 Sep 2008 01:03:02 +0000 (18:03 -0700)]
add --syslog argument to 'tahoe start' and 'tahoe restart', used to pass --syslog to twistd for non-Tahoe nodes (like cpu-watcher)
Brian Warner [Thu, 25 Sep 2008 00:47:16 +0000 (17:47 -0700)]
misc/make-canary-files.py: tool to create 'canary files', explained in the docstring
Brian Warner [Wed, 24 Sep 2008 20:35:05 +0000 (13:35 -0700)]
webapi: survive slashes in filenames better: make t=info and t=delete to work, and let t=rename fix the problem
Zooko O'Whielacronx [Wed, 24 Sep 2008 18:09:22 +0000 (11:09 -0700)]
setup: when detecting platform, ask the Python Standard Library's platform.dist() before executing lsb_release, and cache the result in global (module) variables
This should make it sufficiently fast, while still giving a better answer on Ubuntu than platform.dist() currently does, and also falling back to lsb_release if platform.dist() says that it doesn't know.
Brian Warner [Wed, 24 Sep 2008 17:51:12 +0000 (10:51 -0700)]
node.py: add BASEDIR/keepalive_timeout and BASEDIR/disconnect_timeout, to set/enable the foolscap timers, for #521
Zooko O'Whielacronx [Wed, 24 Sep 2008 00:04:02 +0000 (17:04 -0700)]
setup: stop catching EnvironmentError when attempting to copy ./_auto_deps.py to ./src/allmydata/_auto_deps.py
It is no longer the case that we can run okay without _auto_deps.py being in place in ./src/allmydata, so if that cp fails then the build should fail.
Zooko O'Whielacronx [Tue, 23 Sep 2008 19:26:10 +0000 (12:26 -0700)]
immutable: remove unused imports (thanks, pyflakes)
Zooko O'Whielacronx [Tue, 23 Sep 2008 18:52:49 +0000 (11:52 -0700)]
immutable: refactor immutable filenodes and comparison thereof
* the two kinds of immutable filenode now have a common base class
* they store only an instance of their URI, not both an instance and a string
* they delegate comparison to that instance
Zooko O'Whielacronx [Tue, 23 Sep 2008 17:14:31 +0000 (10:14 -0700)]
setup: try parsing /etc/lsb-release first, then invoking lsb_release, because the latter takes half-a-second on my workstation, which is too long
Also because in some cases the former will work and the latter won't.
This patch also tightens the regexes so it won't match random junk.
Zooko O'Whielacronx [Tue, 23 Sep 2008 16:55:51 +0000 (09:55 -0700)]
setup: fix a cut-and-paste error in the fallback to parsing /etc/lsb-release
Zooko O'Whielacronx [Tue, 23 Sep 2008 16:28:58 +0000 (09:28 -0700)]
setup: if executing lsb_release doesn't work, fall back to parsing /etc/lsb-release before falling back to platform.dist()
An explanatio of why we do it this way is in the docstring.
Zooko O'Whielacronx [Tue, 23 Sep 2008 15:48:20 +0000 (08:48 -0700)]
setup: if invoking lsb_release doesn't work (which it doesn't on our etch buildslave), then fall back to the Python Standard Library's platform.dist() function
Zooko O'Whielacronx [Tue, 23 Sep 2008 00:13:47 +0000 (17:13 -0700)]
setup: fix bug in recent patch to use allmydata.get_package_versions() to tell the foolscap app-version-tracking what's what
Zooko O'Whielacronx [Tue, 23 Sep 2008 00:03:51 +0000 (17:03 -0700)]
setup: when using the foolscap "what versions are here?" feature, use allmydata.get_package_versions() instead of specifically importing allmydata, pycryptopp, and zfec
Zooko O'Whielacronx [Mon, 22 Sep 2008 23:53:54 +0000 (16:53 -0700)]
setup: simplify the implementation of allmydata.get_package_versions() and add "platform" which is a human-oriented summary of the underlying operating system and machine
Brian Warner [Sat, 20 Sep 2008 18:39:33 +0000 (11:39 -0700)]
misc/make_umid: change docs, make elisp code easier to grab
Brian Warner [Sat, 20 Sep 2008 18:38:53 +0000 (11:38 -0700)]
use foolscap's new app_versions API, require foolscap-0.3.1
Brian Warner [Sat, 20 Sep 2008 18:37:13 +0000 (11:37 -0700)]
BASEDIR/nickname is now UTF-8 encoded
Brian Warner [Sat, 20 Sep 2008 17:35:45 +0000 (10:35 -0700)]
various: use util.log.err instead of twisted.log.err, so we get both Incidents and trial-test-flunking
Brian Warner [Sat, 20 Sep 2008 17:35:00 +0000 (10:35 -0700)]
logging.txt: explain how to put log.err at the end of Deferred chains, explain FLOGTOTWISTED=1
Brian Warner [Sat, 20 Sep 2008 17:34:27 +0000 (10:34 -0700)]
util.log: send log.err to Twisted too, so that Trial tests are flunked
Brian Warner [Fri, 19 Sep 2008 19:39:22 +0000 (12:39 -0700)]
setup.py trial: improve --verbose suggestion a bit
Brian Warner [Fri, 19 Sep 2008 19:38:55 +0000 (12:38 -0700)]
test_cli: disable generate-keypair test on OS-X, pycryptopp still has a bug
Brian Warner [Fri, 19 Sep 2008 19:30:53 +0000 (12:30 -0700)]
NEWS: finish editing for the upcoming 1.3.0 release
Brian Warner [Fri, 19 Sep 2008 01:00:36 +0000 (18:00 -0700)]
NEWS: more edits, almost done
Brian Warner [Fri, 19 Sep 2008 00:27:55 +0000 (17:27 -0700)]
NEWS: describe all changes since the last release. Still needs editing.
Brian Warner [Fri, 19 Sep 2008 00:11:33 +0000 (17:11 -0700)]
CLI: add 'tahoe admin generate-keypair' command
Brian Warner [Thu, 18 Sep 2008 05:00:41 +0000 (22:00 -0700)]
web: add 'more info' pages for files and directories, move URI/checker-buttons/deep-size/etc off to them
Brian Warner [Wed, 17 Sep 2008 23:08:29 +0000 (16:08 -0700)]
setup.py: remove unused 'Extension' import
Brian Warner [Wed, 17 Sep 2008 23:07:56 +0000 (16:07 -0700)]
setup.py,Makefile: move the 'chmod +x bin/tahoe' into setup.py
Brian Warner [Wed, 17 Sep 2008 22:57:42 +0000 (15:57 -0700)]
docs/install.html: reference InstallDetails instead of debian-specific stuff
Brian Warner [Wed, 17 Sep 2008 20:44:52 +0000 (13:44 -0700)]
Makefile,docs: tahoe-deps.tar.gz now lives in separate source/deps/ directory on http://allmydata.org
Brian Warner [Wed, 17 Sep 2008 20:36:31 +0000 (13:36 -0700)]
docs: mention -SUMO tarballs, point users at release tarballs instead of development ones
Brian Warner [Wed, 17 Sep 2008 20:01:19 +0000 (13:01 -0700)]
setup.py,Makefile: teat sdist --sumo about tahoe-deps/, use -SUMO suffix on tarballs, add sumo to 'make tarballs' target
Brian Warner [Wed, 17 Sep 2008 19:59:38 +0000 (12:59 -0700)]
.darcs-boringfile ignore tahoe-deps and tahoe-deps.tar.gz
Zooko O'Whielacronx [Wed, 17 Sep 2008 17:08:39 +0000 (10:08 -0700)]
docs: add a note about the process of making a new Tahoe release
Brian Warner [Wed, 17 Sep 2008 05:36:43 +0000 (22:36 -0700)]
Makefile: pyutil from a dependent lib causes a #455-ish problem, the workaround is to run build-once *three* times
Brian Warner [Wed, 17 Sep 2008 05:22:04 +0000 (22:22 -0700)]
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
Brian Warner [Wed, 17 Sep 2008 05:17:25 +0000 (22:17 -0700)]
misc/check-build.py: ignore the 'Downloading file:..' line that occurs for the setup_requires= -triggered handling of the setuptools egg
Brian Warner [Wed, 17 Sep 2008 01:37:02 +0000 (18:37 -0700)]
#249: add 'test-desert-island', to assert that a tahoe-deps.tar.gz -enabled build does not download anything
Brian Warner [Wed, 17 Sep 2008 01:36:27 +0000 (18:36 -0700)]
#249: get dependent libs from tahoe-deps and ../tahoe-deps
Brian Warner [Wed, 17 Sep 2008 01:25:45 +0000 (18:25 -0700)]
#249: move dependent libs out of misc/dependencies/, get them from tahoe-deps.tar.gz instead
Peter Secor [Wed, 17 Sep 2008 00:45:47 +0000 (17:45 -0700)]
conf_wiz.py - updating version numbers in file, should really get these from a TAG or conf file
Brian Warner [Mon, 15 Sep 2008 20:43:14 +0000 (13:43 -0700)]
webish: add an extra newline to JSON output
Brian Warner [Fri, 12 Sep 2008 05:21:51 +0000 (22:21 -0700)]
windows/Makefile: fix dependencies: windows-installer must cause windows-exe to run
Brian Warner [Fri, 12 Sep 2008 05:09:19 +0000 (22:09 -0700)]
Makefile: fix windows issues
Brian Warner [Fri, 12 Sep 2008 04:45:08 +0000 (21:45 -0700)]
Makefile: use run_with_pythonpath, move windows targets into a separate Makefile
Brian Warner [Fri, 12 Sep 2008 04:44:18 +0000 (21:44 -0700)]
setup.py: add 'setup.py run_with_pythonpath', to run other commands with PYTHONPATH set usefully
Brian Warner [Fri, 12 Sep 2008 03:59:04 +0000 (20:59 -0700)]
Makefile: convert check-auto-deps target into 'setup.py check_auto_deps'
Brian Warner [Fri, 12 Sep 2008 02:51:38 +0000 (19:51 -0700)]
startstop_node.py: find twistd in our supportlib if we had to build Twisted as a setuptools dependency. This is a form of cgalvan's #505 patch, simplified because now 'setup.py trial' takes care of sys.path and PYTHONPATH
Brian Warner [Fri, 12 Sep 2008 01:03:21 +0000 (18:03 -0700)]
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.
Brian Warner [Fri, 12 Sep 2008 01:02:25 +0000 (18:02 -0700)]
bin/tahoe: reflow error messages
Brian Warner [Fri, 12 Sep 2008 00:46:22 +0000 (17:46 -0700)]
mac/Makefile: remove the verbose hdiutil diagnostics now that we resolved the problem
Brian Warner [Wed, 10 Sep 2008 23:34:32 +0000 (16:34 -0700)]
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.
Brian Warner [Wed, 10 Sep 2008 21:11:37 +0000 (14:11 -0700)]
web: fix output=JSON, add buttons for repair/json to the 'run deep-check' form
Brian Warner [Wed, 10 Sep 2008 20:44:58 +0000 (13:44 -0700)]
disallow deep-check on non-directories, simplifies the code a bit
Brian Warner [Wed, 10 Sep 2008 08:45:04 +0000 (01:45 -0700)]
dirnode: refactor recursive-traversal methods, add stats to deep_check() method results and t=deep-check webapi
Brian Warner [Wed, 10 Sep 2008 08:37:55 +0000 (01:37 -0700)]
dirnode: cleanup, make get_verifier() always return a URI instance, not a string
Brian Warner [Wed, 10 Sep 2008 06:54:57 +0000 (23:54 -0700)]
test_system: check t=deep-stats too
Brian Warner [Wed, 10 Sep 2008 06:14:16 +0000 (23:14 -0700)]
test_system: add deep-check-JSON tests, fix a bug
Brian Warner [Wed, 10 Sep 2008 06:02:45 +0000 (23:02 -0700)]
test_system: oops, re-enable some tests that got bypassed
Brian Warner [Wed, 10 Sep 2008 05:56:34 +0000 (22:56 -0700)]
test_system: add deep-stats test
Brian Warner [Wed, 10 Sep 2008 02:50:17 +0000 (19:50 -0700)]
hush pyflakes
Brian Warner [Wed, 10 Sep 2008 02:45:17 +0000 (19:45 -0700)]
checker results: add output=JSON to webapi, add tests, clean up APIs
to make the internal ones use binary strings (nodeid, storage index) and
the web/JSON ones use base32-encoded strings. The immutable verifier is
still incomplete (it returns imaginary healty results).
Brian Warner [Wed, 10 Sep 2008 01:08:27 +0000 (18:08 -0700)]
immutable verifier: provide some dummy results so deep-check works, make the tests ignore these results until we finish it off
Brian Warner [Wed, 10 Sep 2008 00:57:06 +0000 (17:57 -0700)]
mutable checker: even more tests. Everything in ICheckerResults should be covered now, except for immutable-verify which is incomplete
Brian Warner [Wed, 10 Sep 2008 00:30:10 +0000 (17:30 -0700)]
checker results: more tests, update interface docs
Brian Warner [Wed, 10 Sep 2008 00:28:53 +0000 (17:28 -0700)]
mutable checker: oops, fix redefinition of 'healthy' (numshares < N, not numshares < k, which is 'recoverable' not 'healthy')
Brian Warner [Wed, 10 Sep 2008 00:15:46 +0000 (17:15 -0700)]
checker results: more tests, more results. immutable verifier tests are disabled until they emit more complete results
Brian Warner [Tue, 9 Sep 2008 23:34:49 +0000 (16:34 -0700)]
checker: add tests, add stub for immutable check_and_repair
Brian Warner [Tue, 9 Sep 2008 23:34:16 +0000 (16:34 -0700)]
interfaces.py: minor improvement to IDirectoryNode.set_node
Brian Warner [Mon, 8 Sep 2008 23:19:43 +0000 (16:19 -0700)]
mac/Makefile: upload the .dmg file with foolscap xfer-client.py instead of scp
Brian Warner [Mon, 8 Sep 2008 23:19:03 +0000 (16:19 -0700)]
misc/xfer-client.py: small foolscap utility to transfer a file to a waiting server
Zooko O'Whielacronx [Mon, 8 Sep 2008 21:56:03 +0000 (14:56 -0700)]
setup: add excited DEVELOPER NOTE to install.html
It should be removed before 1.3.0 release, of course...
Zooko O'Whielacronx [Mon, 8 Sep 2008 21:55:49 +0000 (14:55 -0700)]
setup: edit the text of install.html
Zooko O'Whielacronx [Mon, 8 Sep 2008 21:54:51 +0000 (14:54 -0700)]
setup: add link to the DownloadDebianPackages page
Because I want that link off of the front page of the wiki...
Zooko O'Whielacronx [Mon, 8 Sep 2008 21:54:09 +0000 (14:54 -0700)]
setup: change URL from which to get source tarballs
So that when you look at that directory you won't see distracting other things such as darcs repositories.
Brian Warner [Mon, 8 Sep 2008 03:03:36 +0000 (20:03 -0700)]
test_system: make log() tolerate the format= form
Brian Warner [Mon, 8 Sep 2008 03:03:08 +0000 (20:03 -0700)]
immutable/checker: make log() tolerate the format= form
Brian Warner [Sun, 7 Sep 2008 19:44:56 +0000 (12:44 -0700)]
checker: overhaul checker results, split check/check_and_repair into separate methods, improve web displays
Brian Warner [Sun, 7 Sep 2008 19:29:50 +0000 (12:29 -0700)]
webapi.txt: explain that t=manifest gives verifycaps
Brian Warner [Sat, 6 Sep 2008 05:07:00 +0000 (22:07 -0700)]
introducer: add get_nickname_for_peerid
Brian Warner [Thu, 4 Sep 2008 00:25:31 +0000 (17:25 -0700)]
docs/logging.txt: explain tahoe/foolscap logging. Addresses #239.
Zooko O'Whielacronx [Wed, 3 Sep 2008 17:18:37 +0000 (10:18 -0700)]
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.
Brian Warner [Wed, 3 Sep 2008 03:32:51 +0000 (20:32 -0700)]
testutil.PollMixin: use a custom exception (and convert it) to avoid the ugly 'stash' cycle
Brian Warner [Fri, 29 Aug 2008 22:06:14 +0000 (15:06 -0700)]
mac/Makefile: more attempts to debug the buildslave failure
Brian Warner [Fri, 29 Aug 2008 20:52:43 +0000 (13:52 -0700)]
mac: add -verbose to the hdiutil call, to figure out why it's failing on the buildslave
Zooko O'Whielacronx [Fri, 29 Aug 2008 00:00:45 +0000 (17:00 -0700)]
setup: simplify parsing of python version number
Zooko O'Whielacronx [Thu, 28 Aug 2008 22:04:54 +0000 (15:04 -0700)]
setup: emit the version of python in the list of versions
Brian Warner [Thu, 28 Aug 2008 20:32:36 +0000 (13:32 -0700)]
munin: add tahoe_diskleft plugin, update spacetime/diskwatcher.tac to support it
Zooko O'Whielacronx [Thu, 28 Aug 2008 20:21:09 +0000 (13:21 -0700)]
docs: how_to_make_a_tahoe_release.txt
Just some cryptic notes to self, but if I get hit by a truck then someone else might be able to decode them.
Brian Warner [Wed, 27 Aug 2008 22:30:26 +0000 (15:30 -0700)]
debian: include misc/cpu-watcher.tac in the debian package
Brian Warner [Wed, 27 Aug 2008 21:30:13 +0000 (14:30 -0700)]
munin/tahoe_doomsday: change the graph title, 'time predictor' is more accurate than 'space predictor'