]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/blobdiff - NEWS.rst
Merge pull request #236 from daira/2725.timezone-test.0
[tahoe-lafs/tahoe-lafs.git] / NEWS.rst
index 21fa8254dff6a9c96d2d7ccfdee90c9b7eb18c24..1e860f4d26d6e80aeae45a51d8debb4020f6a983 100644 (file)
--- a/NEWS.rst
+++ b/NEWS.rst
-
+.. -*- coding: utf-8-with-signature -*-
+
 ==================================
 User-Visible Changes in Tahoe-LAFS
 ==================================
 
-Release 1.9.0 (2011-??-??)
+Release ??? (???)
+
+Compatibility and Dependency Updates
+------------------------------------
+
+Tahoe now requires Python 2.7 on all platforms. (#2445)
+
+Tahoe now requires Foolscap 0.10.1, which fixes incompatibilities with recent
+Twisted releases. (#2510, #2722, #2567)
+
+Tests should work with both Nevow 0.11 and 0.12 (#2663)
+
+Configuration Changes
+---------------------
+
+Leif's "preferred storage servers" was landed in revision 96eaca6. This adds
+"peers.preferred" to tahoe.cfg
+
+Aliases can (probably) be unicode.
+
+The introducer's "set_encoding_parameters" feature was removed.
+
+Other Fixes
+-----------
+
+Note: if these tickets are not user visible, they do not need to be explained
+here: merely listing the ticket numbers is sufficient.
+
+#2493: OS-X packaging improvements, so new installs will remove previous ones
+
+2499, 2511, 2567, 2556, 2663, 2723, 2543
+
+#1077: use standard time format in all WUI messages
+
+#1973: welcome-page cleanup: durations instead of timestamps, replace
+"announced" with "last received", remove "storage" column
+
+#1949, #2137: tahoe ls: remove -u shortcut for "--uri", leaving it for
+global --node-url option.
+
+Release 1.10.2 (2015-07-30)
+'''''''''''''''''''''''''''
+
+Packaging Changes
+-----------------
+
+This release no longer requires the ``mock`` library (which was previously
+used in the unit test suite). Shortly after the Tahoe-LAFS 1.10.1 release, a
+new version of ``mock`` was released (1.1.0) that proved to be incompatible
+with Tahoe's fork of setuptools, preventing Tahoe-1.10.1 from building at
+all. `#2465`_
+
+The ``tahoe --version`` output is now less likely to include scary diagnostic
+warnings that look deceptively like stack traces. `#2436`_
+
+The pyasn1 requirement was increased to >= 0.1.8.
+
+.. _`#2465`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2465
+.. _`#2436`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2436
+
+Other Fixes
+-----------
+
+A WebAPI ``GET`` would sometimes hang when using the HTTP Range header to
+read just part of the file. `#2459`_
+
+Using ``tahoe cp`` to copy two different files of the same name into the same
+target directory now raises an error, rather than silently overwriting one of
+them. `#2447`_
+
+All tickets closed in this release: 2328 2436 2446 2447 2459 2460 2461 2462
+2465 2470.
+
+.. _`#2459`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2459
+.. _`#2447`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2447
+
+
+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
+
+
+Release 1.10.0 (2013-05-01)
+'''''''''''''''''''''''''''
+
+New Features
+------------
+
+- The Welcome page has been redesigned. This is a preview of the design style
+  that is likely to be used in other parts of the WUI in future Tahoe-LAFS
+  versions. (`#1713`_, `#1457`_, `#1735`_)
+- A new extensible Introducer protocol has been added, as the basis for
+  future improvements such as accounting. Compatibility with older nodes is
+  not affected. When server, introducer, and client are all upgraded, the
+  welcome page will show node IDs that start with "v0-" instead of the old
+  tubid. See `<docs/nodekeys.rst>`__ for details. (`#466`_)
+- The web-API has a new ``relink`` operation that supports directly moving
+  files between directories. (`#1579`_)
+
+Security Improvements
+---------------------
+
+- The ``introducer.furl`` for new Introducers is now unguessable. In previous
+  releases, this FURL used a predictable swissnum, allowing a network
+  eavesdropper who observes any node connecting to the Introducer to access
+  the Introducer themselves, and thus use servers or offer storage service to
+  clients (i.e. "join the grid"). In the new code, the only way to join a
+  grid is to be told the ``introducer.furl`` by someone who already knew it.
+  Note that pre-existing introducers are not changed. To force an introducer
+  to generate a new FURL, delete the existing ``introducer.furl`` file and
+  restart it. After doing this, the ``[client]introducer.furl`` setting of
+  every client and server that should connect to that introducer must be
+  updated. Note that other users of a shared machine may be able to read
+  ``introducer.furl`` from your ``tahoe.cfg`` file unless you configure the
+  file permissions to prevent them. (`#1802`_)
+- Both ``introducer.furl`` and ``helper.furl`` are now censored from the
+  Welcome page, to prevent users of your gateway from learning enough to
+  create gateway nodes of their own.  For existing guessable introducer
+  FURLs, the ``introducer`` swissnum is still displayed to show that a
+  guessable FURL is in use. (`#860`_)
+
+Command-line Syntax Changes
+---------------------------
+
+- Global options to ``tahoe``, such as ``-d``/``--node-directory``, must now
+  come before rather than after the command name (for example,
+  ``tahoe -d BASEDIR cp -r foo: bar:`` ). (`#166`_)
+
+Notable Bugfixes
+----------------
+
+- In earlier versions, if a connection problem caused a download failure for
+  an immutable file, subsequent attempts to download the same file could also
+  fail. This is now fixed. (`#1679`_)
+- Filenames in WUI directory pages are now displayed correctly when they
+  contain characters that require HTML escaping. (`#1143`_)
+- Non-ASCII node nicknames no longer cause WUI errors. (`#1298`_)
+- Checking a LIT file using ``tahoe check`` no longer results in an
+  exception. (`#1758`_)
+- The SFTP frontend now works with recent versions of Twisted, rather than
+  giving errors or warnings about use of ``IFinishableConsumer``. (`#1926`_,
+  `#1564`_, `#1525`_)
+- ``tahoe cp --verbose`` now counts the files being processed correctly.
+  (`#1805`_, `#1783`_)
+- Exceptions no longer trigger an unhelpful crash reporter on Ubuntu 12.04
+  ("Precise") or later. (`#1746`_)
+- The error message displayed when a CLI tool cannot connect to a gateway has
+  been improved. (`#974`_)
+- Other minor fixes: `#1781`_, `#1812`_, `#1915`_, `#1484`_, `#1525`_
+
+Compatibility and Dependencies
+------------------------------
+
+- Python >= 2.6, except Python 3 (`#1658`_)
+- Twisted >= 11.0.0 (`#1771`_)
+- mock >= 0.8 (for unit tests)
+- pycryptopp >= 0.6.0 (for Ed25519 signatures)
+- zope.interface >= 3.6.0 (except 3.6.3 or 3.6.4)
+
+Other Changes
+-------------
+
+- The ``flogtool`` utility, used to read detailed event logs, can now be
+  accessed as ``tahoe debug flogtool`` even when Foolscap is not installed
+  system-wide. (`#1693`_)
+- The provisioning/reliability pages were removed from the main client's web
+  interface, and moved into a standalone web-based tool. Use the ``run.py``
+  script in ``misc/operations_helpers/provisioning/`` to access them.
+- Web clients can now cache (ETag) immutable directory pages. (`#443`_)
+- `<docs/convergence_secret.rst>`__ was added to document the adminstration
+  of convergence secrets. (`#1761`_)
+
+Precautions when Upgrading
 --------------------------
 
-Alpha 2 preview
+- When upgrading a grid from a recent revision of trunk, follow the
+  precautions from this `message to the tahoe-dev mailing list`_, to ensure
+  that announcements to the Introducer are recognized after the upgrade.
+  This is not necessary when upgrading from a previous release like 1.9.2.
+
+.. _`#166`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/166
+.. _`#443`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/443
+.. _`#466`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/466
+.. _`#860`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/860
+.. _`#974`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/974
+.. _`#1143`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1143
+.. _`#1298`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1298
+.. _`#1457`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1457
+.. _`#1484`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1484
+.. _`#1525`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1525
+.. _`#1564`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1564
+.. _`#1579`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1579
+.. _`#1658`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1658
+.. _`#1679`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1679
+.. _`#1693`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1693
+.. _`#1713`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1713
+.. _`#1735`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1735
+.. _`#1746`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1746
+.. _`#1758`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1758
+.. _`#1761`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1761
+.. _`#1771`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1771
+.. _`#1781`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1781
+.. _`#1783`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1783
+.. _`#1802`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1802
+.. _`#1805`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1805
+.. _`#1812`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1812
+.. _`#1915`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1915
+.. _`#1926`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1926
+.. _`message to the tahoe-dev mailing list`:
+             https://tahoe-lafs.org/pipermail/tahoe-dev/2013-March/008096.html
+
+
+Release 1.9.2 (2012-07-03)
+''''''''''''''''''''''''''
+
+Notable Bugfixes
+----------------
+
+- Several regressions in support for reading (`#1636`_), writing/modifying
+  (`#1670`_, `#1749`_), verifying (`#1628`_) and repairing (`#1655`_, `#1669`_,
+  `#1676`_, `#1689`_) mutable files have been fixed.
+- FTP can now list directories containing mutable files, although it
+  still does not support reading or writing mutable files. (`#680`_)
+- The FTP frontend would previously show Jan 1 1970 for all timestamps;
+  now it shows the correct modification time of the directory entry.
+  (`#1688`_)
+- If a node is configured to report incidents to a log gatherer, but the
+  gatherer is offline when some incidents occur, it would previously not
+  "catch up" with those incidents as intended. (`#1725`_)
+- OpenBSD 5 is now supported. (`#1584`_)
+- The ``count-good-share-hosts`` field of file check results is now
+  computed correctly. (`#1115`_)
+
+Configuration/Behavior Changes
+------------------------------
+
+- The capability of the upload directory for the drop-upload frontend
+  is now specified in the file ``private/drop_upload_dircap`` under
+  the gateway's node directory, rather than in its ``tahoe.cfg``.
+  (`#1593`_)
 
+Packaging Changes
+-----------------
+
+- Tahoe-LAFS can be built correctly from a git repository as well as
+  from darcs.
+
+Compatibility and Dependencies
+------------------------------
+
+- foolscap >= 0.6.3 is required, in order to make Tahoe-LAFS compatible
+  with Twisted >= 11.1.0. (`#1788`_)
+- Versions 2.0.1 and 2.4 of PyCrypto are excluded. (`#1631`_, `#1574`_)
+
+.. _`#680`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/680
+.. _`#1115`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1115
+.. _`#1574`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1574
+.. _`#1584`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1584
+.. _`#1593`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1593
+.. _`#1628`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1628
+.. _`#1631`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1631
+.. _`#1636`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1636
+.. _`#1655`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1655
+.. _`#1669`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1669
+.. _`#1670`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1670
+.. _`#1676`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1676
+.. _`#1688`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1688
+.. _`#1689`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1689
+.. _`#1725`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1725
+.. _`#1749`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1749
+.. _`#1788`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1788
+
+
+Release 1.9.1 (2012-01-12)
+''''''''''''''''''''''''''
+
+Security-related Bugfix
+-----------------------
+
+- Fix flaw that would allow servers to cause undetected corruption when
+  retrieving the contents of mutable files (both SDMF and MDMF). (`#1654`_)
+
+.. _`#1654`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1654
+
+
+Release 1.9.0 (2011-10-30)
+''''''''''''''''''''''''''
 
 New Features
-''''''''''''
+------------
 
 - The most significant new feature in this release is MDMF: "Medium-size
   Distributed Mutable Files". Unlike standard SDMF files, these provide
@@ -19,16 +492,16 @@ New Features
   format for mutable files), both to ensure compatibility with previous
   versions, and because the algorithm does not yet meet memory-usage goals.
   Enable it with ``--format=MDMF`` in the CLI (``tahoe put`` and ``tahoe
-  mkdir``), or the "format" radioboxes in the web interface. (`#393`_,
-  `#1507`_)
+  mkdir``), or the "format" radioboxes in the web interface. See
+  `<docs/specifications/mutable.rst>`__ for more details (`#393`_, `#1507`_)
 - A "blacklist" feature allows blocking access to specific files through
   a particular gateway. See the "Access Blacklist" section of
-  `<docs/configuration.rst>`_ for more details. (`#1425`_)
+  `<docs/configuration.rst>`__ for more details. (`#1425`_)
 - A "drop-upload" feature has been added, which allows you to upload
   files to a Tahoe-LAFS directory just by writing them to a local
   directory. This feature is experimental and should not be relied on
   to store the only copy of valuable data. It is currently available
-  only on Linux. See `<docs/frontends/drop-upload.rst>`_ for documentation.
+  only on Linux. See `<docs/frontends/drop-upload.rst>`__ for documentation.
   (`#1429`_)
 - The timeline of immutable downloads can be viewed using a zoomable and
   pannable JavaScript-based visualization. This is accessed using the
@@ -36,7 +509,7 @@ New Features
   can be reached from the Recent Uploads and Downloads page.
 
 Configuration/Behavior Changes
-''''''''''''''''''''''''''''''
+------------------------------
 
 - Prior to Tahoe-LAFS v1.3, the configuration of some node options could
   be specified using individual config files rather than via ``tahoe.cfg``.
@@ -52,7 +525,7 @@ Configuration/Behavior Changes
   listing is now labelled "unlink" rather than "del". (`#1104`_)
 
 Notable Bugfixes
-''''''''''''''''
+----------------
 
 - The security bugfix for the vulnerability allowing deletion of shares,
   detailed in the news for v1.8.3 below, is also included in this
@@ -66,7 +539,7 @@ Notable Bugfixes
   5% on a fast network). (`#1268`_)
 
 Packaging Changes
-'''''''''''''''''
+-----------------
 
 - The files related to Debian packaging have been removed from the Tahoe
   source tree, since they are now maintained as part of the official
@@ -90,7 +563,7 @@ Packaging Changes
   * Open Software License
 
 Compatibility and Dependencies
-''''''''''''''''''''''''''''''
+------------------------------
 
 - To resolve an incompatibility between Nevow and zope.interface (versions
   3.6.3 and 3.6.4), Tahoe-LAFS now requires an earlier or later
@@ -104,7 +577,7 @@ Compatibility and Dependencies
   dependency via the "secure_connections" option of foolscap. (`#1383`_)
 
 Minor Changes
-'''''''''''''
+-------------
 
 - A ``man`` page has been added (`#1420`_). All other docs are in ReST
   format.
@@ -120,13 +593,10 @@ Minor Changes
 .. _`#1268`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1268
 .. _`#1274`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1274
 .. _`#1304`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1304
-.. _`#1355`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1355
 .. _`#1383`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1383
 .. _`#1384`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1384
 .. _`#1385`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1385
-.. _`#1388`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1388
 .. _`#1391`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1391
-.. _`#1392`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1392
 .. _`#1395`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1395
 .. _`#1409`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1409
 .. _`#1420`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1420
@@ -139,10 +609,10 @@ Minor Changes
 
 
 Release 1.8.3 (2011-09-13)
---------------------------
+''''''''''''''''''''''''''
 
 Security-related Bugfix
-'''''''''''''''''''''''
+-----------------------
 
 - Fix flaw that would allow a person who knows a storage index of a file to
   delete shares of that file. (`#1528`_)
@@ -156,10 +626,10 @@ Security-related Bugfix
 
 
 Release 1.8.2 (2011-01-30)
---------------------------
+''''''''''''''''''''''''''
 
 Compatibility and Dependencies
-''''''''''''''''''''''''''''''
+------------------------------
 
 - Tahoe is now compatible with Twisted-10.2 (released last month), as
   well as with earlier versions. The previous Tahoe-1.8.1 release
@@ -172,7 +642,7 @@ Compatibility and Dependencies
   Tahoe code.
 
 Other Changes
-'''''''''''''
+-------------
 
 - the default reserved_space value for new storage nodes is 1 GB
   (`#1208`_)
@@ -188,7 +658,6 @@ Other Changes
 - "tahoe --version" should now report correct values in situations
   where 1.8.1 might have been wrong (`#1287`_)
 
-.. _`#174`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/174
 .. _`#1208`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1208
 .. _`#1282`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1282
 .. _`#1286`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1286
@@ -198,10 +667,10 @@ Other Changes
 
 
 Release 1.8.1 (2010-10-28)
---------------------------
+''''''''''''''''''''''''''
 
 Bugfixes and Improvements
-'''''''''''''''''''''''''
+-------------------------
 
 - Allow the repairer to improve the health of a file by uploading some
   shares, even if it cannot achieve the configured happiness
@@ -232,14 +701,14 @@ Bugfixes and Improvements
   script, rather than an obscure tool named 'twistd'). (`#174`_)
 
 Removed Features
-''''''''''''''''
+----------------
 
 - The tahoe start/stop/restart and node creation commands no longer
   accept the -m or --multiple option, for consistency between
   platforms.  (`#1262`_)
 
 Packaging
-'''''''''
+---------
 
 - We now host binary packages so that users on certain operating
   systems can install without having a compiler.
@@ -253,7 +722,7 @@ Packaging
   version number. (`#1233`_)
 
 Documentation
-'''''''''''''
+-------------
 
 - All current documentation in .txt format has been converted to .rst
   format. (`#1225`_)
@@ -279,10 +748,10 @@ Documentation
 
 
 Release 1.8.0 (2010-09-23)
---------------------------
+''''''''''''''''''''''''''
 
 New Features
-''''''''''''
+------------
 
 - A completely new downloader which improves performance and
   robustness of immutable-file downloads. It uses the fastest K
@@ -301,7 +770,7 @@ New Features
   Windows. (`#1074`_)
 
 Bugfixes and Improvements
-'''''''''''''''''''''''''
+-------------------------
 
 - Document and clean up the command-line options for specifying the
   node's base directory. (`#188`_, `#706`_, `#715`_, `#772`_,
@@ -318,13 +787,12 @@ Bugfixes and Improvements
   `#1127`_, `#1129`_, `#1131`_, `#1166`_, `#1175`_)
 
 Dependency Updates
-''''''''''''''''''
+------------------
 
 - on x86 and x86-64 platforms, pycryptopp >= 0.5.20
 - pycrypto 2.2 is excluded due to a bug
 
 .. _`#188`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/188
-.. _`#287`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/287
 .. _`#288`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/288
 .. _`#448`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/448
 .. _`#685`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/685
@@ -349,10 +817,10 @@ Dependency Updates
 .. _`#1175`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1175
 
 Release 1.7.1 (2010-07-18)
---------------------------
+''''''''''''''''''''''''''
 
 Bugfixes and Improvements
-'''''''''''''''''''''''''
+-------------------------
 
 - Fix bug in which uploader could fail with AssertionFailure or report
   that it had achieved servers-of-happiness when it hadn't. (`#1118`_)
@@ -374,7 +842,7 @@ Bugfixes and Improvements
 - Forward-compatibility improvements for non-ASCII caps (`#1051`_)
 
 Code improvements
-'''''''''''''''''
+-----------------
 
 - Simplify and tidy-up directories, unicode support, test code
   (`#923`_, `#967`_, `#1072`_)
@@ -395,10 +863,10 @@ Code improvements
 
 
 Release 1.7.0 (2010-06-18)
---------------------------
+''''''''''''''''''''''''''
 
 New Features
-''''''''''''
+------------
 
 - SFTP support (`#1037`_)
   Your Tahoe-LAFS gateway now acts like a full-fledged SFTP server. It
@@ -437,7 +905,7 @@ New Features
   uploaded). See the `architecture.rst`_ document [3] for details.
 
 Bugfixes and Improvements
-'''''''''''''''''''''''''
+-------------------------
 
 - Premature abort of upload if some shares were already present and
   some servers fail. (`#608`_)
@@ -468,14 +936,14 @@ Bugfixes and Improvements
   `#1024`_, `#1082`_)
 
 Removals
-''''''''
+--------
 
 - The 'tahoe debug consolidate' subcommand (for converting old
   allmydata Windows client backups to a newer format) has been
   removed.
 
 Dependency Updates
-''''''''''''''''''
+------------------
 
 - the Python version dependency is raised to 2.4.4 in some cases
   (2.4.3 for Redhat-based Linux distributions, 2.4.2 for UCS-2 builds)
@@ -511,10 +979,10 @@ Dependency Updates
 .. _FTP-and-SFTP.rst: docs/frontends/FTP-and-SFTP.rst
 
 Release 1.6.1 (2010-02-27)
---------------------------
+''''''''''''''''''''''''''
 
 Bugfixes
-''''''''
+--------
 
 - Correct handling of Small Immutable Directories
 
@@ -525,7 +993,7 @@ Bugfixes
   (`#948`_)
 
 Usability Improvements
-''''''''''''''''''''''
+----------------------
 
 - Improved user interface messages and error reporting. (`#681`_,
   `#837`_, `#939`_)
@@ -535,10 +1003,10 @@ Usability Improvements
   are retained for a further day. (`#577`_)
 
 Release 1.6.0 (2010-02-01)
---------------------------
+''''''''''''''''''''''''''
 
 New Features
-''''''''''''
+------------
 
 - Immutable Directories
 
@@ -675,7 +1143,7 @@ New Features
   heterogeneous servers or geographical dispersion.
 
 Minor Changes
-'''''''''''''
+-------------
 
 - The webapi acquired a new "t=mkdir-with-children" command, to create
   and populate a directory in a single call. This is significantly
@@ -727,9 +1195,9 @@ Minor Changes
   has been improved. (`#773`_)
 
 For other changes not mentioned here, see
-<https://tahoe-lafs.org/trac/tahoe/query?milestone=1.6.0&keywords=!~news-done>.
+<https://tahoe-lafs.org/trac/tahoe-lafs/query?milestone=1.6.0&keywords=!~news-done>.
 To include the tickets mentioned above, go to
-<https://tahoe-lafs.org/trac/tahoe/query?milestone=1.6.0>.
+<https://tahoe-lafs.org/trac/tahoe-lafs/query?milestone=1.6.0>.
 
 .. _`#121`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/121
 .. _`#287`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/287
@@ -747,7 +1215,6 @@ To include the tickets mentioned above, go to
 .. _`#741`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/741
 .. _`#760`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/760
 .. _`#761`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/761
-.. _`#768`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/768
 .. _`#773`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/773
 .. _`#786`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/786
 .. _`#828`: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/828
@@ -765,10 +1232,10 @@ To include the tickets mentioned above, go to
 .. _webapi.rst: docs/frontends/webapi.rst
 
 Release 1.5.0 (2009-08-01)
---------------------------
+''''''''''''''''''''''''''
 
 Improvements
-''''''''''''
+------------
 
 - Uploads of immutable files now use pipelined writes, improving
   upload speed slightly (10%) over high-latency connections. (`#392`_)
@@ -806,7 +1273,7 @@ Improvements
   read or written. Also they cannot generally be copied. (`#683`_)
 
 Bugfixes
-''''''''
+--------
 
 - deep-check-and-repair now tolerates read-only directories, such as
   the ones produced by the "tahoe backup" CLI command. Read-only
@@ -825,7 +1292,7 @@ Bugfixes
   partial-information-guessing attack. (`#722`_)
 
 Platform/packaging changes
-''''''''''''''''''''''''''
+--------------------------
 
 - Tahoe-LAFS now runs on NetBSD, OpenBSD, ArchLinux, and NixOS, and on
   an embedded system based on an ARM CPU running at 266 MHz.
@@ -854,7 +1321,7 @@ Platform/packaging changes
   architectures.
 
 dependency updates
-''''''''''''''''''
+------------------
 
 - foolscap-0.4.1
 - no python-2.4.0 or 2.4.1 (2.4.2 is good) (they contained a bug in base64.b32decode)
@@ -874,10 +1341,10 @@ dependency updates
 .. _#752: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/752
 
 Release 1.4.1 (2009-04-13)
---------------------------
+''''''''''''''''''''''''''
 
 Garbage Collection
-''''''''''''''''''
+------------------
 
 - The big feature for this release is the implementation of garbage
   collection, allowing Tahoe storage servers to delete shares for old
@@ -901,7 +1368,7 @@ Garbage Collection
   crawl. 1.1.0 servers did not have the add-lease operation at all.
 
 Security/Usability Problems Fixed
-'''''''''''''''''''''''''''''''''
+---------------------------------
 
 - A super-linear algorithm in the Merkle Tree code was fixed, which
   previously caused e.g. download of a 10GB file to take several hours
@@ -918,7 +1385,7 @@ Security/Usability Problems Fixed
   hashing the two strings to be compared with a random secret.
 
 webapi changes
-''''''''''''''
+--------------
 
 - In most cases, HTML tracebacks will only be sent if an "Accept:
   text/html" header was provided with the HTTP request. This will
@@ -954,7 +1421,7 @@ webapi changes
   docs/proposed/lossmodel.lyx .
 
 CLI changes
-'''''''''''
+-----------
 
 - "tahoe check" and "tahoe deep-check" now accept an "--add-lease"
   argument, to update a lease on all shares. This is the "mark" side
@@ -996,13 +1463,13 @@ CLI changes
   the results of a "consolidation" operation.
 
 other fixes
-'''''''''''
+-----------
 
 - The codebase no longer rauses RuntimeError as a kind of
   assert(). Specific exception classes were created for each previous
   instance of RuntimeError.
 
- -Many unit tests were changed to use a non-network test harness,
+Many unit tests were changed to use a non-network test harness,
   speeding them up considerably.
 
 - Deep-traversal operations (manifest and deep-check) now walk
@@ -1019,10 +1486,10 @@ other fixes
 .. _garbage-collection.rst: docs/garbage-collection.rst
 
 Release 1.3.0 (2009-02-13)
---------------------------
+''''''''''''''''''''''''''
 
 Checker/Verifier/Repairer
-'''''''''''''''''''''''''
+-------------------------
 
 - The primary focus of this release has been writing a checker /
   verifier / repairer for files and directories.  "Checking" is the
@@ -1101,7 +1568,7 @@ Checker/Verifier/Repairer
   details.
 
 Efficient Backup
-''''''''''''''''
+----------------
 
 - The "tahoe backup" command is new in this release, which creates
   efficient versioned backups of a local directory. Given a local
@@ -1124,7 +1591,7 @@ Efficient Backup
   $target/Latest) from working.
 
 Large Files
-'''''''''''
+-----------
 
 - The 12GiB (approximate) immutable-file-size limitation is
   lifted. This release knows how to handle so-called "v2 immutable
@@ -1140,7 +1607,7 @@ Large Files
   upload shares of a large file to a server which doesn't support it.
 
 FTP/SFTP Server
-'''''''''''''''
+---------------
 
 - Tahoe now includes experimental FTP and SFTP servers. When
   configured with a suitable method to translate username+password
@@ -1154,7 +1621,7 @@ FTP/SFTP Server
   configuration details. (`#512`_, `#531`_)
 
 CLI Changes
-'''''''''''
+-----------
 
 - This release adds the 'tahoe create-alias' command, which is a
   combination of 'tahoe mkdir' and 'tahoe add-alias'. This also allows
@@ -1199,10 +1666,10 @@ The cli might not correctly handle arguments which contain non-ascii
 characters in Tahoe v1.3 (although depending on your platform it
 might, especially if your platform can be configured to pass such
 characters on the command-line in utf-8 encoding).  See
-https://tahoe-lafs.org/trac/tahoe/ticket/565 for details.
+https://tahoe-lafs.org/trac/tahoe-lafs/ticket/565 for details.
 
 Web changes
-'''''''''''
+-----------
 
 - The "default webapi port", used when creating a new client node (and
   in the getting-started documentation), was changed from 8123 to
@@ -1290,7 +1757,7 @@ Web changes
   target) of a t=rename command.
 
 Packaging
-'''''''''
+---------
 
 - Tahoe's dependencies have been extended to require the
   "[secure_connections]" feature from Foolscap, which will cause
@@ -1354,7 +1821,7 @@ Packaging
   is no longer the case in 2.0.x .
 
 Grid Management Tools
-'''''''''''''''''''''
+---------------------
 
 - Several tools have been added or updated in the misc/ directory,
   mostly munin plugins that can be used to monitor a storage grid.
@@ -1392,7 +1859,7 @@ Grid Management Tools
    Tahoe implements some form of garbage collection.
 
 Configuration Changes: single INI-format tahoe.cfg file
-'''''''''''''''''''''''''''''''''''''''''''''''''''''''
+-------------------------------------------------------
 
 - The Tahoe node is now configured with a single INI-format file,
   named "tahoe.cfg", in the node's base directory. Most of the
@@ -1423,11 +1890,11 @@ Configuration Changes: single INI-format tahoe.cfg file
   prevent the growth of existing mutable shares).
 
 Other Changes
-'''''''''''''
+-------------
 
 - Clients now declare which versions of the protocols they
   support. This is part of a new backwards-compatibility system:
-  https://tahoe-lafs.org/trac/tahoe/wiki/Versioning .
+  https://tahoe-lafs.org/trac/tahoe-lafs/wiki/Versioning .
 
 - The version strings for human inspection (as displayed on the
   Welcome web page, and included in logs) now includes a platform
@@ -1468,10 +1935,10 @@ Other Changes
 .. _#531: https://tahoe-lafs.org/trac/tahoe-lafs/ticket/531
 
 Release 1.2.0 (2008-07-21)
---------------------------
+''''''''''''''''''''''''''
 
 Security
-''''''''
+--------
 
 - This release makes the immutable-file "ciphertext hash tree"
   mandatory.  Previous releases allowed the uploader to decide whether
@@ -1491,7 +1958,7 @@ Security
   their shares.
 
 Dependencies
-''''''''''''
+------------
 
 - Tahoe now requires Foolscap-0.2.9 . It also requires pycryptopp 0.5
   or newer, since earlier versions had a bug that interacted with
@@ -1501,7 +1968,7 @@ Dependencies
   when necessary.
 
 Web API
-'''''''
+-------
 
 - Web API directory pages should now contain properly-slash-terminated
   links to other directories. They have also stopped using absolute
@@ -1531,7 +1998,7 @@ Web API
   work correctly.
 
 Checker/Verifier/Repairer
-'''''''''''''''''''''''''
+-------------------------
 
 - Tahoe is slowly acquiring convenient tools to check up on file
   health, examine existing shares for errors, and repair files that
@@ -1546,7 +2013,7 @@ Checker/Verifier/Repairer
   Future releases will improve access to this functionality.
 
 Operations/Packaging
-''''''''''''''''''''
+--------------------
 
 - A "check-grid" script has been added, along with a Makefile
   target. This is intended (with the help of a pre-configured node
@@ -1572,7 +2039,7 @@ Operations/Packaging
   added to match.
 
 Other
-'''''
+-----
 
 - Tahoe nodes now use Foolscap "incident logging" to record unusual
   events to their NODEDIR/logs/incidents/ directory. These incident
@@ -1599,10 +2066,10 @@ Other
 .. _debian.rst: docs/debian.rst
 
 Release 1.1.0 (2008-06-11)
---------------------------
+''''''''''''''''''''''''''
 
 CLI: new "alias" model
-''''''''''''''''''''''
+----------------------
 
 - The new CLI code uses an scp/rsync -like interface, in which
   directories in the Tahoe storage grid are referenced by a
@@ -1617,7 +2084,7 @@ CLI: new "alias" model
   'ls' command. Please read `CLI.rst`_ for complete details.
 
 wapi: new pages, new commands
-'''''''''''''''''''''''''''''
+-----------------------------
 
 - Several new pages were added to the web API:
 
@@ -1657,14 +2124,14 @@ wapi: new pages, new commands
  - tahoe_spacetime
 
 New Dependencies
-''''''''''''''''
+----------------
 -  zfec 1.1.0
 -  foolscap 0.2.8
 -  pycryptopp 0.5
 -  setuptools (now required at runtime)
 
 New Mutable-File Code
-'''''''''''''''''''''
+---------------------
 
 - The mutable-file handling code (mostly used for directories) has
   been completely rewritten. The new scheme has a better API (with a
@@ -1681,7 +2148,7 @@ New Mutable-File Code
   published when in fact it failed.
 
 other features
-''''''''''''''
+--------------
 
 - The node now monitors its own CPU usage, as a percentage, measured
   every 60 seconds. 1/5/15 minute moving averages are available on the