Commit Graph

2084 Commits

Author SHA1 Message Date
Brian Warner
09a99ce822 offloaded upload: avoid tail-recursion problem that would break large files 2008-01-24 21:51:34 -07:00
Brian Warner
081d27a65d encode.py: improve error message when segment lengths come out wrong 2008-01-24 21:51:09 -07:00
Brian Warner
46fe024612 offloaded uploader: don't use a huge amount of memory when skipping over previously-uploaded data 2008-01-24 17:25:33 -07:00
robk-tahoe
525bfeca25 better mac .app icon 2008-01-24 20:23:47 -07:00
robk-tahoe
2f2de9df2e Reworked mac gui to not lock up upon launch
Previously, once the node itself was launched, the UI event loop was no longer
running.  This meant that the app would sit around seemingly 'wedged' and being
reported as 'Not Responding' by the os.

This chnages that by actually implementing a wxPython gui which is left running
while the reactor, and the node within it, is launched in another thread.
Beyond 'quit' -> reactor.stop, there are no interactions between the threads.

The ui provides 'open web root' and 'open account page' actions, both in the
file menu, and in the (right click) dock icon menu.


Something weird in the handling of wxpython's per-frame menubar stuff seems to
mean that the menu bar only displays the file menu and about etc (i.e. the items
from the wx menubar) if the focus changes from and back to the app while the 
frame the menubar belongs to is displayed.  Hence a splash frame comes up at
startup to provide an opportunity.

It also seems that, in the case that the file menu is not available, that one
can induce it to reappear by choosing 'about' from the dock menu, and then 
closing the about window.
2008-01-24 20:00:28 -07:00
robk-tahoe
5085c35002 cleanup mac and windows build code
this moves some of the code common to both windows and mac builds into the
allmydata module hierarchy, and cleans up the windows and mac build directories
to import the code from there.
2008-01-23 21:06:41 -07:00
nejucomo
de022b2115 tahoe_fuse: cmdline args & system test: Allow nonstandard client basedirs to be specified and update the system tests to use this feature...
The commandline option handling of the version of python-fuse I use is arcane.  This is an ugly hack.
2008-01-20 20:56:27 -07:00
nejucomo
57da456dc9 tahoe_fuse: rename decorators for clarity. 2008-01-20 20:26:57 -07:00
nejucomo
c621fe1aa6 Small log output change. 2008-01-20 20:18:53 -07:00
nejucomo
ba4458d502 tahoe_fuse: system test: webapi connection: bug fix and small log output change. 2008-01-20 20:10:31 -07:00
nejucomo
b4b410eccf tahoe_fuse: system test: Add FIXME comments. 2008-01-20 20:06:19 -07:00
nejucomo
d1c0aa6ea6 tahoe_fuse: system test: Manage multiple clients for test grid... System test setup is almost complete.
This is a little convoluted because of the "layer" design, but it appears
to function correctly and do properly ordered cleanup.

Before system test setup is complete, tahoe_fuse.py needs to be modified
to allow arbitrary client base directories.
2008-01-20 20:02:20 -07:00
nejucomo
1f42953fb4 tahoe_fuse: system test: Attempt to create a dirnode to place in <basedir>/private/root_dir.cap, but this fails because the network is too small...
This patch also factors out the "polling_operation" pattern.
2008-01-20 18:47:47 -07:00
nejucomo
1295c1e4ec tahoe_fuse: system test: Launch the fuse interface. 2008-01-20 17:55:51 -07:00
nejucomo
c225c657d4 tahoe_fuse: system test: factor out some cleanup code. 2008-01-20 17:54:48 -07:00
nejucomo
c7a557ba69 tahoe_fuse: system test: Copy the introducer.furl with a possible race condition due to timeout. 2008-01-20 17:09:44 -07:00
nejucomo
026f2d0df5 A start at adding a system test for tahoe_fuse. Incomplete... 2008-01-20 16:54:56 -07:00
nejucomo
2b9ba229be Remove a redundant assertion for clarity. 2008-01-19 00:20:32 -07:00
nejucomo
686350f6cc Change stdout to rudimentary file-based logging. 2008-01-19 00:18:54 -07:00
nejucomo
0e0ab5f394 Rename the unittest script for tahoe-fuse. 2008-01-19 00:16:12 -07:00
robk-tahoe
4662f282cf further fixes to windows build (pkg_resources / web templates)
now that web templates are found via pkg_resources, then the windows build
should in fact _use_ pkg_resources, rather than exclude it from the build
to prevent nevow exploding upon import due to the zip provider exception,
so that the pkgreshook can do install location based lookups
2008-01-23 18:52:43 -07:00
robk-tahoe
869cf44f68 fix windows build's packaging of web templates
the recent changes to webish's template lookup (to use nevow.util hence
pkg_resources) to support the mac build, needs these changes to the windows
build in match the new lookup path
2008-01-23 18:23:37 -07:00
robk-tahoe
214411a10f eliminate startup spam for resources that can't be found
remove debug messages (and traceback) from node output in the case that the
pkg resources hook can't find a requested file. it will now silently return
the empty string for files that can't be resolved
2008-01-23 18:22:23 -07:00
robk-tahoe
ffeee54f91 fix tahoe script installation logic
refine the logic in the .app which tries to install the 'tahoe' script.

now it will do nothing if 'tahoe' is found anywhere on the user's path,
and only if it's not present will it try to install it in each of the
candidate paths (/usr/local/bin ~/bin ~/Library/bin) which are on the
user's path
2008-01-23 18:05:56 -07:00
Brian Warner
a0945de0e0 encode.py: log the contents of the uri_extension block 2008-01-23 18:08:04 -07:00
Brian Warner
1ff21d1d64 test_upload.py: implement remote_abort on our fake BucketWriter 2008-01-23 18:07:34 -07:00
robk-tahoe
8661c94f17 fix windows build
having changed the web template retrieval to use nevow.util.resource_filename
(and hence through pkg_resources when available) that adds a requirement that
py2exe be given a hint to induce it to include the allmydata.web module so that
it becomes importable.
2008-01-23 15:17:27 -07:00
robk-tahoe
d38b8cedc1 mac build: fixed permission problem on upload .dmg 2008-01-23 14:51:18 -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
Brian Warner
f76a81fda2 _auto_deps.py: relax our simplejson dependency to 1.4, since I think it works and because that's what feisty offers 2008-01-23 13:03:09 -07:00
Zooko O'Whielacronx
b6ff029673 setup: weaken the requirement on zope.interface from >= 3.1.0 to "any"
We've never heard of a version of zope.interface that *wasn't* compatible, and there is a bug in Ubuntu's packaging of zope.interface which causes it to report its version number as 0.0.0:

https://bugs.launchpad.net/zope.interface/+bug/185418
2008-01-23 11:26:04 -07:00
Zooko O'Whielacronx
69ae5b0b75 setup: loosen our requirement on pycryptopp from >= 0.2.9 to >= 0.2.8
Again, tahoecs2 has pycryptopp v0.2.8, and reviewing the pycryptopp change history shows that there were no important bugfixes added since 0.2.8.
2008-01-23 11:00:35 -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
d5abc68060 have mac app write a tahoe upon startup
upon startup, the .app will look in '/usr/local/bin', '~/bin', '~/Library/bin'
if it finds one of these dirs, and can write into it, and there isn't already
a 'tahoe' present, it will write a small bach script which will launch the
binary contained within the .app bundle

this allows the .app bundle to offer the services of the 'tahoe' script
easily and simply
2008-01-22 20:35:01 -07:00
robk-tahoe
589c8d158a fix build breakage caused by auto_deps setuptools stuff
zooko recently added a runtime check, via setuptools, that specific versions of various
packages were reported as available through setuptools at runtime.

however exe and app builds run with collected egg contents, not linked against entire
eggs, i.e. the code is transcluded into a single library.zip

thus setuptools reports that those specific version cannot be reported as available,
though they are in fact available built into the library

this disables that runtime check if the app is running 'frozen'
2008-01-22 19:32:55 -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
robk-tahoe
6ef4606534 tweak webish to use resource_filename to find css and html files
using sibpath to find web template files relative to source code is functional
when running from source environments, but not especially flexible when running
from bundled built environments.  the more 'orthodox' mechanism, pkg_resources,
in theory at least, knows how to find resource files in various environments.

this makes the 'web' directory in allmydata into an actual allmydata.web module
(since pkg_resources looks for files relative to a named module, and that module
must be importable) and uses pkg_resources.resource_filename to find the files
therein.
2008-01-22 17:44:58 -07:00
Zooko O'Whielacronx
284c1652a9 setup: make find_trial self-contained so that we don't have a bootstrapping problem -- if allmydata can't be imported we still want to be able to run find_trial 2008-01-23 10:04:26 -07:00
Zooko O'Whielacronx
49dccbd466 setup: loosen requirement on simplejson from 1.7.3 to 1.7.1
Since apparently 1.7.1 is what we use on tahoecs2, and it works.
2008-01-23 09:54:20 -07:00
Zooko O'Whielacronx
e00b5daff7 docs: edit install.html to point to about.html 2008-01-23 08:08:10 -07:00
Zooko O'Whielacronx
18d3b2bf96 setup: src/allmydata/_auto_deps.py is boring 2008-01-22 17:37:22 -07:00
Zooko O'Whielacronx
7e41893db7 setup: loosen our version requirement on zfec to require >= 1.1 instead of >= 1.3
I see that we have .deb's only for v1.1.
2008-01-22 17:35:38 -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
33daaf651b setup: remove some things from .darcs-boringfile which are no longer boring since we no longer use them 2008-01-22 17:40:23 -07:00
Zooko O'Whielacronx
50daad4a27 setup: remove the --always-copy option, because it causes setuptools to ignore system and development apps 2008-01-22 14:05:04 -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
c433f42337 setup: add a setup.cfg file which instructs setuptools to install all eggs in unzipped form and to always copy them into the target directory (even if they are already installed somewhere else on the path that setuptools searches, which includes the CWD) 2008-01-22 13:46:47 -07:00
Zooko O'Whielacronx
faad785859 setup: include cli.exe in the bootstrap setptools egg so that it will work on Windows (also include gui.exe just in case) 2008-01-22 12:33:55 -07:00