# HG changeset patch # User Goffi # Date 1393594785 -3600 # Node ID 4054cf716322ecdc5fd8794ee51b8b3cd5664839 # Parent 3a943b5f2cec9d318fc4fc65d1ac20328bd49aed setup.py fixes and improvments diff -r 3a943b5f2cec -r 4054cf716322 setup.py --- a/setup.py Thu Feb 27 18:42:42 2014 +0100 +++ b/setup.py Fri Feb 28 14:39:45 2014 +0100 @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python2 # -*- coding: utf-8 -*- # SAT: a jabber client @@ -30,6 +30,10 @@ NAME = 'sat' LAUNCH_DAEMON_COMMAND = 'sat' +ENV_SAT_INSTALL = "SAT_INSTALL" # environment variable to customise installation +NO_PREINSTALL_OPT = 'nopreinstall' # skip all preinstallation checks +AUTO_DEB_OPT = 'autodeb' # automaticaly install debs +NO_X_OPT = 'nox' # don't install X dependant packages class MercurialException(Exception): pass @@ -89,13 +93,15 @@ self.custom_create_links() -def preinstall_check(): +def preinstall_check(install_opt): """Check presence of problematic dependencies, and try to install them with package manager This ugly stuff is necessary as distributions are not installed correctly with setuptools/distribute Hope to remove this at some point""" #modules_tocheck = ['twisted', 'twisted.words', 'twisted.web', 'wx', 'urwid'] - modules_tocheck = ['wx', 'gobject'] # XXX: wx is the only one to be really difficult to install, python-gobject is not up-to-date in PyPi + modules_tocheck = ['gobject'] # XXX: python-gobject is not up-to-date in PyPi + if NO_X_OPT not in install_opt: + modules_tocheck.append('wx') # wx is the only one to be really difficult to install package = {'twisted': 'python-twisted-core', 'twisted.words': 'python-twisted-words', @@ -115,8 +121,12 @@ modules_toinstall.append('mercurial')""" # hg can be installed from pypi if modules_toinstall: - # are we on a distribution using apt ? - apt_path = subprocess.Popen('which apt-get', stdout=subprocess.PIPE, shell=True).communicate()[0][:-1] + if AUTO_DEB_OPT in install_opt: # auto debian installation is requested + # are we on a distribution using apt ? + apt_path = subprocess.Popen('which apt-get', stdout=subprocess.PIPE, shell=True).communicate()[0][:-1] + else: + apt_path = None + not_installed = set() if apt_path: # we have apt, we'll try to use it @@ -136,12 +146,11 @@ sys.stdout.write("- %s (Debian name: %s)\n" % (module_name, package[module_name])) sys.exit(2) - if sys.argv[1].lower() in ['egg_info', 'install']: # we only check dependencies if egg_info or install is used - install_opt = os.environ.get("SAT_INSTALL", "") - if not "nopreinstall" in install_opt: # user can force preinstall skipping - preinstall_check() + install_opt = os.environ.get(ENV_SAT_INSTALL, "").split() + if not NO_PREINSTALL_OPT in install_opt: # user can force preinstall skipping + preinstall_check(install_opt) setup(name=NAME, version='0.4.0', @@ -149,7 +158,7 @@ long_description=u'Salut à Toi (SàT) is a XMPP client based on a daemon/frontend architecture. Its multi-frontends (desktop, web, console interface, CLI, etc) and multi-purposes (instant messaging, microblogging, games, file sharing, etc).', author='Goffi (Jérôme Poisson)', author_email='goffi@goffi.org', - url='http://sat.goffi.org', + url='http://www.salut-a-toi.org', classifiers=['Development Status :: 3 - Alpha', 'Environment :: Console', 'Environment :: X11 Applications :: GTK', @@ -169,6 +178,6 @@ scripts=['frontends/src/jp/jp', 'frontends/src/primitivus/primitivus', 'frontends/src/wix/wix'], zip_safe=False, dependency_links=['http://www.blarg.net/%7Esteveha/pyfeed-0.7.4.tar.gz', 'http://www.blarg.net/%7Esteveha/xe-0.7.4.tar.gz'], - install_requires=['twisted', 'wokkel >= 0.7.1', 'progressbar', 'urwid >= 1.1.0', 'urwid-satext', 'pyfeed', 'xe', 'mutagen', 'PIL', 'lxml'], + install_requires=['twisted', 'wokkel >= 0.7.1', 'progressbar', 'urwid >= 1.1.0', 'urwid-satext >= 0.3.0', 'pyfeed', 'xe', 'mutagen', 'PIL', 'lxml', 'markdown', 'html2text'], cmdclass={'install': CustomInstall}, ) # XXX: wxpython doesn't work, it's managed with preinstall_check