In this commit, I added a new column which will be used for RDFa metadata of
[mediagoblin.git] / setup.py
index 14a9a24f61e9f1e9355cff0589600afe32973bcf..59f0ab8ff796c7d2a7d6b8a59beea9581bb2ca74 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -32,8 +32,8 @@ def get_version():
         raise RuntimeError("Unable to find version string in %s." %
                            VERSIONFILE)
 
-
-setup(
+try:
+    setup(
     name="mediagoblin",
     version=get_version(),
     packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
@@ -42,27 +42,43 @@ setup(
     # scripts and dependencies
     install_requires=[
         'setuptools',
+        'python-dateutil',
         'PasteScript',
         'wtforms',
         'py-bcrypt',
         'pytest>=2.3.1',
         'pytest-xdist',
         'werkzeug>=0.7',
-        'celery==2.5.3',
-        'kombu==2.1.7',
+        'celery>=3.0',
+        'kombu',
         'jinja2',
         'sphinx',
-        'Babel<1.0',
+        'Babel>=1.0',
         'argparse',
         'webtest<2',
         'ConfigObj',
         'Markdown',
-        'sqlalchemy>=0.8.0',
-        'sqlalchemy-migrate',
+        'sqlalchemy<0.9.0, >0.8.0',
+        # newer sqlalchemy-migrate requires pbr which BREAKS EVERYTHING AND IS
+        #  TERRIBLE AND IS THE END OF ALL THINGS
+        #  I'd love to remove this restriction.
+        'sqlalchemy-migrate<0.8',
         'mock',
         'itsdangerous',
         'pytz',
-        'six',
+        'oauthlib==0.5.0',
+        'unidecode',
+        'ExifRead',
+
+        # PLEASE change this when we can; a dependency is forcing us to set this
+        # specific number and it is breaking setup.py develop
+        'six==1.5.2'
+
+        ## Annoying.  Please remove once we can!  We only indirectly
+        ## use pbr, and currently it breaks things, presumably till
+        ## their next release.
+        # 'pbr==0.5.22',
+
         ## This is optional!
         # 'translitcodec',
         ## For now we're expecting that users will install this from
@@ -106,3 +122,17 @@ setup(
         "Topic :: Internet :: WWW/HTTP :: Dynamic Content"
         ],
     )
+except TypeError, e:
+    # Check if the problem is caused by the sqlalchemy/setuptools conflict
+    msg_as_str = str(e)
+    if not (msg_as_str == 'dist must be a Distribution instance'):
+        raise
+
+    # If so, tell the user it is OK to just run the script again.
+    print "\n\n---------- NOTE ----------"
+    print "The setup.py command you ran failed."
+    print ""
+    print ("It is a known possible failure. Just run it again. It works the "
+           "second time.")
+    import sys
+    sys.exit(1)