Wed Jul 1 13:58:21 2015 UTC ()
Update to 1.10.1:

Release 1.10.1 (2015-06-15)
'''''''''''''''''''''''''''

User Interface / Configuration Changes
--------------------------------------

The "``tahoe cp``" CLI command's ``--recursive`` option is now more predictable,
but behaves slightly differently than before. See below for details. Tickets
`#712`_, `#2329`_.

The SFTP server can now use public-key authentication (instead of only
password-based auth). Public keys are configured through an "account file",
just like passwords. See docs/frontends/FTP-and-SFTP for examples of the
format. `#1411`_

The Tahoe node can now be configured to disable automatic IP-address
detection. Using "AUTO" in tahoe.cfg [node]tub.location= (which is now the
default) triggers autodetection. Omit "AUTO" to disable autodetection. "AUTO"
can be combined with static addresses to e.g. use both a stable
UPnP-configured tunneled address and a DHCP-assigned dynamic (local subnet
only) address. See `configuration.rst`_ for details. `#754`_

The web-based user interface ("WUI") Directory and Welcome pages have been
redesigned, with improved CSS for narrow windows and more-accessible icons
(using distinctive shapes instead of just colors). `#1931`_ `#1961`_ `#1966`_
`#1972`_ `#1901`_

.. _`#712`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/712
.. _`#754`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/754
.. _`#1411`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1411
.. _`#1901`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1901
.. _`#1931`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1931
.. _`#1961`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1961
.. _`#1966`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1966
.. _`#1972`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1972
.. _`#2329`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2329
.. _`configuration.rst`: docs/configuration.rst

"tahoe cp" changes
------------------

The many ``cp``-like tools in the Unix world (POSIX ``/bin/cp``, the ``scp``
provided by SSH, ``rsync``) all behave slightly differently in unusual
circumstances, especially when copying whole directories into a target that
may or may not already exist. The most common difference is whether the user
is referring to the source directory as a whole, or to its contents. For
example, should "``cp -r foodir bardir``" create a new directory named
"``bardir/foodir``"? Or should it behave more like "``cp -r foodir/* bardir``"?
Some tools use the presence of a trailing slash to indicate which behavior
you want. Others ignore trailing slashes.

"``tahoe cp``" is no exception to having exceptional cases. This release fixes
some bad behavior and attempts to establish a consistent rationale for its
behavior. The new rule is:

- If the thing being copied is a directory, and it has a name (e.g. it's not
  a raw Tahoe-LAFS directorycap), then you are referring to the directory
  itself.
- If the thing being copied is an unnamed directory (e.g. raw dircap or
  alias), then you are referring to the contents.
- Trailing slashes do not affect the behavior of the copy (although putting
  a trailing slash on a file-like target is an error).
- The "``-r``" (``--recursive``) flag does not affect the behavior of the
  copy (although omitting ``-r`` when the source is a directory is an error).
- If the target refers to something that does not yet exist:
  - and if the source is a single file, then create a new file;
  - otherwise, create a directory.

There are two main cases where the behavior of Tahoe-LAFS v1.10.1 differs
from that of the previous v1.10.0 release:

- "``cp DIRCAP/file.txt ./local/missing``" , where "``./local``" is a
  directory but "``./local/missing``" does not exist. The implication is
  that you want Tahoe to create a new file named "``./local/missing``" and
  fill it with the contents of the Tahoe-side ``DIRCAP/file.txt``. In
  v1.10.0, a plain "``cp``" would do just this, but "``cp -r``" would do
  "``mkdir ./local/missing``" and then create a file named
  "``./local/missing/file.txt``". In v1.10.1, both "``cp``" and "``cp -r``"
  create a file named "``./local/missing``".
- "``cp -r PARENTCAP/dir ./local/missing``", where ``PARENTCAP/dir/``
  contains "``file.txt``", and again "``./local``" is a directory but
  "``./local/missing``" does not exist. In both v1.10.0 and v1.10.1, this
  first does "``mkdir ./local/missing``". In v1.10.0, it would then copy
  the contents of the source directory into the new directory, resulting
  in "``./local/missing/file.txt``". In v1.10.1, following the new rule
  of "a named directory source refers to the directory itself", the tool
  creates "``./local/missing/dir/file.txt``".

Compatibility and Dependency Updates
------------------------------------

Windows now requires Python 2.7. Unix/OS-X platforms can still use either
Python 2.6 or 2.7, however this is probably the last release that will
support 2.6 (it is no longer receiving security updates, and most OS
distributions have switched to 2.7). Tahoe-LAFS now has the following
dependencies:

- Twisted >= 13.0.0
- Nevow >= 0.11.1
- foolscap >= 0.8.0
- service-identity
- characteristic >= 14.0.0
- pyasn1 >= 0.1.4
- pyasn1-modules >= 0.0.5

On Windows, if pywin32 is not installed then the dependencies on Twisted
and Nevow become:

- Twisted >= 11.1.0, <= 12.1.0
- Nevow >= 0.9.33, <= 0.10

On all platforms, if pyOpenSSL >= 0.14 is installed, then it will be used,
but if not then only pyOpenSSL >= 0.13, <= 0.13.1 will be built when directly
invoking `setup.py build` or `setup.py install`.

We strongly advise OS packagers to take the option of making a tahoe-lafs
package depend on pyOpenSSL >= 0.14. In order for that to work, the following
additional Python dependencies are needed:

- cryptography
- cffi >= 0.8
- six >= 1.4.1
- enum34
- pycparser

as well as libffi (for Debian/Ubuntu, the name of the needed OS package is
`libffi6`).

Tahoe-LAFS is now compatible with Setuptools version 8 and Pip version 6 or
later, which should fix execution on Ubuntu 15.04 (it now tolerates PEP440
semantics in dependency specifications). `#2354`_ `#2242`_

Tahoe-LAFS now depends upon foolscap-0.8.0, which creates better private keys
and certificates than previous versions. To benefit from the improvements
(2048-bit RSA keys and SHA256-based certificates), you must re-generate your
Tahoe nodes (which changes their TubIDs and FURLs). `#2400`_

.. _`#2242`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2242
.. _`#2354`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2354
.. _`#2400`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2400

Packaging
---------

A preliminary OS-X package, named "``tahoe-lafs-VERSION-osx.pkg``", is now
being generated. It is a standard double-clickable installer, which creates
``/Applications/tahoe.app`` that embeds a complete runtime tree. However
launching the ``.app`` only brings up a notice on how to run tahoe from the
command line. A future release may turn this into a fully-fledged application
launcher. `#182`_ `#2393`_ `#2323`_

Preliminary Docker support was added. Tahoe container images may be available
on DockerHub. `PR#165`_ `#2419`_ `#2421`_

Old and obsolete Debian packaging tools have been removed. `#2282`_

.. _`#182`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/182
.. _`#2282`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2282
.. _`#2323`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2323
.. _`#2393`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2393
.. _`#2419`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2419
.. _`#2421`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2421
.. _`PR#165`: https://github.com/tahoe-lafs/tahoe-lafs/pull/165

Minor Changes
-------------

- Welcome page: add per-server "(space) Available" column. `#648`_
- check/deep-check learned to accept multiple location arguments. `#740`_
- Checker reports: remove needs-rebalancing, add count-happiness. `#1784`_ `#2105`_
- CLI ``--help``: cite (but don't list) global options on each command. `#2233`_
- Fix ftp "``ls``" to work with Twisted 15.0.0. `#2394`_

.. _`#648`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/648
.. _`#740`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/740
.. _`#1784`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1784
.. _`#2105`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2105
.. _`#2233`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2233
.. _`#2394`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2394

Roughly 75 tickets were closed in this release: 623 648 712 740 754 898 1146
1159 1336 1381 1411 1634 1674 1698 1707 1717 1737 1784 1800 1807 1842 1847
1901 1918 1953 1960 1961 1966 1969 1972 1974 1988 1992 2005 2008 2023 2027
2028 2034 2048 2067 2086 2105 2121 2128 2165 2193 2208 2209 2233 2235 2242
2245 2248 2249 2249 2280 2281 2282 2290 2305 2312 2323 2340 2354 2380 2393
2394 2398 2400 2415 2416 2417 2433. Another dozen were referenced but not
closed: 182 666 982 1064 1258 1531 1536 1742 1834 1931 1935 2286. Roughly 40
GitHub pull-requests were closed: 32 48 50 56 57 61 62 62 63 64 69 73 81 82
84 85 87 91 94 95 96 103 107 109 112 114 120 122 125 126 133 135 136 137 142
146 149 152 165.

For more information about any ticket, visit e.g.
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/754


(wiz)
diff -r1.24 -r1.25 pkgsrc/filesystems/tahoe-lafs/Makefile
diff -r1.6 -r1.7 pkgsrc/filesystems/tahoe-lafs/PLIST
diff -r1.9 -r1.10 pkgsrc/filesystems/tahoe-lafs/distinfo

cvs diff -r1.24 -r1.25 pkgsrc/filesystems/tahoe-lafs/Makefile (expand / switch to unified diff)

--- pkgsrc/filesystems/tahoe-lafs/Makefile 2015/04/20 07:30:56 1.24
+++ pkgsrc/filesystems/tahoe-lafs/Makefile 2015/07/01 13:58:21 1.25
@@ -1,17 +1,16 @@ @@ -1,17 +1,16 @@
1# $NetBSD: Makefile,v 1.24 2015/04/20 07:30:56 wiz Exp $ 1# $NetBSD: Makefile,v 1.25 2015/07/01 13:58:21 wiz Exp $
2 2
3VERSION= 1.10.0 3VERSION= 1.10.1
4PKGREVISION= 3 
5DISTNAME= allmydata-tahoe-${VERSION} 4DISTNAME= allmydata-tahoe-${VERSION}
6PKGNAME= tahoe-lafs-${VERSION} 5PKGNAME= tahoe-lafs-${VERSION}
7CATEGORIES= filesystems 6CATEGORIES= filesystems
8MASTER_SITES= https://tahoe-lafs.org/source/tahoe-lafs/releases/ 7MASTER_SITES= https://tahoe-lafs.org/source/tahoe-lafs/releases/
9#for beta, add 8#for beta, add
10#MASTER_SITES+= http://tahoe-lafs.org/source/tahoe-lafs/tarballs/ 9#MASTER_SITES+= http://tahoe-lafs.org/source/tahoe-lafs/tarballs/
11EXTRACT_SUFX= .tar.bz2 10EXTRACT_SUFX= .tar.bz2
12 11
13MAINTAINER= gdt@NetBSD.org 12MAINTAINER= gdt@NetBSD.org
14HOMEPAGE= http://tahoe-lafs.org/ 13HOMEPAGE= http://tahoe-lafs.org/
15COMMENT= Distributed fault-tolerant least-authority filesystem 14COMMENT= Distributed fault-tolerant least-authority filesystem
16LICENSE= gnu-gpl-v2 15LICENSE= gnu-gpl-v2
17 16
@@ -25,33 +24,35 @@ TEST_TARGET= test @@ -25,33 +24,35 @@ TEST_TARGET= test
25 24
26# Included egg darcsver, but depend anyway. 25# Included egg darcsver, but depend anyway.
27BUILD_DEPENDS+= ${PYPKGPREFIX}-darcsver-[0-9]*:../../devel/py-darcsver 26BUILD_DEPENDS+= ${PYPKGPREFIX}-darcsver-[0-9]*:../../devel/py-darcsver
28 27
29DEPENDS+= ${PYPKGPREFIX}-zfec-[0-9]*:../../converters/py-zfec 28DEPENDS+= ${PYPKGPREFIX}-zfec-[0-9]*:../../converters/py-zfec
30DEPENDS+= ${PYPKGPREFIX}-zbase32-[0-9]*:../../converters/py-zbase32 29DEPENDS+= ${PYPKGPREFIX}-zbase32-[0-9]*:../../converters/py-zbase32
31DEPENDS+= ${PYPKGPREFIX}-simplejson-[0-9]*:../../converters/py-simplejson 30DEPENDS+= ${PYPKGPREFIX}-simplejson-[0-9]*:../../converters/py-simplejson
32DEPENDS+= ${PYPKGPREFIX}-sqlite3-[0-9]*:../../databases/py-sqlite3 31DEPENDS+= ${PYPKGPREFIX}-sqlite3-[0-9]*:../../databases/py-sqlite3
33DEPENDS+= ${PYPKGPREFIX}-argparse-[0-9]*:../../devel/py-argparse 32DEPENDS+= ${PYPKGPREFIX}-argparse-[0-9]*:../../devel/py-argparse
34DEPENDS+= ${PYPKGPREFIX}-pyutil-[0-9]*:../../devel/py-pyutil 33DEPENDS+= ${PYPKGPREFIX}-pyutil-[0-9]*:../../devel/py-pyutil
35DEPENDS+= ${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock 34DEPENDS+= ${PYPKGPREFIX}-mock-[0-9]*:../../devel/py-mock
36# Included egg setuptools_trial, not used. 35# Included egg setuptools_trial, not used.
37# Included egg setuptools_darcs, used (no package yet). 36# Included egg setuptools_darcs, used (no package yet).
38DEPENDS+= ${PYPKGPREFIX}-foolscap>=0.6.3:../../net/py-foolscap 37DEPENDS+= ${PYPKGPREFIX}-foolscap>=0.8.0:../../net/py-foolscap
39DEPENDS+= ${PYPKGPREFIX}-twisted-[0-9]*:../../net/py-twisted 38DEPENDS+= ${PYPKGPREFIX}-twisted>=13.0.0:../../net/py-twisted
40DEPENDS+= ${PYPKGPREFIX}-asn1-[0-9]*:../../security/py-asn1 39DEPENDS+= ${PYPKGPREFIX}-asn1>=0.1.4:../../security/py-asn1
 40DEPENDS+= ${PYPKGPREFIX}-asn1-modules>=0.0.5:../../security/py-asn1-modules
 41DEPENDS+= ${PYPKGPREFIX}-characteristic>=14.0.0:../../devel/py-characteristic
41DEPENDS+= ${PYPKGPREFIX}-crypto-[0-9]*:../../security/py-crypto 42DEPENDS+= ${PYPKGPREFIX}-crypto-[0-9]*:../../security/py-crypto
42DEPENDS+= ${PYPKGPREFIX}-cryptopp-[0-9]*:../../security/py-cryptopp 43DEPENDS+= ${PYPKGPREFIX}-cryptopp-[0-9]*:../../security/py-cryptopp
43DEPENDS+= ${PYPKGPREFIX}-OpenSSL-[0-9]*:../../security/py-OpenSSL 44DEPENDS+= ${PYPKGPREFIX}-OpenSSL>=0.14:../../security/py-OpenSSL
44DEPENDS+= ${PYPKGPREFIX}-nevow-[0-9]*:../../www/py-nevow 45DEPENDS+= ${PYPKGPREFIX}-nevow>=0.11.1:../../www/py-nevow
45DEPENDS+= ${PYPKGPREFIX}-service_identity-[0-9]*:../../security/py-service_identity 46DEPENDS+= ${PYPKGPREFIX}-service_identity-[0-9]*:../../security/py-service_identity
46 47
47PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # py-twisted, py-xml via py-nevow, py-zbase32, py-cryptopp 48PYTHON_VERSIONS_INCOMPATIBLE= 33 34 # py-twisted, py-xml via py-nevow, py-zbase32, py-cryptopp
48 49
49# Note that there is an upstream (inherited from setuptools) bug 50# Note that there is an upstream (inherited from setuptools) bug
50# https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1258#comment:29 that 51# https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1258#comment:29 that
51# will cause a build to fail if there is a package with bad modes 52# will cause a build to fail if there is a package with bad modes
52# installed. If you get mysterious failures, pkg_delete the installed 53# installed. If you get mysterious failures, pkg_delete the installed
53# version. 54# version.
54 55
55# OK: 1.9.1, 1.9.2, 1.10a2 56# OK: 1.9.1, 1.9.2, 1.10a2
56# BAD: 1.10a1 57# BAD: 1.10a1
57#BAD_DISTFILE_MODES=yes 58#BAD_DISTFILE_MODES=yes

cvs diff -r1.6 -r1.7 pkgsrc/filesystems/tahoe-lafs/PLIST (expand / switch to unified diff)

--- pkgsrc/filesystems/tahoe-lafs/PLIST 2013/05/01 23:59:53 1.6
+++ pkgsrc/filesystems/tahoe-lafs/PLIST 2015/07/01 13:58:21 1.7
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.6 2013/05/01 23:59:53 gdt Exp $ 1@comment $NetBSD: PLIST,v 1.7 2015/07/01 13:58:21 wiz Exp $
2bin/tahoe 2bin/tahoe
3${PYSITELIB}/allmydata/__init__.py 3${PYSITELIB}/allmydata/__init__.py
4${PYSITELIB}/allmydata/__init__.pyc 4${PYSITELIB}/allmydata/__init__.pyc
5${PYSITELIB}/allmydata/__init__.pyo 5${PYSITELIB}/allmydata/__init__.pyo
6${PYSITELIB}/allmydata/_appname.py 6${PYSITELIB}/allmydata/_appname.py
7${PYSITELIB}/allmydata/_appname.pyc 7${PYSITELIB}/allmydata/_appname.pyc
8${PYSITELIB}/allmydata/_appname.pyo 8${PYSITELIB}/allmydata/_appname.pyo
9${PYSITELIB}/allmydata/_auto_deps.py 9${PYSITELIB}/allmydata/_auto_deps.py
10${PYSITELIB}/allmydata/_auto_deps.pyc 10${PYSITELIB}/allmydata/_auto_deps.pyc
11${PYSITELIB}/allmydata/_auto_deps.pyo 11${PYSITELIB}/allmydata/_auto_deps.pyo
12${PYSITELIB}/allmydata/_version.py 12${PYSITELIB}/allmydata/_version.py
13${PYSITELIB}/allmydata/_version.pyc 13${PYSITELIB}/allmydata/_version.pyc
14${PYSITELIB}/allmydata/_version.pyo 14${PYSITELIB}/allmydata/_version.pyo
@@ -182,26 +182,29 @@ ${PYSITELIB}/allmydata/scripts/cli.pyc @@ -182,26 +182,29 @@ ${PYSITELIB}/allmydata/scripts/cli.pyc
182${PYSITELIB}/allmydata/scripts/cli.pyo 182${PYSITELIB}/allmydata/scripts/cli.pyo
183${PYSITELIB}/allmydata/scripts/common.py 183${PYSITELIB}/allmydata/scripts/common.py
184${PYSITELIB}/allmydata/scripts/common.pyc 184${PYSITELIB}/allmydata/scripts/common.pyc
185${PYSITELIB}/allmydata/scripts/common.pyo 185${PYSITELIB}/allmydata/scripts/common.pyo
186${PYSITELIB}/allmydata/scripts/common_http.py 186${PYSITELIB}/allmydata/scripts/common_http.py
187${PYSITELIB}/allmydata/scripts/common_http.pyc 187${PYSITELIB}/allmydata/scripts/common_http.pyc
188${PYSITELIB}/allmydata/scripts/common_http.pyo 188${PYSITELIB}/allmydata/scripts/common_http.pyo
189${PYSITELIB}/allmydata/scripts/create_node.py 189${PYSITELIB}/allmydata/scripts/create_node.py
190${PYSITELIB}/allmydata/scripts/create_node.pyc 190${PYSITELIB}/allmydata/scripts/create_node.pyc
191${PYSITELIB}/allmydata/scripts/create_node.pyo 191${PYSITELIB}/allmydata/scripts/create_node.pyo
192${PYSITELIB}/allmydata/scripts/debug.py 192${PYSITELIB}/allmydata/scripts/debug.py
193${PYSITELIB}/allmydata/scripts/debug.pyc 193${PYSITELIB}/allmydata/scripts/debug.pyc
194${PYSITELIB}/allmydata/scripts/debug.pyo 194${PYSITELIB}/allmydata/scripts/debug.pyo
 195${PYSITELIB}/allmydata/scripts/default_nodedir.py
 196${PYSITELIB}/allmydata/scripts/default_nodedir.pyc
 197${PYSITELIB}/allmydata/scripts/default_nodedir.pyo
195${PYSITELIB}/allmydata/scripts/keygen.py 198${PYSITELIB}/allmydata/scripts/keygen.py
196${PYSITELIB}/allmydata/scripts/keygen.pyc 199${PYSITELIB}/allmydata/scripts/keygen.pyc
197${PYSITELIB}/allmydata/scripts/keygen.pyo 200${PYSITELIB}/allmydata/scripts/keygen.pyo
198${PYSITELIB}/allmydata/scripts/runner.py 201${PYSITELIB}/allmydata/scripts/runner.py
199${PYSITELIB}/allmydata/scripts/runner.pyc 202${PYSITELIB}/allmydata/scripts/runner.pyc
200${PYSITELIB}/allmydata/scripts/runner.pyo 203${PYSITELIB}/allmydata/scripts/runner.pyo
201${PYSITELIB}/allmydata/scripts/slow_operation.py 204${PYSITELIB}/allmydata/scripts/slow_operation.py
202${PYSITELIB}/allmydata/scripts/slow_operation.pyc 205${PYSITELIB}/allmydata/scripts/slow_operation.pyc
203${PYSITELIB}/allmydata/scripts/slow_operation.pyo 206${PYSITELIB}/allmydata/scripts/slow_operation.pyo
204${PYSITELIB}/allmydata/scripts/startstop_node.py 207${PYSITELIB}/allmydata/scripts/startstop_node.py
205${PYSITELIB}/allmydata/scripts/startstop_node.pyc 208${PYSITELIB}/allmydata/scripts/startstop_node.pyc
206${PYSITELIB}/allmydata/scripts/startstop_node.pyo 209${PYSITELIB}/allmydata/scripts/startstop_node.pyo
207${PYSITELIB}/allmydata/scripts/stats_gatherer.py 210${PYSITELIB}/allmydata/scripts/stats_gatherer.py
@@ -296,38 +299,62 @@ ${PYSITELIB}/allmydata/test/check_speed. @@ -296,38 +299,62 @@ ${PYSITELIB}/allmydata/test/check_speed.
296${PYSITELIB}/allmydata/test/check_speed.pyo 299${PYSITELIB}/allmydata/test/check_speed.pyo
297${PYSITELIB}/allmydata/test/common.py 300${PYSITELIB}/allmydata/test/common.py
298${PYSITELIB}/allmydata/test/common.pyc 301${PYSITELIB}/allmydata/test/common.pyc
299${PYSITELIB}/allmydata/test/common.pyo 302${PYSITELIB}/allmydata/test/common.pyo
300${PYSITELIB}/allmydata/test/common_util.py 303${PYSITELIB}/allmydata/test/common_util.py
301${PYSITELIB}/allmydata/test/common_util.pyc 304${PYSITELIB}/allmydata/test/common_util.pyc
302${PYSITELIB}/allmydata/test/common_util.pyo 305${PYSITELIB}/allmydata/test/common_util.pyo
303${PYSITELIB}/allmydata/test/common_web.py 306${PYSITELIB}/allmydata/test/common_web.py
304${PYSITELIB}/allmydata/test/common_web.pyc 307${PYSITELIB}/allmydata/test/common_web.pyc
305${PYSITELIB}/allmydata/test/common_web.pyo 308${PYSITELIB}/allmydata/test/common_web.pyo
306${PYSITELIB}/allmydata/test/no_network.py 309${PYSITELIB}/allmydata/test/no_network.py
307${PYSITELIB}/allmydata/test/no_network.pyc 310${PYSITELIB}/allmydata/test/no_network.pyc
308${PYSITELIB}/allmydata/test/no_network.pyo 311${PYSITELIB}/allmydata/test/no_network.pyo
 312${PYSITELIB}/allmydata/test/test_auth.py
 313${PYSITELIB}/allmydata/test/test_auth.pyc
 314${PYSITELIB}/allmydata/test/test_auth.pyo
309${PYSITELIB}/allmydata/test/test_backupdb.py 315${PYSITELIB}/allmydata/test/test_backupdb.py
310${PYSITELIB}/allmydata/test/test_backupdb.pyc 316${PYSITELIB}/allmydata/test/test_backupdb.pyc
311${PYSITELIB}/allmydata/test/test_backupdb.pyo 317${PYSITELIB}/allmydata/test/test_backupdb.pyo
312${PYSITELIB}/allmydata/test/test_base62.py 318${PYSITELIB}/allmydata/test/test_base62.py
313${PYSITELIB}/allmydata/test/test_base62.pyc 319${PYSITELIB}/allmydata/test/test_base62.pyc
314${PYSITELIB}/allmydata/test/test_base62.pyo 320${PYSITELIB}/allmydata/test/test_base62.pyo
315${PYSITELIB}/allmydata/test/test_checker.py 321${PYSITELIB}/allmydata/test/test_checker.py
316${PYSITELIB}/allmydata/test/test_checker.pyc 322${PYSITELIB}/allmydata/test/test_checker.pyc
317${PYSITELIB}/allmydata/test/test_checker.pyo 323${PYSITELIB}/allmydata/test/test_checker.pyo
318${PYSITELIB}/allmydata/test/test_cli.py 324${PYSITELIB}/allmydata/test/test_cli.py
319${PYSITELIB}/allmydata/test/test_cli.pyc 325${PYSITELIB}/allmydata/test/test_cli.pyc
320${PYSITELIB}/allmydata/test/test_cli.pyo 326${PYSITELIB}/allmydata/test/test_cli.pyo
 327${PYSITELIB}/allmydata/test/test_cli_backup.py
 328${PYSITELIB}/allmydata/test/test_cli_backup.pyc
 329${PYSITELIB}/allmydata/test/test_cli_backup.pyo
 330${PYSITELIB}/allmydata/test/test_cli_check.py
 331${PYSITELIB}/allmydata/test/test_cli_check.pyc
 332${PYSITELIB}/allmydata/test/test_cli_check.pyo
 333${PYSITELIB}/allmydata/test/test_cli_cp.py
 334${PYSITELIB}/allmydata/test/test_cli_cp.pyc
 335${PYSITELIB}/allmydata/test/test_cli_cp.pyo
 336${PYSITELIB}/allmydata/test/test_cli_create_alias.py
 337${PYSITELIB}/allmydata/test/test_cli_create_alias.pyc
 338${PYSITELIB}/allmydata/test/test_cli_create_alias.pyo
 339${PYSITELIB}/allmydata/test/test_cli_list.py
 340${PYSITELIB}/allmydata/test/test_cli_list.pyc
 341${PYSITELIB}/allmydata/test/test_cli_list.pyo
 342${PYSITELIB}/allmydata/test/test_cli_mv.py
 343${PYSITELIB}/allmydata/test/test_cli_mv.pyc
 344${PYSITELIB}/allmydata/test/test_cli_mv.pyo
 345${PYSITELIB}/allmydata/test/test_cli_put.py
 346${PYSITELIB}/allmydata/test/test_cli_put.pyc
 347${PYSITELIB}/allmydata/test/test_cli_put.pyo
321${PYSITELIB}/allmydata/test/test_client.py 348${PYSITELIB}/allmydata/test/test_client.py
322${PYSITELIB}/allmydata/test/test_client.pyc 349${PYSITELIB}/allmydata/test/test_client.pyc
323${PYSITELIB}/allmydata/test/test_client.pyo 350${PYSITELIB}/allmydata/test/test_client.pyo
324${PYSITELIB}/allmydata/test/test_codec.py 351${PYSITELIB}/allmydata/test/test_codec.py
325${PYSITELIB}/allmydata/test/test_codec.pyc 352${PYSITELIB}/allmydata/test/test_codec.pyc
326${PYSITELIB}/allmydata/test/test_codec.pyo 353${PYSITELIB}/allmydata/test/test_codec.pyo
327${PYSITELIB}/allmydata/test/test_crawler.py 354${PYSITELIB}/allmydata/test/test_crawler.py
328${PYSITELIB}/allmydata/test/test_crawler.pyc 355${PYSITELIB}/allmydata/test/test_crawler.pyc
329${PYSITELIB}/allmydata/test/test_crawler.pyo 356${PYSITELIB}/allmydata/test/test_crawler.pyo
330${PYSITELIB}/allmydata/test/test_deepcheck.py 357${PYSITELIB}/allmydata/test/test_deepcheck.py
331${PYSITELIB}/allmydata/test/test_deepcheck.pyc 358${PYSITELIB}/allmydata/test/test_deepcheck.pyc
332${PYSITELIB}/allmydata/test/test_deepcheck.pyo 359${PYSITELIB}/allmydata/test/test_deepcheck.pyo
333${PYSITELIB}/allmydata/test/test_dirnode.py 360${PYSITELIB}/allmydata/test/test_dirnode.py
@@ -362,26 +389,29 @@ ${PYSITELIB}/allmydata/test/test_hung_se @@ -362,26 +389,29 @@ ${PYSITELIB}/allmydata/test/test_hung_se
362${PYSITELIB}/allmydata/test/test_hung_server.pyo 389${PYSITELIB}/allmydata/test/test_hung_server.pyo
363${PYSITELIB}/allmydata/test/test_immutable.py 390${PYSITELIB}/allmydata/test/test_immutable.py
364${PYSITELIB}/allmydata/test/test_immutable.pyc 391${PYSITELIB}/allmydata/test/test_immutable.pyc
365${PYSITELIB}/allmydata/test/test_immutable.pyo 392${PYSITELIB}/allmydata/test/test_immutable.pyo
366${PYSITELIB}/allmydata/test/test_import.py 393${PYSITELIB}/allmydata/test/test_import.py
367${PYSITELIB}/allmydata/test/test_import.pyc 394${PYSITELIB}/allmydata/test/test_import.pyc
368${PYSITELIB}/allmydata/test/test_import.pyo 395${PYSITELIB}/allmydata/test/test_import.pyo
369${PYSITELIB}/allmydata/test/test_introducer.py 396${PYSITELIB}/allmydata/test/test_introducer.py
370${PYSITELIB}/allmydata/test/test_introducer.pyc 397${PYSITELIB}/allmydata/test/test_introducer.pyc
371${PYSITELIB}/allmydata/test/test_introducer.pyo 398${PYSITELIB}/allmydata/test/test_introducer.pyo
372${PYSITELIB}/allmydata/test/test_iputil.py 399${PYSITELIB}/allmydata/test/test_iputil.py
373${PYSITELIB}/allmydata/test/test_iputil.pyc 400${PYSITELIB}/allmydata/test/test_iputil.pyc
374${PYSITELIB}/allmydata/test/test_iputil.pyo 401${PYSITELIB}/allmydata/test/test_iputil.pyo
 402${PYSITELIB}/allmydata/test/test_json_metadata.py
 403${PYSITELIB}/allmydata/test/test_json_metadata.pyc
 404${PYSITELIB}/allmydata/test/test_json_metadata.pyo
375${PYSITELIB}/allmydata/test/test_keygen.py 405${PYSITELIB}/allmydata/test/test_keygen.py
376${PYSITELIB}/allmydata/test/test_keygen.pyc 406${PYSITELIB}/allmydata/test/test_keygen.pyc
377${PYSITELIB}/allmydata/test/test_keygen.pyo 407${PYSITELIB}/allmydata/test/test_keygen.pyo
378${PYSITELIB}/allmydata/test/test_mutable.py 408${PYSITELIB}/allmydata/test/test_mutable.py
379${PYSITELIB}/allmydata/test/test_mutable.pyc 409${PYSITELIB}/allmydata/test/test_mutable.pyc
380${PYSITELIB}/allmydata/test/test_mutable.pyo 410${PYSITELIB}/allmydata/test/test_mutable.pyo
381${PYSITELIB}/allmydata/test/test_netstring.py 411${PYSITELIB}/allmydata/test/test_netstring.py
382${PYSITELIB}/allmydata/test/test_netstring.pyc 412${PYSITELIB}/allmydata/test/test_netstring.pyc
383${PYSITELIB}/allmydata/test/test_netstring.pyo 413${PYSITELIB}/allmydata/test/test_netstring.pyo
384${PYSITELIB}/allmydata/test/test_no_network.py 414${PYSITELIB}/allmydata/test/test_no_network.py
385${PYSITELIB}/allmydata/test/test_no_network.pyc 415${PYSITELIB}/allmydata/test/test_no_network.pyc
386${PYSITELIB}/allmydata/test/test_no_network.pyo 416${PYSITELIB}/allmydata/test/test_no_network.pyo
387${PYSITELIB}/allmydata/test/test_node.py 417${PYSITELIB}/allmydata/test/test_node.py
@@ -395,47 +425,47 @@ ${PYSITELIB}/allmydata/test/test_repaire @@ -395,47 +425,47 @@ ${PYSITELIB}/allmydata/test/test_repaire
395${PYSITELIB}/allmydata/test/test_repairer.pyo 425${PYSITELIB}/allmydata/test/test_repairer.pyo
396${PYSITELIB}/allmydata/test/test_runner.py 426${PYSITELIB}/allmydata/test/test_runner.py
397${PYSITELIB}/allmydata/test/test_runner.pyc 427${PYSITELIB}/allmydata/test/test_runner.pyc
398${PYSITELIB}/allmydata/test/test_runner.pyo 428${PYSITELIB}/allmydata/test/test_runner.pyo
399${PYSITELIB}/allmydata/test/test_sftp.py 429${PYSITELIB}/allmydata/test/test_sftp.py
400${PYSITELIB}/allmydata/test/test_sftp.pyc 430${PYSITELIB}/allmydata/test/test_sftp.pyc
401${PYSITELIB}/allmydata/test/test_sftp.pyo 431${PYSITELIB}/allmydata/test/test_sftp.pyo
402${PYSITELIB}/allmydata/test/test_stats.py 432${PYSITELIB}/allmydata/test/test_stats.py
403${PYSITELIB}/allmydata/test/test_stats.pyc 433${PYSITELIB}/allmydata/test/test_stats.pyc
404${PYSITELIB}/allmydata/test/test_stats.pyo 434${PYSITELIB}/allmydata/test/test_stats.pyo
405${PYSITELIB}/allmydata/test/test_storage.py 435${PYSITELIB}/allmydata/test/test_storage.py
406${PYSITELIB}/allmydata/test/test_storage.pyc 436${PYSITELIB}/allmydata/test/test_storage.pyc
407${PYSITELIB}/allmydata/test/test_storage.pyo 437${PYSITELIB}/allmydata/test/test_storage.pyo
 438${PYSITELIB}/allmydata/test/test_storage_client.py
 439${PYSITELIB}/allmydata/test/test_storage_client.pyc
 440${PYSITELIB}/allmydata/test/test_storage_client.pyo
408${PYSITELIB}/allmydata/test/test_system.py 441${PYSITELIB}/allmydata/test/test_system.py
409${PYSITELIB}/allmydata/test/test_system.pyc 442${PYSITELIB}/allmydata/test/test_system.pyc
410${PYSITELIB}/allmydata/test/test_system.pyo 443${PYSITELIB}/allmydata/test/test_system.pyo
411${PYSITELIB}/allmydata/test/test_upload.py 444${PYSITELIB}/allmydata/test/test_upload.py
412${PYSITELIB}/allmydata/test/test_upload.pyc 445${PYSITELIB}/allmydata/test/test_upload.pyc
413${PYSITELIB}/allmydata/test/test_upload.pyo 446${PYSITELIB}/allmydata/test/test_upload.pyo
414${PYSITELIB}/allmydata/test/test_uri.py 447${PYSITELIB}/allmydata/test/test_uri.py
415${PYSITELIB}/allmydata/test/test_uri.pyc 448${PYSITELIB}/allmydata/test/test_uri.pyc
416${PYSITELIB}/allmydata/test/test_uri.pyo 449${PYSITELIB}/allmydata/test/test_uri.pyo
417${PYSITELIB}/allmydata/test/test_util.py 450${PYSITELIB}/allmydata/test/test_util.py
418${PYSITELIB}/allmydata/test/test_util.pyc 451${PYSITELIB}/allmydata/test/test_util.pyc
419${PYSITELIB}/allmydata/test/test_util.pyo 452${PYSITELIB}/allmydata/test/test_util.pyo
420${PYSITELIB}/allmydata/test/test_version.py 453${PYSITELIB}/allmydata/test/test_version.py
421${PYSITELIB}/allmydata/test/test_version.pyc 454${PYSITELIB}/allmydata/test/test_version.pyc
422${PYSITELIB}/allmydata/test/test_version.pyo 455${PYSITELIB}/allmydata/test/test_version.pyo
423${PYSITELIB}/allmydata/test/test_web.py 456${PYSITELIB}/allmydata/test/test_web.py
424${PYSITELIB}/allmydata/test/test_web.pyc 457${PYSITELIB}/allmydata/test/test_web.pyc
425${PYSITELIB}/allmydata/test/test_web.pyo 458${PYSITELIB}/allmydata/test/test_web.pyo
426${PYSITELIB}/allmydata/test/trial_coverage.py 
427${PYSITELIB}/allmydata/test/trial_coverage.pyc 
428${PYSITELIB}/allmydata/test/trial_coverage.pyo 
429${PYSITELIB}/allmydata/test/trialtest.py 459${PYSITELIB}/allmydata/test/trialtest.py
430${PYSITELIB}/allmydata/test/trialtest.pyc 460${PYSITELIB}/allmydata/test/trialtest.pyc
431${PYSITELIB}/allmydata/test/trialtest.pyo 461${PYSITELIB}/allmydata/test/trialtest.pyo
432${PYSITELIB}/allmydata/unknown.py 462${PYSITELIB}/allmydata/unknown.py
433${PYSITELIB}/allmydata/unknown.pyc 463${PYSITELIB}/allmydata/unknown.pyc
434${PYSITELIB}/allmydata/unknown.pyo 464${PYSITELIB}/allmydata/unknown.pyo
435${PYSITELIB}/allmydata/uri.py 465${PYSITELIB}/allmydata/uri.py
436${PYSITELIB}/allmydata/uri.pyc 466${PYSITELIB}/allmydata/uri.pyc
437${PYSITELIB}/allmydata/uri.pyo 467${PYSITELIB}/allmydata/uri.pyo
438${PYSITELIB}/allmydata/util/__init__.py 468${PYSITELIB}/allmydata/util/__init__.py
439${PYSITELIB}/allmydata/util/__init__.pyc 469${PYSITELIB}/allmydata/util/__init__.pyc
440${PYSITELIB}/allmydata/util/__init__.pyo 470${PYSITELIB}/allmydata/util/__init__.pyo
441${PYSITELIB}/allmydata/util/abbreviate.py 471${PYSITELIB}/allmydata/util/abbreviate.py
@@ -446,26 +476,29 @@ ${PYSITELIB}/allmydata/util/assertutil.p @@ -446,26 +476,29 @@ ${PYSITELIB}/allmydata/util/assertutil.p
446${PYSITELIB}/allmydata/util/assertutil.pyo 476${PYSITELIB}/allmydata/util/assertutil.pyo
447${PYSITELIB}/allmydata/util/base32.py 477${PYSITELIB}/allmydata/util/base32.py
448${PYSITELIB}/allmydata/util/base32.pyc 478${PYSITELIB}/allmydata/util/base32.pyc
449${PYSITELIB}/allmydata/util/base32.pyo 479${PYSITELIB}/allmydata/util/base32.pyo
450${PYSITELIB}/allmydata/util/base62.py 480${PYSITELIB}/allmydata/util/base62.py
451${PYSITELIB}/allmydata/util/base62.pyc 481${PYSITELIB}/allmydata/util/base62.pyc
452${PYSITELIB}/allmydata/util/base62.pyo 482${PYSITELIB}/allmydata/util/base62.pyo
453${PYSITELIB}/allmydata/util/cachedir.py 483${PYSITELIB}/allmydata/util/cachedir.py
454${PYSITELIB}/allmydata/util/cachedir.pyc 484${PYSITELIB}/allmydata/util/cachedir.pyc
455${PYSITELIB}/allmydata/util/cachedir.pyo 485${PYSITELIB}/allmydata/util/cachedir.pyo
456${PYSITELIB}/allmydata/util/consumer.py 486${PYSITELIB}/allmydata/util/consumer.py
457${PYSITELIB}/allmydata/util/consumer.pyc 487${PYSITELIB}/allmydata/util/consumer.pyc
458${PYSITELIB}/allmydata/util/consumer.pyo 488${PYSITELIB}/allmydata/util/consumer.pyo
 489${PYSITELIB}/allmydata/util/dbutil.py
 490${PYSITELIB}/allmydata/util/dbutil.pyc
 491${PYSITELIB}/allmydata/util/dbutil.pyo
459${PYSITELIB}/allmydata/util/deferredutil.py 492${PYSITELIB}/allmydata/util/deferredutil.py
460${PYSITELIB}/allmydata/util/deferredutil.pyc 493${PYSITELIB}/allmydata/util/deferredutil.pyc
461${PYSITELIB}/allmydata/util/deferredutil.pyo 494${PYSITELIB}/allmydata/util/deferredutil.pyo
462${PYSITELIB}/allmydata/util/dictutil.py 495${PYSITELIB}/allmydata/util/dictutil.py
463${PYSITELIB}/allmydata/util/dictutil.pyc 496${PYSITELIB}/allmydata/util/dictutil.pyc
464${PYSITELIB}/allmydata/util/dictutil.pyo 497${PYSITELIB}/allmydata/util/dictutil.pyo
465${PYSITELIB}/allmydata/util/encodingutil.py 498${PYSITELIB}/allmydata/util/encodingutil.py
466${PYSITELIB}/allmydata/util/encodingutil.pyc 499${PYSITELIB}/allmydata/util/encodingutil.pyc
467${PYSITELIB}/allmydata/util/encodingutil.pyo 500${PYSITELIB}/allmydata/util/encodingutil.pyo
468${PYSITELIB}/allmydata/util/fake_inotify.py 501${PYSITELIB}/allmydata/util/fake_inotify.py
469${PYSITELIB}/allmydata/util/fake_inotify.pyc 502${PYSITELIB}/allmydata/util/fake_inotify.pyc
470${PYSITELIB}/allmydata/util/fake_inotify.pyo 503${PYSITELIB}/allmydata/util/fake_inotify.pyo
471${PYSITELIB}/allmydata/util/fileutil.py 504${PYSITELIB}/allmydata/util/fileutil.py
@@ -572,31 +605,35 @@ ${PYSITELIB}/allmydata/web/literal-check @@ -572,31 +605,35 @@ ${PYSITELIB}/allmydata/web/literal-check
572${PYSITELIB}/allmydata/web/manifest.xhtml 605${PYSITELIB}/allmydata/web/manifest.xhtml
573${PYSITELIB}/allmydata/web/map-update-status.xhtml 606${PYSITELIB}/allmydata/web/map-update-status.xhtml
574${PYSITELIB}/allmydata/web/operations.py 607${PYSITELIB}/allmydata/web/operations.py
575${PYSITELIB}/allmydata/web/operations.pyc 608${PYSITELIB}/allmydata/web/operations.pyc
576${PYSITELIB}/allmydata/web/operations.pyo 609${PYSITELIB}/allmydata/web/operations.pyo
577${PYSITELIB}/allmydata/web/publish-status.xhtml 610${PYSITELIB}/allmydata/web/publish-status.xhtml
578${PYSITELIB}/allmydata/web/rename-form.xhtml 611${PYSITELIB}/allmydata/web/rename-form.xhtml
579${PYSITELIB}/allmydata/web/retrieve-status.xhtml 612${PYSITELIB}/allmydata/web/retrieve-status.xhtml
580${PYSITELIB}/allmydata/web/root.py 613${PYSITELIB}/allmydata/web/root.py
581${PYSITELIB}/allmydata/web/root.pyc 614${PYSITELIB}/allmydata/web/root.pyc
582${PYSITELIB}/allmydata/web/root.pyo 615${PYSITELIB}/allmydata/web/root.pyo
583${PYSITELIB}/allmydata/web/static/css/bootstrap.css 616${PYSITELIB}/allmydata/web/static/css/bootstrap.css
584${PYSITELIB}/allmydata/web/static/css/new-tahoe.css 617${PYSITELIB}/allmydata/web/static/css/new-tahoe.css
585${PYSITELIB}/allmydata/web/static/d3-2.4.6.min.js 618${PYSITELIB}/allmydata/web/static/d3-2.4.6.js
586${PYSITELIB}/allmydata/web/static/d3-2.4.6.time.min.js 619${PYSITELIB}/allmydata/web/static/d3-2.4.6.time.js
587${PYSITELIB}/allmydata/web/static/download_status_timeline.js 620${PYSITELIB}/allmydata/web/static/download_status_timeline.js
588${PYSITELIB}/allmydata/web/static/icon.png 621${PYSITELIB}/allmydata/web/static/icon.png
589${PYSITELIB}/allmydata/web/static/jquery-1.6.1.min.js 622${PYSITELIB}/allmydata/web/static/img/connected-no.png
 623${PYSITELIB}/allmydata/web/static/img/connected-not-configured.png
 624${PYSITELIB}/allmydata/web/static/img/connected-yes.png
 625${PYSITELIB}/allmydata/web/static/img/logo.png
 626${PYSITELIB}/allmydata/web/static/jquery-1.11.0.js
590${PYSITELIB}/allmydata/web/static/tahoe.css 627${PYSITELIB}/allmydata/web/static/tahoe.css
591${PYSITELIB}/allmydata/web/statistics.xhtml 628${PYSITELIB}/allmydata/web/statistics.xhtml
592${PYSITELIB}/allmydata/web/status.py 629${PYSITELIB}/allmydata/web/status.py
593${PYSITELIB}/allmydata/web/status.pyc 630${PYSITELIB}/allmydata/web/status.pyc
594${PYSITELIB}/allmydata/web/status.pyo 631${PYSITELIB}/allmydata/web/status.pyo
595${PYSITELIB}/allmydata/web/status.xhtml 632${PYSITELIB}/allmydata/web/status.xhtml
596${PYSITELIB}/allmydata/web/storage.py 633${PYSITELIB}/allmydata/web/storage.py
597${PYSITELIB}/allmydata/web/storage.pyc 634${PYSITELIB}/allmydata/web/storage.pyc
598${PYSITELIB}/allmydata/web/storage.pyo 635${PYSITELIB}/allmydata/web/storage.pyo
599${PYSITELIB}/allmydata/web/storage_status.xhtml 636${PYSITELIB}/allmydata/web/storage_status.xhtml
600${PYSITELIB}/allmydata/web/unlinked.py 637${PYSITELIB}/allmydata/web/unlinked.py
601${PYSITELIB}/allmydata/web/unlinked.pyc 638${PYSITELIB}/allmydata/web/unlinked.pyc
602${PYSITELIB}/allmydata/web/unlinked.pyo 639${PYSITELIB}/allmydata/web/unlinked.pyo

cvs diff -r1.9 -r1.10 pkgsrc/filesystems/tahoe-lafs/distinfo (expand / switch to unified diff)

--- pkgsrc/filesystems/tahoe-lafs/distinfo 2013/05/01 23:59:53 1.9
+++ pkgsrc/filesystems/tahoe-lafs/distinfo 2015/07/01 13:58:21 1.10
@@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
1$NetBSD: distinfo,v 1.9 2013/05/01 23:59:53 gdt Exp $ 1$NetBSD: distinfo,v 1.10 2015/07/01 13:58:21 wiz Exp $
2 2
3SHA1 (allmydata-tahoe-1.10.0.tar.bz2) = 9932ddc1d364a1efe8afddf83572b4de0329f1fc 3SHA1 (allmydata-tahoe-1.10.1.tar.bz2) = b689847399eede07627d232d49818967f9f0c1cb
4RMD160 (allmydata-tahoe-1.10.0.tar.bz2) = bf7aa8f3e09ae1feb7bcec0847e64a5a840d3893 4RMD160 (allmydata-tahoe-1.10.1.tar.bz2) = c27b838deb4b5b62b4399b35ffad66fa15f70e28
5Size (allmydata-tahoe-1.10.0.tar.bz2) = 1174044 bytes 5Size (allmydata-tahoe-1.10.1.tar.bz2) = 1375024 bytes