2007-03-29 21:01:28 +00:00
|
|
|
#! /usr/bin/env python
|
2006-12-05 08:29:26 +00:00
|
|
|
|
2007-04-30 20:06:09 +00:00
|
|
|
# Allmydata Tahoe -- secure, distributed storage grid
|
2007-04-27 20:47:15 +00:00
|
|
|
#
|
|
|
|
# Copyright (C) 2007 Allmydata, Inc.
|
|
|
|
#
|
|
|
|
# This file is part of tahoe.
|
|
|
|
#
|
|
|
|
# This program is free software; you can redistribute it and/or modify it
|
|
|
|
# under the terms of the GNU General Public License as published by the Free
|
|
|
|
# Software Foundation; either version 2 of the License, or (at your option)
|
|
|
|
# any later version, with the added permission that, if you become obligated
|
|
|
|
# to release a derived work under this licence (as per section 2.b), you may
|
|
|
|
# delay the fulfillment of this obligation for up to 12 months. See the file
|
|
|
|
# COPYING for details.
|
|
|
|
#
|
|
|
|
# If you would like to inquire about a commercial relationship with Allmydata,
|
|
|
|
# Inc., please contact partnerships@allmydata.com and visit
|
|
|
|
# http://allmydata.com/.
|
2006-12-05 08:29:26 +00:00
|
|
|
|
2007-05-04 03:14:07 +00:00
|
|
|
import re, os.path
|
2007-04-27 20:47:15 +00:00
|
|
|
from distutils.core import Extension, setup
|
2006-12-14 10:25:30 +00:00
|
|
|
|
2007-04-27 20:47:15 +00:00
|
|
|
trove_classifiers=[
|
|
|
|
"Development Status :: 3 - Alpha",
|
|
|
|
"Environment :: Console",
|
|
|
|
"Environment :: Web Environment",
|
|
|
|
"License :: OSI Approved :: GNU General Public License (GPL)",
|
2007-05-02 19:54:26 +00:00
|
|
|
"License :: DFSG approved",
|
2007-04-27 20:47:15 +00:00
|
|
|
"Intended Audience :: Developers",
|
|
|
|
"Intended Audience :: End Users/Desktop",
|
|
|
|
"Intended Audience :: System Administrators",
|
|
|
|
"Operating System :: Microsoft",
|
|
|
|
"Operating System :: Microsoft :: Windows",
|
|
|
|
"Operating System :: Unix",
|
|
|
|
"Operating System :: POSIX :: Linux",
|
|
|
|
"Operating System :: POSIX",
|
|
|
|
"Operating System :: MacOS :: MacOS X",
|
|
|
|
"Operating System :: Microsoft :: Windows :: Windows NT/2000",
|
|
|
|
"Operating System :: OS Independent",
|
|
|
|
"Natural Language :: English",
|
|
|
|
"Programming Language :: C",
|
|
|
|
"Programming Language :: Python",
|
|
|
|
"Topic :: Utilities",
|
|
|
|
"Topic :: System :: Systems Administration",
|
|
|
|
"Topic :: System :: Filesystems",
|
|
|
|
"Topic :: System :: Distributed Computing",
|
|
|
|
"Topic :: Software Development :: Libraries",
|
|
|
|
"Topic :: Communications :: Usenet News",
|
|
|
|
"Topic :: System :: Archiving :: Backup",
|
|
|
|
"Topic :: System :: Archiving :: Mirroring",
|
|
|
|
"Topic :: System :: Archiving",
|
|
|
|
]
|
2006-12-14 10:25:30 +00:00
|
|
|
|
2007-05-04 03:14:07 +00:00
|
|
|
|
|
|
|
VERSIONFILE = "src/allmydata/version.py"
|
|
|
|
verstr = "unknown"
|
|
|
|
if os.path.exists(VERSIONFILE):
|
|
|
|
VSRE = re.compile("^verstr = ['\"]([^'\"]*)['\"]", re.M)
|
|
|
|
verstrline = open(VERSIONFILE, "rt").read()
|
|
|
|
mo = VSRE.search(verstrline)
|
|
|
|
if mo:
|
|
|
|
verstr = mo.group(1)
|
|
|
|
else:
|
|
|
|
print "unable to find version in version.py"
|
|
|
|
raise RuntimeError("if version.py exists, it must be well-formed")
|
2007-05-01 20:23:15 +00:00
|
|
|
|
2007-08-14 20:57:41 +00:00
|
|
|
|
|
|
|
LONG_DESCRIPTION=\
|
|
|
|
"""Welcome to the AllMyData "tahoe" project. This project implements a
|
2007-04-30 20:06:09 +00:00
|
|
|
secure, distributed, fault-tolerant storage grid.
|
2006-12-05 08:29:26 +00:00
|
|
|
|
2007-04-30 20:06:09 +00:00
|
|
|
The basic idea is that the data in this storage grid is spread over all
|
2007-04-27 20:47:15 +00:00
|
|
|
participating nodes, using an algorithm that can recover the data even if a
|
2007-08-14 20:57:41 +00:00
|
|
|
majority of the nodes are no longer available."""
|
|
|
|
|
|
|
|
setup(name='allmydata-tahoe',
|
|
|
|
version=verstr,
|
|
|
|
description='secure, distributed storage grid',
|
|
|
|
long_description=LONG_DESCRIPTION,
|
2007-04-27 20:47:15 +00:00
|
|
|
author='Allmydata, Inc.',
|
|
|
|
author_email='tahoe-dev@allmydata.org',
|
|
|
|
url='http://allmydata.org/',
|
|
|
|
license='GNU GPL',
|
|
|
|
packages=["allmydata", "allmydata.test", "allmydata.util",
|
2007-08-14 20:57:41 +00:00
|
|
|
"allmydata.scripts",
|
|
|
|
"allmydata.Crypto", "allmydata.Crypto.Cipher",
|
2007-08-16 00:36:39 +00:00
|
|
|
"allmydata.Crypto.Hash", "allmydata.Crypto.Util",
|
|
|
|
"allmydata.Crypto.PublicKey"],
|
2007-04-27 20:47:15 +00:00
|
|
|
package_dir={ "allmydata": "src/allmydata",},
|
|
|
|
scripts = ["bin/allmydata-tahoe"],
|
2007-08-22 21:54:34 +00:00
|
|
|
package_data={ 'allmydata': ['web/*.xhtml', 'web/*.html', 'web/*.css'] },
|
2007-04-27 20:47:15 +00:00
|
|
|
classifiers=trove_classifiers,
|
|
|
|
test_suite="allmydata.test",
|
2007-08-14 20:57:41 +00:00
|
|
|
ext_modules=[
|
|
|
|
Extension("allmydata.Crypto.Cipher.AES",
|
|
|
|
include_dirs=["src/allmydata/Crypto"],
|
|
|
|
sources=["src/allmydata/Crypto/AES.c"]),
|
|
|
|
Extension("allmydata.Crypto.Hash.SHA256",
|
|
|
|
include_dirs=["src/allmydata/Crypto"],
|
|
|
|
sources=["src/allmydata/Crypto/SHA256.c"]),
|
2007-08-16 07:52:21 +00:00
|
|
|
# _fastmath requires gmp. Since we're not using rsa yet, hold off
|
|
|
|
# on requiring this. (note that RSA.py doesn't require _fastmath,
|
|
|
|
# but I doubt we'd want to use the pure-python version).
|
|
|
|
# Extension("allmydata.Crypto.PublicKey._fastmath",
|
|
|
|
# sources=["src/allmydata/Crypto/_fastmath.c"]),
|
|
|
|
# ],
|
2007-04-27 20:47:15 +00:00
|
|
|
)
|