X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=setup.py;h=36db48c45da7e163fd896ec8954205c69c55c1a8;hb=e61618897111ee6184afb3625d79cedd9e072b07;hp=b9fe179907706727df60d59c03380203b4a83f9a;hpb=61993e43fc3635a43480ae2a35d03e2a295c5382;p=odoo%2Fodoo.git diff --git a/setup.py b/setup.py old mode 100755 new mode 100644 index b9fe179..36db48c --- a/setup.py +++ b/setup.py @@ -1,191 +1,80 @@ -#!/usr/bin/env python -# -*- encoding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# Copyright (C) 2004-2009 Tiny SPRL (). All Rights Reserved -# $Id$ -# -# 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 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -############################################################################## -# setup from TinERP -# taken from straw http://www.nongnu.org/straw/index.html -# taken from gnomolicious http://www.nongnu.org/gnomolicious/ -# adapted by Nicolas Évrard -# - -import imp -import sys import os -import glob +import re +import sys +from setuptools import setup -from distutils.core import setup, Command -from distutils.command.install import install +execfile('addons/web/common/release.py') -if os.name == 'nt': +version_dash_incompatible = False +if 'bdist_rpm' in sys.argv: + version_dash_incompatible = True +try: import py2exe - -sys.path.append(os.path.join(os.path.abspath(os.path.dirname(__file__)), "bin")) - -opj = os.path.join - -execfile(opj('bin', 'release.py')) - -if sys.argv[1] != 'bdist_rpm': - version = version + '-' + release - -# get python short version -py_short_version = '%s.%s' % sys.version_info[:2] - -required_modules = [ - ('psycopg2', 'PostgreSQL module'), - ('xml', 'XML Tools for python'), - ('libxml2', 'libxml2 python bindings'), - ('libxslt', 'libxslt python bindings'), - ('reportlab', 'reportlab module'), - ('pychart', 'pychart module'), - ('pydot', 'pydot module'), -] - -def check_modules(): - ok = True - for modname, desc in required_modules: - try: - exec('import %s' % modname) - except ImportError: - ok = False - print 'Error: python module %s (%s) is required' % (modname, desc) - - if not ok: - sys.exit(1) - -def find_addons(): - for (dp, dn, names) in os.walk(opj('bin', 'addons')): - if '__terp__.py' in names: - modname = dp.replace(os.path.sep, '.').replace('bin', 'openerp-server', 1) - yield modname - -def data_files(): - '''Build list of data files to be installed''' - files = [] - if os.name == 'nt': - os.chdir('bin') - for (dp,dn,names) in os.walk('addons'): - files.append((dp, map(lambda x: opj('bin', dp, x), names))) - os.chdir('..') - for (dp,dn,names) in os.walk('doc'): - files.append((dp, map(lambda x: opj(dp, x), names))) - files.append(('.', [opj('bin', 'import_xml.rng'), - opj('bin', 'server.pkey'), - opj('bin', 'server.cert')])) - else: - man_directory = opj('share', 'man') - files.append((opj(man_directory, 'man1'), ['man/openerp-server.1'])) - files.append((opj(man_directory, 'man5'), ['man/openerp_serverrc.5'])) - - doc_directory = opj('share', 'doc', 'openerp-server-%s' % version) - files.append((doc_directory, [f for f in glob.glob('doc/*') if os.path.isfile(f)])) - files.append((opj(doc_directory, 'migrate', '3.3.0-3.4.0'), [f for f in glob.glob('doc/migrate/3.3.0-3.4.0/*') if os.path.isfile(f)])) - files.append((opj(doc_directory, 'migrate', '3.4.0-4.0.0'), [f for f in glob.glob('doc/migrate/3.4.0-4.0.0/*') if os.path.isfile(f)])) - - openerp_site_packages = opj('lib', 'python%s' % py_short_version, 'site-packages', 'openerp-server') - - files.append((openerp_site_packages, [opj('bin', 'import_xml.rng'), - opj('bin', 'server.pkey'), - opj('bin', 'server.cert')])) - - for addon in find_addons(): - addonname = addon.split('.')[-1] - add_path = addon.replace('.', os.path.sep).replace('openerp-server', 'bin', 1) - addon_path = opj('lib', 'python%s' % py_short_version, 'site-packages', add_path.replace('bin', 'openerp-server', 1)) - pathfiles = [] - for root, dirs, innerfiles in os.walk(add_path): - innerfiles = filter(lambda file: os.path.splitext(file)[1] not in ('.pyc', '.pyd', '.pyo'), innerfiles) - if innerfiles: - res = os.path.normpath(opj(addon_path, root.replace(opj('bin','addons', addonname), '.'))) - pathfiles.extend(((res, map(lambda file: opj(root, file), innerfiles)),)) - files.extend(pathfiles) - - return files - -check_modules() - -f = file('openerp-server','w') -start_script = """#!/bin/sh\necho "OpenERP Setup - The content of this file is generated at the install stage\n" """ -f.write(start_script) -f.close() - -class openerp_server_install(install): - def run(self): - # create startup script - start_script = "#!/bin/sh\ncd %s\nexec %s ./openerp-server.py $@\n" % (opj(self.install_libbase, "openerp-server"), sys.executable) - # write script - f = open('openerp-server', 'w') - f.write(start_script) - f.close() - install.run(self) - -options = { - "py2exe": { - "compressed": 1, - "optimize": 2, - "packages": ["lxml", "lxml.builder", "lxml._elementpath", "lxml.etree", - "lxml.objectify", "decimal", "xml", "xml.dom", "xml.xpath", - "encodings","mx.DateTime","wizard","pychart","PIL", "pyparsing", - "pydot","asyncore","asynchat", "reportlab", "vobject", - "HTMLParser", "select"], - "excludes" : ["Tkconstants","Tkinter","tcl"], - } -} - -setup(name = name, - version = version, - description = description, - long_description = long_desc, - url = url, - author = author, - author_email = author_email, - classifiers = filter(None, classifiers.split("\n")), - license = license, - data_files = data_files(), - cmdclass = { - 'install' : openerp_server_install, - }, - scripts = ['openerp-server'], - packages = ['openerp-server', - 'openerp-server.addons', - 'openerp-server.ir', - 'openerp-server.osv', - 'openerp-server.service', - 'openerp-server.tools', - 'openerp-server.report', - 'openerp-server.report.printscreen', - 'openerp-server.report.pyPdf', - 'openerp-server.report.render', - 'openerp-server.report.render.rml2pdf', - 'openerp-server.report.render.rml2html', - 'openerp-server.wizard', - 'openerp-server.report.render.odt2odt', - 'openerp-server.workflow'] + \ - list(find_addons()), - package_dir = {'openerp-server': 'bin'}, - console = [ { "script" : "bin\\openerp-server.py", "icon_resources" : [ (1,"pixmaps\\openerp-icon.ico") ] } ], - options = options, - ) - - -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: - + from py2exe_utils import opts + version_dash_incompatible = True +except ImportError: + opts = {} +if version_dash_incompatible: + version = version.split('-')[0] + +FILE_PATTERNS = \ + r'.+\.(py|cfg|po|pot|mo|txt|rst|gif|png|jpg|ico|mako|html|js|css|htc|swf)$' +def find_data_files(source, patterns=FILE_PATTERNS): + file_matcher = re.compile(patterns, re.I) + out = [] + for base, _, files in os.walk(source): + cur_files = [] + for f in files: + if file_matcher.match(f): + cur_files.append(os.path.join(base, f)) + if cur_files: + out.append( + (base, cur_files)) + + return out + +setup( + name=name, + version=version, + description=description, + long_description=long_description, + author=author, + author_email=author_email, + url=url, + download_url=download_url, + license=license, + install_requires=[ + "Babel >= 0.9.6", + "simplejson >= 2.0.9", + "python-dateutil >= 1.4.1", + "pytz", + "werkzeug == 0.7", + ], + tests_require=[ + 'unittest2', + 'mock', + ], + test_suite = 'unittest2.collector', + zip_safe=False, + packages=[ + 'addons', + 'addons.base', + 'addons.base.controllers', + 'addons.base_calendar', + 'addons.base_hello', + 'openerpweb', + ], + classifiers=[ + 'Development Status :: 6 - Production/Stable', + 'Operating System :: OS Independent', + 'Programming Language :: Python', + 'Environment :: Web Environment', + 'Topic :: Office/Business :: Financial', + ], + scripts=['scripts/openerp-web'], + data_files=(find_data_files('addons') + + opts.pop('data_files', []) + ), + **opts +)