From d1e40a55aff988007d33fccff401e9e31caaf768 Mon Sep 17 00:00:00 2001 From: Antony Lesuisse <al@openerp.com> Date: Mon, 26 Sep 2011 02:54:44 +0200 Subject: [PATCH] [IMP] directory cleanups, moved historical cruft into history bzr revid: al@openerp.com-20110926005444-a7vqjb05vep7xbvj --- MANIFEST.in | 12 +- README | 155 ++++++++++++++++-- {doc => history}/Changelog | 0 {doc => history}/Changelog-4.x | 0 {doc => history}/Changelog-6.x | 0 {doc => history}/INSTALL | 0 {doc => history}/README.urpmi | 0 {doc => history}/README.userchange | 0 {tools => history}/change-loglevel.sh | 0 .../check_profile_l10n_all.py | 0 {sql => history}/clean-model.sql | 0 {tools => history}/gen_graph.sh | 0 {tools => history}/get-srvstats.sh | 0 {tools => history}/list-services.sh | 0 {doc => history}/migrate/3.3.0-3.4.0/README | 0 {doc => history}/migrate/3.3.0-3.4.0/post.py | 0 {doc => history}/migrate/3.3.0-3.4.0/pre.py | 0 {doc => history}/migrate/3.4.0-4.0.0/README | 0 .../migrate/3.4.0-4.0.0/post-tiny.py | 0 {doc => history}/migrate/3.4.0-4.0.0/post.py | 0 .../migrate/3.4.0-4.0.0/pre-tiny.py | 0 {doc => history}/migrate/3.4.0-4.0.0/pre.py | 0 {doc => history}/migrate/4.0.0-4.2.0/pre.py | 0 .../migrate/4.0.0-4.2.0/tiny/README | 0 .../migrate/4.0.0-4.2.0/tiny/pre-tiny.py | 0 {doc => history}/migrate/4.2.0-4.4.0/pre.py | 0 {tools => history}/module_graph.py | 0 {tools => history}/xml2yml.py | 0 {pixmaps => install}/openerp-header.bmp | Bin {pixmaps => install}/openerp-header.png | Bin {pixmaps => install}/openerp-icon.ico | Bin {pixmaps => install}/openerp-icon.png | Bin {man => install}/openerp-server.1 | 0 {doc => install}/openerp-server.conf | 0 {doc => install}/openerp-server.init | 0 {doc => install}/openerp-server.logrotate | 0 {pixmaps => install}/openerp.ico | Bin {pixmaps => install}/openerp.png | Bin {man => install}/openerp_serverrc.5 | 0 ssl-cert.cfg => install/ssl-cert.cfg | 0 openerp/addons/base/res/res_company.py | 4 +- .../addons/base/res/res_company_logo.png | Bin pixmaps/openerp-intro.bmp | Bin 154542 -> 0 bytes pixmaps/openerp-slogan.bmp | Bin 142054 -> 0 bytes setup.README | 27 --- setup.cfg | 2 +- setup.py | 71 +++----- rpminstall_sh.txt => setup_rpm.sh | 0 48 files changed, 170 insertions(+), 101 deletions(-) rename {doc => history}/Changelog (100%) rename {doc => history}/Changelog-4.x (100%) rename {doc => history}/Changelog-6.x (100%) rename {doc => history}/INSTALL (100%) rename {doc => history}/README.urpmi (100%) rename {doc => history}/README.userchange (100%) rename {tools => history}/change-loglevel.sh (100%) rename {doc/tests => history}/check_profile_l10n_all.py (100%) rename {sql => history}/clean-model.sql (100%) rename {tools => history}/gen_graph.sh (100%) rename {tools => history}/get-srvstats.sh (100%) rename {tools => history}/list-services.sh (100%) rename {doc => history}/migrate/3.3.0-3.4.0/README (100%) rename {doc => history}/migrate/3.3.0-3.4.0/post.py (100%) rename {doc => history}/migrate/3.3.0-3.4.0/pre.py (100%) rename {doc => history}/migrate/3.4.0-4.0.0/README (100%) rename {doc => history}/migrate/3.4.0-4.0.0/post-tiny.py (100%) rename {doc => history}/migrate/3.4.0-4.0.0/post.py (100%) rename {doc => history}/migrate/3.4.0-4.0.0/pre-tiny.py (100%) rename {doc => history}/migrate/3.4.0-4.0.0/pre.py (100%) rename {doc => history}/migrate/4.0.0-4.2.0/pre.py (100%) rename {doc => history}/migrate/4.0.0-4.2.0/tiny/README (100%) rename {doc => history}/migrate/4.0.0-4.2.0/tiny/pre-tiny.py (100%) rename {doc => history}/migrate/4.2.0-4.4.0/pre.py (100%) rename {tools => history}/module_graph.py (100%) rename {tools => history}/xml2yml.py (100%) rename {pixmaps => install}/openerp-header.bmp (100%) rename {pixmaps => install}/openerp-header.png (100%) rename {pixmaps => install}/openerp-icon.ico (100%) rename {pixmaps => install}/openerp-icon.png (100%) rename {man => install}/openerp-server.1 (100%) rename {doc => install}/openerp-server.conf (100%) rename {doc => install}/openerp-server.init (100%) rename {doc => install}/openerp-server.logrotate (100%) rename {pixmaps => install}/openerp.ico (100%) rename {pixmaps => install}/openerp.png (100%) rename {man => install}/openerp_serverrc.5 (100%) rename ssl-cert.cfg => install/ssl-cert.cfg (100%) rename pixmaps/your_logo.png => openerp/addons/base/res/res_company_logo.png (100%) delete mode 100644 pixmaps/openerp-intro.bmp delete mode 100644 pixmaps/openerp-slogan.bmp delete mode 100644 setup.README rename rpminstall_sh.txt => setup_rpm.sh (100%) diff --git a/MANIFEST.in b/MANIFEST.in index 6cd10b511cf8..70715f18bc21 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,18 +1,12 @@ -include rpminstall_sh.txt # TODO do we need this file ? include README include LICENSE include MANIFEST.in include setup.nsi include setup.cfg -#include openerp/server.cert -#include openerp/server.pkey -#include openerp/gpl.txt -include man/openerp-server.1 -include man/openerp_serverrc.5 -recursive-include pixmaps *bmp *ico *png +include setup_rpm.sh recursive-include win32 *.py *.bat -recursive-include openerp *css *csv *html *png *po *pot -recursive-include openerp *rml *rng *sql *sxw *xml *xsl *yml +recursive-include openerp *css *csv *html *png *po *pot *rml *rng *sql *sxw *xml *xsl *yml +graft install graft debian graft doc global-exclude *pyc *~ # Exclude possible garbage from previous graft. diff --git a/README b/README index 5725ce9f8664..a6fe10c8ffb0 100644 --- a/README +++ b/README @@ -1,17 +1,138 @@ -About OpenERP ---------------- - -OpenERP is a free Enterprise Resource Planning and Customer Relationship -Management software. It is mainly developed to meet changing needs. - -The main functional features are: CRM & SRM, analytic and financial accounting, -double-entry stock management, sales and purchases management, tasks automation, -help desk, marketing campaign, ... and vertical modules for very specific -businesses. - -Technical features include a distributed server, flexible workflows, an object -database, dynamic GUIs, customizable reports, NET-RPC and XML-RPC interfaces, ... - -For more information, please visit: -http://www.openerp.com - +About OpenERP +------------- + +OpenERP is a free Enterprise Resource Planning and Customer Relationship +Management software. It is mainly developed to meet changing needs. + +The main functional features are: CRM & SRM, analytic and financial accounting, +double-entry stock management, sales and purchases management, tasks automation, +help desk, marketing campaign, ... and vertical modules for very specific +businesses. + +Technical features include a distributed server, flexible workflows, an object +database, dynamic GUIs, customizable reports, NET-RPC and XML-RPC interfaces, ... + +For more information, please visit: +http://www.openerp.com + +OpenERP Quick Installation Guide +--------------------------------- + +This file contains a quick guide to configure and install the OpenERP server. + +Required dependencies: +--------------------- + +You need the following software installed: + + * Python 2.5 or 2.6 + * Postgresql 8.2 or above + * Psycopg2 python module + * Reportlab pdf generation library for python + * lxml python module + * pytz python module + * PyYaml python module (install with: easy_install PyYaml) + +Some dependencies are only required for specific purposes: + +for rendering workflows graphs, you need: + * graphviz + * pyparsing + +For Luxembourg localization, you also need: + * pdftk (http://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/) + +for generating reports using non .jpg images, you need: + * Python Imaging Library for python + +For Debian-based distributions, the required packages can be installed with the +following command: + + #> apt-get install -y postgresql graphviz python-psycopg2 python-lxml python-tz python-imaging + +For Fedora +if they are not installed, install: +python and postgresql + +uses yum or you can recover required packages on fedora web site in "core" or "extra" repository : +postgresql-python +python-lxml +python-imaging +python-psycopg2 +python-reportlab +graphviz +You can find pyparsing at http://pyparsing.sourceforge.net/ + +1. Check that all the required dependencies are installed. + +2. Launch the program "python ./bin/openerp-server.py -r db_user -w db_password --db_host 127.0.0.1". +See the man page for more information about options. + +3. Connect to the server using the GUI client. And follow the instructions to create a new database. + +Installation Steps +------------------ + +1. Check that all the required dependencies are installed. + +2. Create a postgresql database. + +The default database name is "terp". If you want to use another name, you +will need to provide it when launching the server (by using the commandline +option --database). + +To create a postgresql database named "terp" using the following command: + $ createdb --encoding=UNICODE terp + +If it is the first time you use postgresql you might need to create a new user +to the postgres system using the following commands (where myusername is your +unix user name): + + $ su - + # su - postgres + $ createuser openerp + Shall the new user be allowed to create databases? (y/n) y + Shall the new user be allowed to create more new users? (y/n) y + CREATE USER + $ logout + # logout + +3. Launch service daemon by "service openerp-server start". + +The first time it is run, the server will initialise the database with all the default values. + +4. Connect to the server using the GUI client. + +There are two accounts by default: + * login: admin, password:admin + * login: demo, password:demo + +Some instructions to use setup.py for a user-install. +This file should/will be moved on a proper documentation place later. + + +- Possibly clean any left-over of the previous build. + > rm -rf dist openerp_server.egg-info + +- Possibly copy the addons in the server if we want them to be packaged + together: + > rsync -av --delete \ + --exclude .bzr/ \ + --exclude .bzrignore \ + --exclude /__init__.py \ + --exclude /base \ + --exclude /base_quality_interrogation.py \ + <path-to-addons> openerp/addons + +- Create the user-local directory where we want the package to be installed: + > mkdir -p /home/openerp/openerp-tmp/lib/python2.6/site-packages/ + +- Use --prefix to specify where the package is installed and include that + place in PYTHONPATH: + > PYTHONPATH=/home/openerp/openerp-tmp/lib/python2.6/site-packages/ \ + python setup.py install --prefix=/home/openerp/openerp-tmp + +- Run the main script, again specifying the PYTHONPATH: + > PYTHONPATH=/home/openerp/openerp-tmp/lib/python2.6/site-packages/ \ + /home/openerp/openerp-tmp/bin/openerp-server + diff --git a/doc/Changelog b/history/Changelog similarity index 100% rename from doc/Changelog rename to history/Changelog diff --git a/doc/Changelog-4.x b/history/Changelog-4.x similarity index 100% rename from doc/Changelog-4.x rename to history/Changelog-4.x diff --git a/doc/Changelog-6.x b/history/Changelog-6.x similarity index 100% rename from doc/Changelog-6.x rename to history/Changelog-6.x diff --git a/doc/INSTALL b/history/INSTALL similarity index 100% rename from doc/INSTALL rename to history/INSTALL diff --git a/doc/README.urpmi b/history/README.urpmi similarity index 100% rename from doc/README.urpmi rename to history/README.urpmi diff --git a/doc/README.userchange b/history/README.userchange similarity index 100% rename from doc/README.userchange rename to history/README.userchange diff --git a/tools/change-loglevel.sh b/history/change-loglevel.sh similarity index 100% rename from tools/change-loglevel.sh rename to history/change-loglevel.sh diff --git a/doc/tests/check_profile_l10n_all.py b/history/check_profile_l10n_all.py similarity index 100% rename from doc/tests/check_profile_l10n_all.py rename to history/check_profile_l10n_all.py diff --git a/sql/clean-model.sql b/history/clean-model.sql similarity index 100% rename from sql/clean-model.sql rename to history/clean-model.sql diff --git a/tools/gen_graph.sh b/history/gen_graph.sh similarity index 100% rename from tools/gen_graph.sh rename to history/gen_graph.sh diff --git a/tools/get-srvstats.sh b/history/get-srvstats.sh similarity index 100% rename from tools/get-srvstats.sh rename to history/get-srvstats.sh diff --git a/tools/list-services.sh b/history/list-services.sh similarity index 100% rename from tools/list-services.sh rename to history/list-services.sh diff --git a/doc/migrate/3.3.0-3.4.0/README b/history/migrate/3.3.0-3.4.0/README similarity index 100% rename from doc/migrate/3.3.0-3.4.0/README rename to history/migrate/3.3.0-3.4.0/README diff --git a/doc/migrate/3.3.0-3.4.0/post.py b/history/migrate/3.3.0-3.4.0/post.py similarity index 100% rename from doc/migrate/3.3.0-3.4.0/post.py rename to history/migrate/3.3.0-3.4.0/post.py diff --git a/doc/migrate/3.3.0-3.4.0/pre.py b/history/migrate/3.3.0-3.4.0/pre.py similarity index 100% rename from doc/migrate/3.3.0-3.4.0/pre.py rename to history/migrate/3.3.0-3.4.0/pre.py diff --git a/doc/migrate/3.4.0-4.0.0/README b/history/migrate/3.4.0-4.0.0/README similarity index 100% rename from doc/migrate/3.4.0-4.0.0/README rename to history/migrate/3.4.0-4.0.0/README diff --git a/doc/migrate/3.4.0-4.0.0/post-tiny.py b/history/migrate/3.4.0-4.0.0/post-tiny.py similarity index 100% rename from doc/migrate/3.4.0-4.0.0/post-tiny.py rename to history/migrate/3.4.0-4.0.0/post-tiny.py diff --git a/doc/migrate/3.4.0-4.0.0/post.py b/history/migrate/3.4.0-4.0.0/post.py similarity index 100% rename from doc/migrate/3.4.0-4.0.0/post.py rename to history/migrate/3.4.0-4.0.0/post.py diff --git a/doc/migrate/3.4.0-4.0.0/pre-tiny.py b/history/migrate/3.4.0-4.0.0/pre-tiny.py similarity index 100% rename from doc/migrate/3.4.0-4.0.0/pre-tiny.py rename to history/migrate/3.4.0-4.0.0/pre-tiny.py diff --git a/doc/migrate/3.4.0-4.0.0/pre.py b/history/migrate/3.4.0-4.0.0/pre.py similarity index 100% rename from doc/migrate/3.4.0-4.0.0/pre.py rename to history/migrate/3.4.0-4.0.0/pre.py diff --git a/doc/migrate/4.0.0-4.2.0/pre.py b/history/migrate/4.0.0-4.2.0/pre.py similarity index 100% rename from doc/migrate/4.0.0-4.2.0/pre.py rename to history/migrate/4.0.0-4.2.0/pre.py diff --git a/doc/migrate/4.0.0-4.2.0/tiny/README b/history/migrate/4.0.0-4.2.0/tiny/README similarity index 100% rename from doc/migrate/4.0.0-4.2.0/tiny/README rename to history/migrate/4.0.0-4.2.0/tiny/README diff --git a/doc/migrate/4.0.0-4.2.0/tiny/pre-tiny.py b/history/migrate/4.0.0-4.2.0/tiny/pre-tiny.py similarity index 100% rename from doc/migrate/4.0.0-4.2.0/tiny/pre-tiny.py rename to history/migrate/4.0.0-4.2.0/tiny/pre-tiny.py diff --git a/doc/migrate/4.2.0-4.4.0/pre.py b/history/migrate/4.2.0-4.4.0/pre.py similarity index 100% rename from doc/migrate/4.2.0-4.4.0/pre.py rename to history/migrate/4.2.0-4.4.0/pre.py diff --git a/tools/module_graph.py b/history/module_graph.py similarity index 100% rename from tools/module_graph.py rename to history/module_graph.py diff --git a/tools/xml2yml.py b/history/xml2yml.py similarity index 100% rename from tools/xml2yml.py rename to history/xml2yml.py diff --git a/pixmaps/openerp-header.bmp b/install/openerp-header.bmp similarity index 100% rename from pixmaps/openerp-header.bmp rename to install/openerp-header.bmp diff --git a/pixmaps/openerp-header.png b/install/openerp-header.png similarity index 100% rename from pixmaps/openerp-header.png rename to install/openerp-header.png diff --git a/pixmaps/openerp-icon.ico b/install/openerp-icon.ico similarity index 100% rename from pixmaps/openerp-icon.ico rename to install/openerp-icon.ico diff --git a/pixmaps/openerp-icon.png b/install/openerp-icon.png similarity index 100% rename from pixmaps/openerp-icon.png rename to install/openerp-icon.png diff --git a/man/openerp-server.1 b/install/openerp-server.1 similarity index 100% rename from man/openerp-server.1 rename to install/openerp-server.1 diff --git a/doc/openerp-server.conf b/install/openerp-server.conf similarity index 100% rename from doc/openerp-server.conf rename to install/openerp-server.conf diff --git a/doc/openerp-server.init b/install/openerp-server.init similarity index 100% rename from doc/openerp-server.init rename to install/openerp-server.init diff --git a/doc/openerp-server.logrotate b/install/openerp-server.logrotate similarity index 100% rename from doc/openerp-server.logrotate rename to install/openerp-server.logrotate diff --git a/pixmaps/openerp.ico b/install/openerp.ico similarity index 100% rename from pixmaps/openerp.ico rename to install/openerp.ico diff --git a/pixmaps/openerp.png b/install/openerp.png similarity index 100% rename from pixmaps/openerp.png rename to install/openerp.png diff --git a/man/openerp_serverrc.5 b/install/openerp_serverrc.5 similarity index 100% rename from man/openerp_serverrc.5 rename to install/openerp_serverrc.5 diff --git a/ssl-cert.cfg b/install/ssl-cert.cfg similarity index 100% rename from ssl-cert.cfg rename to install/ssl-cert.cfg diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py index dc07b55a78ef..51d796a3a1ef 100644 --- a/openerp/addons/base/res/res_company.py +++ b/openerp/addons/base/res/res_company.py @@ -245,9 +245,7 @@ class res_company(osv.osv): return False def _get_logo(self, cr, uid, ids): - return open(os.path.join( - tools.config['root_path'], '..', 'pixmaps', 'your_logo.png'), - 'rb') .read().encode('base64') + return open(os.path.join( tools.config['root_path'], 'addons', 'base', 'res', 'res_company_logo.png'), 'rb') .read().encode('base64') _header = """ <header> diff --git a/pixmaps/your_logo.png b/openerp/addons/base/res/res_company_logo.png similarity index 100% rename from pixmaps/your_logo.png rename to openerp/addons/base/res/res_company_logo.png diff --git a/pixmaps/openerp-intro.bmp b/pixmaps/openerp-intro.bmp deleted file mode 100644 index 8d3c9340c9b929dd4837f6fbc93a96e5ffa02bc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154542 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 X03?6`YYEAK8RIXPzgXb^s|EfKgFv}o diff --git a/pixmaps/openerp-slogan.bmp b/pixmaps/openerp-slogan.bmp deleted file mode 100644 index a3cffd104f2b29c17f82a452d7503df0cdc576a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142054 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 diff --git a/setup.README b/setup.README deleted file mode 100644 index 5ee564ecfb42..000000000000 --- a/setup.README +++ /dev/null @@ -1,27 +0,0 @@ -Some instructions to use setup.py for a user-install. -This file should/will be moved on a proper documentation place later. - -- Possibly clean any left-over of the previous build. - > rm -rf dist openerp_server.egg-info - -- Possibly copy the addons in the server if we want them to be packaged - together: - > rsync -av --delete \ - --exclude .bzr/ \ - --exclude .bzrignore \ - --exclude /__init__.py \ - --exclude /base \ - --exclude /base_quality_interrogation.py \ - <path-to-addons> openerp/addons - -- Create the user-local directory where we want the package to be installed: - > mkdir -p /home/openerp/openerp-tmp/lib/python2.6/site-packages/ - -- Use --prefix to specify where the package is installed and include that - place in PYTHONPATH: - > PYTHONPATH=/home/openerp/openerp-tmp/lib/python2.6/site-packages/ \ - python setup.py install --prefix=/home/openerp/openerp-tmp - -- Run the main script, again specifying the PYTHONPATH: - > PYTHONPATH=/home/openerp/openerp-tmp/lib/python2.6/site-packages/ \ - /home/openerp/openerp-tmp/bin/openerp-server diff --git a/setup.cfg b/setup.cfg index 483eb2f22e19..2f64223e455d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -17,4 +17,4 @@ requires=python >= 2.5 # Need to overwrite the install-part of the RPM to patch # the filenames of the man pages. -install_script=rpminstall_sh.txt +install_script=setup_rpm.sh diff --git a/setup.py b/setup.py index 94c3cf50a923..9595c1a92574 100755 --- a/setup.py +++ b/setup.py @@ -20,15 +20,12 @@ # ############################################################################## -import os, sys -import os +import glob, os, re, setuptools, sys from os.path import join, isfile -import glob -from setuptools import setup, find_packages +execfile(join('openerp', 'release.py')) py2exe_keywords = {} -py2exe_data_files = [] if os.name == 'nt': import py2exe py2exe_keywords['console'] = [ @@ -52,37 +49,30 @@ if os.name == 'nt': "excludes" : ["Tkconstants","Tkinter","tcl"], } } - # TODO is it still necessary now that we don't use the library.zip file? - def data_files(): - '''For Windows, we consider all the addons as data files. - It seems also that package_data below isn't honored by py2exe.''' - files = [] - os.chdir('openerp') - for (dp, dn, names) in os.walk('addons'): - files.append((join('openerp',dp), map(lambda x: join('openerp', dp, x), names))) - os.chdir('..') - files.append(('openerp', [join('openerp', 'import_xml.rng'),])) - - # copy pytz/timzeone - # TODO check if we have to also copy dateutil's timezone data. - import pytz - # Make sure the layout of pytz hasn't changed - assert (pytz.__file__.endswith('__init__.pyc') or - pytz.__file__.endswith('__init__.py')), pytz.__file__ - pytz_dir = os.path.dirname(pytz.__file__) - saved_dir = os.getcwd() - os.chdir(pytz_dir) - for dp, dn, names in os.walk('zoneinfo'): - files.append((join('pytz',dp), map(lambda x: join(pytz_dir, dp, x), names))) - os.chdir(saved_dir) +# List all data files +def data(): + files = [] + for root, dirnames, filenames in os.walk('openerp'): + for filename in filenames: + if not re.match(r'.*(\.pyc|\.pyo|\~)$',filename): + files.append(os.path.join(root, filename)) + d = {} + for v in files: + k=os.path.dirname(v) + if k in d: + d[k].append(v) + else: + d[k]=[v] + r = d.items() + return r - return files - py2exe_data_files = data_files() +def gen_manifest(): + file_list="\n".join(data()) + open('MANIFEST','w').write(file_list) -execfile(join('openerp', 'release.py')) - -setup(name = name, +setuptools.setup( + name = name, version = version, description = description, long_description = long_desc, @@ -91,18 +81,10 @@ setup(name = name, author_email = author_email, classifiers = filter(None, classifiers.split("\n")), license = license, - data_files = [ - (join('man', 'man1'), ['man/openerp-server.1']), - (join('man', 'man5'), ['man/openerp_serverrc.5']), - ('doc', filter(isfile, glob.glob('doc/*'))), - ] + py2exe_data_files, scripts = ['openerp-server'], - packages = find_packages(), - include_package_data = True, - package_data = { - '': ['*.yml', '*.xml', '*.po', '*.pot', '*.csv'], - }, - dependency_links = ['http://download.gna.org/pychart/'], + data_files = data(), + packages = setuptools.find_packages(), + #include_package_data = True, install_requires = [ # We require the same version as caldav for lxml. 'lxml==2.1.5', @@ -114,6 +96,7 @@ setup(name = name, # It is probably safe to move to PyChart 1.39 (the latest one). # (Let setup.py choose the latest one, and we should check we can remove pychart from # our tree.) + # http://download.gna.org/pychart/ 'pychart', 'pydot', 'pytz', diff --git a/rpminstall_sh.txt b/setup_rpm.sh similarity index 100% rename from rpminstall_sh.txt rename to setup_rpm.sh -- GitLab