head	1.17;
access;
symbols
	pkgsrc-2026Q2:1.17.0.10
	pkgsrc-2026Q2-base:1.17
	pkgsrc-2026Q1:1.17.0.8
	pkgsrc-2026Q1-base:1.17
	pkgsrc-2025Q4:1.17.0.6
	pkgsrc-2025Q4-base:1.17
	pkgsrc-2025Q3:1.17.0.4
	pkgsrc-2025Q3-base:1.17
	pkgsrc-2025Q2:1.17.0.2
	pkgsrc-2025Q2-base:1.17
	pkgsrc-2025Q1:1.16.0.6
	pkgsrc-2025Q1-base:1.16
	pkgsrc-2024Q4:1.16.0.4
	pkgsrc-2024Q4-base:1.16
	pkgsrc-2024Q3:1.16.0.2
	pkgsrc-2024Q3-base:1.16
	pkgsrc-2024Q2:1.15.0.14
	pkgsrc-2024Q2-base:1.15
	pkgsrc-2024Q1:1.15.0.12
	pkgsrc-2024Q1-base:1.15
	pkgsrc-2023Q4:1.15.0.10
	pkgsrc-2023Q4-base:1.15
	pkgsrc-2023Q3:1.15.0.8
	pkgsrc-2023Q3-base:1.15
	pkgsrc-2023Q2:1.15.0.6
	pkgsrc-2023Q2-base:1.15
	pkgsrc-2023Q1:1.15.0.4
	pkgsrc-2023Q1-base:1.15
	pkgsrc-2022Q4:1.15.0.2
	pkgsrc-2022Q4-base:1.15
	pkgsrc-2022Q3:1.14.0.4
	pkgsrc-2022Q3-base:1.14
	pkgsrc-2022Q2:1.14.0.2
	pkgsrc-2022Q2-base:1.14
	pkgsrc-2022Q1:1.13.0.4
	pkgsrc-2022Q1-base:1.13
	pkgsrc-2021Q4:1.13.0.2
	pkgsrc-2021Q4-base:1.13
	pkgsrc-2021Q3:1.12.0.6
	pkgsrc-2021Q3-base:1.12
	pkgsrc-2021Q2:1.12.0.4
	pkgsrc-2021Q2-base:1.12
	pkgsrc-2021Q1:1.12.0.2
	pkgsrc-2021Q1-base:1.12
	pkgsrc-2020Q4:1.9.0.32
	pkgsrc-2020Q4-base:1.9
	pkgsrc-2020Q3:1.9.0.30
	pkgsrc-2020Q3-base:1.9
	pkgsrc-2020Q2:1.9.0.26
	pkgsrc-2020Q2-base:1.9
	pkgsrc-2020Q1:1.9.0.6
	pkgsrc-2020Q1-base:1.9
	pkgsrc-2019Q4:1.9.0.28
	pkgsrc-2019Q4-base:1.9
	pkgsrc-2019Q3:1.9.0.24
	pkgsrc-2019Q3-base:1.9
	pkgsrc-2019Q2:1.9.0.22
	pkgsrc-2019Q2-base:1.9
	pkgsrc-2019Q1:1.9.0.20
	pkgsrc-2019Q1-base:1.9
	pkgsrc-2018Q4:1.9.0.18
	pkgsrc-2018Q4-base:1.9
	pkgsrc-2018Q3:1.9.0.16
	pkgsrc-2018Q3-base:1.9
	pkgsrc-2018Q2:1.9.0.14
	pkgsrc-2018Q2-base:1.9
	pkgsrc-2018Q1:1.9.0.12
	pkgsrc-2018Q1-base:1.9
	pkgsrc-2017Q4:1.9.0.10
	pkgsrc-2017Q4-base:1.9
	pkgsrc-2017Q3:1.9.0.8
	pkgsrc-2017Q3-base:1.9
	pkgsrc-2017Q2:1.9.0.4
	pkgsrc-2017Q2-base:1.9
	pkgsrc-2017Q1:1.9.0.2
	pkgsrc-2017Q1-base:1.9
	pkgsrc-2016Q4:1.8.0.12
	pkgsrc-2016Q4-base:1.8
	pkgsrc-2016Q3:1.8.0.10
	pkgsrc-2016Q3-base:1.8
	pkgsrc-2016Q2:1.8.0.8
	pkgsrc-2016Q2-base:1.8
	pkgsrc-2016Q1:1.8.0.6
	pkgsrc-2016Q1-base:1.8
	pkgsrc-2015Q4:1.8.0.4
	pkgsrc-2015Q4-base:1.8
	pkgsrc-2015Q3:1.8.0.2
	pkgsrc-2015Q3-base:1.8
	pkgsrc-2015Q2:1.6.0.18
	pkgsrc-2015Q2-base:1.6
	pkgsrc-2015Q1:1.6.0.16
	pkgsrc-2015Q1-base:1.6
	pkgsrc-2014Q4:1.6.0.14
	pkgsrc-2014Q4-base:1.6
	pkgsrc-2014Q3:1.6.0.12
	pkgsrc-2014Q3-base:1.6
	pkgsrc-2014Q2:1.6.0.10
	pkgsrc-2014Q2-base:1.6
	pkgsrc-2014Q1:1.6.0.8
	pkgsrc-2014Q1-base:1.6
	pkgsrc-2013Q4:1.6.0.6
	pkgsrc-2013Q4-base:1.6
	pkgsrc-2013Q3:1.6.0.4
	pkgsrc-2013Q3-base:1.6
	pkgsrc-2013Q2:1.6.0.2
	pkgsrc-2013Q2-base:1.6
	pkgsrc-2013Q1:1.5.0.6
	pkgsrc-2013Q1-base:1.5
	pkgsrc-2012Q4:1.5.0.4
	pkgsrc-2012Q4-base:1.5
	pkgsrc-2012Q3:1.5.0.2
	pkgsrc-2012Q3-base:1.5
	pkgsrc-2012Q2:1.4.0.6
	pkgsrc-2012Q2-base:1.4
	pkgsrc-2012Q1:1.4.0.4
	pkgsrc-2012Q1-base:1.4
	pkgsrc-2011Q4:1.4.0.2
	pkgsrc-2011Q4-base:1.4
	pkgsrc-2011Q3:1.3.0.6
	pkgsrc-2011Q3-base:1.3
	pkgsrc-2011Q2:1.3.0.4
	pkgsrc-2011Q2-base:1.3
	pkgsrc-2011Q1:1.3.0.2
	pkgsrc-2011Q1-base:1.3
	pkgsrc-2010Q4:1.2.0.4
	pkgsrc-2010Q4-base:1.2
	pkgsrc-2010Q3:1.2.0.2
	pkgsrc-2010Q3-base:1.2
	pkgsrc-base:1.1.1.1
	TNF:1.1.1;
locks; strict;
comment	@# @;


1.17
date	2025.04.05.20.14.37;	author gdt;	state Exp;
branches;
next	1.16;
commitid	A3pgxl4m8zzZXTPF;

1.16
date	2024.08.11.23.16.41;	author gdt;	state Exp;
branches;
next	1.15;
commitid	PwtY02SBqrvLAslF;

1.15
date	2022.10.03.16.40.21;	author gdt;	state Exp;
branches;
next	1.14;
commitid	1xiNNk6tHl4tbiWD;

1.14
date	2022.06.15.22.31.44;	author gdt;	state Exp;
branches;
next	1.13;
commitid	pFDQCu9xhdCKFbID;

1.13
date	2021.10.21.12.16.25;	author gdt;	state Exp;
branches;
next	1.12;
commitid	gTEnGtXkxWtYSFdD;

1.12
date	2021.03.19.12.56.36;	author gdt;	state Exp;
branches;
next	1.11;
commitid	cxIGZs3c3Grw2VLC;

1.11
date	2021.03.18.17.57.08;	author gdt;	state Exp;
branches;
next	1.10;
commitid	0rEeX7BkrMmkKOLC;

1.10
date	2021.03.18.17.32.25;	author gdt;	state Exp;
branches;
next	1.9;
commitid	GYZw7qdfQFIQBOLC;

1.9
date	2017.01.28.09.09.50;	author riastradh;	state Exp;
branches;
next	1.8;
commitid	JpljOOerl6dHmIDz;

1.8
date	2015.08.14.20.37.43;	author wiz;	state Exp;
branches;
next	1.7;
commitid	Qe0QpOoxVMCSihxy;

1.7
date	2015.07.01.13.58.21;	author wiz;	state Exp;
branches;
next	1.6;
commitid	BVxRaDgohGszvAry;

1.6
date	2013.05.01.23.59.53;	author gdt;	state Exp;
branches;
next	1.5;

1.5
date	2012.07.07.00.34.18;	author gdt;	state Exp;
branches;
next	1.4;

1.4
date	2011.11.09.00.30.12;	author gdt;	state Exp;
branches;
next	1.3;

1.3
date	2011.02.01.02.05.18;	author gdt;	state Exp;
branches;
next	1.2;

1.2
date	2010.09.24.18.20.59;	author gdt;	state Exp;
branches;
next	1.1;

1.1
date	2010.07.24.18.14.27;	author gdt;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2010.07.24.18.14.27;	author gdt;	state Exp;
branches;
next	;


desc
@@


1.17
log
@filesystems/tahoe-lafs: Update to 1.20.0

Release 1.20.0 (2024-12-03)
'''''''''''''''''''''''''''

Backwards Incompatible Changes
------------------------------

- Properly interpret "tahoe create --storage-dir" as an option.

  Versions 1.19.0 and older interpreted "--storage-dir" as a "flag" and thus wouldn't work properly. (`#4110 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4110>`_)

Features
--------

- Continued work to make Tahoe-LAFS take advantage of multiple CPUs. (`#4072 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4072>`_)
- Mutable directories can now be created with a pre-determined "signature key" via the web API using the "private-key=..." parameter. The "private-key" value must be a DER-encoded 2048-bit RSA private key in urlsafe base64 encoding. (`#4094 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4094>`_)


Dependency/Installation Changes
-------------------------------

- Now using the "hatch" build system, and pyproject.toml (exclusively) (`#4133 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4133>`_)
@
text
@@@comment $NetBSD$
bin/grid-manager
bin/tahoe
${PYSITELIB}/allmydata/__init__.py
${PYSITELIB}/allmydata/__init__.pyc
${PYSITELIB}/allmydata/__init__.pyo
${PYSITELIB}/allmydata/__main__.py
${PYSITELIB}/allmydata/__main__.pyc
${PYSITELIB}/allmydata/__main__.pyo
${PYSITELIB}/allmydata/_monkeypatch.py
${PYSITELIB}/allmydata/_monkeypatch.pyc
${PYSITELIB}/allmydata/_monkeypatch.pyo
${PYSITELIB}/allmydata/_version.py
${PYSITELIB}/allmydata/_version.pyc
${PYSITELIB}/allmydata/_version.pyo
${PYSITELIB}/allmydata/blacklist.py
${PYSITELIB}/allmydata/blacklist.pyc
${PYSITELIB}/allmydata/blacklist.pyo
${PYSITELIB}/allmydata/check_results.py
${PYSITELIB}/allmydata/check_results.pyc
${PYSITELIB}/allmydata/check_results.pyo
${PYSITELIB}/allmydata/cli/__init__.py
${PYSITELIB}/allmydata/cli/__init__.pyc
${PYSITELIB}/allmydata/cli/__init__.pyo
${PYSITELIB}/allmydata/cli/grid_manager.py
${PYSITELIB}/allmydata/cli/grid_manager.pyc
${PYSITELIB}/allmydata/cli/grid_manager.pyo
${PYSITELIB}/allmydata/client.py
${PYSITELIB}/allmydata/client.pyc
${PYSITELIB}/allmydata/client.pyo
${PYSITELIB}/allmydata/codec.py
${PYSITELIB}/allmydata/codec.pyc
${PYSITELIB}/allmydata/codec.pyo
${PYSITELIB}/allmydata/crypto/__init__.py
${PYSITELIB}/allmydata/crypto/__init__.pyc
${PYSITELIB}/allmydata/crypto/__init__.pyo
${PYSITELIB}/allmydata/crypto/aes.py
${PYSITELIB}/allmydata/crypto/aes.pyc
${PYSITELIB}/allmydata/crypto/aes.pyo
${PYSITELIB}/allmydata/crypto/ed25519.py
${PYSITELIB}/allmydata/crypto/ed25519.pyc
${PYSITELIB}/allmydata/crypto/ed25519.pyo
${PYSITELIB}/allmydata/crypto/error.py
${PYSITELIB}/allmydata/crypto/error.pyc
${PYSITELIB}/allmydata/crypto/error.pyo
${PYSITELIB}/allmydata/crypto/rsa.py
${PYSITELIB}/allmydata/crypto/rsa.pyc
${PYSITELIB}/allmydata/crypto/rsa.pyo
${PYSITELIB}/allmydata/crypto/util.py
${PYSITELIB}/allmydata/crypto/util.pyc
${PYSITELIB}/allmydata/crypto/util.pyo
${PYSITELIB}/allmydata/deep_stats.py
${PYSITELIB}/allmydata/deep_stats.pyc
${PYSITELIB}/allmydata/deep_stats.pyo
${PYSITELIB}/allmydata/dirnode.py
${PYSITELIB}/allmydata/dirnode.pyc
${PYSITELIB}/allmydata/dirnode.pyo
${PYSITELIB}/allmydata/frontends/__init__.py
${PYSITELIB}/allmydata/frontends/__init__.pyc
${PYSITELIB}/allmydata/frontends/__init__.pyo
${PYSITELIB}/allmydata/frontends/auth.py
${PYSITELIB}/allmydata/frontends/auth.pyc
${PYSITELIB}/allmydata/frontends/auth.pyo
${PYSITELIB}/allmydata/frontends/sftpd.py
${PYSITELIB}/allmydata/frontends/sftpd.pyc
${PYSITELIB}/allmydata/frontends/sftpd.pyo
${PYSITELIB}/allmydata/grid_manager.py
${PYSITELIB}/allmydata/grid_manager.pyc
${PYSITELIB}/allmydata/grid_manager.pyo
${PYSITELIB}/allmydata/hashtree.py
${PYSITELIB}/allmydata/hashtree.pyc
${PYSITELIB}/allmydata/hashtree.pyo
${PYSITELIB}/allmydata/history.py
${PYSITELIB}/allmydata/history.pyc
${PYSITELIB}/allmydata/history.pyo
${PYSITELIB}/allmydata/immutable/__init__.py
${PYSITELIB}/allmydata/immutable/__init__.pyc
${PYSITELIB}/allmydata/immutable/__init__.pyo
${PYSITELIB}/allmydata/immutable/checker.py
${PYSITELIB}/allmydata/immutable/checker.pyc
${PYSITELIB}/allmydata/immutable/checker.pyo
${PYSITELIB}/allmydata/immutable/downloader/__init__.py
${PYSITELIB}/allmydata/immutable/downloader/__init__.pyc
${PYSITELIB}/allmydata/immutable/downloader/__init__.pyo
${PYSITELIB}/allmydata/immutable/downloader/common.py
${PYSITELIB}/allmydata/immutable/downloader/common.pyc
${PYSITELIB}/allmydata/immutable/downloader/common.pyo
${PYSITELIB}/allmydata/immutable/downloader/fetcher.py
${PYSITELIB}/allmydata/immutable/downloader/fetcher.pyc
${PYSITELIB}/allmydata/immutable/downloader/fetcher.pyo
${PYSITELIB}/allmydata/immutable/downloader/finder.py
${PYSITELIB}/allmydata/immutable/downloader/finder.pyc
${PYSITELIB}/allmydata/immutable/downloader/finder.pyo
${PYSITELIB}/allmydata/immutable/downloader/node.py
${PYSITELIB}/allmydata/immutable/downloader/node.pyc
${PYSITELIB}/allmydata/immutable/downloader/node.pyo
${PYSITELIB}/allmydata/immutable/downloader/segmentation.py
${PYSITELIB}/allmydata/immutable/downloader/segmentation.pyc
${PYSITELIB}/allmydata/immutable/downloader/segmentation.pyo
${PYSITELIB}/allmydata/immutable/downloader/share.py
${PYSITELIB}/allmydata/immutable/downloader/share.pyc
${PYSITELIB}/allmydata/immutable/downloader/share.pyo
${PYSITELIB}/allmydata/immutable/downloader/status.py
${PYSITELIB}/allmydata/immutable/downloader/status.pyc
${PYSITELIB}/allmydata/immutable/downloader/status.pyo
${PYSITELIB}/allmydata/immutable/encode.py
${PYSITELIB}/allmydata/immutable/encode.pyc
${PYSITELIB}/allmydata/immutable/encode.pyo
${PYSITELIB}/allmydata/immutable/filenode.py
${PYSITELIB}/allmydata/immutable/filenode.pyc
${PYSITELIB}/allmydata/immutable/filenode.pyo
${PYSITELIB}/allmydata/immutable/happiness_upload.py
${PYSITELIB}/allmydata/immutable/happiness_upload.pyc
${PYSITELIB}/allmydata/immutable/happiness_upload.pyo
${PYSITELIB}/allmydata/immutable/layout.py
${PYSITELIB}/allmydata/immutable/layout.pyc
${PYSITELIB}/allmydata/immutable/layout.pyo
${PYSITELIB}/allmydata/immutable/literal.py
${PYSITELIB}/allmydata/immutable/literal.pyc
${PYSITELIB}/allmydata/immutable/literal.pyo
${PYSITELIB}/allmydata/immutable/offloaded.py
${PYSITELIB}/allmydata/immutable/offloaded.pyc
${PYSITELIB}/allmydata/immutable/offloaded.pyo
${PYSITELIB}/allmydata/immutable/repairer.py
${PYSITELIB}/allmydata/immutable/repairer.pyc
${PYSITELIB}/allmydata/immutable/repairer.pyo
${PYSITELIB}/allmydata/immutable/upload.py
${PYSITELIB}/allmydata/immutable/upload.pyc
${PYSITELIB}/allmydata/immutable/upload.pyo
${PYSITELIB}/allmydata/interfaces.py
${PYSITELIB}/allmydata/interfaces.pyc
${PYSITELIB}/allmydata/interfaces.pyo
${PYSITELIB}/allmydata/introducer/__init__.py
${PYSITELIB}/allmydata/introducer/__init__.pyc
${PYSITELIB}/allmydata/introducer/__init__.pyo
${PYSITELIB}/allmydata/introducer/client.py
${PYSITELIB}/allmydata/introducer/client.pyc
${PYSITELIB}/allmydata/introducer/client.pyo
${PYSITELIB}/allmydata/introducer/common.py
${PYSITELIB}/allmydata/introducer/common.pyc
${PYSITELIB}/allmydata/introducer/common.pyo
${PYSITELIB}/allmydata/introducer/interfaces.py
${PYSITELIB}/allmydata/introducer/interfaces.pyc
${PYSITELIB}/allmydata/introducer/interfaces.pyo
${PYSITELIB}/allmydata/introducer/server.py
${PYSITELIB}/allmydata/introducer/server.pyc
${PYSITELIB}/allmydata/introducer/server.pyo
${PYSITELIB}/allmydata/listeners.py
${PYSITELIB}/allmydata/listeners.pyc
${PYSITELIB}/allmydata/listeners.pyo
${PYSITELIB}/allmydata/monitor.py
${PYSITELIB}/allmydata/monitor.pyc
${PYSITELIB}/allmydata/monitor.pyo
${PYSITELIB}/allmydata/mutable/__init__.py
${PYSITELIB}/allmydata/mutable/__init__.pyc
${PYSITELIB}/allmydata/mutable/__init__.pyo
${PYSITELIB}/allmydata/mutable/checker.py
${PYSITELIB}/allmydata/mutable/checker.pyc
${PYSITELIB}/allmydata/mutable/checker.pyo
${PYSITELIB}/allmydata/mutable/common.py
${PYSITELIB}/allmydata/mutable/common.pyc
${PYSITELIB}/allmydata/mutable/common.pyo
${PYSITELIB}/allmydata/mutable/filenode.py
${PYSITELIB}/allmydata/mutable/filenode.pyc
${PYSITELIB}/allmydata/mutable/filenode.pyo
${PYSITELIB}/allmydata/mutable/layout.py
${PYSITELIB}/allmydata/mutable/layout.pyc
${PYSITELIB}/allmydata/mutable/layout.pyo
${PYSITELIB}/allmydata/mutable/publish.py
${PYSITELIB}/allmydata/mutable/publish.pyc
${PYSITELIB}/allmydata/mutable/publish.pyo
${PYSITELIB}/allmydata/mutable/repairer.py
${PYSITELIB}/allmydata/mutable/repairer.pyc
${PYSITELIB}/allmydata/mutable/repairer.pyo
${PYSITELIB}/allmydata/mutable/retrieve.py
${PYSITELIB}/allmydata/mutable/retrieve.pyc
${PYSITELIB}/allmydata/mutable/retrieve.pyo
${PYSITELIB}/allmydata/mutable/servermap.py
${PYSITELIB}/allmydata/mutable/servermap.pyc
${PYSITELIB}/allmydata/mutable/servermap.pyo
${PYSITELIB}/allmydata/node.py
${PYSITELIB}/allmydata/node.pyc
${PYSITELIB}/allmydata/node.pyo
${PYSITELIB}/allmydata/nodemaker.py
${PYSITELIB}/allmydata/nodemaker.pyc
${PYSITELIB}/allmydata/nodemaker.pyo
${PYSITELIB}/allmydata/protocol_switch.py
${PYSITELIB}/allmydata/protocol_switch.pyc
${PYSITELIB}/allmydata/protocol_switch.pyo
${PYSITELIB}/allmydata/scripts/__init__.py
${PYSITELIB}/allmydata/scripts/__init__.pyc
${PYSITELIB}/allmydata/scripts/__init__.pyo
${PYSITELIB}/allmydata/scripts/admin.py
${PYSITELIB}/allmydata/scripts/admin.pyc
${PYSITELIB}/allmydata/scripts/admin.pyo
${PYSITELIB}/allmydata/scripts/backupdb.py
${PYSITELIB}/allmydata/scripts/backupdb.pyc
${PYSITELIB}/allmydata/scripts/backupdb.pyo
${PYSITELIB}/allmydata/scripts/cli.py
${PYSITELIB}/allmydata/scripts/cli.pyc
${PYSITELIB}/allmydata/scripts/cli.pyo
${PYSITELIB}/allmydata/scripts/common.py
${PYSITELIB}/allmydata/scripts/common.pyc
${PYSITELIB}/allmydata/scripts/common.pyo
${PYSITELIB}/allmydata/scripts/common_http.py
${PYSITELIB}/allmydata/scripts/common_http.pyc
${PYSITELIB}/allmydata/scripts/common_http.pyo
${PYSITELIB}/allmydata/scripts/create_node.py
${PYSITELIB}/allmydata/scripts/create_node.pyc
${PYSITELIB}/allmydata/scripts/create_node.pyo
${PYSITELIB}/allmydata/scripts/debug.py
${PYSITELIB}/allmydata/scripts/debug.pyc
${PYSITELIB}/allmydata/scripts/debug.pyo
${PYSITELIB}/allmydata/scripts/default_nodedir.py
${PYSITELIB}/allmydata/scripts/default_nodedir.pyc
${PYSITELIB}/allmydata/scripts/default_nodedir.pyo
${PYSITELIB}/allmydata/scripts/runner.py
${PYSITELIB}/allmydata/scripts/runner.pyc
${PYSITELIB}/allmydata/scripts/runner.pyo
${PYSITELIB}/allmydata/scripts/slow_operation.py
${PYSITELIB}/allmydata/scripts/slow_operation.pyc
${PYSITELIB}/allmydata/scripts/slow_operation.pyo
${PYSITELIB}/allmydata/scripts/tahoe_add_alias.py
${PYSITELIB}/allmydata/scripts/tahoe_add_alias.pyc
${PYSITELIB}/allmydata/scripts/tahoe_add_alias.pyo
${PYSITELIB}/allmydata/scripts/tahoe_backup.py
${PYSITELIB}/allmydata/scripts/tahoe_backup.pyc
${PYSITELIB}/allmydata/scripts/tahoe_backup.pyo
${PYSITELIB}/allmydata/scripts/tahoe_check.py
${PYSITELIB}/allmydata/scripts/tahoe_check.pyc
${PYSITELIB}/allmydata/scripts/tahoe_check.pyo
${PYSITELIB}/allmydata/scripts/tahoe_cp.py
${PYSITELIB}/allmydata/scripts/tahoe_cp.pyc
${PYSITELIB}/allmydata/scripts/tahoe_cp.pyo
${PYSITELIB}/allmydata/scripts/tahoe_get.py
${PYSITELIB}/allmydata/scripts/tahoe_get.pyc
${PYSITELIB}/allmydata/scripts/tahoe_get.pyo
${PYSITELIB}/allmydata/scripts/tahoe_invite.py
${PYSITELIB}/allmydata/scripts/tahoe_invite.pyc
${PYSITELIB}/allmydata/scripts/tahoe_invite.pyo
${PYSITELIB}/allmydata/scripts/tahoe_ls.py
${PYSITELIB}/allmydata/scripts/tahoe_ls.pyc
${PYSITELIB}/allmydata/scripts/tahoe_ls.pyo
${PYSITELIB}/allmydata/scripts/tahoe_manifest.py
${PYSITELIB}/allmydata/scripts/tahoe_manifest.pyc
${PYSITELIB}/allmydata/scripts/tahoe_manifest.pyo
${PYSITELIB}/allmydata/scripts/tahoe_mkdir.py
${PYSITELIB}/allmydata/scripts/tahoe_mkdir.pyc
${PYSITELIB}/allmydata/scripts/tahoe_mkdir.pyo
${PYSITELIB}/allmydata/scripts/tahoe_mv.py
${PYSITELIB}/allmydata/scripts/tahoe_mv.pyc
${PYSITELIB}/allmydata/scripts/tahoe_mv.pyo
${PYSITELIB}/allmydata/scripts/tahoe_put.py
${PYSITELIB}/allmydata/scripts/tahoe_put.pyc
${PYSITELIB}/allmydata/scripts/tahoe_put.pyo
${PYSITELIB}/allmydata/scripts/tahoe_run.py
${PYSITELIB}/allmydata/scripts/tahoe_run.pyc
${PYSITELIB}/allmydata/scripts/tahoe_run.pyo
${PYSITELIB}/allmydata/scripts/tahoe_status.py
${PYSITELIB}/allmydata/scripts/tahoe_status.pyc
${PYSITELIB}/allmydata/scripts/tahoe_status.pyo
${PYSITELIB}/allmydata/scripts/tahoe_unlink.py
${PYSITELIB}/allmydata/scripts/tahoe_unlink.pyc
${PYSITELIB}/allmydata/scripts/tahoe_unlink.pyo
${PYSITELIB}/allmydata/scripts/tahoe_webopen.py
${PYSITELIB}/allmydata/scripts/tahoe_webopen.pyc
${PYSITELIB}/allmydata/scripts/tahoe_webopen.pyo
${PYSITELIB}/allmydata/scripts/types_.py
${PYSITELIB}/allmydata/scripts/types_.pyc
${PYSITELIB}/allmydata/scripts/types_.pyo
${PYSITELIB}/allmydata/stats.py
${PYSITELIB}/allmydata/stats.pyc
${PYSITELIB}/allmydata/stats.pyo
${PYSITELIB}/allmydata/storage/__init__.py
${PYSITELIB}/allmydata/storage/__init__.pyc
${PYSITELIB}/allmydata/storage/__init__.pyo
${PYSITELIB}/allmydata/storage/common.py
${PYSITELIB}/allmydata/storage/common.pyc
${PYSITELIB}/allmydata/storage/common.pyo
${PYSITELIB}/allmydata/storage/crawler.py
${PYSITELIB}/allmydata/storage/crawler.pyc
${PYSITELIB}/allmydata/storage/crawler.pyo
${PYSITELIB}/allmydata/storage/expirer.py
${PYSITELIB}/allmydata/storage/expirer.pyc
${PYSITELIB}/allmydata/storage/expirer.pyo
${PYSITELIB}/allmydata/storage/http_client.py
${PYSITELIB}/allmydata/storage/http_client.pyc
${PYSITELIB}/allmydata/storage/http_client.pyo
${PYSITELIB}/allmydata/storage/http_common.py
${PYSITELIB}/allmydata/storage/http_common.pyc
${PYSITELIB}/allmydata/storage/http_common.pyo
${PYSITELIB}/allmydata/storage/http_server.py
${PYSITELIB}/allmydata/storage/http_server.pyc
${PYSITELIB}/allmydata/storage/http_server.pyo
${PYSITELIB}/allmydata/storage/immutable.py
${PYSITELIB}/allmydata/storage/immutable.pyc
${PYSITELIB}/allmydata/storage/immutable.pyo
${PYSITELIB}/allmydata/storage/immutable_schema.py
${PYSITELIB}/allmydata/storage/immutable_schema.pyc
${PYSITELIB}/allmydata/storage/immutable_schema.pyo
${PYSITELIB}/allmydata/storage/lease.py
${PYSITELIB}/allmydata/storage/lease.pyc
${PYSITELIB}/allmydata/storage/lease.pyo
${PYSITELIB}/allmydata/storage/lease_schema.py
${PYSITELIB}/allmydata/storage/lease_schema.pyc
${PYSITELIB}/allmydata/storage/lease_schema.pyo
${PYSITELIB}/allmydata/storage/mutable.py
${PYSITELIB}/allmydata/storage/mutable.pyc
${PYSITELIB}/allmydata/storage/mutable.pyo
${PYSITELIB}/allmydata/storage/mutable_schema.py
${PYSITELIB}/allmydata/storage/mutable_schema.pyc
${PYSITELIB}/allmydata/storage/mutable_schema.pyo
${PYSITELIB}/allmydata/storage/server.py
${PYSITELIB}/allmydata/storage/server.pyc
${PYSITELIB}/allmydata/storage/server.pyo
${PYSITELIB}/allmydata/storage/shares.py
${PYSITELIB}/allmydata/storage/shares.pyc
${PYSITELIB}/allmydata/storage/shares.pyo
${PYSITELIB}/allmydata/storage_client.py
${PYSITELIB}/allmydata/storage_client.pyc
${PYSITELIB}/allmydata/storage_client.pyo
${PYSITELIB}/allmydata/test/__init__.py
${PYSITELIB}/allmydata/test/__init__.pyc
${PYSITELIB}/allmydata/test/__init__.pyo
${PYSITELIB}/allmydata/test/blocking.py
${PYSITELIB}/allmydata/test/blocking.pyc
${PYSITELIB}/allmydata/test/blocking.pyo
${PYSITELIB}/allmydata/test/certs.py
${PYSITELIB}/allmydata/test/certs.pyc
${PYSITELIB}/allmydata/test/certs.pyo
${PYSITELIB}/allmydata/test/cli/__init__.py
${PYSITELIB}/allmydata/test/cli/__init__.pyc
${PYSITELIB}/allmydata/test/cli/__init__.pyo
${PYSITELIB}/allmydata/test/cli/common.py
${PYSITELIB}/allmydata/test/cli/common.pyc
${PYSITELIB}/allmydata/test/cli/common.pyo
${PYSITELIB}/allmydata/test/cli/test_admin.py
${PYSITELIB}/allmydata/test/cli/test_admin.pyc
${PYSITELIB}/allmydata/test/cli/test_admin.pyo
${PYSITELIB}/allmydata/test/cli/test_alias.py
${PYSITELIB}/allmydata/test/cli/test_alias.pyc
${PYSITELIB}/allmydata/test/cli/test_alias.pyo
${PYSITELIB}/allmydata/test/cli/test_backup.py
${PYSITELIB}/allmydata/test/cli/test_backup.pyc
${PYSITELIB}/allmydata/test/cli/test_backup.pyo
${PYSITELIB}/allmydata/test/cli/test_backupdb.py
${PYSITELIB}/allmydata/test/cli/test_backupdb.pyc
${PYSITELIB}/allmydata/test/cli/test_backupdb.pyo
${PYSITELIB}/allmydata/test/cli/test_check.py
${PYSITELIB}/allmydata/test/cli/test_check.pyc
${PYSITELIB}/allmydata/test/cli/test_check.pyo
${PYSITELIB}/allmydata/test/cli/test_cli.py
${PYSITELIB}/allmydata/test/cli/test_cli.pyc
${PYSITELIB}/allmydata/test/cli/test_cli.pyo
${PYSITELIB}/allmydata/test/cli/test_cp.py
${PYSITELIB}/allmydata/test/cli/test_cp.pyc
${PYSITELIB}/allmydata/test/cli/test_cp.pyo
${PYSITELIB}/allmydata/test/cli/test_create.py
${PYSITELIB}/allmydata/test/cli/test_create.pyc
${PYSITELIB}/allmydata/test/cli/test_create.pyo
${PYSITELIB}/allmydata/test/cli/test_create_alias.py
${PYSITELIB}/allmydata/test/cli/test_create_alias.pyc
${PYSITELIB}/allmydata/test/cli/test_create_alias.pyo
${PYSITELIB}/allmydata/test/cli/test_grid_manager.py
${PYSITELIB}/allmydata/test/cli/test_grid_manager.pyc
${PYSITELIB}/allmydata/test/cli/test_grid_manager.pyo
${PYSITELIB}/allmydata/test/cli/test_invite.py
${PYSITELIB}/allmydata/test/cli/test_invite.pyc
${PYSITELIB}/allmydata/test/cli/test_invite.pyo
${PYSITELIB}/allmydata/test/cli/test_list.py
${PYSITELIB}/allmydata/test/cli/test_list.pyc
${PYSITELIB}/allmydata/test/cli/test_list.pyo
${PYSITELIB}/allmydata/test/cli/test_mv.py
${PYSITELIB}/allmydata/test/cli/test_mv.pyc
${PYSITELIB}/allmydata/test/cli/test_mv.pyo
${PYSITELIB}/allmydata/test/cli/test_put.py
${PYSITELIB}/allmydata/test/cli/test_put.pyc
${PYSITELIB}/allmydata/test/cli/test_put.pyo
${PYSITELIB}/allmydata/test/cli/test_run.py
${PYSITELIB}/allmydata/test/cli/test_run.pyc
${PYSITELIB}/allmydata/test/cli/test_run.pyo
${PYSITELIB}/allmydata/test/cli/test_status.py
${PYSITELIB}/allmydata/test/cli/test_status.pyc
${PYSITELIB}/allmydata/test/cli/test_status.pyo
${PYSITELIB}/allmydata/test/cli/wormholetesting.py
${PYSITELIB}/allmydata/test/cli/wormholetesting.pyc
${PYSITELIB}/allmydata/test/cli/wormholetesting.pyo
${PYSITELIB}/allmydata/test/cli_node_api.py
${PYSITELIB}/allmydata/test/cli_node_api.pyc
${PYSITELIB}/allmydata/test/cli_node_api.pyo
${PYSITELIB}/allmydata/test/common.py
${PYSITELIB}/allmydata/test/common.pyc
${PYSITELIB}/allmydata/test/common.pyo
${PYSITELIB}/allmydata/test/common_storage.py
${PYSITELIB}/allmydata/test/common_storage.pyc
${PYSITELIB}/allmydata/test/common_storage.pyo
${PYSITELIB}/allmydata/test/common_system.py
${PYSITELIB}/allmydata/test/common_system.pyc
${PYSITELIB}/allmydata/test/common_system.pyo
${PYSITELIB}/allmydata/test/common_util.py
${PYSITELIB}/allmydata/test/common_util.pyc
${PYSITELIB}/allmydata/test/common_util.pyo
${PYSITELIB}/allmydata/test/common_web.py
${PYSITELIB}/allmydata/test/common_web.pyc
${PYSITELIB}/allmydata/test/common_web.pyo
${PYSITELIB}/allmydata/test/data/lease_checker.history.txt
${PYSITELIB}/allmydata/test/data/lease_checker.state.txt
${PYSITELIB}/allmydata/test/data/openssh-rsa-2048.pub.txt
${PYSITELIB}/allmydata/test/data/openssh-rsa-2048.txt
${PYSITELIB}/allmydata/test/data/openssl-rsa-2048-2.txt
${PYSITELIB}/allmydata/test/data/openssl-rsa-2048-3.txt
${PYSITELIB}/allmydata/test/data/openssl-rsa-2048-4.txt
${PYSITELIB}/allmydata/test/data/openssl-rsa-2048.txt
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-1024-priv.txt
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-2048-priv.txt
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-2048-pub.txt
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-2048-sig.txt
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-32768-priv.txt
${PYSITELIB}/allmydata/test/data/spki-hash-test-vectors.yaml
${PYSITELIB}/allmydata/test/eliotutil.py
${PYSITELIB}/allmydata/test/eliotutil.pyc
${PYSITELIB}/allmydata/test/eliotutil.pyo
${PYSITELIB}/allmydata/test/matchers.py
${PYSITELIB}/allmydata/test/matchers.pyc
${PYSITELIB}/allmydata/test/matchers.pyo
${PYSITELIB}/allmydata/test/mutable/__init__.py
${PYSITELIB}/allmydata/test/mutable/__init__.pyc
${PYSITELIB}/allmydata/test/mutable/__init__.pyo
${PYSITELIB}/allmydata/test/mutable/test_checker.py
${PYSITELIB}/allmydata/test/mutable/test_checker.pyc
${PYSITELIB}/allmydata/test/mutable/test_checker.pyo
${PYSITELIB}/allmydata/test/mutable/test_datahandle.py
${PYSITELIB}/allmydata/test/mutable/test_datahandle.pyc
${PYSITELIB}/allmydata/test/mutable/test_datahandle.pyo
${PYSITELIB}/allmydata/test/mutable/test_different_encoding.py
${PYSITELIB}/allmydata/test/mutable/test_different_encoding.pyc
${PYSITELIB}/allmydata/test/mutable/test_different_encoding.pyo
${PYSITELIB}/allmydata/test/mutable/test_exceptions.py
${PYSITELIB}/allmydata/test/mutable/test_exceptions.pyc
${PYSITELIB}/allmydata/test/mutable/test_exceptions.pyo
${PYSITELIB}/allmydata/test/mutable/test_filehandle.py
${PYSITELIB}/allmydata/test/mutable/test_filehandle.pyc
${PYSITELIB}/allmydata/test/mutable/test_filehandle.pyo
${PYSITELIB}/allmydata/test/mutable/test_filenode.py
${PYSITELIB}/allmydata/test/mutable/test_filenode.pyc
${PYSITELIB}/allmydata/test/mutable/test_filenode.pyo
${PYSITELIB}/allmydata/test/mutable/test_interoperability.py
${PYSITELIB}/allmydata/test/mutable/test_interoperability.pyc
${PYSITELIB}/allmydata/test/mutable/test_interoperability.pyo
${PYSITELIB}/allmydata/test/mutable/test_multiple_encodings.py
${PYSITELIB}/allmydata/test/mutable/test_multiple_encodings.pyc
${PYSITELIB}/allmydata/test/mutable/test_multiple_encodings.pyo
${PYSITELIB}/allmydata/test/mutable/test_multiple_versions.py
${PYSITELIB}/allmydata/test/mutable/test_multiple_versions.pyc
${PYSITELIB}/allmydata/test/mutable/test_multiple_versions.pyo
${PYSITELIB}/allmydata/test/mutable/test_problems.py
${PYSITELIB}/allmydata/test/mutable/test_problems.pyc
${PYSITELIB}/allmydata/test/mutable/test_problems.pyo
${PYSITELIB}/allmydata/test/mutable/test_repair.py
${PYSITELIB}/allmydata/test/mutable/test_repair.pyc
${PYSITELIB}/allmydata/test/mutable/test_repair.pyo
${PYSITELIB}/allmydata/test/mutable/test_roundtrip.py
${PYSITELIB}/allmydata/test/mutable/test_roundtrip.pyc
${PYSITELIB}/allmydata/test/mutable/test_roundtrip.pyo
${PYSITELIB}/allmydata/test/mutable/test_servermap.py
${PYSITELIB}/allmydata/test/mutable/test_servermap.pyc
${PYSITELIB}/allmydata/test/mutable/test_servermap.pyo
${PYSITELIB}/allmydata/test/mutable/test_update.py
${PYSITELIB}/allmydata/test/mutable/test_update.pyc
${PYSITELIB}/allmydata/test/mutable/test_update.pyo
${PYSITELIB}/allmydata/test/mutable/test_version.py
${PYSITELIB}/allmydata/test/mutable/test_version.pyc
${PYSITELIB}/allmydata/test/mutable/test_version.pyo
${PYSITELIB}/allmydata/test/mutable/util.py
${PYSITELIB}/allmydata/test/mutable/util.pyc
${PYSITELIB}/allmydata/test/mutable/util.pyo
${PYSITELIB}/allmydata/test/no_network.py
${PYSITELIB}/allmydata/test/no_network.pyc
${PYSITELIB}/allmydata/test/no_network.pyo
${PYSITELIB}/allmydata/test/plugins/tahoe_lafs_dropin.py
${PYSITELIB}/allmydata/test/plugins/tahoe_lafs_dropin.pyc
${PYSITELIB}/allmydata/test/plugins/tahoe_lafs_dropin.pyo
${PYSITELIB}/allmydata/test/storage_plugin.py
${PYSITELIB}/allmydata/test/storage_plugin.pyc
${PYSITELIB}/allmydata/test/storage_plugin.pyo
${PYSITELIB}/allmydata/test/strategies.py
${PYSITELIB}/allmydata/test/strategies.pyc
${PYSITELIB}/allmydata/test/strategies.pyo
${PYSITELIB}/allmydata/test/test_abbreviate.py
${PYSITELIB}/allmydata/test/test_abbreviate.pyc
${PYSITELIB}/allmydata/test/test_abbreviate.pyo
${PYSITELIB}/allmydata/test/test_auth.py
${PYSITELIB}/allmydata/test/test_auth.pyc
${PYSITELIB}/allmydata/test/test_auth.pyo
${PYSITELIB}/allmydata/test/test_base32.py
${PYSITELIB}/allmydata/test/test_base32.pyc
${PYSITELIB}/allmydata/test/test_base32.pyo
${PYSITELIB}/allmydata/test/test_base62.py
${PYSITELIB}/allmydata/test/test_base62.pyc
${PYSITELIB}/allmydata/test/test_base62.pyo
${PYSITELIB}/allmydata/test/test_checker.py
${PYSITELIB}/allmydata/test/test_checker.pyc
${PYSITELIB}/allmydata/test/test_checker.pyo
${PYSITELIB}/allmydata/test/test_client.py
${PYSITELIB}/allmydata/test/test_client.pyc
${PYSITELIB}/allmydata/test/test_client.pyo
${PYSITELIB}/allmydata/test/test_codec.py
${PYSITELIB}/allmydata/test/test_codec.pyc
${PYSITELIB}/allmydata/test/test_codec.pyo
${PYSITELIB}/allmydata/test/test_common_util.py
${PYSITELIB}/allmydata/test/test_common_util.pyc
${PYSITELIB}/allmydata/test/test_common_util.pyo
${PYSITELIB}/allmydata/test/test_configutil.py
${PYSITELIB}/allmydata/test/test_configutil.pyc
${PYSITELIB}/allmydata/test/test_configutil.pyo
${PYSITELIB}/allmydata/test/test_connection_status.py
${PYSITELIB}/allmydata/test/test_connection_status.pyc
${PYSITELIB}/allmydata/test/test_connection_status.pyo
${PYSITELIB}/allmydata/test/test_connections.py
${PYSITELIB}/allmydata/test/test_connections.pyc
${PYSITELIB}/allmydata/test/test_connections.pyo
${PYSITELIB}/allmydata/test/test_consumer.py
${PYSITELIB}/allmydata/test/test_consumer.pyc
${PYSITELIB}/allmydata/test/test_consumer.pyo
${PYSITELIB}/allmydata/test/test_crawler.py
${PYSITELIB}/allmydata/test/test_crawler.pyc
${PYSITELIB}/allmydata/test/test_crawler.pyo
${PYSITELIB}/allmydata/test/test_crypto.py
${PYSITELIB}/allmydata/test/test_crypto.pyc
${PYSITELIB}/allmydata/test/test_crypto.pyo
${PYSITELIB}/allmydata/test/test_deepcheck.py
${PYSITELIB}/allmydata/test/test_deepcheck.pyc
${PYSITELIB}/allmydata/test/test_deepcheck.pyo
${PYSITELIB}/allmydata/test/test_deferredutil.py
${PYSITELIB}/allmydata/test/test_deferredutil.pyc
${PYSITELIB}/allmydata/test/test_deferredutil.pyo
${PYSITELIB}/allmydata/test/test_dictutil.py
${PYSITELIB}/allmydata/test/test_dictutil.pyc
${PYSITELIB}/allmydata/test/test_dictutil.pyo
${PYSITELIB}/allmydata/test/test_dirnode.py
${PYSITELIB}/allmydata/test/test_dirnode.pyc
${PYSITELIB}/allmydata/test/test_dirnode.pyo
${PYSITELIB}/allmydata/test/test_download.py
${PYSITELIB}/allmydata/test/test_download.pyc
${PYSITELIB}/allmydata/test/test_download.pyo
${PYSITELIB}/allmydata/test/test_eliotutil.py
${PYSITELIB}/allmydata/test/test_eliotutil.pyc
${PYSITELIB}/allmydata/test/test_eliotutil.pyo
${PYSITELIB}/allmydata/test/test_encode.py
${PYSITELIB}/allmydata/test/test_encode.pyc
${PYSITELIB}/allmydata/test/test_encode.pyo
${PYSITELIB}/allmydata/test/test_encodingutil.py
${PYSITELIB}/allmydata/test/test_encodingutil.pyc
${PYSITELIB}/allmydata/test/test_encodingutil.pyo
${PYSITELIB}/allmydata/test/test_filenode.py
${PYSITELIB}/allmydata/test/test_filenode.pyc
${PYSITELIB}/allmydata/test/test_filenode.pyo
${PYSITELIB}/allmydata/test/test_grid_manager.py
${PYSITELIB}/allmydata/test/test_grid_manager.pyc
${PYSITELIB}/allmydata/test/test_grid_manager.pyo
${PYSITELIB}/allmydata/test/test_happiness.py
${PYSITELIB}/allmydata/test/test_happiness.pyc
${PYSITELIB}/allmydata/test/test_happiness.pyo
${PYSITELIB}/allmydata/test/test_hashtree.py
${PYSITELIB}/allmydata/test/test_hashtree.pyc
${PYSITELIB}/allmydata/test/test_hashtree.pyo
${PYSITELIB}/allmydata/test/test_hashutil.py
${PYSITELIB}/allmydata/test/test_hashutil.pyc
${PYSITELIB}/allmydata/test/test_hashutil.pyo
${PYSITELIB}/allmydata/test/test_helper.py
${PYSITELIB}/allmydata/test/test_helper.pyc
${PYSITELIB}/allmydata/test/test_helper.pyo
${PYSITELIB}/allmydata/test/test_humanreadable.py
${PYSITELIB}/allmydata/test/test_humanreadable.pyc
${PYSITELIB}/allmydata/test/test_humanreadable.pyo
${PYSITELIB}/allmydata/test/test_hung_server.py
${PYSITELIB}/allmydata/test/test_hung_server.pyc
${PYSITELIB}/allmydata/test/test_hung_server.pyo
${PYSITELIB}/allmydata/test/test_i2p_provider.py
${PYSITELIB}/allmydata/test/test_i2p_provider.pyc
${PYSITELIB}/allmydata/test/test_i2p_provider.pyo
${PYSITELIB}/allmydata/test/test_immutable.py
${PYSITELIB}/allmydata/test/test_immutable.pyc
${PYSITELIB}/allmydata/test/test_immutable.pyo
${PYSITELIB}/allmydata/test/test_introducer.py
${PYSITELIB}/allmydata/test/test_introducer.pyc
${PYSITELIB}/allmydata/test/test_introducer.pyo
${PYSITELIB}/allmydata/test/test_iputil.py
${PYSITELIB}/allmydata/test/test_iputil.pyc
${PYSITELIB}/allmydata/test/test_iputil.pyo
${PYSITELIB}/allmydata/test/test_istorageserver.py
${PYSITELIB}/allmydata/test/test_istorageserver.pyc
${PYSITELIB}/allmydata/test/test_istorageserver.pyo
${PYSITELIB}/allmydata/test/test_json_metadata.py
${PYSITELIB}/allmydata/test/test_json_metadata.pyc
${PYSITELIB}/allmydata/test/test_json_metadata.pyo
${PYSITELIB}/allmydata/test/test_log.py
${PYSITELIB}/allmydata/test/test_log.pyc
${PYSITELIB}/allmydata/test/test_log.pyo
${PYSITELIB}/allmydata/test/test_monitor.py
${PYSITELIB}/allmydata/test/test_monitor.pyc
${PYSITELIB}/allmydata/test/test_monitor.pyo
${PYSITELIB}/allmydata/test/test_multi_introducers.py
${PYSITELIB}/allmydata/test/test_multi_introducers.pyc
${PYSITELIB}/allmydata/test/test_multi_introducers.pyo
${PYSITELIB}/allmydata/test/test_netstring.py
${PYSITELIB}/allmydata/test/test_netstring.pyc
${PYSITELIB}/allmydata/test/test_netstring.pyo
${PYSITELIB}/allmydata/test/test_no_network.py
${PYSITELIB}/allmydata/test/test_no_network.pyc
${PYSITELIB}/allmydata/test/test_no_network.pyo
${PYSITELIB}/allmydata/test/test_node.py
${PYSITELIB}/allmydata/test/test_node.pyc
${PYSITELIB}/allmydata/test/test_node.pyo
${PYSITELIB}/allmydata/test/test_observer.py
${PYSITELIB}/allmydata/test/test_observer.pyc
${PYSITELIB}/allmydata/test/test_observer.pyo
${PYSITELIB}/allmydata/test/test_openmetrics.py
${PYSITELIB}/allmydata/test/test_openmetrics.pyc
${PYSITELIB}/allmydata/test/test_openmetrics.pyo
${PYSITELIB}/allmydata/test/test_protocol_switch.py
${PYSITELIB}/allmydata/test/test_protocol_switch.pyc
${PYSITELIB}/allmydata/test/test_protocol_switch.pyo
${PYSITELIB}/allmydata/test/test_repairer.py
${PYSITELIB}/allmydata/test/test_repairer.pyc
${PYSITELIB}/allmydata/test/test_repairer.pyo
${PYSITELIB}/allmydata/test/test_runner.py
${PYSITELIB}/allmydata/test/test_runner.pyc
${PYSITELIB}/allmydata/test/test_runner.pyo
${PYSITELIB}/allmydata/test/test_sftp.py
${PYSITELIB}/allmydata/test/test_sftp.pyc
${PYSITELIB}/allmydata/test/test_sftp.pyo
${PYSITELIB}/allmydata/test/test_spans.py
${PYSITELIB}/allmydata/test/test_spans.pyc
${PYSITELIB}/allmydata/test/test_spans.pyo
${PYSITELIB}/allmydata/test/test_statistics.py
${PYSITELIB}/allmydata/test/test_statistics.pyc
${PYSITELIB}/allmydata/test/test_statistics.pyo
${PYSITELIB}/allmydata/test/test_stats.py
${PYSITELIB}/allmydata/test/test_stats.pyc
${PYSITELIB}/allmydata/test/test_stats.pyo
${PYSITELIB}/allmydata/test/test_storage.py
${PYSITELIB}/allmydata/test/test_storage.pyc
${PYSITELIB}/allmydata/test/test_storage.pyo
${PYSITELIB}/allmydata/test/test_storage_client.py
${PYSITELIB}/allmydata/test/test_storage_client.pyc
${PYSITELIB}/allmydata/test/test_storage_client.pyo
${PYSITELIB}/allmydata/test/test_storage_http.py
${PYSITELIB}/allmydata/test/test_storage_http.pyc
${PYSITELIB}/allmydata/test/test_storage_http.pyo
${PYSITELIB}/allmydata/test/test_storage_https.py
${PYSITELIB}/allmydata/test/test_storage_https.pyc
${PYSITELIB}/allmydata/test/test_storage_https.pyo
${PYSITELIB}/allmydata/test/test_storage_web.py
${PYSITELIB}/allmydata/test/test_storage_web.pyc
${PYSITELIB}/allmydata/test/test_storage_web.pyo
${PYSITELIB}/allmydata/test/test_system.py
${PYSITELIB}/allmydata/test/test_system.pyc
${PYSITELIB}/allmydata/test/test_system.pyo
${PYSITELIB}/allmydata/test/test_testing.py
${PYSITELIB}/allmydata/test/test_testing.pyc
${PYSITELIB}/allmydata/test/test_testing.pyo
${PYSITELIB}/allmydata/test/test_time_format.py
${PYSITELIB}/allmydata/test/test_time_format.pyc
${PYSITELIB}/allmydata/test/test_time_format.pyo
${PYSITELIB}/allmydata/test/test_tor_provider.py
${PYSITELIB}/allmydata/test/test_tor_provider.pyc
${PYSITELIB}/allmydata/test/test_tor_provider.pyo
${PYSITELIB}/allmydata/test/test_upload.py
${PYSITELIB}/allmydata/test/test_upload.pyc
${PYSITELIB}/allmydata/test/test_upload.pyo
${PYSITELIB}/allmydata/test/test_uri.py
${PYSITELIB}/allmydata/test/test_uri.pyc
${PYSITELIB}/allmydata/test/test_uri.pyo
${PYSITELIB}/allmydata/test/test_util.py
${PYSITELIB}/allmydata/test/test_util.pyc
${PYSITELIB}/allmydata/test/test_util.pyo
${PYSITELIB}/allmydata/test/web/__init__.py
${PYSITELIB}/allmydata/test/web/__init__.pyc
${PYSITELIB}/allmydata/test/web/__init__.pyo
${PYSITELIB}/allmydata/test/web/common.py
${PYSITELIB}/allmydata/test/web/common.pyc
${PYSITELIB}/allmydata/test/web/common.pyo
${PYSITELIB}/allmydata/test/web/matchers.py
${PYSITELIB}/allmydata/test/web/matchers.pyc
${PYSITELIB}/allmydata/test/web/matchers.pyo
${PYSITELIB}/allmydata/test/web/test_common.py
${PYSITELIB}/allmydata/test/web/test_common.pyc
${PYSITELIB}/allmydata/test/web/test_common.pyo
${PYSITELIB}/allmydata/test/web/test_grid.py
${PYSITELIB}/allmydata/test/web/test_grid.pyc
${PYSITELIB}/allmydata/test/web/test_grid.pyo
${PYSITELIB}/allmydata/test/web/test_introducer.py
${PYSITELIB}/allmydata/test/web/test_introducer.pyc
${PYSITELIB}/allmydata/test/web/test_introducer.pyo
${PYSITELIB}/allmydata/test/web/test_logs.py
${PYSITELIB}/allmydata/test/web/test_logs.pyc
${PYSITELIB}/allmydata/test/web/test_logs.pyo
${PYSITELIB}/allmydata/test/web/test_private.py
${PYSITELIB}/allmydata/test/web/test_private.pyc
${PYSITELIB}/allmydata/test/web/test_private.pyo
${PYSITELIB}/allmydata/test/web/test_root.py
${PYSITELIB}/allmydata/test/web/test_root.pyc
${PYSITELIB}/allmydata/test/web/test_root.pyo
${PYSITELIB}/allmydata/test/web/test_status.py
${PYSITELIB}/allmydata/test/web/test_status.pyc
${PYSITELIB}/allmydata/test/web/test_status.pyo
${PYSITELIB}/allmydata/test/web/test_util.py
${PYSITELIB}/allmydata/test/web/test_util.pyc
${PYSITELIB}/allmydata/test/web/test_util.pyo
${PYSITELIB}/allmydata/test/web/test_web.py
${PYSITELIB}/allmydata/test/web/test_web.pyc
${PYSITELIB}/allmydata/test/web/test_web.pyo
${PYSITELIB}/allmydata/test/web/test_webish.py
${PYSITELIB}/allmydata/test/web/test_webish.pyc
${PYSITELIB}/allmydata/test/web/test_webish.pyo
${PYSITELIB}/allmydata/testing/__init__.py
${PYSITELIB}/allmydata/testing/__init__.pyc
${PYSITELIB}/allmydata/testing/__init__.pyo
${PYSITELIB}/allmydata/testing/web.py
${PYSITELIB}/allmydata/testing/web.pyc
${PYSITELIB}/allmydata/testing/web.pyo
${PYSITELIB}/allmydata/unknown.py
${PYSITELIB}/allmydata/unknown.pyc
${PYSITELIB}/allmydata/unknown.pyo
${PYSITELIB}/allmydata/uri.py
${PYSITELIB}/allmydata/uri.pyc
${PYSITELIB}/allmydata/uri.pyo
${PYSITELIB}/allmydata/util/__init__.py
${PYSITELIB}/allmydata/util/__init__.pyc
${PYSITELIB}/allmydata/util/__init__.pyo
${PYSITELIB}/allmydata/util/abbreviate.py
${PYSITELIB}/allmydata/util/abbreviate.pyc
${PYSITELIB}/allmydata/util/abbreviate.pyo
${PYSITELIB}/allmydata/util/assertutil.py
${PYSITELIB}/allmydata/util/assertutil.pyc
${PYSITELIB}/allmydata/util/assertutil.pyo
${PYSITELIB}/allmydata/util/attrs_provides.py
${PYSITELIB}/allmydata/util/attrs_provides.pyc
${PYSITELIB}/allmydata/util/attrs_provides.pyo
${PYSITELIB}/allmydata/util/base32.py
${PYSITELIB}/allmydata/util/base32.pyc
${PYSITELIB}/allmydata/util/base32.pyo
${PYSITELIB}/allmydata/util/base62.py
${PYSITELIB}/allmydata/util/base62.pyc
${PYSITELIB}/allmydata/util/base62.pyo
${PYSITELIB}/allmydata/util/cbor.py
${PYSITELIB}/allmydata/util/cbor.pyc
${PYSITELIB}/allmydata/util/cbor.pyo
${PYSITELIB}/allmydata/util/configutil.py
${PYSITELIB}/allmydata/util/configutil.pyc
${PYSITELIB}/allmydata/util/configutil.pyo
${PYSITELIB}/allmydata/util/connection_status.py
${PYSITELIB}/allmydata/util/connection_status.pyc
${PYSITELIB}/allmydata/util/connection_status.pyo
${PYSITELIB}/allmydata/util/consumer.py
${PYSITELIB}/allmydata/util/consumer.pyc
${PYSITELIB}/allmydata/util/consumer.pyo
${PYSITELIB}/allmydata/util/cputhreadpool.py
${PYSITELIB}/allmydata/util/cputhreadpool.pyc
${PYSITELIB}/allmydata/util/cputhreadpool.pyo
${PYSITELIB}/allmydata/util/dbutil.py
${PYSITELIB}/allmydata/util/dbutil.pyc
${PYSITELIB}/allmydata/util/dbutil.pyo
${PYSITELIB}/allmydata/util/deferredutil.py
${PYSITELIB}/allmydata/util/deferredutil.pyc
${PYSITELIB}/allmydata/util/deferredutil.pyo
${PYSITELIB}/allmydata/util/dictutil.py
${PYSITELIB}/allmydata/util/dictutil.pyc
${PYSITELIB}/allmydata/util/dictutil.pyo
${PYSITELIB}/allmydata/util/eliotutil.py
${PYSITELIB}/allmydata/util/eliotutil.pyc
${PYSITELIB}/allmydata/util/eliotutil.pyo
${PYSITELIB}/allmydata/util/encodingutil.py
${PYSITELIB}/allmydata/util/encodingutil.pyc
${PYSITELIB}/allmydata/util/encodingutil.pyo
${PYSITELIB}/allmydata/util/fileutil.py
${PYSITELIB}/allmydata/util/fileutil.pyc
${PYSITELIB}/allmydata/util/fileutil.pyo
${PYSITELIB}/allmydata/util/gcutil.py
${PYSITELIB}/allmydata/util/gcutil.pyc
${PYSITELIB}/allmydata/util/gcutil.pyo
${PYSITELIB}/allmydata/util/happinessutil.py
${PYSITELIB}/allmydata/util/happinessutil.pyc
${PYSITELIB}/allmydata/util/happinessutil.pyo
${PYSITELIB}/allmydata/util/hashutil.py
${PYSITELIB}/allmydata/util/hashutil.pyc
${PYSITELIB}/allmydata/util/hashutil.pyo
${PYSITELIB}/allmydata/util/humanreadable.py
${PYSITELIB}/allmydata/util/humanreadable.pyc
${PYSITELIB}/allmydata/util/humanreadable.pyo
${PYSITELIB}/allmydata/util/i2p_provider.py
${PYSITELIB}/allmydata/util/i2p_provider.pyc
${PYSITELIB}/allmydata/util/i2p_provider.pyo
${PYSITELIB}/allmydata/util/idlib.py
${PYSITELIB}/allmydata/util/idlib.pyc
${PYSITELIB}/allmydata/util/idlib.pyo
${PYSITELIB}/allmydata/util/iputil.py
${PYSITELIB}/allmydata/util/iputil.pyc
${PYSITELIB}/allmydata/util/iputil.pyo
${PYSITELIB}/allmydata/util/jsonbytes.py
${PYSITELIB}/allmydata/util/jsonbytes.pyc
${PYSITELIB}/allmydata/util/jsonbytes.pyo
${PYSITELIB}/allmydata/util/log.py
${PYSITELIB}/allmydata/util/log.pyc
${PYSITELIB}/allmydata/util/log.pyo
${PYSITELIB}/allmydata/util/mathutil.py
${PYSITELIB}/allmydata/util/mathutil.pyc
${PYSITELIB}/allmydata/util/mathutil.pyo
${PYSITELIB}/allmydata/util/namespace.py
${PYSITELIB}/allmydata/util/namespace.pyc
${PYSITELIB}/allmydata/util/namespace.pyo
${PYSITELIB}/allmydata/util/netstring.py
${PYSITELIB}/allmydata/util/netstring.pyc
${PYSITELIB}/allmydata/util/netstring.pyo
${PYSITELIB}/allmydata/util/observer.py
${PYSITELIB}/allmydata/util/observer.pyc
${PYSITELIB}/allmydata/util/observer.pyo
${PYSITELIB}/allmydata/util/pid.py
${PYSITELIB}/allmydata/util/pid.pyc
${PYSITELIB}/allmydata/util/pid.pyo
${PYSITELIB}/allmydata/util/pollmixin.py
${PYSITELIB}/allmydata/util/pollmixin.pyc
${PYSITELIB}/allmydata/util/pollmixin.pyo
${PYSITELIB}/allmydata/util/rrefutil.py
${PYSITELIB}/allmydata/util/rrefutil.pyc
${PYSITELIB}/allmydata/util/rrefutil.pyo
${PYSITELIB}/allmydata/util/spans.py
${PYSITELIB}/allmydata/util/spans.pyc
${PYSITELIB}/allmydata/util/spans.pyo
${PYSITELIB}/allmydata/util/statistics.py
${PYSITELIB}/allmydata/util/statistics.pyc
${PYSITELIB}/allmydata/util/statistics.pyo
${PYSITELIB}/allmydata/util/time_format.py
${PYSITELIB}/allmydata/util/time_format.pyc
${PYSITELIB}/allmydata/util/time_format.pyo
${PYSITELIB}/allmydata/util/tor_provider.py
${PYSITELIB}/allmydata/util/tor_provider.pyc
${PYSITELIB}/allmydata/util/tor_provider.pyo
${PYSITELIB}/allmydata/util/yamlutil.py
${PYSITELIB}/allmydata/util/yamlutil.pyc
${PYSITELIB}/allmydata/util/yamlutil.pyo
${PYSITELIB}/allmydata/web/__init__.py
${PYSITELIB}/allmydata/web/__init__.pyc
${PYSITELIB}/allmydata/web/__init__.pyo
${PYSITELIB}/allmydata/web/check-and-repair-results.xhtml
${PYSITELIB}/allmydata/web/check-results.xhtml
${PYSITELIB}/allmydata/web/check_results.py
${PYSITELIB}/allmydata/web/check_results.pyc
${PYSITELIB}/allmydata/web/check_results.pyo
${PYSITELIB}/allmydata/web/common.py
${PYSITELIB}/allmydata/web/common.pyc
${PYSITELIB}/allmydata/web/common.pyo
${PYSITELIB}/allmydata/web/deep-check-and-repair-results.xhtml
${PYSITELIB}/allmydata/web/deep-check-results.xhtml
${PYSITELIB}/allmydata/web/directory.py
${PYSITELIB}/allmydata/web/directory.pyc
${PYSITELIB}/allmydata/web/directory.pyo
${PYSITELIB}/allmydata/web/directory.xhtml
${PYSITELIB}/allmydata/web/download-status.xhtml
${PYSITELIB}/allmydata/web/filenode.py
${PYSITELIB}/allmydata/web/filenode.pyc
${PYSITELIB}/allmydata/web/filenode.pyo
${PYSITELIB}/allmydata/web/helper.xhtml
${PYSITELIB}/allmydata/web/info.py
${PYSITELIB}/allmydata/web/info.pyc
${PYSITELIB}/allmydata/web/info.pyo
${PYSITELIB}/allmydata/web/info.xhtml
${PYSITELIB}/allmydata/web/introducer.xhtml
${PYSITELIB}/allmydata/web/introweb.py
${PYSITELIB}/allmydata/web/introweb.pyc
${PYSITELIB}/allmydata/web/introweb.pyo
${PYSITELIB}/allmydata/web/literal-check-results.xhtml
${PYSITELIB}/allmydata/web/logs.py
${PYSITELIB}/allmydata/web/logs.pyc
${PYSITELIB}/allmydata/web/logs.pyo
${PYSITELIB}/allmydata/web/manifest.xhtml
${PYSITELIB}/allmydata/web/map-update-status.xhtml
${PYSITELIB}/allmydata/web/operations.py
${PYSITELIB}/allmydata/web/operations.pyc
${PYSITELIB}/allmydata/web/operations.pyo
${PYSITELIB}/allmydata/web/private.py
${PYSITELIB}/allmydata/web/private.pyc
${PYSITELIB}/allmydata/web/private.pyo
${PYSITELIB}/allmydata/web/publish-status.xhtml
${PYSITELIB}/allmydata/web/rename-form.xhtml
${PYSITELIB}/allmydata/web/retrieve-status.xhtml
${PYSITELIB}/allmydata/web/root.py
${PYSITELIB}/allmydata/web/root.pyc
${PYSITELIB}/allmydata/web/root.pyo
${PYSITELIB}/allmydata/web/static/css/bootstrap.css
${PYSITELIB}/allmydata/web/static/css/new-tahoe.css
${PYSITELIB}/allmydata/web/static/icon.png
${PYSITELIB}/allmydata/web/static/img/connected-no.png
${PYSITELIB}/allmydata/web/static/img/connected-no.svg
${PYSITELIB}/allmydata/web/static/img/connected-not-configured.png
${PYSITELIB}/allmydata/web/static/img/connected-not-configured.svg
${PYSITELIB}/allmydata/web/static/img/connected-yes.png
${PYSITELIB}/allmydata/web/static/img/connected-yes.svg
${PYSITELIB}/allmydata/web/static/img/logo.png
${PYSITELIB}/allmydata/web/static/tahoe.css
${PYSITELIB}/allmydata/web/statistics.xhtml
${PYSITELIB}/allmydata/web/status.py
${PYSITELIB}/allmydata/web/status.pyc
${PYSITELIB}/allmydata/web/status.pyo
${PYSITELIB}/allmydata/web/status.xhtml
${PYSITELIB}/allmydata/web/storage.py
${PYSITELIB}/allmydata/web/storage.pyc
${PYSITELIB}/allmydata/web/storage.pyo
${PYSITELIB}/allmydata/web/storage_plugins.py
${PYSITELIB}/allmydata/web/storage_plugins.pyc
${PYSITELIB}/allmydata/web/storage_plugins.pyo
${PYSITELIB}/allmydata/web/storage_status.xhtml
${PYSITELIB}/allmydata/web/unlinked.py
${PYSITELIB}/allmydata/web/unlinked.pyc
${PYSITELIB}/allmydata/web/unlinked.pyo
${PYSITELIB}/allmydata/web/upload-results.xhtml
${PYSITELIB}/allmydata/web/upload-status.xhtml
${PYSITELIB}/allmydata/web/welcome.xhtml
${PYSITELIB}/allmydata/webish.py
${PYSITELIB}/allmydata/webish.pyc
${PYSITELIB}/allmydata/webish.pyo
${PYSITELIB}/allmydata/windows/__init__.py
${PYSITELIB}/allmydata/windows/__init__.pyc
${PYSITELIB}/allmydata/windows/__init__.pyo
${PYSITELIB}/allmydata/windows/fixups.py
${PYSITELIB}/allmydata/windows/fixups.pyc
${PYSITELIB}/allmydata/windows/fixups.pyo
${PYSITELIB}/allmydata/windows/registry.py
${PYSITELIB}/allmydata/windows/registry.pyc
${PYSITELIB}/allmydata/windows/registry.pyo
${PYSITELIB}/${WHEEL_INFODIR}/METADATA
${PYSITELIB}/${WHEEL_INFODIR}/RECORD
${PYSITELIB}/${WHEEL_INFODIR}/WHEEL
${PYSITELIB}/${WHEEL_INFODIR}/entry_points.txt
${PYSITELIB}/${WHEEL_INFODIR}/licenses/COPYING.GPL
${PYSITELIB}/${WHEEL_INFODIR}/licenses/COPYING.TGPPL.rst
@


1.16
log
@filesystems/tahoe-lafs: Update to 1.19.0

Note that tahoe fails because it has not adapted to API withdrawals in
py-attrs.  However 1.18.0 fails the same way, so having 1.19.0 almost
working seems better.  Reverting py-attrs to 2024Q2 should make tahoe
work.

Release 1.19.0 (2024-01-04)
===========================

Features
--------

- Tahoe-LAFS now includes a new "Grid Manager" specification and
  implementation adding more options to control which storage servers
  a client will use for uploads. (`#2916
  <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2916>`_)

- Added support for Python 3.12, and work with Eliot 1.15 (`#3072
  <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3072>`_)

- `tahoe run ...` will now exit when its stdin is closed.

  This facilitates subprocess management, specifically cleanup.  When
  a parent process is running tahoe and exits without time to do
  "proper" cleanup at least the stdin descriptor will be closed.
  Subsequently "tahoe run" notices this and exits. (`#3921
  <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3921>`_)

- Mutable objects can now be created with a pre-determined "signature
  key" using the ``tahoe put`` CLI or the HTTP API.  This enables
  deterministic creation of mutable capabilities.  This feature must
  be used with care to preserve the normal security and reliability
  properties. (`#3962
  <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3962>`_)

- Added support for Python 3.11. (`#3982
  <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3982>`_)

- tahoe run now accepts --allow-stdin-close to mean "keep running if stdin closes" (`#4036 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4036>`_)

- The storage server and client now support a new, HTTPS-based protocol. (`#4041 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4041>`_)

- Some operations now run in threads, improving the responsiveness of
  Tahoe nodes. (`#4068
  <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4068>`_)

- Logs are now written in a thread, which should make the application
  more responsive under load. (`#4804
  <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/4804>`_)
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.15 2022/10/03 16:40:21 gdt Exp $
d410 3
a623 3
${PYSITELIB}/allmydata/test/test_python2_regressions.py
${PYSITELIB}/allmydata/test/test_python2_regressions.pyc
${PYSITELIB}/allmydata/test/test_python2_regressions.pyo
d747 3
d932 6
a937 6
${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
${PYSITELIB}/${EGG_INFODIR}/requires.txt
${PYSITELIB}/${EGG_INFODIR}/top_level.txt
@


1.15
log
@filesystems/tahoe-lafs: Update to 1.18.0

packaging changes: Drop explanation about python 2.7 being supported
by upstream and $MAINTAINER not wanting to deal with dependencies.

Upstream NEWS:

Release 1.18.0 (2022-10-02)
'''''''''''''''''''''''''''

Backwards Incompatible Changes
------------------------------

- Python 3.6 is no longer supported, as it has reached end-of-life and is no longer receiving security updates. (`#3865 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3865>`_)
- Python 3.7 or later is now required; Python 2 is no longer supported. (`#3873 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3873>`_)
- Share corruption reports stored on disk are now always encoded in UTF-8. (`#3879 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3879>`_)
- Record both the PID and the process creation-time:

  a new kind of pidfile in `running.process` records both
  the PID and the creation-time of the process. This facilitates
  automatic discovery of a "stale" pidfile that points to a
  currently-running process. If the recorded creation-time matches
  the creation-time of the running process, then it is a still-running
  `tahoe run` process. Otherwise, the file is stale.

  The `twistd.pid` file is no longer present. (`#3926 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3926>`_)


Features
--------

- The implementation of SDMF and MDMF (mutables) now requires RSA keys to be exactly 2048 bits, aligning them with the specification.

  Some code existed to allow tests to shorten this and it's
  conceptually possible a modified client produced mutables
  with different key-sizes. However, the spec says that they
  must be 2048 bits. If you happen to have a capability with
  a key-size different from 2048 you may use 1.17.1 or earlier
  to read the content. (`#3828 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3828>`_)
- "make" based release automation (`#3846 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3846>`_)
@
text
@d1 2
a2 1
@@comment $NetBSD: PLIST,v 1.14 2022/06/15 22:31:44 gdt Exp $
a9 3
${PYSITELIB}/allmydata/_auto_deps.py
${PYSITELIB}/allmydata/_auto_deps.pyc
${PYSITELIB}/allmydata/_auto_deps.pyo
d22 6
d67 3
d148 3
d187 3
d325 3
a327 3
${PYSITELIB}/allmydata/test/_win_subprocess.py
${PYSITELIB}/allmydata/test/_win_subprocess.pyc
${PYSITELIB}/allmydata/test/_win_subprocess.pyo
d364 3
d410 1
d416 1
d555 3
d618 3
a620 3
${PYSITELIB}/allmydata/test/test_pipeline.py
${PYSITELIB}/allmydata/test/test_pipeline.pyc
${PYSITELIB}/allmydata/test/test_pipeline.pyo
a677 3
${PYSITELIB}/allmydata/test/test_windows.py
${PYSITELIB}/allmydata/test/test_windows.pyc
${PYSITELIB}/allmydata/test/test_windows.pyo
a731 3
${PYSITELIB}/allmydata/util/_eliot_updates.py
${PYSITELIB}/allmydata/util/_eliot_updates.pyc
${PYSITELIB}/allmydata/util/_eliot_updates.pyo
d738 3
d756 3
a818 3
${PYSITELIB}/allmydata/util/pipeline.py
${PYSITELIB}/allmydata/util/pipeline.pyc
${PYSITELIB}/allmydata/util/pipeline.pyo
@


1.14
log
@filesystems/tahoe-lafs: Update to 1.17.1

Upstream NEWS, omitting bugfixes and minor improvements:

Release 1.17.0 (2021-12-06)
'''''''''''''''''''''''''''

Security-related Changes
------------------------

- The introducer server no longer writes the sensitive introducer fURL value to its log at startup time.  Instead it writes the well-known path of the file from which this value can be read. (`#3819 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3819>`_)
- The storage protocol operation ``readv`` now safely rejects attempts to read negative lengths.
  Previously these read requests were satisfied with the complete contents of the share file (including trailing metadata) starting from the specified offset. (`#3822 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3822>`_)
- The storage server implementation no longer records corruption advisories about storage indexes for which it holds no shares. (`#3824 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3824>`_)
- The lease-checker now uses JSON instead of pickle to serialize its state.

  tahoe will now refuse to run until you either delete all pickle files or
  migrate them using the new command::

      tahoe admin migrate-crawler

  This will migrate all crawler-related pickle files. (`#3825 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3825>`_)
- The SFTP server no longer accepts password-based credentials for authentication.
  Public/private key-based credentials are now the only supported authentication type.
  This removes plaintext password storage from the SFTP credentials file.
  It also removes a possible timing side-channel vulnerability which might have allowed attackers to discover an account's plaintext password. (`#3827 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3827>`_)
- The storage server now keeps hashes of lease renew and cancel secrets for immutable share files instead of keeping the original secrets. (`#3839 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3839>`_)
- The storage server now keeps hashes of lease renew and cancel secrets for mutable share files instead of keeping the original secrets. (`#3841 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3841>`_)


Features
--------

- Tahoe-LAFS releases now have just a .tar.gz source release and a (universal) wheel (`#3735 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3735>`_)
- tahoe-lafs now provides its statistics also in OpenMetrics format (for Prometheus et. al.) at `/statistics?t=openmetrics`. (`#3786 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3786>`_)
- If uploading an immutable hasn't had a write for 30 minutes, the storage server will abort the upload. (`#3807 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3807>`_)

Removed Features
----------------

- The little-used "control port" has been removed from all node types. (`#3814 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3814>`_)
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.13 2021/10/21 12:16:25 gdt Exp $
d276 3
d315 3
d369 3
d394 1
d398 1
d630 3
d795 3
@


1.13
log
@filesystems/tahoe-lafs: Update to 1.16.0

Packaging changes:

  Mark as incompatible with python 2.7, compared to previous release
  which is 2.7 only.

  Rototill dependencies to align with setup.py, dropping several
  previous ones.

Upstream news:

  1.16.0:

    The major change in this release is the completion of the Python 3
    port -- while maintaining support for Python 2. A future release
    will remove Python 2 support.

    The previously deprecated subcommands "start", "stop", "restart"
    and "daemonize" have been removed. You must now use "tahoe run"
    (possibly along with your favourite daemonization software).

    Several features are now removed: the Account Server,
    stats-gatherer and FTP support.

  Previous to 1.16, but new to pkgsrc in this update:

    Magic Folder has been removed to a separate project.

    New command 'tahoe status'.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.11 2021/03/18 17:57:08 gdt Exp $
a29 3
${PYSITELIB}/allmydata/control.py
${PYSITELIB}/allmydata/control.pyc
${PYSITELIB}/allmydata/control.pyo
d273 6
d282 3
d288 3
d294 3
d318 3
d369 6
d381 2
d556 3
d583 3
d616 3
d700 3
@


1.12
log
@tahoe-lafs: Revert to status quo antedeletionbellum

The newer versions have a number of runtime dependencies (not checked
at build time, as seems to be the unfortunate custom) that aren't
currently in pkgsrc.  Given that this code is quite stable and likely
has users, it's better to stay how it was.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.9 2017/01/28 09:09:50 riastradh Exp $
d12 3
d33 18
a62 6
${PYSITELIB}/allmydata/frontends/ftpd.py
${PYSITELIB}/allmydata/frontends/ftpd.pyc
${PYSITELIB}/allmydata/frontends/ftpd.pyo
${PYSITELIB}/allmydata/frontends/magic_folder.py
${PYSITELIB}/allmydata/frontends/magic_folder.pyc
${PYSITELIB}/allmydata/frontends/magic_folder.pyo
d108 3
a143 6
${PYSITELIB}/allmydata/magicfolderdb.py
${PYSITELIB}/allmydata/magicfolderdb.pyc
${PYSITELIB}/allmydata/magicfolderdb.pyo
${PYSITELIB}/allmydata/magicpath.py
${PYSITELIB}/allmydata/magicpath.pyc
${PYSITELIB}/allmydata/magicpath.pyo
a206 3
${PYSITELIB}/allmydata/scripts/magic_folder_cli.py
${PYSITELIB}/allmydata/scripts/magic_folder_cli.pyc
${PYSITELIB}/allmydata/scripts/magic_folder_cli.pyo
a212 6
${PYSITELIB}/allmydata/scripts/startstop_node.py
${PYSITELIB}/allmydata/scripts/startstop_node.pyc
${PYSITELIB}/allmydata/scripts/startstop_node.pyo
${PYSITELIB}/allmydata/scripts/stats_gatherer.py
${PYSITELIB}/allmydata/scripts/stats_gatherer.pyc
${PYSITELIB}/allmydata/scripts/stats_gatherer.pyo
d228 3
d246 6
d258 3
d297 3
a299 15
${PYSITELIB}/allmydata/test/bench_dirnode.py
${PYSITELIB}/allmydata/test/bench_dirnode.pyc
${PYSITELIB}/allmydata/test/bench_dirnode.pyo
${PYSITELIB}/allmydata/test/check_grid.py
${PYSITELIB}/allmydata/test/check_grid.pyc
${PYSITELIB}/allmydata/test/check_grid.pyo
${PYSITELIB}/allmydata/test/check_load.py
${PYSITELIB}/allmydata/test/check_load.pyc
${PYSITELIB}/allmydata/test/check_load.pyo
${PYSITELIB}/allmydata/test/check_memory.py
${PYSITELIB}/allmydata/test/check_memory.pyc
${PYSITELIB}/allmydata/test/check_memory.pyo
${PYSITELIB}/allmydata/test/check_speed.py
${PYSITELIB}/allmydata/test/check_speed.pyc
${PYSITELIB}/allmydata/test/check_speed.pyo
d306 3
d312 3
d330 3
a335 3
${PYSITELIB}/allmydata/test/cli/test_magic_folder.py
${PYSITELIB}/allmydata/test/cli/test_magic_folder.pyc
${PYSITELIB}/allmydata/test/cli/test_magic_folder.pyo
d342 9
d360 11
d425 12
a436 3
${PYSITELIB}/allmydata/test/run_trial.py
${PYSITELIB}/allmydata/test/run_trial.pyc
${PYSITELIB}/allmydata/test/run_trial.pyo
d440 3
a442 3
${PYSITELIB}/allmydata/test/test_backupdb.py
${PYSITELIB}/allmydata/test/test_backupdb.pyc
${PYSITELIB}/allmydata/test/test_backupdb.pyo
d455 3
d461 3
d467 3
d473 3
d479 6
d491 3
d503 3
a505 3
${PYSITELIB}/allmydata/test/test_ftp.py
${PYSITELIB}/allmydata/test/test_ftp.pyc
${PYSITELIB}/allmydata/test/test_ftp.pyo
d509 3
d515 3
a526 3
${PYSITELIB}/allmydata/test/test_import.py
${PYSITELIB}/allmydata/test/test_import.pyc
${PYSITELIB}/allmydata/test/test_import.pyo
d536 6
a541 6
${PYSITELIB}/allmydata/test/test_magic_folder.py
${PYSITELIB}/allmydata/test/test_magic_folder.pyc
${PYSITELIB}/allmydata/test/test_magic_folder.pyo
${PYSITELIB}/allmydata/test/test_magicpath.py
${PYSITELIB}/allmydata/test/test_magicpath.pyc
${PYSITELIB}/allmydata/test/test_magicpath.pyo
d557 6
d572 6
d587 3
d593 6
d611 3
a613 3
${PYSITELIB}/allmydata/test/test_version.py
${PYSITELIB}/allmydata/test/test_version.pyc
${PYSITELIB}/allmydata/test/test_version.pyo
d620 6
d632 6
d641 3
a643 3
${PYSITELIB}/allmydata/test/web/test_token.py
${PYSITELIB}/allmydata/test/web/test_token.pyc
${PYSITELIB}/allmydata/test/web/test_token.pyo
d650 9
a679 3
${PYSITELIB}/allmydata/util/cachedir.py
${PYSITELIB}/allmydata/util/cachedir.pyc
${PYSITELIB}/allmydata/util/cachedir.pyo
d698 3
a703 3
${PYSITELIB}/allmydata/util/fake_inotify.py
${PYSITELIB}/allmydata/util/fake_inotify.pyc
${PYSITELIB}/allmydata/util/fake_inotify.pyo
d707 3
d728 3
a730 6
${PYSITELIB}/allmydata/util/keyutil.py
${PYSITELIB}/allmydata/util/keyutil.pyc
${PYSITELIB}/allmydata/util/keyutil.pyo
${PYSITELIB}/allmydata/util/limiter.py
${PYSITELIB}/allmydata/util/limiter.pyc
${PYSITELIB}/allmydata/util/limiter.pyo
a742 3
${PYSITELIB}/allmydata/util/nummedobj.py
${PYSITELIB}/allmydata/util/nummedobj.pyc
${PYSITELIB}/allmydata/util/nummedobj.pyo
a748 3
${PYSITELIB}/allmydata/util/pkgresutil.py
${PYSITELIB}/allmydata/util/pkgresutil.pyc
${PYSITELIB}/allmydata/util/pkgresutil.pyo
a751 6
${PYSITELIB}/allmydata/util/progress.py
${PYSITELIB}/allmydata/util/progress.pyc
${PYSITELIB}/allmydata/util/progress.pyo
${PYSITELIB}/allmydata/util/repeatable_random.py
${PYSITELIB}/allmydata/util/repeatable_random.pyc
${PYSITELIB}/allmydata/util/repeatable_random.pyo
a754 3
${PYSITELIB}/allmydata/util/sibpath.py
${PYSITELIB}/allmydata/util/sibpath.pyc
${PYSITELIB}/allmydata/util/sibpath.pyo
a766 3
${PYSITELIB}/allmydata/util/verlib.py
${PYSITELIB}/allmydata/util/verlib.pyc
${PYSITELIB}/allmydata/util/verlib.pyo
a786 1
${PYSITELIB}/allmydata/web/download-status-timeline.xhtml
d801 3
a803 3
${PYSITELIB}/allmydata/web/magic_folder.py
${PYSITELIB}/allmydata/web/magic_folder.pyc
${PYSITELIB}/allmydata/web/magic_folder.pyo
d809 3
a819 3
${PYSITELIB}/allmydata/web/static/d3-2.4.6.js
${PYSITELIB}/allmydata/web/static/d3-2.4.6.time.js
${PYSITELIB}/allmydata/web/static/download_status_timeline.js
d822 1
d824 1
d826 1
a827 1
${PYSITELIB}/allmydata/web/static/jquery-1.11.0.js
d837 3
a855 3
${PYSITELIB}/allmydata/windows/inotify.py
${PYSITELIB}/allmydata/windows/inotify.pyc
${PYSITELIB}/allmydata/windows/inotify.pyo
a858 3
${PYSITELIB}/allmydata/windows/tahoesvc.py
${PYSITELIB}/allmydata/windows/tahoesvc.pyc
${PYSITELIB}/allmydata/windows/tahoesvc.pyo
@


1.11
log
@tahoe-lafs: Update to 1.15.0

Release 1.15.0 (2020-10-13)
'''''''''''''''''''''''''''

Features
--------

- PyPy is now a supported platform. (`#1792 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1792>`_)
- allmydata.testing.web, a new module, now offers a supported Python API for testing Tahoe-LAFS web API clients. (`#3317 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3317>`_)


Dependency/Installation Changes
-------------------------------

- Tahoe-LAFS now supports CentOS 8 and no longer supports CentOS 7. (`#3296 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3296>`_)
- Tahoe-LAFS now supports Ubuntu 20.04. (`#3328 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3328>`_)


Removed Features
----------------

- The Magic Folder frontend has been split out into a stand-alone project.  The functionality is no longer part of Tahoe-LAFS itself.  Learn more at <https://github.com/LeastAuthority/magic-folder>. (`#3284 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3284>`_)
- Slackware 14.2 is no longer a Tahoe-LAFS supported platform. (`#3323 <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3323>`_)
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.10 2021/03/18 17:32:25 gdt Exp $
a11 3
${PYSITELIB}/allmydata/_monkeypatch.py
${PYSITELIB}/allmydata/_monkeypatch.pyc
${PYSITELIB}/allmydata/_monkeypatch.pyo
a29 18
${PYSITELIB}/allmydata/crypto/__init__.py
${PYSITELIB}/allmydata/crypto/__init__.pyc
${PYSITELIB}/allmydata/crypto/__init__.pyo
${PYSITELIB}/allmydata/crypto/aes.py
${PYSITELIB}/allmydata/crypto/aes.pyc
${PYSITELIB}/allmydata/crypto/aes.pyo
${PYSITELIB}/allmydata/crypto/ed25519.py
${PYSITELIB}/allmydata/crypto/ed25519.pyc
${PYSITELIB}/allmydata/crypto/ed25519.pyo
${PYSITELIB}/allmydata/crypto/error.py
${PYSITELIB}/allmydata/crypto/error.pyc
${PYSITELIB}/allmydata/crypto/error.pyo
${PYSITELIB}/allmydata/crypto/rsa.py
${PYSITELIB}/allmydata/crypto/rsa.pyc
${PYSITELIB}/allmydata/crypto/rsa.pyo
${PYSITELIB}/allmydata/crypto/util.py
${PYSITELIB}/allmydata/crypto/util.pyc
${PYSITELIB}/allmydata/crypto/util.pyo
d45 3
a92 3
${PYSITELIB}/allmydata/immutable/happiness_upload.py
${PYSITELIB}/allmydata/immutable/happiness_upload.pyc
${PYSITELIB}/allmydata/immutable/happiness_upload.pyo
d126 6
d195 3
a197 3
${PYSITELIB}/allmydata/scripts/run_common.py
${PYSITELIB}/allmydata/scripts/run_common.pyc
${PYSITELIB}/allmydata/scripts/run_common.pyo
d204 3
a221 3
${PYSITELIB}/allmydata/scripts/tahoe_daemonize.py
${PYSITELIB}/allmydata/scripts/tahoe_daemonize.pyc
${PYSITELIB}/allmydata/scripts/tahoe_daemonize.pyo
a224 3
${PYSITELIB}/allmydata/scripts/tahoe_invite.py
${PYSITELIB}/allmydata/scripts/tahoe_invite.pyc
${PYSITELIB}/allmydata/scripts/tahoe_invite.pyo
a239 15
${PYSITELIB}/allmydata/scripts/tahoe_restart.py
${PYSITELIB}/allmydata/scripts/tahoe_restart.pyc
${PYSITELIB}/allmydata/scripts/tahoe_restart.pyo
${PYSITELIB}/allmydata/scripts/tahoe_run.py
${PYSITELIB}/allmydata/scripts/tahoe_run.pyc
${PYSITELIB}/allmydata/scripts/tahoe_run.pyo
${PYSITELIB}/allmydata/scripts/tahoe_start.py
${PYSITELIB}/allmydata/scripts/tahoe_start.pyc
${PYSITELIB}/allmydata/scripts/tahoe_start.pyo
${PYSITELIB}/allmydata/scripts/tahoe_status.py
${PYSITELIB}/allmydata/scripts/tahoe_status.pyc
${PYSITELIB}/allmydata/scripts/tahoe_status.pyo
${PYSITELIB}/allmydata/scripts/tahoe_stop.py
${PYSITELIB}/allmydata/scripts/tahoe_stop.pyc
${PYSITELIB}/allmydata/scripts/tahoe_stop.pyo
d282 3
a284 3
${PYSITELIB}/allmydata/test/_twisted_9607.py
${PYSITELIB}/allmydata/test/_twisted_9607.pyc
${PYSITELIB}/allmydata/test/_twisted_9607.pyo
a302 3
${PYSITELIB}/allmydata/test/cli/test_alias.py
${PYSITELIB}/allmydata/test/cli/test_alias.pyc
${PYSITELIB}/allmydata/test/cli/test_alias.pyo
a320 6
${PYSITELIB}/allmydata/test/cli/test_daemonize.py
${PYSITELIB}/allmydata/test/cli/test_daemonize.pyc
${PYSITELIB}/allmydata/test/cli/test_daemonize.pyo
${PYSITELIB}/allmydata/test/cli/test_invite.py
${PYSITELIB}/allmydata/test/cli/test_invite.pyc
${PYSITELIB}/allmydata/test/cli/test_invite.pyo
d324 3
a332 9
${PYSITELIB}/allmydata/test/cli/test_start.py
${PYSITELIB}/allmydata/test/cli/test_start.pyc
${PYSITELIB}/allmydata/test/cli/test_start.pyo
${PYSITELIB}/allmydata/test/cli/test_status.py
${PYSITELIB}/allmydata/test/cli/test_status.pyc
${PYSITELIB}/allmydata/test/cli/test_status.pyo
${PYSITELIB}/allmydata/test/cli_node_api.py
${PYSITELIB}/allmydata/test/cli_node_api.pyc
${PYSITELIB}/allmydata/test/cli_node_api.pyo
a341 9
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-2048-priv.txt
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-2048-pub.txt
${PYSITELIB}/allmydata/test/data/pycryptopp-rsa-2048-sig.txt
${PYSITELIB}/allmydata/test/eliotutil.py
${PYSITELIB}/allmydata/test/eliotutil.pyc
${PYSITELIB}/allmydata/test/eliotutil.pyo
${PYSITELIB}/allmydata/test/matchers.py
${PYSITELIB}/allmydata/test/matchers.pyc
${PYSITELIB}/allmydata/test/matchers.pyo
d396 3
a398 15
${PYSITELIB}/allmydata/test/plugins/tahoe_lafs_dropin.py
${PYSITELIB}/allmydata/test/plugins/tahoe_lafs_dropin.pyc
${PYSITELIB}/allmydata/test/plugins/tahoe_lafs_dropin.pyo
${PYSITELIB}/allmydata/test/python3_tests.py
${PYSITELIB}/allmydata/test/python3_tests.pyc
${PYSITELIB}/allmydata/test/python3_tests.pyo
${PYSITELIB}/allmydata/test/status.py
${PYSITELIB}/allmydata/test/status.pyc
${PYSITELIB}/allmydata/test/status.pyo
${PYSITELIB}/allmydata/test/storage_plugin.py
${PYSITELIB}/allmydata/test/storage_plugin.pyc
${PYSITELIB}/allmydata/test/storage_plugin.pyo
${PYSITELIB}/allmydata/test/test_abbreviate.py
${PYSITELIB}/allmydata/test/test_abbreviate.pyc
${PYSITELIB}/allmydata/test/test_abbreviate.pyo
a404 3
${PYSITELIB}/allmydata/test/test_base32.py
${PYSITELIB}/allmydata/test/test_base32.pyc
${PYSITELIB}/allmydata/test/test_base32.pyo
a416 3
${PYSITELIB}/allmydata/test/test_common_util.py
${PYSITELIB}/allmydata/test/test_common_util.pyc
${PYSITELIB}/allmydata/test/test_common_util.pyo
a419 3
${PYSITELIB}/allmydata/test/test_connection_status.py
${PYSITELIB}/allmydata/test/test_connection_status.pyc
${PYSITELIB}/allmydata/test/test_connection_status.pyo
a425 3
${PYSITELIB}/allmydata/test/test_crypto.py
${PYSITELIB}/allmydata/test/test_crypto.pyc
${PYSITELIB}/allmydata/test/test_crypto.pyo
a428 6
${PYSITELIB}/allmydata/test/test_deferredutil.py
${PYSITELIB}/allmydata/test/test_deferredutil.pyc
${PYSITELIB}/allmydata/test/test_deferredutil.pyo
${PYSITELIB}/allmydata/test/test_dictutil.py
${PYSITELIB}/allmydata/test/test_dictutil.pyc
${PYSITELIB}/allmydata/test/test_dictutil.pyo
a434 3
${PYSITELIB}/allmydata/test/test_eliotutil.py
${PYSITELIB}/allmydata/test/test_eliotutil.pyc
${PYSITELIB}/allmydata/test/test_eliotutil.pyo
a446 3
${PYSITELIB}/allmydata/test/test_happiness.py
${PYSITELIB}/allmydata/test/test_happiness.pyc
${PYSITELIB}/allmydata/test/test_happiness.pyo
a449 3
${PYSITELIB}/allmydata/test/test_hashutil.py
${PYSITELIB}/allmydata/test/test_hashutil.pyc
${PYSITELIB}/allmydata/test/test_hashutil.pyo
a452 3
${PYSITELIB}/allmydata/test/test_humanreadable.py
${PYSITELIB}/allmydata/test/test_humanreadable.pyc
${PYSITELIB}/allmydata/test/test_humanreadable.pyo
d474 6
a479 6
${PYSITELIB}/allmydata/test/test_log.py
${PYSITELIB}/allmydata/test/test_log.pyc
${PYSITELIB}/allmydata/test/test_log.pyo
${PYSITELIB}/allmydata/test/test_monitor.py
${PYSITELIB}/allmydata/test/test_monitor.pyc
${PYSITELIB}/allmydata/test/test_monitor.pyo
a494 9
${PYSITELIB}/allmydata/test/test_pipeline.py
${PYSITELIB}/allmydata/test/test_pipeline.pyc
${PYSITELIB}/allmydata/test/test_pipeline.pyo
${PYSITELIB}/allmydata/test/test_python2_regressions.py
${PYSITELIB}/allmydata/test/test_python2_regressions.pyc
${PYSITELIB}/allmydata/test/test_python2_regressions.pyo
${PYSITELIB}/allmydata/test/test_python3.py
${PYSITELIB}/allmydata/test/test_python3.pyc
${PYSITELIB}/allmydata/test/test_python3.pyo
a503 6
${PYSITELIB}/allmydata/test/test_spans.py
${PYSITELIB}/allmydata/test/test_spans.pyc
${PYSITELIB}/allmydata/test/test_spans.pyo
${PYSITELIB}/allmydata/test/test_statistics.py
${PYSITELIB}/allmydata/test/test_statistics.pyc
${PYSITELIB}/allmydata/test/test_statistics.pyo
a512 3
${PYSITELIB}/allmydata/test/test_storage_web.py
${PYSITELIB}/allmydata/test/test_storage_web.pyc
${PYSITELIB}/allmydata/test/test_storage_web.pyo
a515 6
${PYSITELIB}/allmydata/test/test_testing.py
${PYSITELIB}/allmydata/test/test_testing.pyc
${PYSITELIB}/allmydata/test/test_testing.pyo
${PYSITELIB}/allmydata/test/test_time_format.py
${PYSITELIB}/allmydata/test/test_time_format.pyc
${PYSITELIB}/allmydata/test/test_time_format.pyo
a530 3
${PYSITELIB}/allmydata/test/test_websocket_logs.py
${PYSITELIB}/allmydata/test/test_websocket_logs.pyc
${PYSITELIB}/allmydata/test/test_websocket_logs.pyo
a536 3
${PYSITELIB}/allmydata/test/web/matchers.py
${PYSITELIB}/allmydata/test/web/matchers.pyc
${PYSITELIB}/allmydata/test/web/matchers.pyo
a542 6
${PYSITELIB}/allmydata/test/web/test_logs.py
${PYSITELIB}/allmydata/test/web/test_logs.pyc
${PYSITELIB}/allmydata/test/web/test_logs.pyo
${PYSITELIB}/allmydata/test/web/test_private.py
${PYSITELIB}/allmydata/test/web/test_private.pyc
${PYSITELIB}/allmydata/test/web/test_private.pyo
a545 3
${PYSITELIB}/allmydata/test/web/test_status.py
${PYSITELIB}/allmydata/test/web/test_status.pyc
${PYSITELIB}/allmydata/test/web/test_status.pyo
a554 6
${PYSITELIB}/allmydata/testing/__init__.py
${PYSITELIB}/allmydata/testing/__init__.pyc
${PYSITELIB}/allmydata/testing/__init__.pyo
${PYSITELIB}/allmydata/testing/web.py
${PYSITELIB}/allmydata/testing/web.pyc
${PYSITELIB}/allmydata/testing/web.pyo
a563 3
${PYSITELIB}/allmydata/util/_python3.py
${PYSITELIB}/allmydata/util/_python3.pyc
${PYSITELIB}/allmydata/util/_python3.pyo
d576 3
a596 3
${PYSITELIB}/allmydata/util/eliotutil.py
${PYSITELIB}/allmydata/util/eliotutil.pyc
${PYSITELIB}/allmydata/util/eliotutil.pyo
d600 3
a605 3
${PYSITELIB}/allmydata/util/gcutil.py
${PYSITELIB}/allmydata/util/gcutil.pyc
${PYSITELIB}/allmydata/util/gcutil.pyo
d624 6
d642 3
d651 3
d660 3
a686 3
${PYSITELIB}/allmydata/version_checks.py
${PYSITELIB}/allmydata/version_checks.pyc
${PYSITELIB}/allmydata/version_checks.pyo
a689 3
${PYSITELIB}/allmydata/web/_autobahn_1151.py
${PYSITELIB}/allmydata/web/_autobahn_1151.pyc
${PYSITELIB}/allmydata/web/_autobahn_1151.pyo
a697 3
${PYSITELIB}/allmydata/web/common_py3.py
${PYSITELIB}/allmydata/web/common_py3.pyc
${PYSITELIB}/allmydata/web/common_py3.pyo
d704 1
d719 3
a721 3
${PYSITELIB}/allmydata/web/logs.py
${PYSITELIB}/allmydata/web/logs.pyc
${PYSITELIB}/allmydata/web/logs.pyo
a726 3
${PYSITELIB}/allmydata/web/private.py
${PYSITELIB}/allmydata/web/private.pyc
${PYSITELIB}/allmydata/web/private.pyo
d735 3
a739 1
${PYSITELIB}/allmydata/web/static/img/connected-no.svg
a740 1
${PYSITELIB}/allmydata/web/static/img/connected-not-configured.svg
a741 1
${PYSITELIB}/allmydata/web/static/img/connected-yes.svg
d743 1
a752 3
${PYSITELIB}/allmydata/web/storage_plugins.py
${PYSITELIB}/allmydata/web/storage_plugins.pyc
${PYSITELIB}/allmydata/web/storage_plugins.pyo
d769 3
d775 3
@


1.10
log
@tahoe-lafs: Update to 1.13.0

Release 1.13.0 (05-August-2018)
'''''''''''''''''''''''''''''''

New Features
------------

The ``tahoe list-aliases`` command gained the ``--readonly-uri``
option in `PR400`_, which lists read-only capabilities (the default
shows read/write capabilities if available). This command also gained
a ``--json`` option in `PR452`_, providing machine-readable output.

A new command ``tahoe status`` is added, showing some statistics and
currently active operations (similar to the ``/status`` page in the
Web UI). See also `PR502`_.

Immutable uploads now use the "servers of happiness" algorithm for
uploading shares. This means better placement of shares on available
servers. See `PR416`_.

To join a new client to a grid, the command ``tahoe invite`` was
added. This uses `magic wormhole`_ to connect two computers and
exchange the required information to start the client. The "client
side" of this command is the also new option ``tahoe
create-client --join=``. Together, this provides a way to provision a
new client without having to securely transmit the fURL and other
details. `PR418`_

``tahoe backup`` now reports progress. `PR474`_

The ``tub.port=`` option can now accept ``listen:i2p`` or
``listen:tor`` options to use popular anonymity networks with storage
servers. See `PR437`_

The place where storage servers put shares (the "storage path") is now
configurable (`PR472`_).

A PyInstaller-based build is now available (`PR421`_). A "Docker
compose" setup for development purposes is now available (`PR445`_).

There is now a recommended workflow for Zcash-based donations to support
storage server operators (`PR506`_).


Web UI Changes
--------------

We set the "Referrer-Policy: no-referrer" header on all requests. The
Welcome page now understands the JSON option (`PR430`_) and OPTIONS
requests are handled (`PR447`_).


Magic Folder Changes
--------------------

Multiple magic-folders in a single Tahoe client are now
supported. Bugs with ``.backup`` files have been fixed, meaning
spurious ``.backup`` files will be produced less often (`PR448`_,
`PR475`_). Handling of default umask on new magic-folder files is
fixed in `PR458`_. The user mtime value is now correctly preserved
(`PR457`_).

A bug in ``tahoe magic-folder status`` causing active operations to
sometimes not show up is fixed (`PR461`_). If a directory is missing,
it is created (`PR492`_).
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.9 2017/01/28 09:09:50 riastradh Exp $
d12 3
d33 18
a65 3
${PYSITELIB}/allmydata/frontends/magic_folder.py
${PYSITELIB}/allmydata/frontends/magic_folder.pyc
${PYSITELIB}/allmydata/frontends/magic_folder.pyo
a146 6
${PYSITELIB}/allmydata/magicfolderdb.py
${PYSITELIB}/allmydata/magicfolderdb.pyc
${PYSITELIB}/allmydata/magicfolderdb.pyo
${PYSITELIB}/allmydata/magicpath.py
${PYSITELIB}/allmydata/magicpath.pyc
${PYSITELIB}/allmydata/magicpath.pyo
d210 3
a212 3
${PYSITELIB}/allmydata/scripts/magic_folder_cli.py
${PYSITELIB}/allmydata/scripts/magic_folder_cli.pyc
${PYSITELIB}/allmydata/scripts/magic_folder_cli.pyo
d315 3
a317 3
${PYSITELIB}/allmydata/test/bench_dirnode.py
${PYSITELIB}/allmydata/test/bench_dirnode.pyc
${PYSITELIB}/allmydata/test/bench_dirnode.pyo
a365 3
${PYSITELIB}/allmydata/test/cli/test_magic_folder.py
${PYSITELIB}/allmydata/test/cli/test_magic_folder.pyc
${PYSITELIB}/allmydata/test/cli/test_magic_folder.pyo
d378 3
d390 9
d453 6
d462 6
d474 3
d489 3
d495 3
d504 3
d510 6
d522 3
d543 3
d549 3
d573 6
a578 6
${PYSITELIB}/allmydata/test/test_magic_folder.py
${PYSITELIB}/allmydata/test/test_magic_folder.pyc
${PYSITELIB}/allmydata/test/test_magic_folder.pyo
${PYSITELIB}/allmydata/test/test_magicpath.py
${PYSITELIB}/allmydata/test/test_magicpath.pyc
${PYSITELIB}/allmydata/test/test_magicpath.pyo
d594 9
d612 6
d627 3
d633 6
d654 3
d663 3
d672 6
d681 3
d693 6
d708 3
a722 3
${PYSITELIB}/allmydata/util/cachedir.py
${PYSITELIB}/allmydata/util/cachedir.pyc
${PYSITELIB}/allmydata/util/cachedir.pyo
d741 3
a746 3
${PYSITELIB}/allmydata/util/fake_inotify.py
${PYSITELIB}/allmydata/util/fake_inotify.pyc
${PYSITELIB}/allmydata/util/fake_inotify.pyo
d750 3
a770 6
${PYSITELIB}/allmydata/util/keyutil.py
${PYSITELIB}/allmydata/util/keyutil.pyc
${PYSITELIB}/allmydata/util/keyutil.pyo
${PYSITELIB}/allmydata/util/limiter.py
${PYSITELIB}/allmydata/util/limiter.pyc
${PYSITELIB}/allmydata/util/limiter.pyo
a782 3
${PYSITELIB}/allmydata/util/nummedobj.py
${PYSITELIB}/allmydata/util/nummedobj.pyc
${PYSITELIB}/allmydata/util/nummedobj.pyo
a788 3
${PYSITELIB}/allmydata/util/pkgresutil.py
${PYSITELIB}/allmydata/util/pkgresutil.pyc
${PYSITELIB}/allmydata/util/pkgresutil.pyo
a794 3
${PYSITELIB}/allmydata/util/repeatable_random.py
${PYSITELIB}/allmydata/util/repeatable_random.pyc
${PYSITELIB}/allmydata/util/repeatable_random.pyo
d819 3
d825 3
d836 3
a844 1
${PYSITELIB}/allmydata/web/download-status-timeline.xhtml
d859 3
a861 3
${PYSITELIB}/allmydata/web/magic_folder.py
${PYSITELIB}/allmydata/web/magic_folder.pyc
${PYSITELIB}/allmydata/web/magic_folder.pyo
d867 3
a877 3
${PYSITELIB}/allmydata/web/static/d3-2.4.6.js
${PYSITELIB}/allmydata/web/static/d3-2.4.6.time.js
${PYSITELIB}/allmydata/web/static/download_status_timeline.js
d880 1
d882 1
d884 1
a885 1
${PYSITELIB}/allmydata/web/static/jquery-1.11.0.js
d895 3
a913 3
${PYSITELIB}/allmydata/windows/inotify.py
${PYSITELIB}/allmydata/windows/inotify.pyc
${PYSITELIB}/allmydata/windows/inotify.pyo
a916 3
${PYSITELIB}/allmydata/windows/tahoesvc.py
${PYSITELIB}/allmydata/windows/tahoesvc.pyc
${PYSITELIB}/allmydata/windows/tahoesvc.pyo
@


1.9
log
@Update filesystems/tahoe-lafs to 1.12.1.
@
text
@d1 1
a1 1
@@comment $NetBSD$
d93 3
a206 3
${PYSITELIB}/allmydata/scripts/startstop_node.py
${PYSITELIB}/allmydata/scripts/startstop_node.pyc
${PYSITELIB}/allmydata/scripts/startstop_node.pyo
d222 3
d228 3
d246 15
d324 3
d345 6
d363 6
d432 3
a434 3
${PYSITELIB}/allmydata/test/run_trial.py
${PYSITELIB}/allmydata/test/run_trial.pyc
${PYSITELIB}/allmydata/test/run_trial.pyo
d483 3
@


1.8
log
@Update to 1.10.2:

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
@
text
@d6 3
a8 3
${PYSITELIB}/allmydata/_appname.py
${PYSITELIB}/allmydata/_appname.pyc
${PYSITELIB}/allmydata/_appname.pyo
d30 3
a32 3
${PYSITELIB}/allmydata/debugshell.py
${PYSITELIB}/allmydata/debugshell.pyc
${PYSITELIB}/allmydata/debugshell.pyo
a41 3
${PYSITELIB}/allmydata/frontends/drop_upload.py
${PYSITELIB}/allmydata/frontends/drop_upload.pyc
${PYSITELIB}/allmydata/frontends/drop_upload.pyo
d45 3
a122 3
${PYSITELIB}/allmydata/introducer/old.py
${PYSITELIB}/allmydata/introducer/old.pyc
${PYSITELIB}/allmydata/introducer/old.pyo
d126 6
a131 6
${PYSITELIB}/allmydata/key_generator.py
${PYSITELIB}/allmydata/key_generator.pyc
${PYSITELIB}/allmydata/key_generator.pyo
${PYSITELIB}/allmydata/manhole.py
${PYSITELIB}/allmydata/manhole.pyc
${PYSITELIB}/allmydata/manhole.pyo
d195 3
a197 3
${PYSITELIB}/allmydata/scripts/keygen.py
${PYSITELIB}/allmydata/scripts/keygen.pyc
${PYSITELIB}/allmydata/scripts/keygen.pyo
d297 36
d342 51
d396 3
a410 24
${PYSITELIB}/allmydata/test/test_cli.py
${PYSITELIB}/allmydata/test/test_cli.pyc
${PYSITELIB}/allmydata/test/test_cli.pyo
${PYSITELIB}/allmydata/test/test_cli_backup.py
${PYSITELIB}/allmydata/test/test_cli_backup.pyc
${PYSITELIB}/allmydata/test/test_cli_backup.pyo
${PYSITELIB}/allmydata/test/test_cli_check.py
${PYSITELIB}/allmydata/test/test_cli_check.pyc
${PYSITELIB}/allmydata/test/test_cli_check.pyo
${PYSITELIB}/allmydata/test/test_cli_cp.py
${PYSITELIB}/allmydata/test/test_cli_cp.pyc
${PYSITELIB}/allmydata/test/test_cli_cp.pyo
${PYSITELIB}/allmydata/test/test_cli_create_alias.py
${PYSITELIB}/allmydata/test/test_cli_create_alias.pyc
${PYSITELIB}/allmydata/test/test_cli_create_alias.pyo
${PYSITELIB}/allmydata/test/test_cli_list.py
${PYSITELIB}/allmydata/test/test_cli_list.pyc
${PYSITELIB}/allmydata/test/test_cli_list.pyo
${PYSITELIB}/allmydata/test/test_cli_mv.py
${PYSITELIB}/allmydata/test/test_cli_mv.pyc
${PYSITELIB}/allmydata/test/test_cli_mv.pyo
${PYSITELIB}/allmydata/test/test_cli_put.py
${PYSITELIB}/allmydata/test/test_cli_put.pyc
${PYSITELIB}/allmydata/test/test_cli_put.pyo
d417 6
a434 3
${PYSITELIB}/allmydata/test/test_drop_upload.py
${PYSITELIB}/allmydata/test/test_drop_upload.pyc
${PYSITELIB}/allmydata/test/test_drop_upload.pyo
d456 3
d474 9
a482 6
${PYSITELIB}/allmydata/test/test_keygen.py
${PYSITELIB}/allmydata/test/test_keygen.pyc
${PYSITELIB}/allmydata/test/test_keygen.pyo
${PYSITELIB}/allmydata/test/test_mutable.py
${PYSITELIB}/allmydata/test/test_mutable.pyc
${PYSITELIB}/allmydata/test/test_mutable.pyo
d516 3
d531 24
a554 6
${PYSITELIB}/allmydata/test/test_web.py
${PYSITELIB}/allmydata/test/test_web.pyc
${PYSITELIB}/allmydata/test/test_web.pyo
${PYSITELIB}/allmydata/test/trialtest.py
${PYSITELIB}/allmydata/test/trialtest.pyc
${PYSITELIB}/allmydata/test/trialtest.pyo
d579 6
d615 3
d657 3
d678 3
d684 3
d719 3
d769 3
a781 1
${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
a783 6
${PYSITELIB}/buildtest/__init__.py
${PYSITELIB}/buildtest/__init__.pyc
${PYSITELIB}/buildtest/__init__.pyo
${PYSITELIB}/buildtest/test_build_with_fake_dist.py
${PYSITELIB}/buildtest/test_build_with_fake_dist.pyc
${PYSITELIB}/buildtest/test_build_with_fake_dist.pyo
@


1.7
log
@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
@
text
@d534 3
@


1.6
log
@Update to:
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`_

Other Changes
-------------

- 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`_)
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.5 2012/07/07 00:34:18 gdt Exp $
d195 3
d312 3
d327 21
d402 3
d438 3
a458 3
${PYSITELIB}/allmydata/test/trial_coverage.py
${PYSITELIB}/allmydata/test/trial_coverage.pyc
${PYSITELIB}/allmydata/test/trial_coverage.pyo
d489 3
d618 2
a619 2
${PYSITELIB}/allmydata/web/static/d3-2.4.6.min.js
${PYSITELIB}/allmydata/web/static/d3-2.4.6.time.min.js
d622 5
a626 1
${PYSITELIB}/allmydata/web/static/jquery-1.6.1.min.js
@


1.5
log
@Update to 1.9.2.

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`_)
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.4 2011/11/09 00:30:12 gdt Exp $
d117 3
d123 3
a170 6
${PYSITELIB}/allmydata/provisioning.py
${PYSITELIB}/allmydata/provisioning.pyc
${PYSITELIB}/allmydata/provisioning.pyo
${PYSITELIB}/allmydata/reliability.py
${PYSITELIB}/allmydata/reliability.pyc
${PYSITELIB}/allmydata/reliability.pyo
d174 3
a392 3
${PYSITELIB}/allmydata/test/test_provisioning.py
${PYSITELIB}/allmydata/test/test_provisioning.pyc
${PYSITELIB}/allmydata/test/test_provisioning.pyo
d489 3
a576 1
${PYSITELIB}/allmydata/web/provisioning.xhtml
a577 4
${PYSITELIB}/allmydata/web/reliability.py
${PYSITELIB}/allmydata/web/reliability.pyc
${PYSITELIB}/allmydata/web/reliability.pyo
${PYSITELIB}/allmydata/web/reliability.xhtml
d583 2
d628 6
@


1.4
log
@Update to 1.9.0.

- The most significant new feature in this release is MDMF: "Medium-size
  Distributed Mutable Files". Unlike standard SDMF files, these provide
  efficient partial-access (reading and modifying small portions of the file
  instead of the whole thing). MDMF is opt-in (it is not yet the default
  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. 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`_)
- 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.
  (`#1429`_)
- The timeline of immutable downloads can be viewed using a zoomable and
  pannable JavaScript-based visualization. This is accessed using the
  'timeline' link on the File Download Status page for the download, which
  can be reached from the Recent Uploads and Downloads page.
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.3 2011/02/01 02:05:18 gdt Exp $
d348 3
a380 3
${PYSITELIB}/allmydata/test/test_nevow.py
${PYSITELIB}/allmydata/test/test_nevow.pyc
${PYSITELIB}/allmydata/test/test_nevow.pyo
a555 1
${PYSITELIB}/allmydata/web/download_status_timeline.js
a567 1
${PYSITELIB}/allmydata/web/jquery-1.6.1.min.js
a573 1
${PYSITELIB}/allmydata/web/protovis-3.3.1.min.js
d585 6
a599 1
${PYSITELIB}/allmydata/web/tahoe.css
@


1.3
log
@Update to 1.8.2.

Packaging changes:
  Use gmake and test TEST_TARGET, so make test runs make check.
  Add dependency on py-sqlite2 for "tahoe backup".
  Add py-mock dependency because tests are now runnable by the user.
  Withdraw fixing of distfiles modes; this one is fine.

* 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 failed to run
   against Twisted-10.2, raising an AttributeError on
   StreamServerEndpointService (#1286)
 - Tahoe now depends upon the "mock" testing library, and the foolscap
   dependency was raised to 0.6.1 . It no longer requires pywin32 (which
   was used only on windows). Future developers should note that
   reactor.spawnProcess and derivatives may no longer be used inside
   Tahoe code.

** Other Changes

 - the default reserved_space value for new storage nodes is 1 GB (#1208)
 - documentation is now in reStructuredText (.rst) format
 - "tahoe cp" should now handle non-ASCII filenames
 - the unmaintained Mac/Windows GUI applications have been removed (#1282)
 - tahoe processes should appear in top and ps as "tahoe", not "python",
   on some unix platforms. (#174)
 - "tahoe debug trial" can be used to run the test suite (#1296)
 - the SFTP frontend now reports unknown sizes as "0" instead of "?",
   to improve compatibility with clients like FileZilla (#1337)
 - "tahoe --version" should now report correct values in situations where
   1.8.1 might have been wrong (#1287)
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.2 2010/09/24 18:20:59 gdt Exp $
d15 3
d42 3
d237 3
a239 3
${PYSITELIB}/allmydata/scripts/tahoe_rm.py
${PYSITELIB}/allmydata/scripts/tahoe_rm.pyc
${PYSITELIB}/allmydata/scripts/tahoe_rm.pyo
a302 1
${PYSITELIB}/allmydata/test/figleaf.excludes
d336 3
d360 3
d468 3
d554 1
d556 1
d569 1
d576 1
@


1.2
log
@Update to 1.8.0.

* 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
   servers to download the data in K-way parallel. It automatically
   fails over to alternate servers if servers fail in mid-download. It
   allows seeking to arbitrary locations in the file (the previous
   downloader which would only read the entire file sequentially from
   beginning to end). It minimizes unnecessary round trips and
   unnecessary bytes transferred to improve performance. It sends
   requests to fewer servers to reduce the load on servers (the
   previous one would send a small request to every server for every
   download) (#287, #288, #448, #798, #800, #990, #1170, #1191)

 - Non-ASCII command-line arguments and non-ASCII outputs now work on
   Windows. In addition, the command-line tool now works on 64-bit
   Windows. (#1074)

** Bugfixes and Improvements

 - Document and clean up the command-line options for specifying the
   node's base directory. (#188, #706, #715, #772, #1108)
 - The default node directory for Windows is ".tahoe" in the user's
   home directory, the same as on other platforms. (#890)
 - Fix a case in which full cap URIs could be logged. (#685, #1155)
 - Fix bug in WUI in Python 2.5 when the system clock is set back to
   1969. Now you can use Tahoe-LAFS with Python 2.5 and set your
   system clock to 1969 and still use the WUI. (#1055)
 - Many improvements in code organization, tests, logging,
   documentation, and packaging. (#983, #1074, #1108, #1127, #1129,
   #1131, #1166, #1175)
@
text
@d1 1
a1 1
@@comment $NetBSD: PLIST,v 1.1.1.1 2010/07/24 18:14:27 gdt Exp $
a44 15
${PYSITELIB}/allmydata/gui/__init__.py
${PYSITELIB}/allmydata/gui/__init__.pyc
${PYSITELIB}/allmydata/gui/__init__.pyo
${PYSITELIB}/allmydata/gui/amdicon.py
${PYSITELIB}/allmydata/gui/amdicon.pyc
${PYSITELIB}/allmydata/gui/amdicon.pyo
${PYSITELIB}/allmydata/gui/amdlogo.py
${PYSITELIB}/allmydata/gui/amdlogo.pyc
${PYSITELIB}/allmydata/gui/amdlogo.pyo
${PYSITELIB}/allmydata/gui/confwiz.py
${PYSITELIB}/allmydata/gui/confwiz.pyc
${PYSITELIB}/allmydata/gui/confwiz.pyo
${PYSITELIB}/allmydata/gui/macapp.py
${PYSITELIB}/allmydata/gui/macapp.pyc
${PYSITELIB}/allmydata/gui/macapp.pyo
d409 3
d418 3
a459 3
${PYSITELIB}/allmydata/util/find_exe.py
${PYSITELIB}/allmydata/util/find_exe.pyc
${PYSITELIB}/allmydata/util/find_exe.pyo
d520 3
d598 3
@


1.1
log
@Initial revision
@
text
@d1 1
a1 1
@@comment $NetBSD$
d72 24
a95 3
${PYSITELIB}/allmydata/immutable/download.py
${PYSITELIB}/allmydata/immutable/download.pyc
${PYSITELIB}/allmydata/immutable/download.pyo
d105 3
d523 3
d601 3
d607 7
a613 7
${PYSITELIB}/allmydata_tahoe-1.7.1-py2.6.egg-info/PKG-INFO
${PYSITELIB}/allmydata_tahoe-1.7.1-py2.6.egg-info/SOURCES.txt
${PYSITELIB}/allmydata_tahoe-1.7.1-py2.6.egg-info/dependency_links.txt
${PYSITELIB}/allmydata_tahoe-1.7.1-py2.6.egg-info/entry_points.txt
${PYSITELIB}/allmydata_tahoe-1.7.1-py2.6.egg-info/not-zip-safe
${PYSITELIB}/allmydata_tahoe-1.7.1-py2.6.egg-info/requires.txt
${PYSITELIB}/allmydata_tahoe-1.7.1-py2.6.egg-info/top_level.txt
@


1.1.1.1
log
@Import tahoe-lafs-1.7.1 as filesystems/tahoe-lafs.

Tahoe-LAFS is a Free Software/Open Source decentralized data store.
It distributes your filesystem across multiple servers, and even if
some of the servers fail or are taken over by an attacker, the entire
filesystem continues to work correctly and to preserve your privacy
and security.
@
text
@@
