setup: alas, pywin32 doesn't actually work as an easy_install; also make dependency missing errors more useful

This commit is contained in:
Zooko O'Whielacronx 2007-09-21 13:40:28 -07:00
parent 43f500d146
commit aff7e8d436
3 changed files with 36 additions and 20 deletions

@ -60,7 +60,7 @@ TRIAL=$(PYTHON) -u "$(TRIALPATH)" --rterrors $(REACTOROPT)
# build-deps wants setuptools to have been built first. It's easiest to
# accomplish this by depending upon the tahoe compile.
build-deps: .built
build-deps: .built check-twisted-dep
mkdir -p "$(SUPPORTLIB)"
PYTHONPATH="$(PYTHONPATH)$(PATHSEP)$(SUPPORTLIB)$(PATHSEP)." \
$(PYTHON) misc/dependencies/build-deps-setup.py install \
@ -103,17 +103,35 @@ endif
# TESTING
.PHONY: check-deps test test-figleaf figleaf-output
.PHONY: check-deps check-twisted-dep check-pywin32-dep signal-error-deps, signal-error-twisted-dep, signal-error-pywin32-dep, test test-figleaf figleaf-output
signal-error:
signal-error-deps:
@echo "ERROR: Not all of Tahoe's dependencies are in place. Please \
see the README for help on installing dependencies."
exit 1
check-deps:
signal-error-twisted-dep:
@echo "ERROR: Before running \"make build-deps\" you have to ensure that \
Twisted is installed (including its zope.interface dependency). Twisted and \
zope.interface are required for the automatic installation of certain other \
libraries that Tahoe requires). Please see the README for details."
exit 1
signal-error-pywin32-dep:
@echo "ERROR: the pywin32 dependency is not in place. Please see the README \
for help on installing dependencies."
exit 1
check-deps: check-twisted-dep check-pywin32-dep
$(PP) \
$(PYTHON) -c 'import allmydata, zfec, foolscap, simplejson, nevow, OpenSSL' || $(MAKE) signal-error
$(PYTHON) -c 'import allmydata, zfec, foolscap, simplejson, nevow, OpenSSL' || $(MAKE) signal-error-deps
check-twisted-dep:
$(PYTHON) -c 'import twisted, zope.interface' || $(MAKE) signal-error-twisted-dep
check-pywin32-dep:
$(PYTHON) -c 'import win32process' || $(MAKE) signal-error-pywin32-dep
.checked-deps:
$(MAKE) check-deps

23
README

@ -77,10 +77,22 @@ apt-get install gcc make python-dev python-twisted python-pyopenssl".
To install PyOpenSSL on Windows-native, download this:
http://allmydata.org/source/pyOpenSSL-0.6.win32-py2.5.exe
or for Python 2.4, this:
http://allmydata.org/source/pyOpenSSL-0.6.win32-py2.4.exe
To install PyOpenSSL on Windows-cygwin, install the OpenSSL development
libraries with the cygwin package management tool, then get the pyOpenSSL
source code, cd into it, and run "python ./setup.py install".
+ the pywin32 package: required only on Windows
http://sourceforge.net/projects/pywin32/
(Tested with build 210, and known to not work with build 204.
Feedback with details of other builds is greatly appreciated.)
In addition, the following Python packages are required, but they will
normally be automatically installed as a side effect of installing Tahoe.
@ -132,17 +144,6 @@ normally be automatically installed as a side effect of installing Tahoe.
Python Package Index (PyPI), so it will be automatically installed when
you install Tahoe (see INSTALLING).
+ the pywin32 package: required only on Windows
http://sourceforge.net/projects/pywin32/
(Tested with build 210, and known to not work with build 204.
Feedback with details of other builds is greatly appreciated.)
pywin32 is packaged in a setuptools-compatible way and included in the
Python Package Index (PyPI), so it will be automatically installed when
you install Tahoe (see INSTALLING).
GETTING THE SOURCE CODE:

@ -10,7 +10,7 @@ import os.path, sys
dependency_tarballs=[ os.path.join("misc", "dependencies", fn)
for fn in os.listdir(os.path.join("misc", "dependencies"))
if fn.endswith(".tar.gz") or fn.endswith(".zip") ]
if fn.endswith(".tar.gz") ]
dependency_links=["http://allmydata.org/trac/tahoe/wiki/Dependencies"] + dependency_tarballs
@ -27,9 +27,6 @@ install_requires=["zfec >= 1.0.3",
"zope.interface >= 3.0",
]
if sys.platform == 'win32':
install_requires.append("pywin32")
# Ubuntu Dapper includes nevow-0.6.0 and twisted-2.2.0, both of which work.
# However, setuptools doesn't know about them, so our install_requires=