robk-tahoe [Wed, 27 Feb 2008 01:08:44 +0000 (18:08 -0700)]
mac build: tweaks to build fuse for 10.4 and 10.5
rather than trying to build a single .app with both 10.4 and 10.5 fuse
libraries embedded within it, for the time being, we're just going to
have independant 10.4 and 10.5 builds.
this provides a 10.5 _fusemodule.so, and build changes to copy the
appropriate versions of files for 10.4 or 10.5 from sub dirs of mac/
into the build tree before triggering py2app
robk-tahoe [Wed, 27 Feb 2008 00:39:07 +0000 (17:39 -0700)]
mac build: make a couple of build dependency hints soft imports
the existing environment on otto requires a few build hints in order for
xml parsing to work properly. these hints are unnecessary, and moreover
their import by depends.py is broken, in the 10.5 environment in which
zandr's buildslave is running.
Brian Warner [Wed, 27 Feb 2008 00:33:14 +0000 (17:33 -0700)]
log more peerinfo in download/upload/checker problems
robk-tahoe [Wed, 27 Feb 2008 00:03:53 +0000 (17:03 -0700)]
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.
Brian Warner [Tue, 26 Feb 2008 22:35:28 +0000 (15:35 -0700)]
webish status: distinguish active uploads/downloads from recent ones
Brian Warner [Tue, 26 Feb 2008 22:02:35 +0000 (15:02 -0700)]
current-downloads status: add SI, size, make numsegs 1-based
Peter Secor [Fri, 22 Feb 2008 04:02:07 +0000 (21:02 -0700)]
native client - added ability to queue uploads and resume upon service restart
Peter Secor [Fri, 22 Feb 2008 03:46:57 +0000 (20:46 -0700)]
native client - renaming a few more instances to be consistent with Allmydata naming scheme for the release, maybe should parameterize this
Peter Secor [Fri, 22 Feb 2008 03:39:46 +0000 (20:39 -0700)]
native client - added AllmydataTray (replaces TahoeTray)
Peter Secor [Fri, 22 Feb 2008 03:38:11 +0000 (20:38 -0700)]
native client - updated system tray name, missed it at first
Peter Secor [Fri, 22 Feb 2008 03:24:31 +0000 (20:24 -0700)]
native client - updated to match naming for service and tray executable
Peter Secor [Fri, 22 Feb 2008 03:04:58 +0000 (20:04 -0700)]
native client - renaming things to take Tahoe out of the name, improving caching
robk-tahoe [Fri, 22 Feb 2008 01:40:04 +0000 (18:40 -0700)]
confwiz: change smb service name to remove 'tahoe'
the name 'tahoe' is in the process of being removed from the windows
installer and binaries. this changes the name of the smb service the
confwiz tries to start to 'Allmydata SMB'
Peter Secor [Wed, 20 Feb 2008 04:20:34 +0000 (21:20 -0700)]
native client - updating service name to match what the launcher uses
Peter Secor [Wed, 20 Feb 2008 03:58:37 +0000 (20:58 -0700)]
WinFUSE updates for beta release
robk-tahoe [Wed, 20 Feb 2008 01:56:59 +0000 (18:56 -0700)]
mac: added 'mount filesystem' action to the mac gui
this adds an action to the dock menu and to the file menu (when visible)
"Mount Filesystem". This action opens a windows offering the user an
opportunity to select from any of the named *.cap files in their
.tahoe/private directory, and choose a corresponding mount point to mount
that at.
it launches the .app binary as a subprocess with the corresponding command
line arguments to launch the 'tahoe fuse' functionality to mount that file
system. if a NAME.icns file is present in .tahoe/private alonside the
chosen NAME.cap, then that icon will be used when the filesystem is mounted.
this is highly unlikely to work when running from source, since it uses
introspection on sys.executable to find the relavent binary to launch in
order to get the right built .app's 'tahoe fuse' functionality.
it is also relatively likely that the code currently checked in, hence
linked into the build, will have as yet unresolved library dependencies.
it's quite unlikely to work on 10.5 with macfuse 1.3.1 at the moment.
robk-tahoe [Wed, 20 Feb 2008 00:18:17 +0000 (17:18 -0700)]
macfuse: move macfuse files around to simplify pythonpath
the mac/macfuse subdirectory needed to be added to the pythonpath in order
to build a binary incorporating the mac fuse system. this change should
make those modules accessible relative to the mac/ directory which is
implicitly included in the .app build process.
robk-tahoe [Wed, 20 Feb 2008 00:16:08 +0000 (17:16 -0700)]
macfuse: rework fuse initialisation, integrate with 'tahoe'
this provides a variety of changes to the macfuse 'tahoefuse' implementation.
most notably it extends the 'tahoe' command available through the mac build
to provide a 'fuse' subcommand, which invokes tahoefuse. this addresses
various aspects of main(argv) handling, sys.argv manipulation to provide an
appropriate command line syntax that meshes with the fuse library's built-
in command line parsing.
this provides a "tahoe fuse [dir_cap_name] [fuse_options] mountpoint"
command, where dir_cap_name is an optional name of a .cap file to be found
in ~/.tahoe/private defaulting to the standard root_dir.cap. fuse_options
if given are passed into the fuse system as its normal command line options
and the mountpoint is checked for existence before launching fuse.
the tahoe 'fuse' command is provided as an additional_command to the tahoe
runner in the case that it's launched from the mac .app binary.
this also includes a tweak to the TFS class which incorporates the ctime
and mtime of files into the tahoe fs model, if available.
robk-tahoe [Wed, 20 Feb 2008 00:05:14 +0000 (17:05 -0700)]
runner: tweaked runner to make it easier to extend with additional subcommands
runner provides the main point of entry for the 'tahoe' command, and
provides various subcommands by default. this provides a hook whereby
additional subcommands can be added in in other contexts, providing a
simple way to extend the (sub)commands space available through 'tahoe'
Zooko O'Whielacronx [Tue, 19 Feb 2008 22:34:19 +0000 (15:34 -0700)]
docs: change example capability
Zooko O'Whielacronx [Mon, 18 Feb 2008 23:08:05 +0000 (16:08 -0700)]
docs: fix name of docs dir in relnotes.txt
Brian Warner [Mon, 18 Feb 2008 07:31:28 +0000 (00:31 -0700)]
'tahoe start': only create logs/ if we're starting a tahoe node
Brian Warner [Mon, 18 Feb 2008 07:28:56 +0000 (00:28 -0700)]
test_runner.py: test launching an introducer too
Brian Warner [Mon, 18 Feb 2008 07:28:17 +0000 (00:28 -0700)]
'tahoe start': allow this to start arbitrary .tac file -bearing directories (like the log gatherer)
Zooko O'Whielacronx [Sat, 16 Feb 2008 00:35:33 +0000 (17:35 -0700)]
docs: update relnotes.txt
Zooko O'Whielacronx [Fri, 15 Feb 2008 20:16:43 +0000 (13:16 -0700)]
Merge patch which switches to SHA-256d with patch that adds punctuation and capitalization to the comment about the hash value.
Peter Secor [Fri, 15 Feb 2008 19:50:10 +0000 (12:50 -0700)]
commenting out open_welcome_page argument that doesn't seem to work with real installer
Brian Warner [Fri, 15 Feb 2008 11:02:50 +0000 (04:02 -0700)]
test_system.py: improve coverage of webish.py
Brian Warner [Fri, 15 Feb 2008 11:02:38 +0000 (04:02 -0700)]
webish.py: remove some dead code
robk-tahoe [Fri, 15 Feb 2008 07:11:23 +0000 (00:11 -0700)]
confwiz: make opening the welcome page options, off by default on windows, on on mac
robk-tahoe [Fri, 15 Feb 2008 03:14:46 +0000 (20:14 -0700)]
confwiz: fix mac confwiz w.r.t. recent confwiz changes
robk-tahoe [Fri, 15 Feb 2008 03:12:58 +0000 (20:12 -0700)]
confwiz: update the config wiz to open the welcome page
regardless of platform, the confwiz now opens the welcoe page upon
writing a config. it also provides a 'plat' argument (from python's
sys.platform) to help disambiguate our instructions by platform.
robk-tahoe [Fri, 15 Feb 2008 02:44:29 +0000 (19:44 -0700)]
confwiz: add command line options
adds command line option parsing to the confwiz.
the previous --uninstall option behaves as before, but it parsed
more explicitly with the twisted usage library.
added is a --server option, which controls which web site the
backend script for configuration is to be found on. (it is looked
for at /native_client.php on the given server) this option can be
used on conjunction with --uninstall to control where the uninstall
is recorded
Options:
-u, --uninstall record uninstall
-s, --server= url of server to contact
[default: https://beta.allmydata.com/]
e.g. confwiz.py -s https://www-test.allmydata.com/
Brian Warner [Fri, 15 Feb 2008 02:58:01 +0000 (19:58 -0700)]
BIG COMPATIBILITY BREAK: update hash tags, switch to SHA-256d everywhere
Brian Warner [Fri, 15 Feb 2008 02:45:12 +0000 (19:45 -0700)]
uri.py: hush pyflakes warning
Zooko O'Whielacronx [Fri, 15 Feb 2008 20:11:02 +0000 (13:11 -0700)]
docs: update install and usage docs, improve cli "usage" output, make new example directories, add unit test that fails code which prints out sentences that don't end with punctuation marks
Zooko O'Whielacronx [Fri, 15 Feb 2008 18:02:19 +0000 (11:02 -0700)]
docs: edit running.html
Zooko O'Whielacronx [Fri, 15 Feb 2008 03:20:19 +0000 (20:20 -0700)]
add unit test asserting that allmydata.util.base32 matches rfc 3548
Zooko O'Whielacronx [Fri, 15 Feb 2008 02:35:32 +0000 (19:35 -0700)]
merge patch which adds base32 to test_util with patch which removes bencode from test_util
robk-tahoe [Fri, 15 Feb 2008 01:35:10 +0000 (18:35 -0700)]
macfuse: another tahoe fuse implementation
This is the result of various experimentation done into using python-fuse
to provide access to tahoe on the mac. It's rough in quite a few places,
and is really the result of investigation more than a thorough
implemenation of the fuse api.
upon launch, it looks for the users root_dir by opening ~/.tahoe/node.url
and ~/.tahoe/private/root_dir.cap it then proceeds to cache the directory
structure found by walking the users tahoe drive (safely in the face of
directory loops) into memory and then mounts that filesystem.
when a file is read, it calls the tahoe node to first download the file
into a cache directory (~/.tahoe/_cache) and then serves up the file
from there.
when a file is written, a temporary file is allocated within the tmp dir
of the cache, and upon close() (specifically upon release()) the file is
uploaded to the tahoe node, and the new directory entry written.
note that while the durectory structure is cached into memory only when
the filesystem is mounted, that it is 'write through' i.e. changes made
via fuse are reflected into the underlying tahoe fs, even though changes
made to the tahoe fs otherwise show up only upon restart.
in addition to opening files for read and write, the mkdir() and rename()
calls are supported. most other file system operations are not yet
supported. notably stat() metadata is not currently tracked by tahoe,
and is variably reported by this fs depending on write cache files.
also note that this version does not fully support Finder. access through
normal unix commands such as cat, cp, mv, ls etc works fine, and read
access to file from within finder (including preview images and double-
click to open) work ok. but copies to the tahoe drive from within finder
may or may not succeed, but will always report an error. This is still
under investigation.
also note that this does not include any build integration. the included
_fusemodule.so was built on mac os 10.4 against macfuse 1.3.0, and is
known to not work against 10.5-1.3.1 it's possible it may also contain
dependencies upon parts of macports used to build the python that it was
built against. this will be cleaned up later.
usage:
python tahoefuse.py /Path/to/choice/of/mountpoint
or optionally
python tahoefuse.py -ovolicon=/Path/to/icon.icns /Path/to/mountpoint
upon startup, tahoefuse will walk the tahoe directory, then print a
summary of files and folders found, and then daemonise itself. to exit,
either eject the 'drive' (note: 10.5 doesn't show it as a drive, since
it considers fuse to be a connected server instead) or unmount it via
umount /Path/to/mountpoint etc.
robk-tahoe [Fri, 15 Feb 2008 00:36:10 +0000 (17:36 -0700)]
mac: fix a small bug in the 'tahoe' script
robk-tahoe [Fri, 15 Feb 2008 00:23:07 +0000 (17:23 -0700)]
idlib: make failures much clearer when encountering unicode
while investigating fuse related stuff, I spent quite a while staring at
very cryptic explosions I got from idlib. it turns out that unicode
objects and str objects have .translate() methods with differing signatures.
to save anyone else the headache, this makes it very clear if you accidentally
try to pass a unicode object in to a2b() etc.
Brian Warner [Fri, 15 Feb 2008 01:06:41 +0000 (18:06 -0700)]
remove bencode, yay
Brian Warner [Fri, 15 Feb 2008 00:59:29 +0000 (17:59 -0700)]
docs/uri.txt: update to reflect mutable files
Brian Warner [Thu, 14 Feb 2008 22:45:56 +0000 (15:45 -0700)]
unicode handling: declare dirnodes to contain unicode child names, update webish to match
Peter Secor [Thu, 14 Feb 2008 04:36:09 +0000 (21:36 -0700)]
updating installer for beta release
Brian Warner [Thu, 14 Feb 2008 03:20:43 +0000 (20:20 -0700)]
more minor architecture.txt changes
Brian Warner [Thu, 14 Feb 2008 03:14:29 +0000 (20:14 -0700)]
architecture.txt: fix some things that have changed a lot in recent releases
robk-tahoe [Thu, 14 Feb 2008 01:17:16 +0000 (18:17 -0700)]
windows installer: remove uninstall tracking, add welcome page
in justin's testing, the uninstall tracking was hanging the uninstall
process (on vista) for now, until we see enough need for it to warrant
more detailed testing/debugging/tweaks, I'm simply disabling the call
to confwiz --uninstall
also this adds a 'welcome page' to the install process. once the user
has installed the windows build, then the installer will open a web
browser to the 'welcome page' on the website ('/welcome_install')
Brian Warner [Thu, 14 Feb 2008 00:41:20 +0000 (17:41 -0700)]
mutable.py: add comments to justify initial-read size choices
Brian Warner [Thu, 14 Feb 2008 00:40:45 +0000 (17:40 -0700)]
docs/dirnodes.txt: add notes on dirnode sizes
Brian Warner [Thu, 14 Feb 2008 00:39:06 +0000 (17:39 -0700)]
mutable.txt: fix offset math in the SDMF layout
Zooko O'Whielacronx [Fri, 15 Feb 2008 02:27:47 +0000 (19:27 -0700)]
switch from base62 to base32 for storage indices, switch from z-base-32 to rfc 3548 base-32 for everything, separate out base32 encoding from idlib
Zooko O'Whielacronx [Thu, 14 Feb 2008 18:54:14 +0000 (11:54 -0700)]
docs: link straight to the release tar.gz in install.html
Zooko O'Whielacronx [Thu, 14 Feb 2008 16:00:26 +0000 (09:00 -0700)]
docs: update relnotes.txt for v0.8.0!
Zooko O'Whielacronx [Thu, 14 Feb 2008 15:54:34 +0000 (08:54 -0700)]
docs: update relnotes, running.html
Zooko O'Whielacronx [Thu, 14 Feb 2008 00:43:02 +0000 (17:43 -0700)]
docs: beginning of update to relnotes.txt for v0.8
Zooko O'Whielacronx [Wed, 13 Feb 2008 23:17:14 +0000 (16:17 -0700)]
mac: shebang usr bin env python
This makes it so that I can run "./setup.py" on the command-line, instead of "python ./setup.py".
Brian Warner [Wed, 13 Feb 2008 22:12:06 +0000 (15:12 -0700)]
'tahoe catalog-shares': add SDMF filesize to the output, update misc/find-share-anomalies.py to match
Brian Warner [Wed, 13 Feb 2008 20:57:39 +0000 (13:57 -0700)]
add test coverage for the /stats web page
Brian Warner [Wed, 13 Feb 2008 20:34:20 +0000 (13:34 -0700)]
mutable.py: reject shares with different k/N than we expect. Quick fix for #312: avoids data corruption but has availability problems.
Brian Warner [Wed, 13 Feb 2008 20:08:26 +0000 (13:08 -0700)]
test_web: remove test_GET_DIRURL_large, it failed to exercise the problem in #237 and consumes a disproportionate amount of time
Zooko O'Whielacronx [Wed, 13 Feb 2008 22:23:15 +0000 (15:23 -0700)]
setup: remove older bundled pycryptopp-0.2.10
Zooko O'Whielacronx [Wed, 13 Feb 2008 21:57:15 +0000 (14:57 -0700)]
setup: bundle pycryptopp-0.3.0
amber [Wed, 13 Feb 2008 11:57:19 +0000 (04:57 -0700)]
docs: 10 blocks by default, not 12
Brian Warner [Wed, 13 Feb 2008 04:28:52 +0000 (21:28 -0700)]
webish.py: fix for #237: when listing large directories, insert a turn break once every 100 children, to work around non-optimized tail recursion Deferreds
Zooko O'Whielacronx [Wed, 13 Feb 2008 17:24:52 +0000 (10:24 -0700)]
docs: edits and updates to architecture.txt, with Amber
Zooko O'Whielacronx [Wed, 13 Feb 2008 15:03:40 +0000 (08:03 -0700)]
setup: remove older bundled version of setuptools_darcs
Zooko O'Whielacronx [Wed, 13 Feb 2008 15:01:40 +0000 (08:01 -0700)]
setup: remove another older bundled setuptools
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:59:24 +0000 (07:59 -0700)]
setup: remove older bundled setuptools
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:57:22 +0000 (07:57 -0700)]
setup: remove older bundled version of darcsver
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:38:08 +0000 (07:38 -0700)]
fix a few unused imports and suchlike, discovered by pyflakes
Brian Warner [Wed, 13 Feb 2008 02:32:33 +0000 (19:32 -0700)]
webish: flogify the remaining log messages
Brian Warner [Wed, 13 Feb 2008 02:31:23 +0000 (19:31 -0700)]
webish: censor all caps before logging the HTTP request, to preserve user privacy
Brian Warner [Wed, 13 Feb 2008 02:01:03 +0000 (19:01 -0700)]
download status: refactor into a separate object, so we don't need to keep the Download itself around for a long time
Brian Warner [Wed, 13 Feb 2008 01:59:54 +0000 (18:59 -0700)]
introducer: remove encoding-parameter config, for now
Zooko O'Whielacronx [Wed, 13 Feb 2008 03:48:37 +0000 (20:48 -0700)]
use base62 encoding for storage indexes, on disk and in verifier caps, and in logging and diagnostic tools
base62 encoding fits more information into alphanumeric chars while avoiding the troublesome non-alphanumeric chars of base64 encoding. In particular, this allows us to work around the ext3 "32,000 entries in a directory" limit while retaining the convenient property that the intermediate directory names are leading prefixes of the storage index file names.
Brian Warner [Tue, 12 Feb 2008 22:40:05 +0000 (15:40 -0700)]
webish: add /status page to display current uploads/downloads
Brian Warner [Tue, 12 Feb 2008 22:39:45 +0000 (15:39 -0700)]
make current upload/download status objects available from the client
Brian Warner [Tue, 12 Feb 2008 22:38:39 +0000 (15:38 -0700)]
add download-status objects, to track download progress
Brian Warner [Tue, 12 Feb 2008 22:36:05 +0000 (15:36 -0700)]
add upload-status objects, to track upload progress
Brian Warner [Tue, 12 Feb 2008 02:53:36 +0000 (19:53 -0700)]
misc/find-share-anomalies.py: tool to analyze 'tahoe catalog-shares' output and look for problems
Brian Warner [Tue, 12 Feb 2008 02:14:10 +0000 (19:14 -0700)]
webish: add edge metadata to t=json output, including timestamps
Brian Warner [Tue, 12 Feb 2008 01:44:54 +0000 (18:44 -0700)]
catalog-shares: add expiration time to output
Brian Warner [Tue, 12 Feb 2008 01:17:01 +0000 (18:17 -0700)]
add 'tahoe catalog-shares' tool, to make a one-line summary of each share file. This can help do cross-server correlation of sharefiles, looking for anomalies
Brian Warner [Tue, 12 Feb 2008 00:37:51 +0000 (17:37 -0700)]
test_dirnode.py: improve error messages in case timestamp tests fail
Brian Warner [Tue, 12 Feb 2008 00:35:17 +0000 (17:35 -0700)]
test_dirnode.py: simplejson-1.7.1 incorrectly rounds floats to two decimal places. Don't let this bug flunk the timestamp test.
Brian Warner [Mon, 11 Feb 2008 22:26:58 +0000 (15:26 -0700)]
test_system.py: refactor bounce_client, probably make it stop failing on cygwin
Brian Warner [Mon, 11 Feb 2008 22:13:18 +0000 (15:13 -0700)]
webish: display timestamps
Brian Warner [Mon, 11 Feb 2008 22:12:55 +0000 (15:12 -0700)]
test_dirnode.py: assert that we update mtime and preserve ctime
Brian Warner [Mon, 11 Feb 2008 21:53:28 +0000 (14:53 -0700)]
dirnode.py: add metadata= to add_file(), add tests
Brian Warner [Mon, 11 Feb 2008 21:13:07 +0000 (14:13 -0700)]
test_dirnode.py: add diag output to test-ctime/mtime tests
Brian Warner [Sat, 9 Feb 2008 01:43:47 +0000 (18:43 -0700)]
dirnode: add ctime/mtime to metadata, update metadata-modifying APIs. Needs more testing and sanity checking.
Brian Warner [Fri, 8 Feb 2008 04:50:04 +0000 (21:50 -0700)]
docs/install-details.html: wrap to 80 cols, no content changes
Brian Warner [Fri, 8 Feb 2008 03:15:37 +0000 (20:15 -0700)]
test_system: remove the hackish debug_interrupt= attribute magic used to exercise interrupted-upload resumption, instead just make the Uploadable bounce the helper halfway through the upload
Brian Warner [Fri, 8 Feb 2008 03:14:05 +0000 (20:14 -0700)]
dirnodes.txt: update docs a bit, we don't yet do choose-latest-version, just choose-any-version
Brian Warner [Fri, 8 Feb 2008 03:10:28 +0000 (20:10 -0700)]
webapi.txt: document POST /uri?t=mkdir
Brian Warner [Fri, 8 Feb 2008 00:27:30 +0000 (17:27 -0700)]
test_system.py: remove that ugly debug_stash_RemoteencryptedUploadable hack, now that UploadResults give us a better approach
Brian Warner [Fri, 8 Feb 2008 00:26:59 +0000 (17:26 -0700)]
upload: if we lose the helper, go back to doing direct-to-server uploads instead of causing all subsequent uploads to fail
Brian Warner [Fri, 8 Feb 2008 00:10:13 +0000 (17:10 -0700)]
upload.EncryptAnUploadable: use 50KiB read chunks (instead of 50KB), to match the chunksize requested by the upload helper