1 | 1 patch for repository davidsarah@dev.allmydata.org:/home/darcs/tahoe/trunk: |
---|
2 | |
---|
3 | Mon Aug 1 04:18:57 BST 2011 david-sarah@jacaranda.org |
---|
4 | * Makefile: remove targets that used misc/debian[_helpers] which no longer exist. Also change docs/debian.rst to reflect the fact that we no longer support building .debs using those targets. refs #1454 |
---|
5 | |
---|
6 | New patches: |
---|
7 | |
---|
8 | [Makefile: remove targets that used misc/debian[_helpers] which no longer exist. Also change docs/debian.rst to reflect the fact that we no longer support building .debs using those targets. refs #1454 |
---|
9 | david-sarah@jacaranda.org**20110801031857 |
---|
10 | Ignore-this: 347cbeff45757db630ce34d0cfb84f92 |
---|
11 | ] { |
---|
12 | hunk ./Makefile 258 |
---|
13 | |
---|
14 | upload-tarballs: |
---|
15 | @if [ "X${BB_BRANCH}" == "Xtrunk" ] || [ "X${BB_BRANCH}" == "X" ]; then for f in dist/allmydata-tahoe-*; do flappclient --furlfile ~/.tahoe-tarball-upload.furl upload-file $$f; done ; else echo not uploading tarballs because this is not trunk but is branch \"${BB_BRANCH}\" ; fi |
---|
16 | - |
---|
17 | -# DEBIAN PACKAGING |
---|
18 | - |
---|
19 | -VER=$(shell $(PYTHON) misc/build_helpers/get-version.py) |
---|
20 | -DEBCOMMENTS="'make deb' build" |
---|
21 | - |
---|
22 | -show-version: |
---|
23 | - @echo $(VER) |
---|
24 | -show-pp: |
---|
25 | - @echo $(PP) |
---|
26 | - |
---|
27 | -.PHONY: setup-deb deb-ARCH is-known-debian-arch |
---|
28 | -.PHONY: deb-etch deb-lenny deb-sid |
---|
29 | -.PHONY: deb-edgy deb-feisty deb-gutsy deb-hardy deb-intrepid deb-jaunty |
---|
30 | - |
---|
31 | -# we use misc/debian_helpers/$TAHOE_ARCH/debian |
---|
32 | - |
---|
33 | -deb-etch: # py2.4 |
---|
34 | - $(MAKE) deb-ARCH ARCH=etch TAHOE_ARCH=etch |
---|
35 | -deb-lenny: # py2.5 |
---|
36 | - $(MAKE) deb-ARCH ARCH=lenny TAHOE_ARCH=lenny |
---|
37 | -deb-sid: |
---|
38 | - $(MAKE) deb-ARCH ARCH=sid TAHOE_ARCH=sid |
---|
39 | - |
---|
40 | -deb-edgy: # py2.4 |
---|
41 | - $(MAKE) deb-ARCH ARCH=edgy TAHOE_ARCH=etch |
---|
42 | -deb-feisty: # py2.5 |
---|
43 | - $(MAKE) deb-ARCH ARCH=feisty TAHOE_ARCH=lenny |
---|
44 | -deb-gutsy: # py2.5 |
---|
45 | - $(MAKE) deb-ARCH ARCH=gutsy TAHOE_ARCH=lenny |
---|
46 | -deb-hardy: # py2.5 |
---|
47 | - $(MAKE) deb-ARCH ARCH=hardy TAHOE_ARCH=lenny |
---|
48 | -deb-intrepid: # py2.5 |
---|
49 | - $(MAKE) deb-ARCH ARCH=intrepid TAHOE_ARCH=lenny |
---|
50 | -deb-jaunty: # py2.6 |
---|
51 | - $(MAKE) deb-ARCH ARCH=jaunty TAHOE_ARCH=lenny |
---|
52 | - |
---|
53 | - |
---|
54 | - |
---|
55 | -# we know how to handle the following debian architectures |
---|
56 | -KNOWN_DEBIAN_ARCHES := etch lenny sid edgy feisty gutsy hardy intrepid jaunty |
---|
57 | - |
---|
58 | -ifeq ($(findstring x-$(ARCH)-x,$(foreach arch,$(KNOWN_DEBIAN_ARCHES),"x-$(arch)-x")),) |
---|
59 | -is-known-debian-arch: |
---|
60 | - @echo "ARCH must be set when using setup-deb or deb-ARCH" |
---|
61 | - @echo "I know how to handle:" $(KNOWN_DEBIAN_ARCHES) |
---|
62 | - false |
---|
63 | -else |
---|
64 | -is-known-debian-arch: |
---|
65 | - true |
---|
66 | -endif |
---|
67 | - |
---|
68 | -ifndef TAHOE_ARCH |
---|
69 | -TAHOE_ARCH=$(ARCH) |
---|
70 | -endif |
---|
71 | - |
---|
72 | -setup-deb: is-known-debian-arch |
---|
73 | - rm -f debian |
---|
74 | - ln -s misc/debian_helpers/$(TAHOE_ARCH)/debian debian |
---|
75 | - chmod +x debian/rules |
---|
76 | - |
---|
77 | -# etch (current debian stable) has python-simplejson-1.3, which doesn't |
---|
78 | -# support indent= |
---|
79 | -# sid (debian unstable) currently has python-simplejson 1.7.1 |
---|
80 | -# edgy has 1.3, which doesn't support indent= |
---|
81 | -# feisty has 1.4, which supports indent= but emits a deprecation warning |
---|
82 | -# gutsy has 1.7.1 |
---|
83 | -# |
---|
84 | -# we need 1.4 or newer |
---|
85 | - |
---|
86 | -deb-ARCH: is-known-debian-arch setup-deb |
---|
87 | - fakeroot debian/rules binary |
---|
88 | - @echo |
---|
89 | - @echo "The newly built .deb packages are in the parent directory from here." |
---|
90 | - |
---|
91 | -.PHONY: increment-deb-version |
---|
92 | -.PHONY: deb-etch-head deb-lenny-head deb-sid-head |
---|
93 | -.PHONY: deb-edgy-head deb-feisty-head deb-gutsy-head deb-hardy-head deb-intrepid-head deb-jaunty-head |
---|
94 | - |
---|
95 | -# The buildbot runs the following targets after each change, to produce |
---|
96 | -# up-to-date tahoe .debs. These steps do not create .debs for anything else. |
---|
97 | - |
---|
98 | -increment-deb-version: make-version |
---|
99 | - debchange --newversion $(VER) $(DEBCOMMENTS) |
---|
100 | -deb-etch-head: |
---|
101 | - $(MAKE) setup-deb ARCH=etch TAHOE_ARCH=etch |
---|
102 | - $(MAKE) increment-deb-version |
---|
103 | - fakeroot debian/rules binary |
---|
104 | -deb-lenny-head: |
---|
105 | - $(MAKE) setup-deb ARCH=lenny TAHOE_ARCH=lenny |
---|
106 | - $(MAKE) increment-deb-version |
---|
107 | - fakeroot debian/rules binary |
---|
108 | -deb-sid-head: |
---|
109 | - $(MAKE) setup-deb ARCH=sid TAHOE_ARCH=lenny |
---|
110 | - $(MAKE) increment-deb-version |
---|
111 | - fakeroot debian/rules binary |
---|
112 | - |
---|
113 | -deb-edgy-head: |
---|
114 | - $(MAKE) setup-deb ARCH=edgy TAHOE_ARCH=etch |
---|
115 | - $(MAKE) increment-deb-version |
---|
116 | - fakeroot debian/rules binary |
---|
117 | -deb-feisty-head: |
---|
118 | - $(MAKE) setup-deb ARCH=feisty TAHOE_ARCH=lenny |
---|
119 | - $(MAKE) increment-deb-version |
---|
120 | - fakeroot debian/rules binary |
---|
121 | -deb-gutsy-head: |
---|
122 | - $(MAKE) setup-deb ARCH=gutsy TAHOE_ARCH=lenny |
---|
123 | - $(MAKE) increment-deb-version |
---|
124 | - fakeroot debian/rules binary |
---|
125 | -deb-hardy-head: |
---|
126 | - $(MAKE) setup-deb ARCH=hardy TAHOE_ARCH=lenny |
---|
127 | - $(MAKE) increment-deb-version |
---|
128 | - fakeroot debian/rules binary |
---|
129 | -deb-intrepid-head: |
---|
130 | - $(MAKE) setup-deb ARCH=intrepid TAHOE_ARCH=lenny |
---|
131 | - $(MAKE) increment-deb-version |
---|
132 | - fakeroot debian/rules binary |
---|
133 | -deb-jaunty-head: |
---|
134 | - $(MAKE) setup-deb ARCH=jaunty TAHOE_ARCH=lenny |
---|
135 | - $(MAKE) increment-deb-version |
---|
136 | - fakeroot debian/rules binary |
---|
137 | - |
---|
138 | -# new experimental debian-packaging-building target |
---|
139 | -.PHONY: EXPERIMENTAL-deb |
---|
140 | -EXPERIMENTAL-deb: is-known-debian-arch |
---|
141 | - $(PYTHON) misc/build_helpers/build-deb.py $(ARCH) |
---|
142 | hunk ./docs/debian.rst 1 |
---|
143 | -============== |
---|
144 | -Debian Support |
---|
145 | -============== |
---|
146 | +========================= |
---|
147 | +Debian and Ubuntu Support |
---|
148 | +========================= |
---|
149 | |
---|
150 | 1. `Overview`_ |
---|
151 | hunk ./docs/debian.rst 6 |
---|
152 | -2. `TL;DR supporting package building instructions`_ |
---|
153 | -3. `TL;DR package building instructions for Tahoe`_ |
---|
154 | -4. `Building Debian Packages`_ |
---|
155 | -5. `Using Pre-Built Debian Packages`_ |
---|
156 | -6. `Building From Source on Debian Systems`_ |
---|
157 | +2. `Dependency Packages`_ |
---|
158 | + |
---|
159 | |
---|
160 | Overview |
---|
161 | ======== |
---|
162 | hunk ./docs/debian.rst 12 |
---|
163 | |
---|
164 | -One convenient way to install Tahoe-LAFS is with Debian packages. |
---|
165 | -This document attempts to explain how to complete a desert island build for |
---|
166 | -people in a hurry. It also attempts to explain more about our Debian packaging |
---|
167 | -for those willing to read beyond the simple pragmatic packaging exercises. |
---|
168 | - |
---|
169 | -TL;DR supporting package building instructions |
---|
170 | -============================================== |
---|
171 | - |
---|
172 | -There are only four supporting packages that are currently not available from |
---|
173 | -the Debian apt repositories in Debian Lenny:: |
---|
174 | - |
---|
175 | - python-foolscap python-zfec argparse zbase32 |
---|
176 | - |
---|
177 | -First, we'll install some common packages for development:: |
---|
178 | - |
---|
179 | - sudo apt-get install -y build-essential debhelper cdbs python-central \ |
---|
180 | - python-setuptools python python-dev python-twisted-core \ |
---|
181 | - fakeroot darcs python-twisted python-nevow \ |
---|
182 | - python-simplejson python-pycryptopp devscripts \ |
---|
183 | - apt-file |
---|
184 | - sudo apt-file update |
---|
185 | - |
---|
186 | - |
---|
187 | -To create packages for Lenny, we'll also install stdeb:: |
---|
188 | - |
---|
189 | - sudo apt-get install python-all-dev |
---|
190 | - STDEB_VERSION="0.5.1" |
---|
191 | - wget http://pypi.python.org/packages/source/s/stdeb/stdeb-$STDEB_VERSION.tar.gz |
---|
192 | - tar xzf stdeb-$STDEB_VERSION.tar.gz |
---|
193 | - cd stdeb-$STDEB_VERSION |
---|
194 | - python setup.py --command-packages=stdeb.command bdist_deb |
---|
195 | - sudo dpkg -i deb_dist/python-stdeb_$STDEB_VERSION-1_all.deb |
---|
196 | - |
---|
197 | -Now we're ready to build and install the zfec Debian package:: |
---|
198 | - |
---|
199 | - darcs get http://allmydata.org/source/zfec/trunk zfac |
---|
200 | - cd zfac/zfec/ |
---|
201 | - python setup.py sdist_dsc |
---|
202 | - cd `find deb_dist -mindepth 1 -maxdepth 1 -type d` && \ |
---|
203 | - dpkg-buildpackage -rfakeroot -uc -us |
---|
204 | - sudo dpkg -i ../python-zfec_1.4.6-r333-1_amd64.deb |
---|
205 | - |
---|
206 | -We need to build a pyutil package:: |
---|
207 | - |
---|
208 | - wget http://pypi.python.org/packages/source/p/pyutil/pyutil-1.6.1.tar.gz |
---|
209 | - tar -xvzf pyutil-1.6.1.tar.gz |
---|
210 | - cd pyutil-1.6.1/ |
---|
211 | - python setup.py --command-packages=stdeb.command sdist_dsc |
---|
212 | - cd deb_dist/pyutil-1.6.1/ |
---|
213 | - dpkg-buildpackage -rfakeroot -uc -us |
---|
214 | - sudo dpkg -i ../python-pyutil_1.6.1-1_all.deb |
---|
215 | - |
---|
216 | -We also need to install argparse and zbase32:: |
---|
217 | - |
---|
218 | - sudo easy_install argparse # argparse won't install with stdeb (!) :-( |
---|
219 | - sudo easy_install zbase32 # XXX TODO: package with stdeb |
---|
220 | - |
---|
221 | -Finally, we'll fetch, unpack, build and install foolscap:: |
---|
222 | - |
---|
223 | - # You may not already have Brian's key: |
---|
224 | - # gpg --recv-key 0x1514A7BD |
---|
225 | - wget http://foolscap.lothar.com/releases/foolscap-0.5.0.tar.gz.asc |
---|
226 | - wget http://foolscap.lothar.com/releases/foolscap-0.5.0.tar.gz |
---|
227 | - gpg --verify foolscap-0.5.0.tar.gz.asc |
---|
228 | - tar -xvzf foolscap-0.5.0.tar.gz |
---|
229 | - cd foolscap-0.5.0/ |
---|
230 | - python setup.py --command-packages=stdeb.command sdist_dsc |
---|
231 | - cd deb_dist/foolscap-0.5.0/ |
---|
232 | - dpkg-buildpackage -rfakeroot -uc -us |
---|
233 | - sudo dpkg -i ../python-foolscap_0.5.0-1_all.deb |
---|
234 | - |
---|
235 | -TL;DR package building instructions for Tahoe |
---|
236 | -============================================= |
---|
237 | - |
---|
238 | -If you want to build your own Debian packages from the darcs tree or from |
---|
239 | -a source release, do the following:: |
---|
240 | - |
---|
241 | - cd ~/ |
---|
242 | - mkdir src && cd src/ |
---|
243 | - darcs get --lazy http://allmydata.org/source/tahoe-lafs/trunk tahoe-lafs |
---|
244 | - cd tahoe-lafs |
---|
245 | - # set this for your Debian release name (lenny, sid, etc) |
---|
246 | - make deb-lenny-head |
---|
247 | - # You must have your dependency issues worked out by hand for this to work |
---|
248 | - sudo dpkg -i ../allmydata-tahoe_1.6.1-r4262_all.deb |
---|
249 | - |
---|
250 | -You should now have a functional desert island build of Tahoe with all of the |
---|
251 | -supported libraries as .deb packages. You'll need to edit the Debian-specific |
---|
252 | -``/etc/defaults/allmydata-tahoe`` file to get Tahoe started. Data is by default |
---|
253 | -stored in ``/var/lib/tahoelafsd/`` and Tahoe runs as the 'tahoelafsd' user. |
---|
254 | - |
---|
255 | -Building Debian Packages |
---|
256 | -======================== |
---|
257 | - |
---|
258 | -The Tahoe source tree comes with limited support for building Debian packages |
---|
259 | -on a variety of Debian and Ubuntu platforms. For each supported platform, |
---|
260 | -there is a "deb-PLATFORM-head" target in the Makefile that will produce a |
---|
261 | -Debian package from a darcs checkout, using a version number that is derived |
---|
262 | -from the most recent darcs tag, plus the total number of revisions present in |
---|
263 | -the tree (e.g. "1.1-r2678"). |
---|
264 | - |
---|
265 | -To create Debian packages from a Tahoe tree, you will need some additional |
---|
266 | -tools installed. The canonical list of these packages is in the |
---|
267 | -"Build-Depends" clause of ``misc/sid/debian/control``, and includes:: |
---|
268 | - |
---|
269 | - build-essential |
---|
270 | - debhelper |
---|
271 | - cdbs |
---|
272 | - python-central |
---|
273 | - python-setuptools |
---|
274 | - python |
---|
275 | - python-dev |
---|
276 | - python-twisted-core |
---|
277 | - |
---|
278 | -In addition, to use the "deb-$PLATFORM-head" target, you will also need the |
---|
279 | -"``debchange``" utility from the "devscripts" package, and the "fakeroot" package. |
---|
280 | - |
---|
281 | -Some recent platforms can be handled by using the targets for the previous |
---|
282 | -release, for example if there is no "deb-hardy-head" target, try building |
---|
283 | -"deb-gutsy-head" and see if the resulting package will work. |
---|
284 | - |
---|
285 | -Note that we haven't tried to build source packages (``.orig.tar.gz`` + dsc) yet, |
---|
286 | -and there are no such source packages in our APT repository. |
---|
287 | - |
---|
288 | -Using Pre-Built Debian Packages |
---|
289 | -=============================== |
---|
290 | - |
---|
291 | -The ``tahoe-lafs.org`` site hosts an APT repository with Debian packages that are |
---|
292 | -built after each checkin. The `DownloadDebianPackages |
---|
293 | -<http://tahoe-lafs.org/trac/tahoe/wiki/DownloadDebianPackages>`_ wiki page |
---|
294 | -describes this repository. |
---|
295 | +Tahoe-LAFS is provided as a ``.deb`` package in current Debian (>= wheezy) |
---|
296 | +and Ubuntu (>= lucid) releases. Before official packages were added, the Tahoe |
---|
297 | +source tree provided support for building unofficial packages for a variety |
---|
298 | +of popular Debian/Ubuntu versions. The project also ran buildbots to create |
---|
299 | +``.debs`` of current trunk for ease of testing. |
---|
300 | |
---|
301 | hunk ./docs/debian.rst 18 |
---|
302 | -The ``tahoe-lafs.org`` APT repository also includes Debian packages of support |
---|
303 | -libraries, like Foolscap, zfec, pycryptopp, and everything else you need that |
---|
304 | -isn't already in Debian. |
---|
305 | +As of version 1.9, the source tree no longer provides these tools. To |
---|
306 | +construct a ``.deb`` from current trunk, your best bet is to apply the current |
---|
307 | +Debian diff from the latest upstream package and invoke the ``debian/rules`` |
---|
308 | +as usual. Debian's standard ``apt-get`` tool can be used to fetch the current |
---|
309 | +source package (including the Debian-specific diff): run |
---|
310 | +"``apt-get source tahoe-lafs``". That will fetch three files: the ``.dsc`` |
---|
311 | +control file, the main Tahoe tarball, and the Debian-specific |
---|
312 | +``.debian.tar.gz`` file. Just unpack the ``.debian.tar.gz`` file inside |
---|
313 | +your Tahoe source tree, modify the version number in ``debian/changelog``, |
---|
314 | +then run "``fakeroot ./debian/rules binary``", and a new ``.deb`` will be |
---|
315 | +placed in the parent directory. |
---|
316 | |
---|
317 | hunk ./docs/debian.rst 30 |
---|
318 | -Building From Source on Debian Systems |
---|
319 | -====================================== |
---|
320 | |
---|
321 | hunk ./docs/debian.rst 31 |
---|
322 | -Many of Tahoe's build dependencies can be satisfied by first installing |
---|
323 | -certain Debian packages: simplejson is one of these. Some Debian/Ubuntu |
---|
324 | -platforms do not provide the necessary ``.egg-info`` metadata with their |
---|
325 | -packages, so the Tahoe build process may not believe they are present. Some |
---|
326 | -Tahoe dependencies are not present in most Debian systems (such as foolscap |
---|
327 | -and zfec): debs for these are made available in the APT repository described |
---|
328 | -above. |
---|
329 | +Dependency Packages |
---|
330 | +=================== |
---|
331 | |
---|
332 | hunk ./docs/debian.rst 34 |
---|
333 | -The Tahoe build process will acquire (via setuptools) most of the libraries |
---|
334 | -that it needs to run and which are not already present in the build |
---|
335 | -environment). |
---|
336 | +Tahoe depends upon a number of additional libraries. When building Tahoe from |
---|
337 | +source, any dependencies that are not already present in the environment will |
---|
338 | +be downloaded (via ``easy_install``) and stored in the ``support/lib`` |
---|
339 | +directory. |
---|
340 | |
---|
341 | hunk ./docs/debian.rst 39 |
---|
342 | -We have observed occasional problems with this acquisition process. In some |
---|
343 | -cases, setuptools will only be half-aware of an installed Debian package, |
---|
344 | -just enough to interfere with the automatic download+build of the dependency. |
---|
345 | -For example, on some platforms, if Nevow-0.9.26 is installed via a Debian |
---|
346 | -package, setuptools will believe that it must download Nevow anyways, but it |
---|
347 | -will insist upon downloading that specific 0.9.26 version. Since the current |
---|
348 | -release of Nevow is 0.9.31, and 0.9.26 is no longer available for download, |
---|
349 | -this will fail. |
---|
350 | +The ``.deb`` packages, of course, rely solely upon other ``.deb`` packages. |
---|
351 | +For reference, here is a list of the debian package names that provide Tahoe's |
---|
352 | +dependencies as of the 1.9 release: |
---|
353 | |
---|
354 | hunk ./docs/debian.rst 43 |
---|
355 | -`<http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-sdists/>`_ |
---|
356 | -contains source tarballs for Tahoe's dependent libraries. The Nevow-0.9.26-type |
---|
357 | -problem can be mitigated by putting the right dependency in ``tahoe-deps``, |
---|
358 | -or by downloading the "SUMO" distribution of Tahoe-LAFS, which includes all of |
---|
359 | -these source tarballs. |
---|
360 | +* python |
---|
361 | +* python-zfec |
---|
362 | +* python-pycryptopp |
---|
363 | +* python-foolscap |
---|
364 | +* python-openssl (needed by foolscap) |
---|
365 | +* python-twisted |
---|
366 | +* python-nevow |
---|
367 | +* python-mock |
---|
368 | +* python-simplejson |
---|
369 | +* python-setuptools |
---|
370 | +* python-support (for Debian-specific install-time tools) |
---|
371 | |
---|
372 | hunk ./docs/debian.rst 55 |
---|
373 | -If you encounter problems building a dependency from source, |
---|
374 | -`<http://tahoe-lafs.org/source/tahoe-lafs/deps/tahoe-lafs-dep-eggs/>`_ |
---|
375 | -contains binary (`.egg`) distributions for various OS platforms and versions |
---|
376 | -of Python. |
---|
377 | +When building your own Debian packages, a convenient way to get all these |
---|
378 | +dependencies installed is to first install the official "tahoe-lafs" package, |
---|
379 | +then uninstall it, leaving the dependencies behind. You may also find it |
---|
380 | +useful to run "``apt-get build-dep tahoe-lafs``" to make sure all the usual |
---|
381 | +build-essential tools are installed. |
---|
382 | } |
---|
383 | |
---|
384 | Context: |
---|
385 | |
---|
386 | [src/allmydata/__init__.py: suppress a spurious warning from 'bin/tahoe --version[-and-path]' about twisted-web and twisted-core packages. |
---|
387 | david-sarah@jacaranda.org**20110801005209 |
---|
388 | Ignore-this: 50e7cd53cca57b1870d9df0361c7c709 |
---|
389 | ] |
---|
390 | [test_cli.py: use to_str on fields loaded using simplejson.loads in new tests. refs #1304 |
---|
391 | david-sarah@jacaranda.org**20110730032521 |
---|
392 | Ignore-this: d1d6dfaefd1b4e733181bf127c79c00b |
---|
393 | ] |
---|
394 | [cli: make 'tahoe cp' overwrite mutable files in-place |
---|
395 | Kevan Carstensen <kevan@isnotajoke.com>**20110729202039 |
---|
396 | Ignore-this: b2ad21a19439722f05c49bfd35b01855 |
---|
397 | ] |
---|
398 | [SFTP: write an error message to standard error for unrecognized shell commands. Change the existing message for shell sessions to be written to standard error, and refactor some duplicated code. Also change the lines of the error messages to end in CRLF, and take into account Kevan's review comments. fixes #1442, #1446 |
---|
399 | david-sarah@jacaranda.org**20110729233102 |
---|
400 | Ignore-this: d2f2bb4664f25007d1602bf7333e2cdd |
---|
401 | ] |
---|
402 | [src/allmydata/scripts/cli.py: fix pyflakes warning. |
---|
403 | david-sarah@jacaranda.org**20110728021402 |
---|
404 | Ignore-this: 94050140ddb99865295973f49927c509 |
---|
405 | ] |
---|
406 | [Fix the help synopses of CLI commands to include [options] in the right place. fixes #1359, fixes #636 |
---|
407 | david-sarah@jacaranda.org**20110724225440 |
---|
408 | Ignore-this: 2a8e488a5f63dabfa9db9efd83768a5 |
---|
409 | ] |
---|
410 | [encodingutil: argv and output encodings are always the same on all platforms. Lose the unnecessary generality of them being different. fixes #1120 |
---|
411 | david-sarah@jacaranda.org**20110629185356 |
---|
412 | Ignore-this: 5ebacbe6903dfa83ffd3ff8436a97787 |
---|
413 | ] |
---|
414 | [docs/man/tahoe.1: add man page. fixes #1420 |
---|
415 | david-sarah@jacaranda.org**20110724171728 |
---|
416 | Ignore-this: fc7601ec7f25494288d6141d0ae0004c |
---|
417 | ] |
---|
418 | [Update the dependency on zope.interface to fix an incompatiblity between Nevow and zope.interface 3.6.4. fixes #1435 |
---|
419 | david-sarah@jacaranda.org**20110721234941 |
---|
420 | Ignore-this: 2ff3fcfc030fca1a4d4c7f1fed0f2aa9 |
---|
421 | ] |
---|
422 | [frontends/ftpd.py: remove the check for IWriteFile.close since we're now guaranteed to be using Twisted >= 10.1 which has it. |
---|
423 | david-sarah@jacaranda.org**20110722000320 |
---|
424 | Ignore-this: 55cd558b791526113db3f83c00ec328a |
---|
425 | ] |
---|
426 | [Update the dependency on Twisted to >= 10.1. This allows us to simplify some documentation: it's no longer necessary to install pywin32 on Windows, or apply a patch to Twisted in order to use the FTP frontend. fixes #1274, #1438. refs #1429 |
---|
427 | david-sarah@jacaranda.org**20110721233658 |
---|
428 | Ignore-this: 81b41745477163c9b39c0b59db91cc62 |
---|
429 | ] |
---|
430 | [misc/build_helpers/run_trial.py: undo change to block pywin32 (it didn't work because run_trial.py is no longer used). refs #1334 |
---|
431 | david-sarah@jacaranda.org**20110722035402 |
---|
432 | Ignore-this: 5d03f544c4154f088e26c7107494bf39 |
---|
433 | ] |
---|
434 | [misc/build_helpers/run_trial.py: ensure that pywin32 is not on the sys.path when running the test suite. Includes some temporary debugging printouts that will be removed. refs #1334 |
---|
435 | david-sarah@jacaranda.org**20110722024907 |
---|
436 | Ignore-this: 5141a9f83a4085ed4ca21f0bbb20bb9c |
---|
437 | ] |
---|
438 | [docs/running.rst: use 'tahoe run ~/.tahoe' instead of 'tahoe run' (the default is the current directory, unlike 'tahoe start'). |
---|
439 | david-sarah@jacaranda.org**20110718005949 |
---|
440 | Ignore-this: 81837fbce073e93d88a3e7ae3122458c |
---|
441 | ] |
---|
442 | [docs/running.rst: say to put the introducer.furl in tahoe.cfg. |
---|
443 | david-sarah@jacaranda.org**20110717194315 |
---|
444 | Ignore-this: 954cc4c08e413e8c62685d58ff3e11f3 |
---|
445 | ] |
---|
446 | [README.txt: say that quickstart.rst is in the docs directory. |
---|
447 | david-sarah@jacaranda.org**20110717192400 |
---|
448 | Ignore-this: bc6d35a85c496b77dbef7570677ea42a |
---|
449 | ] |
---|
450 | [setup: remove the dependency on foolscap's "secure_connections" extra, add a dependency on pyOpenSSL |
---|
451 | zooko@zooko.com**20110717114226 |
---|
452 | Ignore-this: df222120d41447ce4102616921626c82 |
---|
453 | fixes #1383 |
---|
454 | ] |
---|
455 | [test_sftp.py cleanup: remove a redundant definition of failUnlessReallyEqual. |
---|
456 | david-sarah@jacaranda.org**20110716181813 |
---|
457 | Ignore-this: 50113380b368c573f07ac6fe2eb1e97f |
---|
458 | ] |
---|
459 | [docs: add missing link in NEWS.rst |
---|
460 | zooko@zooko.com**20110712153307 |
---|
461 | Ignore-this: be7b7eb81c03700b739daa1027d72b35 |
---|
462 | ] |
---|
463 | [contrib: remove the contributed fuse modules and the entire contrib/ directory, which is now empty |
---|
464 | zooko@zooko.com**20110712153229 |
---|
465 | Ignore-this: 723c4f9e2211027c79d711715d972c5 |
---|
466 | Also remove a couple of vestigial references to figleaf, which is long gone. |
---|
467 | fixes #1409 (remove contrib/fuse) |
---|
468 | ] |
---|
469 | [add Protovis.js-based download-status timeline visualization |
---|
470 | Brian Warner <warner@lothar.com>**20110629222606 |
---|
471 | Ignore-this: 477ccef5c51b30e246f5b6e04ab4a127 |
---|
472 | |
---|
473 | provide status overlap info on the webapi t=json output, add decode/decrypt |
---|
474 | rate tooltips, add zoomin/zoomout buttons |
---|
475 | ] |
---|
476 | [add more download-status data, fix tests |
---|
477 | Brian Warner <warner@lothar.com>**20110629222555 |
---|
478 | Ignore-this: e9e0b7e0163f1e95858aa646b9b17b8c |
---|
479 | ] |
---|
480 | [prepare for viz: improve DownloadStatus events |
---|
481 | Brian Warner <warner@lothar.com>**20110629222542 |
---|
482 | Ignore-this: 16d0bde6b734bb501aa6f1174b2b57be |
---|
483 | |
---|
484 | consolidate IDownloadStatusHandlingConsumer stuff into DownloadNode |
---|
485 | ] |
---|
486 | [docs: fix error in crypto specification that was noticed by Taylor R Campbell <campbell+tahoe@mumble.net> |
---|
487 | zooko@zooko.com**20110629185711 |
---|
488 | Ignore-this: b921ed60c1c8ba3c390737fbcbe47a67 |
---|
489 | ] |
---|
490 | [setup.py: don't make bin/tahoe.pyscript executable. fixes #1347 |
---|
491 | david-sarah@jacaranda.org**20110130235809 |
---|
492 | Ignore-this: 3454c8b5d9c2c77ace03de3ef2d9398a |
---|
493 | ] |
---|
494 | [Makefile: remove targets relating to 'setup.py check_auto_deps' which no longer exists. fixes #1345 |
---|
495 | david-sarah@jacaranda.org**20110626054124 |
---|
496 | Ignore-this: abb864427a1b91bd10d5132b4589fd90 |
---|
497 | ] |
---|
498 | [Makefile: add 'make check' as an alias for 'make test'. Also remove an unnecessary dependency of 'test' on 'build' and 'src/allmydata/_version.py'. fixes #1344 |
---|
499 | david-sarah@jacaranda.org**20110623205528 |
---|
500 | Ignore-this: c63e23146c39195de52fb17c7c49b2da |
---|
501 | ] |
---|
502 | [Rename test_package_initialization.py to (much shorter) test_import.py . |
---|
503 | Brian Warner <warner@lothar.com>**20110611190234 |
---|
504 | Ignore-this: 3eb3dbac73600eeff5cfa6b65d65822 |
---|
505 | |
---|
506 | The former name was making my 'ls' listings hard to read, by forcing them |
---|
507 | down to just two columns. |
---|
508 | ] |
---|
509 | [tests: fix tests to accomodate [20110611153758-92b7f-0ba5e4726fb6318dac28fb762a6512a003f4c430] |
---|
510 | zooko@zooko.com**20110611163741 |
---|
511 | Ignore-this: 64073a5f39e7937e8e5e1314c1a302d1 |
---|
512 | Apparently none of the two authors (stercor, terrell), three reviewers (warner, davidsarah, terrell), or one committer (me) actually ran the tests. This is presumably due to #20. |
---|
513 | fixes #1412 |
---|
514 | ] |
---|
515 | [wui: right-align the size column in the WUI |
---|
516 | zooko@zooko.com**20110611153758 |
---|
517 | Ignore-this: 492bdaf4373c96f59f90581c7daf7cd7 |
---|
518 | Thanks to Ted "stercor" Rolle Jr. and Terrell Russell. |
---|
519 | fixes #1412 |
---|
520 | ] |
---|
521 | [docs: three minor fixes |
---|
522 | zooko@zooko.com**20110610121656 |
---|
523 | Ignore-this: fec96579eb95aceb2ad5fc01a814c8a2 |
---|
524 | CREDITS for arc for stats tweak |
---|
525 | fix link to .zip file in quickstart.rst (thanks to ChosenOne for noticing) |
---|
526 | English usage tweak |
---|
527 | ] |
---|
528 | [docs/running.rst: fix stray HTML (not .rst) link noticed by ChosenOne. |
---|
529 | david-sarah@jacaranda.org**20110609223719 |
---|
530 | Ignore-this: fc50ac9c94792dcac6f1067df8ac0d4a |
---|
531 | ] |
---|
532 | [server.py: get_latencies now reports percentiles _only_ if there are sufficient observations for the interpretation of the percentile to be unambiguous. |
---|
533 | wilcoxjg@gmail.com**20110527120135 |
---|
534 | Ignore-this: 2e7029764bffc60e26f471d7c2b6611e |
---|
535 | interfaces.py: modified the return type of RIStatsProvider.get_stats to allow for None as a return value |
---|
536 | NEWS.rst, stats.py: documentation of change to get_latencies |
---|
537 | stats.rst: now documents percentile modification in get_latencies |
---|
538 | test_storage.py: test_latencies now expects None in output categories that contain too few samples for the associated percentile to be unambiguously reported. |
---|
539 | fixes #1392 |
---|
540 | ] |
---|
541 | [docs: revert link in relnotes.txt from NEWS.rst to NEWS, since the former did not exist at revision 5000. |
---|
542 | david-sarah@jacaranda.org**20110517011214 |
---|
543 | Ignore-this: 6a5be6e70241e3ec0575641f64343df7 |
---|
544 | ] |
---|
545 | [docs: convert NEWS to NEWS.rst and change all references to it. |
---|
546 | david-sarah@jacaranda.org**20110517010255 |
---|
547 | Ignore-this: a820b93ea10577c77e9c8206dbfe770d |
---|
548 | ] |
---|
549 | [docs: remove out-of-date docs/testgrid/introducer.furl and containing directory. fixes #1404 |
---|
550 | david-sarah@jacaranda.org**20110512140559 |
---|
551 | Ignore-this: 784548fc5367fac5450df1c46890876d |
---|
552 | ] |
---|
553 | [scripts/common.py: don't assume that the default alias is always 'tahoe' (it is, but the API of get_alias doesn't say so). refs #1342 |
---|
554 | david-sarah@jacaranda.org**20110130164923 |
---|
555 | Ignore-this: a271e77ce81d84bb4c43645b891d92eb |
---|
556 | ] |
---|
557 | [setup: don't catch all Exception from check_requirement(), but only PackagingError and ImportError |
---|
558 | zooko@zooko.com**20110128142006 |
---|
559 | Ignore-this: 57d4bc9298b711e4bc9dc832c75295de |
---|
560 | I noticed this because I had accidentally inserted a bug which caused AssertionError to be raised from check_requirement(). |
---|
561 | ] |
---|
562 | [M-x whitespace-cleanup |
---|
563 | zooko@zooko.com**20110510193653 |
---|
564 | Ignore-this: dea02f831298c0f65ad096960e7df5c7 |
---|
565 | ] |
---|
566 | [docs: fix typo in running.rst, thanks to arch_o_median |
---|
567 | zooko@zooko.com**20110510193633 |
---|
568 | Ignore-this: ca06de166a46abbc61140513918e79e8 |
---|
569 | ] |
---|
570 | [relnotes.txt: don't claim to work on Cygwin (which has been untested for some time). refs #1342 |
---|
571 | david-sarah@jacaranda.org**20110204204902 |
---|
572 | Ignore-this: 85ef118a48453d93fa4cddc32d65b25b |
---|
573 | ] |
---|
574 | [relnotes.txt: forseeable -> foreseeable. refs #1342 |
---|
575 | david-sarah@jacaranda.org**20110204204116 |
---|
576 | Ignore-this: 746debc4d82f4031ebf75ab4031b3a9 |
---|
577 | ] |
---|
578 | [replace remaining .html docs with .rst docs |
---|
579 | zooko@zooko.com**20110510191650 |
---|
580 | Ignore-this: d557d960a986d4ac8216d1677d236399 |
---|
581 | Remove install.html (long since deprecated). |
---|
582 | Also replace some obsolete references to install.html with references to quickstart.rst. |
---|
583 | Fix some broken internal references within docs/historical/historical_known_issues.txt. |
---|
584 | Thanks to Ravi Pinjala and Patrick McDonald. |
---|
585 | refs #1227 |
---|
586 | ] |
---|
587 | [docs: FTP-and-SFTP.rst: fix a minor error and update the information about which version of Twisted fixes #1297 |
---|
588 | zooko@zooko.com**20110428055232 |
---|
589 | Ignore-this: b63cfb4ebdbe32fb3b5f885255db4d39 |
---|
590 | ] |
---|
591 | [munin tahoe_files plugin: fix incorrect file count |
---|
592 | francois@ctrlaltdel.ch**20110428055312 |
---|
593 | Ignore-this: 334ba49a0bbd93b4a7b06a25697aba34 |
---|
594 | fixes #1391 |
---|
595 | ] |
---|
596 | [corrected "k must never be smaller than N" to "k must never be greater than N" |
---|
597 | secorp@allmydata.org**20110425010308 |
---|
598 | Ignore-this: 233129505d6c70860087f22541805eac |
---|
599 | ] |
---|
600 | [Fix a test failure in test_package_initialization on Python 2.4.x due to exceptions being stringified differently than in later versions of Python. refs #1389 |
---|
601 | david-sarah@jacaranda.org**20110411190738 |
---|
602 | Ignore-this: 7847d26bc117c328c679f08a7baee519 |
---|
603 | ] |
---|
604 | [tests: add test for including the ImportError message and traceback entry in the summary of errors from importing dependencies. refs #1389 |
---|
605 | david-sarah@jacaranda.org**20110410155844 |
---|
606 | Ignore-this: fbecdbeb0d06a0f875fe8d4030aabafa |
---|
607 | ] |
---|
608 | [allmydata/__init__.py: preserve the message and last traceback entry (file, line number, function, and source line) of ImportErrors in the package versions string. fixes #1389 |
---|
609 | david-sarah@jacaranda.org**20110410155705 |
---|
610 | Ignore-this: 2f87b8b327906cf8bfca9440a0904900 |
---|
611 | ] |
---|
612 | [remove unused variable detected by pyflakes |
---|
613 | zooko@zooko.com**20110407172231 |
---|
614 | Ignore-this: 7344652d5e0720af822070d91f03daf9 |
---|
615 | ] |
---|
616 | [allmydata/__init__.py: Nicer reporting of unparseable version numbers in dependencies. fixes #1388 |
---|
617 | david-sarah@jacaranda.org**20110401202750 |
---|
618 | Ignore-this: 9c6bd599259d2405e1caadbb3e0d8c7f |
---|
619 | ] |
---|
620 | [update FTP-and-SFTP.rst: the necessary patch is included in Twisted-10.1 |
---|
621 | Brian Warner <warner@lothar.com>**20110325232511 |
---|
622 | Ignore-this: d5307faa6900f143193bfbe14e0f01a |
---|
623 | ] |
---|
624 | [control.py: remove all uses of s.get_serverid() |
---|
625 | warner@lothar.com**20110227011203 |
---|
626 | Ignore-this: f80a787953bd7fa3d40e828bde00e855 |
---|
627 | ] |
---|
628 | [web: remove some uses of s.get_serverid(), not all |
---|
629 | warner@lothar.com**20110227011159 |
---|
630 | Ignore-this: a9347d9cf6436537a47edc6efde9f8be |
---|
631 | ] |
---|
632 | [immutable/downloader/fetcher.py: remove all get_serverid() calls |
---|
633 | warner@lothar.com**20110227011156 |
---|
634 | Ignore-this: fb5ef018ade1749348b546ec24f7f09a |
---|
635 | ] |
---|
636 | [immutable/downloader/fetcher.py: fix diversity bug in server-response handling |
---|
637 | warner@lothar.com**20110227011153 |
---|
638 | Ignore-this: bcd62232c9159371ae8a16ff63d22c1b |
---|
639 | |
---|
640 | When blocks terminate (either COMPLETE or CORRUPT/DEAD/BADSEGNUM), the |
---|
641 | _shares_from_server dict was being popped incorrectly (using shnum as the |
---|
642 | index instead of serverid). I'm still thinking through the consequences of |
---|
643 | this bug. It was probably benign and really hard to detect. I think it would |
---|
644 | cause us to incorrectly believe that we're pulling too many shares from a |
---|
645 | server, and thus prefer a different server rather than asking for a second |
---|
646 | share from the first server. The diversity code is intended to spread out the |
---|
647 | number of shares simultaneously being requested from each server, but with |
---|
648 | this bug, it might be spreading out the total number of shares requested at |
---|
649 | all, not just simultaneously. (note that SegmentFetcher is scoped to a single |
---|
650 | segment, so the effect doesn't last very long). |
---|
651 | ] |
---|
652 | [immutable/downloader/share.py: reduce get_serverid(), one left, update ext deps |
---|
653 | warner@lothar.com**20110227011150 |
---|
654 | Ignore-this: d8d56dd8e7b280792b40105e13664554 |
---|
655 | |
---|
656 | test_download.py: create+check MyShare instances better, make sure they share |
---|
657 | Server objects, now that finder.py cares |
---|
658 | ] |
---|
659 | [immutable/downloader/finder.py: reduce use of get_serverid(), one left |
---|
660 | warner@lothar.com**20110227011146 |
---|
661 | Ignore-this: 5785be173b491ae8a78faf5142892020 |
---|
662 | ] |
---|
663 | [immutable/offloaded.py: reduce use of get_serverid() a bit more |
---|
664 | warner@lothar.com**20110227011142 |
---|
665 | Ignore-this: b48acc1b2ae1b311da7f3ba4ffba38f |
---|
666 | ] |
---|
667 | [immutable/upload.py: reduce use of get_serverid() |
---|
668 | warner@lothar.com**20110227011138 |
---|
669 | Ignore-this: ffdd7ff32bca890782119a6e9f1495f6 |
---|
670 | ] |
---|
671 | [immutable/checker.py: remove some uses of s.get_serverid(), not all |
---|
672 | warner@lothar.com**20110227011134 |
---|
673 | Ignore-this: e480a37efa9e94e8016d826c492f626e |
---|
674 | ] |
---|
675 | [add remaining get_* methods to storage_client.Server, NoNetworkServer, and |
---|
676 | warner@lothar.com**20110227011132 |
---|
677 | Ignore-this: 6078279ddf42b179996a4b53bee8c421 |
---|
678 | MockIServer stubs |
---|
679 | ] |
---|
680 | [upload.py: rearrange _make_trackers a bit, no behavior changes |
---|
681 | warner@lothar.com**20110227011128 |
---|
682 | Ignore-this: 296d4819e2af452b107177aef6ebb40f |
---|
683 | ] |
---|
684 | [happinessutil.py: finally rename merge_peers to merge_servers |
---|
685 | warner@lothar.com**20110227011124 |
---|
686 | Ignore-this: c8cd381fea1dd888899cb71e4f86de6e |
---|
687 | ] |
---|
688 | [test_upload.py: factor out FakeServerTracker |
---|
689 | warner@lothar.com**20110227011120 |
---|
690 | Ignore-this: 6c182cba90e908221099472cc159325b |
---|
691 | ] |
---|
692 | [test_upload.py: server-vs-tracker cleanup |
---|
693 | warner@lothar.com**20110227011115 |
---|
694 | Ignore-this: 2915133be1a3ba456e8603885437e03 |
---|
695 | ] |
---|
696 | [happinessutil.py: server-vs-tracker cleanup |
---|
697 | warner@lothar.com**20110227011111 |
---|
698 | Ignore-this: b856c84033562d7d718cae7cb01085a9 |
---|
699 | ] |
---|
700 | [upload.py: more tracker-vs-server cleanup |
---|
701 | warner@lothar.com**20110227011107 |
---|
702 | Ignore-this: bb75ed2afef55e47c085b35def2de315 |
---|
703 | ] |
---|
704 | [upload.py: fix var names to avoid confusion between 'trackers' and 'servers' |
---|
705 | warner@lothar.com**20110227011103 |
---|
706 | Ignore-this: 5d5e3415b7d2732d92f42413c25d205d |
---|
707 | ] |
---|
708 | [refactor: s/peer/server/ in immutable/upload, happinessutil.py, test_upload |
---|
709 | warner@lothar.com**20110227011100 |
---|
710 | Ignore-this: 7ea858755cbe5896ac212a925840fe68 |
---|
711 | |
---|
712 | No behavioral changes, just updating variable/method names and log messages. |
---|
713 | The effects outside these three files should be minimal: some exception |
---|
714 | messages changed (to say "server" instead of "peer"), and some internal class |
---|
715 | names were changed. A few things still use "peer" to minimize external |
---|
716 | changes, like UploadResults.timings["peer_selection"] and |
---|
717 | happinessutil.merge_peers, which can be changed later. |
---|
718 | ] |
---|
719 | [storage_client.py: clean up test_add_server/test_add_descriptor, remove .test_servers |
---|
720 | warner@lothar.com**20110227011056 |
---|
721 | Ignore-this: efad933e78179d3d5fdcd6d1ef2b19cc |
---|
722 | ] |
---|
723 | [test_client.py, upload.py:: remove KiB/MiB/etc constants, and other dead code |
---|
724 | warner@lothar.com**20110227011051 |
---|
725 | Ignore-this: dc83c5794c2afc4f81e592f689c0dc2d |
---|
726 | ] |
---|
727 | [test: increase timeout on a network test because Francois's ARM machine hit that timeout |
---|
728 | zooko@zooko.com**20110317165909 |
---|
729 | Ignore-this: 380c345cdcbd196268ca5b65664ac85b |
---|
730 | I'm skeptical that the test was proceeding correctly but ran out of time. It seems more likely that it had gotten hung. But if we raise the timeout to an even more extravagant number then we can be even more certain that the test was never going to finish. |
---|
731 | ] |
---|
732 | [docs/configuration.rst: add a "Frontend Configuration" section |
---|
733 | Brian Warner <warner@lothar.com>**20110222014323 |
---|
734 | Ignore-this: 657018aa501fe4f0efef9851628444ca |
---|
735 | |
---|
736 | this points to docs/frontends/*.rst, which were previously underlinked |
---|
737 | ] |
---|
738 | [web/filenode.py: avoid calling req.finish() on closed HTTP connections. Closes #1366 |
---|
739 | "Brian Warner <warner@lothar.com>"**20110221061544 |
---|
740 | Ignore-this: 799d4de19933f2309b3c0c19a63bb888 |
---|
741 | ] |
---|
742 | [Add unit tests for cross_check_pkg_resources_versus_import, and a regression test for ref #1355. This requires a little refactoring to make it testable. |
---|
743 | david-sarah@jacaranda.org**20110221015817 |
---|
744 | Ignore-this: 51d181698f8c20d3aca58b057e9c475a |
---|
745 | ] |
---|
746 | [allmydata/__init__.py: .name was used in place of the correct .__name__ when printing an exception. Also, robustify string formatting by using %r instead of %s in some places. fixes #1355. |
---|
747 | david-sarah@jacaranda.org**20110221020125 |
---|
748 | Ignore-this: b0744ed58f161bf188e037bad077fc48 |
---|
749 | ] |
---|
750 | [Refactor StorageFarmBroker handling of servers |
---|
751 | Brian Warner <warner@lothar.com>**20110221015804 |
---|
752 | Ignore-this: 842144ed92f5717699b8f580eab32a51 |
---|
753 | |
---|
754 | Pass around IServer instance instead of (peerid, rref) tuple. Replace |
---|
755 | "descriptor" with "server". Other replacements: |
---|
756 | |
---|
757 | get_all_servers -> get_connected_servers/get_known_servers |
---|
758 | get_servers_for_index -> get_servers_for_psi (now returns IServers) |
---|
759 | |
---|
760 | This change still needs to be pushed further down: lots of code is now |
---|
761 | getting the IServer and then distributing (peerid, rref) internally. |
---|
762 | Instead, it ought to distribute the IServer internally and delay |
---|
763 | extracting a serverid or rref until the last moment. |
---|
764 | |
---|
765 | no_network.py was updated to retain parallelism. |
---|
766 | ] |
---|
767 | [TAG allmydata-tahoe-1.8.2 |
---|
768 | warner@lothar.com**20110131020101] |
---|
769 | Patch bundle hash: |
---|
770 | 878bdec526ea00702e6f7dcc89b98373b94fecf8 |
---|