Commit | Line | Data |
---|---|---|
8e1e744d | 1 | # GNU MediaGoblin -- federated, autonomous media hosting |
7f4ebeed | 2 | # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. |
e5572c60 ML |
3 | # |
4 | # This program is free software: you can redistribute it and/or modify | |
5 | # it under the terms of the GNU Affero General Public License as published by | |
6 | # the Free Software Foundation, either version 3 of the License, or | |
7 | # (at your option) any later version. | |
8 | # | |
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 | # GNU Affero General Public License for more details. | |
13 | # | |
14 | # You should have received a copy of the GNU Affero General Public License | |
15 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
16 | ||
c1b342ba | 17 | from setuptools import setup, find_packages |
cf37fffc WKG |
18 | import os |
19 | import re | |
20 | ||
21 | READMEFILE = "README" | |
22 | VERSIONFILE = os.path.join("mediagoblin", "_version.py") | |
23 | VSRE = r"^__version__ = ['\"]([^'\"]*)['\"]" | |
24 | ||
25 | ||
26 | def get_version(): | |
27 | verstrline = open(VERSIONFILE, "rt").read() | |
28 | mo = re.search(VSRE, verstrline, re.M) | |
29 | if mo: | |
30 | return mo.group(1) | |
31 | else: | |
243c3843 NY |
32 | raise RuntimeError("Unable to find version string in %s." % |
33 | VERSIONFILE) | |
cf37fffc | 34 | |
26990bc0 AL |
35 | try: |
36 | setup( | |
243c3843 NY |
37 | name="mediagoblin", |
38 | version=get_version(), | |
c1b342ba | 39 | packages=find_packages(exclude=['ez_setup', 'examples', 'tests']), |
31a8ff42 | 40 | zip_safe=False, |
d595374d | 41 | include_package_data = True, |
0c04118b | 42 | # scripts and dependencies |
243c3843 | 43 | install_requires=[ |
0c04118b | 44 | 'setuptools', |
edb55f7f | 45 | 'python-dateutil', |
0c04118b | 46 | 'PasteScript', |
0c04118b | 47 | 'wtforms', |
6755f50e | 48 | 'py-bcrypt', |
cd1fda4d | 49 | 'pytest>=2.3.1', |
39a71c09 | 50 | 'pytest-xdist', |
df7e06c4 | 51 | 'werkzeug>=0.7', |
6a01fafc | 52 | 'celery>=3.0', |
904caab6 | 53 | 'kombu', |
132a68b5 CAW |
54 | 'jinja2', |
55 | 'sphinx', | |
130b85f8 | 56 | 'Babel<1.0', |
029cad45 | 57 | 'argparse', |
db9ab08a | 58 | 'webtest<2', |
f970e6e5 | 59 | 'ConfigObj', |
44e2da2f | 60 | 'Markdown', |
2d7b6bde | 61 | 'sqlalchemy>=0.8.0', |
99812bbc | 62 | 'sqlalchemy-migrate', |
394a4a37 | 63 | 'mock', |
c7424612 | 64 | 'itsdangerous', |
f1c3807d | 65 | 'pytz', |
bc92ff9d | 66 | 'six', |
6b61a51e | 67 | 'oauthlib==0.5.0', |
e535b9b3 CAW |
68 | ## This is optional! |
69 | # 'translitcodec', | |
d45e3966 CAW |
70 | ## For now we're expecting that users will install this from |
71 | ## their package managers. | |
72 | # 'lxml', | |
33e902e3 | 73 | # 'PIL', |
0c04118b | 74 | ], |
1b766201 | 75 | # requires=['gst'], |
4b5f4e87 | 76 | test_suite='nose.collector', |
243c3843 | 77 | entry_points="""\ |
b7e57b1f WKG |
78 | [console_scripts] |
79 | gmg = mediagoblin.gmg_commands:main_cli | |
fbeeacd7 | 80 | pybabel = mediagoblin.babel.messages.frontend:main |
029cad45 | 81 | |
b7e57b1f WKG |
82 | [paste.app_factory] |
83 | app = mediagoblin.app:paste_app_factory | |
df0953ce | 84 | |
72ae87af CAW |
85 | [paste.filter_app_factory] |
86 | errors = mediagoblin.errormiddleware:mgoblin_error_middleware | |
87 | ||
b7e57b1f WKG |
88 | [zc.buildout] |
89 | make_user_dev_dirs = mediagoblin.buildout_recipes:MakeUserDevDirs | |
84d4f04e | 90 | |
b7e57b1f WKG |
91 | [babel.extractors] |
92 | jinja2 = jinja2.ext:babel_extract | |
93 | """, | |
b7e57b1f WKG |
94 | license='AGPLv3', |
95 | author='Free Software Foundation and contributors', | |
96 | author_email='cwebber@gnu.org', | |
97 | url="http://mediagoblin.org/", | |
98 | download_url="http://mediagoblin.org/download/", | |
cf37fffc | 99 | long_description=open(READMEFILE).read(), |
b7e57b1f WKG |
100 | classifiers=[ |
101 | "Development Status :: 3 - Alpha", | |
102 | "Environment :: Web Environment", | |
1ac1f00e | 103 | "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", |
b7e57b1f WKG |
104 | "Operating System :: OS Independent", |
105 | "Programming Language :: Python", | |
3031764d WKG |
106 | 'Programming Language :: Python :: 2.6', |
107 | 'Programming Language :: Python :: 2.7', | |
b7e57b1f WKG |
108 | "Topic :: Internet :: WWW/HTTP :: Dynamic Content" |
109 | ], | |
31a8ff42 | 110 | ) |
26990bc0 AL |
111 | except TypeError, e: |
112 | # Check if the problem is caused by the sqlalchemy/setuptools conflict | |
113 | msg_as_str = str(e) | |
114 | if not (msg_as_str == 'dist must be a Distribution instance'): | |
115 | raise | |
116 | ||
117 | # If so, tell the user it is OK to just run the script again. | |
118 | print "\n\n---------- NOTE ----------" | |
119 | print "The setup.py command you ran failed." | |
120 | print "" | |
121 | print ("It is a known possible failure. Just run it again. It works the " | |
122 | "second time.") | |
123 | import sys | |
124 | sys.exit(1) |