From fd432b43bf554c3a67c2cb4b4a301ced20143714 Mon Sep 17 00:00:00 2001
From: Brian Warner <warner@lothar.com>
Date: Tue, 16 Sep 2008 18:36:27 -0700
Subject: [PATCH] #249: get dependent libs from tahoe-deps and ../tahoe-deps

---
 setup.cfg | 18 ++++++++++++++++++
 setup.py  | 15 ++++-----------
 2 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/setup.cfg b/setup.cfg
index 5fe33836..4c7ef133 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -1,2 +1,20 @@
 [easy_install]
 zip_ok=False
+
+# Tahoe depends upon several libraries (foolscap, twisted, pycryptopp, and
+# others). Left to its own devices, setuptools will look on PyPI for these
+# and will download them at build time. The 'find_links=' entry in setup.cfg
+# causes setuptools to look for these dependent tarballs in tahoe-deps/ and
+# ../tahoe-deps/ before it resorts to downloading them from PyPI.
+
+# http://allmydata.org/source/tahoe/tarballs/tahoe-deps.tar.gz contains a
+# bundle of these dependencies. So it you want to avoid the build-time
+# download (say, if you're on an airplane, or a desert island), just grab a
+# copy and unpack it in your tahoe darcs tree.
+
+# Alternatively, if you're building from a release/nightly tarball instead of
+# a darcs tree, the 'sumo' tarball variant will include all of these
+# dependencies in the tahoe-deps/ directory.
+
+find_links=misc/dependencies tahoe-deps ../tahoe-deps
+           http://allmydata.org/trac/tahoe/wiki/Dependencies
diff --git a/setup.py b/setup.py
index 181e4eda..7352d0c5 100644
--- a/setup.py
+++ b/setup.py
@@ -189,19 +189,12 @@ This filesystem is encrypted and spread over multiple peers in such a way that
 it remains available even when some of the peers are unavailable,
 malfunctioning, or malicious."""
 
-# For Desert Island builds, assume that the user has extracted the dependency
-# tarball into a directory named 'misc/dependencies'.
-dependency_links=[os.path.join(os.getcwd(), 'misc', 'dependencies')]
-
-# By adding a web page to the dependency_links we are able to put new packages
-# up there and have them be automatically discovered by existing copies of the
-# tahoe source when that source was built.
-dependency_links.append("http://allmydata.org/trac/tahoe/wiki/Dependencies")
 
 # Default setup_requires are pyutil for the Windows installer builder(see
 # misc/sub-ver.py) and Twisted for the tests.
 #setup_requires = ['pyutil >= 1.3.16', 'Twisted >= 2.4.0']
 setup_requires = []
+
 # darcsver is needed only if you want "./setup.py darcsver" to write a new
 # version stamp in src/allmydata/_version.py, with a version number derived from
 # darcs history.
@@ -406,8 +399,9 @@ class MySdist(sdist.sdist):
             if data not in dist_files:
                 dist_files.append(data)
 
-# get a list of the libraries that we depend upon, for use in the call to
-# setup() at the end of this file
+# Tahoe's dependencies are managed by the find_links= entry in setup.cfg and
+# the _auto_deps.install_requires list, which is used in the call to setup()
+# at the end of this file
 from _auto_deps import install_requires
 
 setup(name='allmydata-tahoe',
@@ -433,7 +427,6 @@ setup(name='allmydata-tahoe',
       install_requires=install_requires,
       include_package_data=True,
       setup_requires=setup_requires,
-      dependency_links=dependency_links,
       entry_points = { 'console_scripts': [ 'tahoe = allmydata.scripts.runner:run' ] },
       zip_safe=False, # We prefer unzipped for easier access.
       )
-- 
2.45.2