can't have nice things

This commit is contained in:
Jean-Paul Calderone 2019-08-14 14:48:12 -04:00
parent 0f283980ab
commit 739df66c80
4 changed files with 25 additions and 26 deletions

View File

@ -200,9 +200,9 @@ Tahoe-LAFS provides some functionality only when explicitly requested at install
It does this using the "extras" feature of setuptools.
You can request these extra features when running the ``pip install`` command like this::
% venv/bin/pip install tahoe-lafs[sftp]
% venv/bin/pip install tahoe-lafs[tor]
This example enables the SFTP frontend.
This example enables support for listening and connecting using Tor.
The Tahoe-LAFS documentation for specific features which require an explicit install-time step will mention the "extra" that must be requested.
Hacking On Tahoe-LAFS

View File

@ -37,15 +37,6 @@ We recommend SFTP over FTP, because the protocol is better, and the server
implementation in Tahoe-LAFS is more complete. See `Known Issues`_, below,
for details.
Software Dependencies
---------------------
The SFTP support in Tahoe-LAFS requires certain additional libraries not installed by default.
In order to install everything necessary, use the "sftp" extra when installing Tahoe-LAFS.
For example::
% pip install tahoe-lafs[sftp]
Tahoe-LAFS Support
==================

View File

@ -1 +0,0 @@
The SFTP frontend is now contingent on the "sftp" Tahoe-LAFS extra. To use it, be sure to install at least "tahoe-lafs[sftp]".

View File

@ -75,7 +75,22 @@ install_requires = [
# leftover timers)
# * Twisted-16.4.0 introduces `python -m twisted.trial` which is needed
# for coverage testing
"Twisted[tls] >= 16.4.0",
# * Twisted 16.6.0 drops the undesirable gmpy dependency from the conch
# extra, letting us use that extra instead of trying to duplicate its
# dependencies here. Twisted[conch] >18.7 introduces a dependency on
# bcrypt. It is nice to avoid that if the user ends up with an older
# version of Twisted. That's hard to express except by using the extra.
#
# In a perfect world, Twisted[conch] would be a dependency of an "sftp"
# extra. However, pip fails to resolve the dependencies all
# dependencies when asked for Twisted[tls] *and* Twisted[conch].
# Specifically, "Twisted[conch]" (as the later requirement) is ignored.
# If there were an Tahoe-LAFS sftp extra that dependended on
# Twisted[conch] and install_requires only included Twisted[tls] then
# `pip install tahoe-lafs[sftp]` would not install requirements
# specified by Twisted[conch]. Since this would be the *whole point* of
# an sftp extra in Tahoe-LAFS, there is no point in having one.
"Twisted[tls,conch] >= 16.6.0",
# We need Nevow >= 0.11.1 which can be installed using pip.
"Nevow >= 0.11.1",
@ -102,21 +117,16 @@ setup_requires = [
'setuptools >= 28.8.0', # for PEP-440 style versions
]
sftp_requires = [
# * Twisted 16.6.0 drops the undesirable gmpy dependency from the conch
# extra, letting us use that extra instead of trying to duplicate its
# dependencies here. Twisted[conch] >18.7 introduces a dependency on
# bcrypt. It is nice to avoid that if the user ends up with an older
# version of Twisted. That's hard to express except by using the extra.
"twisted[conch] >= 16.6.0",
]
tor_requires = [
"foolscap[tor] >= 0.12.5",
# This is exactly what `foolscap[tor]` means but pip resolves the pair of
# dependencies "foolscap[i2p] foolscap[tor]" to "foolscap[i2p]" so we lose
# this if we don't declare it ourselves!
"txtorcon >= 0.17.0",
]
i2p_requires = [
"foolscap[i2p] >= 0.12.6",
# See the comment in tor_requires.
"txi2p >= 0.3.2",
]
if len(sys.argv) > 1 and sys.argv[1] == '--fakedependency':
@ -348,8 +358,7 @@ setup(name="tahoe-lafs", # also set in __init__.py
"towncrier",
"testtools",
"fixtures",
] + sftp_requires + tor_requires + i2p_requires,
"sftp": sftp_requires,
] + tor_requires + i2p_requires,
"tor": tor_requires,
"i2p": i2p_requires,
},