tahoe-lafs/tahoe-lafs.git
16 years agoretain 10 most recent upload/download status objects, show them in /status . Prep...
Brian Warner [Sat, 1 Mar 2008 05:19:03 +0000 (22:19 -0700)]
retain 10 most recent upload/download status objects, show them in /status . Prep for showing individual status objects

16 years agomacfuse: increase default timeout in ui launched mounts
robk-tahoe [Sat, 1 Mar 2008 03:18:15 +0000 (20:18 -0700)]
macfuse: increase default timeout in ui launched mounts

when an operation takes 'too long', on 10.4 the user gets a dialog about
the problem with a 'force eject / keep trying' choice. on 10.5 the fuse
system seems to summarily unmount the drive.

this showed up in 10.5 testing because the time to open() a file depended
upon the size of the file, and an 8Mb test file took long enough for the
node to download that the open() call didn't respond within 60s and fuse
spontaneously ejected the drive, quitting the plugin (and cancelling the
download).

this changes the fuse options passed to the plugin by the ui when the
'mount filesystem' window is used.  command line users should check out
the '-odaemon_timeout=...' option.  this changes the default timeout from
60s to 300s (5min) for ui launched plugins.

this will be addressed in a deeper manner at a later date, with a more
advanced fuse subsystem which can interleave open()/read() with the
actual download of the file, only blocking when data is not downloaded
yet.

16 years agomacfuse: slew of updates
robk-tahoe [Sat, 1 Mar 2008 03:12:41 +0000 (20:12 -0700)]
macfuse: slew of updates

various updates to improve the functionality of the mac fuse plugin

1. caching

previously, the experimental tahoefuse plugin pre-loaded the whole
structure of the specified mount into memory at launch time. changes
which were made through that fuse plugin would be remembered, but any
changes made through other tahoe clients would not be reflected.

now directory contents are only loaded when needed, and the data is
cached for a limited time.  any use of Directory objects should first
call maybe_refresh() which will check the time since the cache was last
loaded, and if the data is older than some validity period (currently
26s) then the directory's contents will be refetched and reloaded.
this replaces the 'load_dir()' method of TFS

whenever a local change is made to a Directory object, or when the
aforementioned cache reloading notices a change in directory data, the
mtime of the directory is automatically updated.

2. stat / metadata

the retrieval of 'stat' information for getattr(), and the way that
metadata is handled, has been refactored to better reflect the fact that
metadata in tahoe is only represented by 'edges' (i.e entries in
directories) not on 'nodes' (files or directories themselves) hence a
stat lookup should be a query to the parent directory (specifically the
parent specified by the path being queried in the case that a node has
multiple parents) for details known by that directory for the given
child, rather than a query to the child itself.

the TStat utility class for returning stat information to the python-
fuse layer has been extended to accept a 'metadata' argument in its
constructor.  any fields found in the metadata dict which match the
names of the stat attributes are loaded into the TStat object.  the
'ctime' and 'mtime' attributes are translated to st_ctime and st_mtime
to mesh with the existing timestamp handling code. any fields specified
by kwargs to the constructor override things that might be loaded from
the metadata dict.

Directory objects now track their children as a dict mapping name to
(child_obj, metadata) tuples. This is because the metadata in tahoe
will be stored exclusively on the edges of the graph. each Directory
maintains its own mtime however, and get_stat() calls will report the
mtime of a directory based on the last modification of the Directory
object, not based on any mtime records from the parent directory's
metadata for that child.  This addresses the fact that since directories
may be shared, a given parent may or may not reflect the latest changes,
however one of the Finder's behaviours is to examine the stat of a
directory, and not to bother doing a readdir() if the stat is unchanged.
i.e. unless directories report their changes in their stat info, the
Finder will not show changes within that directory.

3. refactoring

reporting of many error codes has been refactored to raise IOError
subclasses with the appropriate errno.  this exploits python-fuse's
built-in mechanism for catching IOError and reporting the errno
embedded within it automatically, while simplifying the code within
the plugin.

the add_child() method on TFS was removed in favour of simply having an
add_child() method on Directory objects. this provides a more OO
approach in that Directory is responsible for maintaining its own in
memory state and also writing changes back to the node.  similarly for
remove_child()

these changes, along with the new tfs.compose_url() method,
significantly simplify and improve readability of mkdir, rename methods
along with the newer link and unlink.  these also get improved error
reporting.

various operations (chmod, chown, truncate, utime) are now ignored.
previously they would report an unsupported operation (EOPNOTSUPP)
but now are simply logged and ignored.  this surpresses errors caused
by some client programs which try to use these operations, but at the
moment those operations are meaningless to the tahoe filesystem anyway.

4. link / unlink / rmdir

link, symlink calls are now supported, though with semantics differing
from posix, both equivalent.  unlink, rmdir calls are now supported,
also equivalent.

link or symlink calls duplicate the uri of the named source and adds it
as a child of another directory according to the destination path.  for
directories, this creates a 'hard' link, i.e. the same directory will
appear in multiple locations within the filesystem, and changes in
any place will be reflected everywhere.  for files, by contrast, since
the uri being duplicated is an immutable CHK uri, link/symlink for files
is equivalent to a copy - though significantly cheaper. (a file copy
with the fuse plugin is likely to cause a new file to be written and
uploaded, the link command simply adds an entry referring to an
existing uri)

in testing, the 'ln' command is unable to make hard links (i.e. call
link()) for directories, though symlink ('ln -s') is supported.
either forms works equivalently for files.

unlink and rmdir both remove the specified entry from its parent
directory.

5. logging

the 'tfuse.log' file now only reports launches of the fuse plugin. once
the plugin has parsed the options, it reopens the log file with the
name of the mount, e.g. tfuse.root_dir.log, so that multiple instances
running concurrently will not interfere with each others' logging.

6. bug fixes

the tmp_file in the cache dir backing files opened for write was
intermittently failing to open the file.  added O_CREAT to the os.open
call so that files will be created if missing, not throw errors.

a failure to correctly parse arguments if no mount (dir_cap) name was
given but also no fuse options were given has been fixed. now the
command 'tahoe fuse mountpoint' will correctly default to root_dir
also when running from source, arguments to tahoefuse were not handled
to correctly match the 'tahoe fuse ...' behaviour.

16 years agoclient.py: remove confusing no-longer-used code from get_encoding_parameters
Brian Warner [Sat, 1 Mar 2008 03:01:54 +0000 (20:01 -0700)]
client.py: remove confusing no-longer-used code from get_encoding_parameters

16 years agoupload: fix up some log messages
Brian Warner [Sat, 1 Mar 2008 03:00:45 +0000 (20:00 -0700)]
upload: fix up some log messages

16 years agowui/wapi/webish: HTML form checkboxes send the value "on", so let's interpret that...
Zooko O'Whielacronx [Sat, 1 Mar 2008 03:29:42 +0000 (20:29 -0700)]
wui/wapi/webish: HTML form checkboxes send the value "on", so let's interpret that as boolean true

16 years agowapi: add POST /uri/$DIRECTORY?t=set_children
Zooko O'Whielacronx [Sat, 1 Mar 2008 01:40:27 +0000 (18:40 -0700)]
wapi: add POST /uri/$DIRECTORY?t=set_children
Unfinished bits: doc in webapi.txt, test handling of badly formed JSON, return reasonable HTTP response, examination of the effect of this patch on code coverage -- but I'm committing it anyway because MikeB can use it and I'm being called to dinner...

16 years agodocs: fix example JSON in webapi.txt to be legal JSON. ;-)
Zooko O'Whielacronx [Sat, 1 Mar 2008 01:39:25 +0000 (18:39 -0700)]
docs: fix example JSON in webapi.txt to be legal JSON.  ;-)

16 years agonative client - adding ability to mount drives
Peter Secor [Fri, 29 Feb 2008 21:14:48 +0000 (14:14 -0700)]
native client - adding ability to mount drives

16 years agonative client - changed Windows default group name as it conflicted with the previous...
Peter Secor [Fri, 29 Feb 2008 01:38:38 +0000 (18:38 -0700)]
native client - changed Windows default group name as it conflicted with the previous version

16 years agotest: refactor webist.POSTHandler() to have a method for each "?t=" command
Zooko O'Whielacronx [Fri, 29 Feb 2008 20:11:18 +0000 (13:11 -0700)]
test: refactor webist.POSTHandler() to have a method for each "?t=" command
Input validation and decoding is still done in the body of POSTHandler.renderHTTP().

16 years agotest: update todo string in test_nevow
Zooko O'Whielacronx [Fri, 29 Feb 2008 20:10:08 +0000 (13:10 -0700)]
test: update todo string in test_nevow

16 years agotests: test depends on _version.py
Zooko O'Whielacronx [Thu, 28 Feb 2008 21:29:24 +0000 (14:29 -0700)]
tests: test depends on _version.py
because there is a test that asserts that our version is not "unknown"

16 years agoTAG allmydata-tahoe-0.8.0 allmydata-tahoe-0.8.0
Zooko O'Whielacronx [Sat, 16 Feb 2008 00:38:22 +0000 (17:38 -0700)]
TAG allmydata-tahoe-0.8.0

16 years agodoc: change example filename extension back because it is more recognizable and becau...
Zooko O'Whielacronx [Wed, 27 Feb 2008 21:54:05 +0000 (14:54 -0700)]
doc: change example filename extension back because it is more recognizable and because I love Brian

16 years agodocs: tweak wording per kpreid and tweak example filename extension per me
Zooko O'Whielacronx [Wed, 27 Feb 2008 21:41:57 +0000 (14:41 -0700)]
docs: tweak wording per kpreid and tweak example filename extension per me

16 years agodocs: clarify which webport value is the default
Zooko O'Whielacronx [Wed, 27 Feb 2008 18:10:03 +0000 (11:10 -0700)]
docs: clarify which webport value is the default

16 years agodocs: about.html: a couple of edits suggested by kpreid's comments
Zooko O'Whielacronx [Wed, 27 Feb 2008 16:01:38 +0000 (09:01 -0700)]
docs: about.html: a couple of edits suggested by kpreid's comments

16 years agonative client - update to handle large file upload
Peter Secor [Wed, 27 Feb 2008 07:17:43 +0000 (00:17 -0700)]
native client - update to handle large file upload

16 years agoconfig wizard - changing the name
Peter Secor [Wed, 27 Feb 2008 02:55:54 +0000 (19:55 -0700)]
config wizard - changing the name

16 years agoinstaller and config - name changes
Peter Secor [Wed, 27 Feb 2008 02:34:39 +0000 (19:34 -0700)]
installer and config - name changes

16 years agomac build: ahem. fix makefile probs
robk-tahoe [Wed, 27 Feb 2008 01:48:22 +0000 (18:48 -0700)]
mac build: ahem. fix makefile probs

oops. I screwed up the makefile syntax further. buildslave would spend a
lot of fruitless time trawling the entire drive.  this fixes that. and a
stray -n.  ahem.  [looks down sheepishly]

16 years agonative client - added upload metrics, machine name cfg, better queue resumption
Peter Secor [Wed, 27 Feb 2008 01:43:31 +0000 (18:43 -0700)]
native client - added upload metrics, machine name cfg, better queue resumption

16 years agomac build: fix makefile bug
robk-tahoe [Wed, 27 Feb 2008 01:20:10 +0000 (18:20 -0700)]
mac build: fix makefile bug

blah $( foo )  is more explicit than blah ` foo ` in a bash-like context
unfortunately it doesn't translate very well to makefiles, for which $(
means something else entirely

16 years agomac build: tweaks to build fuse for 10.4 and 10.5
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

16 years agomac build: make a couple of build dependency hints soft imports
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.

16 years agolog more peerinfo in download/upload/checker problems
Brian Warner [Wed, 27 Feb 2008 00:33:14 +0000 (17:33 -0700)]
log more peerinfo in download/upload/checker problems

16 years agomac build: updates to respect UPLOAD_DEST argument to make
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.

16 years agowebish status: distinguish active uploads/downloads from recent ones
Brian Warner [Tue, 26 Feb 2008 22:35:28 +0000 (15:35 -0700)]
webish status: distinguish active uploads/downloads from recent ones

16 years agocurrent-downloads status: add SI, size, make numsegs 1-based
Brian Warner [Tue, 26 Feb 2008 22:02:35 +0000 (15:02 -0700)]
current-downloads status: add SI, size, make numsegs 1-based

16 years agonative client - added ability to queue uploads and resume upon service restart
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

16 years agonative client - renaming a few more instances to be consistent with Allmydata naming...
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

16 years agonative client - added AllmydataTray (replaces TahoeTray)
Peter Secor [Fri, 22 Feb 2008 03:39:46 +0000 (20:39 -0700)]
native client - added AllmydataTray (replaces TahoeTray)

16 years agonative client - updated system tray name, missed it at first
Peter Secor [Fri, 22 Feb 2008 03:38:11 +0000 (20:38 -0700)]
native client - updated system tray name, missed it at first

16 years agonative client - updated to match naming for service and tray executable
Peter Secor [Fri, 22 Feb 2008 03:24:31 +0000 (20:24 -0700)]
native client - updated to match naming for service and tray executable

16 years agonative client - renaming things to take Tahoe out of the name, improving caching
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

16 years agoconfwiz: change smb service name to remove 'tahoe'
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'

16 years agonative client - updating service name to match what the launcher uses
Peter Secor [Wed, 20 Feb 2008 04:20:34 +0000 (21:20 -0700)]
native client - updating service name to match what the launcher uses

16 years agoWinFUSE updates for beta release
Peter Secor [Wed, 20 Feb 2008 03:58:37 +0000 (20:58 -0700)]
WinFUSE updates for beta release

16 years agomac: added 'mount filesystem' action to the mac gui
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.

16 years agomacfuse: move macfuse files around to simplify pythonpath
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.

16 years agomacfuse: rework fuse initialisation, integrate with 'tahoe'
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.

16 years agorunner: tweaked runner to make it easier to extend with additional subcommands
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'

16 years agodocs: change example capability
Zooko O'Whielacronx [Tue, 19 Feb 2008 22:34:19 +0000 (15:34 -0700)]
docs: change example capability

16 years agodocs: fix name of docs dir in relnotes.txt
Zooko O'Whielacronx [Mon, 18 Feb 2008 23:08:05 +0000 (16:08 -0700)]
docs: fix name of docs dir in relnotes.txt

16 years ago'tahoe start': only create logs/ if we're starting a tahoe node
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

16 years agotest_runner.py: test launching an introducer too
Brian Warner [Mon, 18 Feb 2008 07:28:56 +0000 (00:28 -0700)]
test_runner.py: test launching an introducer too

16 years ago'tahoe start': allow this to start arbitrary .tac file -bearing directories (like...
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)

16 years agodocs: update relnotes.txt
Zooko O'Whielacronx [Sat, 16 Feb 2008 00:35:33 +0000 (17:35 -0700)]
docs: update relnotes.txt

16 years agoMerge patch which switches to SHA-256d with patch that adds punctuation and capitaliz...
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.

16 years agocommenting out open_welcome_page argument that doesn't seem to work with real installer
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

16 years agotest_system.py: improve coverage of webish.py
Brian Warner [Fri, 15 Feb 2008 11:02:50 +0000 (04:02 -0700)]
test_system.py: improve coverage of webish.py

16 years agowebish.py: remove some dead code
Brian Warner [Fri, 15 Feb 2008 11:02:38 +0000 (04:02 -0700)]
webish.py: remove some dead code

16 years agoconfwiz: make opening the welcome page options, off by default on windows, on on mac
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

16 years agoconfwiz: fix mac confwiz w.r.t. recent confwiz changes
robk-tahoe [Fri, 15 Feb 2008 03:14:46 +0000 (20:14 -0700)]
confwiz: fix mac confwiz w.r.t. recent confwiz changes

16 years agoconfwiz: update the config wiz to open the welcome page
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.

16 years agoconfwiz: add command line options
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/

16 years agoBIG COMPATIBILITY BREAK: update hash tags, switch to SHA-256d everywhere
Brian Warner [Fri, 15 Feb 2008 02:58:01 +0000 (19:58 -0700)]
BIG COMPATIBILITY BREAK: update hash tags, switch to SHA-256d everywhere

16 years agouri.py: hush pyflakes warning
Brian Warner [Fri, 15 Feb 2008 02:45:12 +0000 (19:45 -0700)]
uri.py: hush pyflakes warning

16 years agodocs: update install and usage docs, improve cli "usage" output, make new example...
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

16 years agodocs: edit running.html
Zooko O'Whielacronx [Fri, 15 Feb 2008 18:02:19 +0000 (11:02 -0700)]
docs: edit running.html

16 years agoadd unit test asserting that allmydata.util.base32 matches rfc 3548
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

16 years agomerge patch which adds base32 to test_util with patch which removes bencode from...
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

16 years agomacfuse: another tahoe fuse implementation
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.

16 years agomac: fix a small bug in the 'tahoe' script
robk-tahoe [Fri, 15 Feb 2008 00:36:10 +0000 (17:36 -0700)]
mac: fix a small bug in the 'tahoe' script

16 years agoidlib: make failures much clearer when encountering unicode
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.

16 years agoremove bencode, yay
Brian Warner [Fri, 15 Feb 2008 01:06:41 +0000 (18:06 -0700)]
remove bencode, yay

16 years agodocs/uri.txt: update to reflect mutable files
Brian Warner [Fri, 15 Feb 2008 00:59:29 +0000 (17:59 -0700)]
docs/uri.txt: update to reflect mutable files

16 years agounicode handling: declare dirnodes to contain unicode child names, update webish...
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

16 years agoupdating installer for beta release
Peter Secor [Thu, 14 Feb 2008 04:36:09 +0000 (21:36 -0700)]
updating installer for beta release

16 years agomore minor architecture.txt changes
Brian Warner [Thu, 14 Feb 2008 03:20:43 +0000 (20:20 -0700)]
more minor architecture.txt changes

16 years agoarchitecture.txt: fix some things that have changed a lot in recent releases
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

16 years agowindows installer: remove uninstall tracking, add welcome page
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')

16 years agomutable.py: add comments to justify initial-read size choices
Brian Warner [Thu, 14 Feb 2008 00:41:20 +0000 (17:41 -0700)]
mutable.py: add comments to justify initial-read size choices

16 years agodocs/dirnodes.txt: add notes on dirnode sizes
Brian Warner [Thu, 14 Feb 2008 00:40:45 +0000 (17:40 -0700)]
docs/dirnodes.txt: add notes on dirnode sizes

16 years agomutable.txt: fix offset math in the SDMF layout
Brian Warner [Thu, 14 Feb 2008 00:39:06 +0000 (17:39 -0700)]
mutable.txt: fix offset math in the SDMF layout

16 years agoswitch from base62 to base32 for storage indices, switch from z-base-32 to rfc 3548...
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

16 years agodocs: link straight to the release tar.gz in install.html
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

16 years agodocs: update relnotes.txt for v0.8.0!
Zooko O'Whielacronx [Thu, 14 Feb 2008 16:00:26 +0000 (09:00 -0700)]
docs: update relnotes.txt for v0.8.0!

16 years agodocs: update relnotes, running.html
Zooko O'Whielacronx [Thu, 14 Feb 2008 15:54:34 +0000 (08:54 -0700)]
docs: update relnotes, running.html

16 years agodocs: beginning of update to relnotes.txt for v0.8
Zooko O'Whielacronx [Thu, 14 Feb 2008 00:43:02 +0000 (17:43 -0700)]
docs: beginning of update to relnotes.txt for v0.8

16 years agomac: shebang usr bin env python
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".

16 years ago'tahoe catalog-shares': add SDMF filesize to the output, update misc/find-share-anoma...
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

16 years agoadd test coverage for the /stats web page
Brian Warner [Wed, 13 Feb 2008 20:57:39 +0000 (13:57 -0700)]
add test coverage for the /stats web page

16 years agomutable.py: reject shares with different k/N than we expect. Quick fix for #312:...
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.

16 years agotest_web: remove test_GET_DIRURL_large, it failed to exercise the problem in #237...
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

16 years agosetup: remove older bundled pycryptopp-0.2.10
Zooko O'Whielacronx [Wed, 13 Feb 2008 22:23:15 +0000 (15:23 -0700)]
setup: remove older bundled pycryptopp-0.2.10

16 years agosetup: bundle pycryptopp-0.3.0
Zooko O'Whielacronx [Wed, 13 Feb 2008 21:57:15 +0000 (14:57 -0700)]
setup: bundle pycryptopp-0.3.0

16 years agodocs: 10 blocks by default, not 12
amber [Wed, 13 Feb 2008 11:57:19 +0000 (04:57 -0700)]
docs: 10 blocks by default, not 12

16 years agowebish.py: fix for #237: when listing large directories, insert a turn break once...
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

16 years agodocs: edits and updates to architecture.txt, with Amber
Zooko O'Whielacronx [Wed, 13 Feb 2008 17:24:52 +0000 (10:24 -0700)]
docs: edits and updates to architecture.txt, with Amber

16 years agosetup: remove older bundled version of setuptools_darcs
Zooko O'Whielacronx [Wed, 13 Feb 2008 15:03:40 +0000 (08:03 -0700)]
setup: remove older bundled version of setuptools_darcs

16 years agosetup: remove another older bundled setuptools
Zooko O'Whielacronx [Wed, 13 Feb 2008 15:01:40 +0000 (08:01 -0700)]
setup: remove another older bundled setuptools

16 years agosetup: remove older bundled setuptools
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:59:24 +0000 (07:59 -0700)]
setup: remove older bundled setuptools

16 years agosetup: remove older bundled version of darcsver
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:57:22 +0000 (07:57 -0700)]
setup: remove older bundled version of darcsver

16 years agofix a few unused imports and suchlike, discovered by pyflakes
Zooko O'Whielacronx [Wed, 13 Feb 2008 14:38:08 +0000 (07:38 -0700)]
fix a few unused imports and suchlike, discovered by pyflakes

16 years agowebish: flogify the remaining log messages
Brian Warner [Wed, 13 Feb 2008 02:32:33 +0000 (19:32 -0700)]
webish: flogify the remaining log messages

16 years agowebish: censor all caps before logging the HTTP request, to preserve user privacy
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

16 years agodownload status: refactor into a separate object, so we don't need to keep the Downlo...
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

16 years agointroducer: remove encoding-parameter config, for now
Brian Warner [Wed, 13 Feb 2008 01:59:54 +0000 (18:59 -0700)]
introducer: remove encoding-parameter config, for now