bzr branch
http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar
| 
45
by Martin Pool
 - add setup.py and install instructions  | 
1  | 
#! /usr/bin/env python
 | 
2  | 
||
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
3  | 
"""Installation script for bzr.
 | 
4  | 
Run it with
 | 
|
5  | 
 './setup.py install', or
 | 
|
6  | 
 './setup.py --help' for more options
 | 
|
7  | 
"""
 | 
|
8  | 
||
| 
1930.3.1
by John Arbash Meinel
 Change setup.py to auto-generate the list of packages to install  | 
9  | 
import os  | 
| 
3185.1.7
by Martin Pool
 Always take README text from the right directory (thanks jam)  | 
10  | 
import os.path  | 
| 
1930.3.1
by John Arbash Meinel
 Change setup.py to auto-generate the list of packages to install  | 
11  | 
import sys  | 
12  | 
||
| 
3260.1.2
by Alexander Belchenko
 use sys.version_info  | 
13  | 
if sys.version_info < (2, 4):  | 
| 
3260.1.1
by Alexander Belchenko
 setup.py script explicitly checks for Python version. (#200569)  | 
14  | 
sys.stderr.write("[ERROR] Not a supported Python version. Need 2.4+\n")  | 
15  | 
sys.exit(1)  | 
|
16  | 
||
| 
3185.1.7
by Martin Pool
 Always take README text from the right directory (thanks jam)  | 
17  | 
# NOTE: The directory containing setup.py, whether run by 'python setup.py' or
 | 
18  | 
# './setup.py' or the equivalent with another path, should always be at the
 | 
|
19  | 
# start of the path, so this should find the right one...
 | 
|
| 
1861.2.21
by Alexander Belchenko
 setup.py: automatically grab version info from bzrlib  | 
20  | 
import bzrlib  | 
21  | 
||
| 
3185.1.7
by Martin Pool
 Always take README text from the right directory (thanks jam)  | 
22  | 
def get_long_description():  | 
23  | 
dirname = os.path.dirname(__file__)  | 
|
24  | 
readme = os.path.join(dirname, 'README')  | 
|
25  | 
f = open(readme, 'rb')  | 
|
26  | 
try:  | 
|
27  | 
return f.read()  | 
|
28  | 
finally:  | 
|
29  | 
f.close()  | 
|
30  | 
||
31  | 
||
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
32  | 
##
 | 
33  | 
# META INFORMATION FOR SETUP
 | 
|
| 
3185.1.2
by Martin Pool
 Add more metadata to setup.py (#183391)  | 
34  | 
# see http://docs.python.org/dist/meta-data.html
 | 
35  | 
META_INFO = {  | 
|
36  | 
'name': 'bzr',  | 
|
37  | 
'version': bzrlib.__version__,  | 
|
38  | 
'author': 'Canonical Ltd',  | 
|
39  | 
'author_email': 'bazaar@lists.canonical.com',  | 
|
40  | 
'url': 'http://www.bazaar-vcs.org/',  | 
|
41  | 
'description': 'Friendly distributed version control system',  | 
|
42  | 
'license': 'GNU GPL v2',  | 
|
43  | 
'download_url': 'http://bazaar-vcs.org/Download',  | 
|
| 
3185.1.7
by Martin Pool
 Always take README text from the right directory (thanks jam)  | 
44  | 
'long_description': get_long_description(),  | 
| 
3185.1.2
by Martin Pool
 Add more metadata to setup.py (#183391)  | 
45  | 
'classifiers': [  | 
46  | 
'Development Status :: 6 - Mature',  | 
|
47  | 
'Environment :: Console',  | 
|
48  | 
'Intended Audience :: Developers',  | 
|
49  | 
'Intended Audience :: System Administrators',  | 
|
50  | 
'License :: OSI Approved :: GNU General Public License (GPL)',  | 
|
51  | 
'Operating System :: Microsoft :: Windows',  | 
|
52  | 
'Operating System :: OS Independent',  | 
|
53  | 
'Operating System :: POSIX',  | 
|
54  | 
'Programming Language :: Python',  | 
|
55  | 
'Programming Language :: C',  | 
|
56  | 
'Topic :: Software Development :: Version Control',  | 
|
57  | 
        ],
 | 
|
58  | 
    }
 | 
|
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
59  | 
|
| 
1930.3.3
by John Arbash Meinel
 Fix a stupid error in code declaration order  | 
60  | 
# The list of packages is automatically generated later. Add other things
 | 
61  | 
# that are part of BZRLIB here.
 | 
|
62  | 
BZRLIB = {}  | 
|
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
63  | 
|
| 
1911.1.1
by Alexander Belchenko
 setup.py: need to install data files for selftest from bzrlib/tests/test_patched_data  | 
64  | 
PKG_DATA = {# install files from selftest suite  | 
65  | 
'package_data': {'bzrlib': ['doc/api/*.txt',  | 
|
66  | 
'tests/test_patches_data/*',  | 
|
| 
3089.3.6
by Ian Clatworthy
 make help topics more discoverable  | 
67  | 
'help_topics/en/*.txt',  | 
| 
1911.1.1
by Alexander Belchenko
 setup.py: need to install data files for selftest from bzrlib/tests/test_patched_data  | 
68  | 
                                       ]},
 | 
69  | 
           }
 | 
|
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
70  | 
|
| 
1185.29.5
by Wouter van Heyst
 Add reinvocation code to ensure setup.py is run by python2.4  | 
71  | 
|
| 
1930.3.1
by John Arbash Meinel
 Change setup.py to auto-generate the list of packages to install  | 
72  | 
def get_bzrlib_packages():  | 
73  | 
"""Recurse through the bzrlib directory, and extract the package names"""  | 
|
74  | 
||
75  | 
packages = []  | 
|
76  | 
base_path = os.path.dirname(os.path.abspath(bzrlib.__file__))  | 
|
77  | 
for root, dirs, files in os.walk(base_path):  | 
|
78  | 
if '__init__.py' in files:  | 
|
79  | 
assert root.startswith(base_path)  | 
|
80  | 
            # Get just the path below bzrlib
 | 
|
81  | 
package_path = root[len(base_path):]  | 
|
82  | 
            # Remove leading and trailing slashes
 | 
|
83  | 
package_path = package_path.strip('\\/')  | 
|
84  | 
if not package_path:  | 
|
85  | 
package_name = 'bzrlib'  | 
|
86  | 
else:  | 
|
87  | 
package_name = ('bzrlib.' +  | 
|
88  | 
package_path.replace('/', '.').replace('\\', '.'))  | 
|
89  | 
packages.append(package_name)  | 
|
90  | 
return sorted(packages)  | 
|
91  | 
||
92  | 
||
| 
1930.3.3
by John Arbash Meinel
 Fix a stupid error in code declaration order  | 
93  | 
BZRLIB['packages'] = get_bzrlib_packages()  | 
94  | 
||
95  | 
||
| 
45
by Martin Pool
 - add setup.py and install instructions  | 
96  | 
from distutils.core import setup  | 
| 
1185.23.1
by Aaron Bentley
 win32 setup fixes from Belchenko  | 
97  | 
from distutils.command.install_scripts import install_scripts  | 
| 
1185.29.3
by Wouter van Heyst
 Create bzr.1 manpage from setup.py  | 
98  | 
from distutils.command.build import build  | 
| 
1185.1.40
by Robert Collins
 Merge what applied of Alexander Belchenko's win32 patch.  | 
99  | 
|
100  | 
###############################
 | 
|
101  | 
# Overridden distutils actions
 | 
|
102  | 
###############################
 | 
|
103  | 
||
| 
1185.23.1
by Aaron Bentley
 win32 setup fixes from Belchenko  | 
104  | 
class my_install_scripts(install_scripts):  | 
105  | 
""" Customized install_scripts distutils action.  | 
|
| 
1185.1.40
by Robert Collins
 Merge what applied of Alexander Belchenko's win32 patch.  | 
106  | 
    Create bzr.bat for win32.
 | 
107  | 
    """
 | 
|
108  | 
def run(self):  | 
|
| 
1185.23.1
by Aaron Bentley
 win32 setup fixes from Belchenko  | 
109  | 
install_scripts.run(self) # standard action  | 
110  | 
||
| 
1185.1.40
by Robert Collins
 Merge what applied of Alexander Belchenko's win32 patch.  | 
111  | 
if sys.platform == "win32":  | 
| 
1185.23.1
by Aaron Bentley
 win32 setup fixes from Belchenko  | 
112  | 
try:  | 
| 
2662.1.1
by Alexander Belchenko
 allow ``easy_install bzr`` runs without fatal errors. (Alexander Belchenko, #125521)  | 
113  | 
scripts_dir = os.path.join(sys.prefix, 'Scripts')  | 
| 
1861.2.10
by Alexander Belchenko
 setup.py: improved bzr.bat creation  | 
114  | 
script_path = self._quoted_path(os.path.join(scripts_dir,  | 
115  | 
"bzr"))  | 
|
116  | 
python_exe = self._quoted_path(sys.executable)  | 
|
117  | 
args = self._win_batch_args()  | 
|
118  | 
batch_str = "@%s %s %s" % (python_exe, script_path, args)  | 
|
| 
2662.1.1
by Alexander Belchenko
 allow ``easy_install bzr`` runs without fatal errors. (Alexander Belchenko, #125521)  | 
119  | 
batch_path = os.path.join(self.install_dir, "bzr.bat")  | 
| 
1185.23.1
by Aaron Bentley
 win32 setup fixes from Belchenko  | 
120  | 
f = file(batch_path, "w")  | 
121  | 
f.write(batch_str)  | 
|
122  | 
f.close()  | 
|
123  | 
print "Created:", batch_path  | 
|
124  | 
except Exception, e:  | 
|
125  | 
print "ERROR: Unable to create %s: %s" % (batch_path, e)  | 
|
| 
1185.1.40
by Robert Collins
 Merge what applied of Alexander Belchenko's win32 patch.  | 
126  | 
|
| 
1861.2.10
by Alexander Belchenko
 setup.py: improved bzr.bat creation  | 
127  | 
def _quoted_path(self, path):  | 
128  | 
if ' ' in path:  | 
|
129  | 
return '"' + path + '"'  | 
|
130  | 
else:  | 
|
131  | 
return path  | 
|
132  | 
||
133  | 
def _win_batch_args(self):  | 
|
| 
2245.4.4
by Alexander Belchenko
 setup.py: fix plain 'python setup.py install' for win98  | 
134  | 
from bzrlib.win32utils import winver  | 
135  | 
if winver == 'Windows NT':  | 
|
| 
1861.2.10
by Alexander Belchenko
 setup.py: improved bzr.bat creation  | 
136  | 
return '%*'  | 
137  | 
else:  | 
|
138  | 
return '%1 %2 %3 %4 %5 %6 %7 %8 %9'  | 
|
139  | 
#/class my_install_scripts
 | 
|
140  | 
||
| 
1185.1.40
by Robert Collins
 Merge what applied of Alexander Belchenko's win32 patch.  | 
141  | 
|
| 
1185.29.3
by Wouter van Heyst
 Create bzr.1 manpage from setup.py  | 
142  | 
class bzr_build(build):  | 
143  | 
"""Customized build distutils action.  | 
|
144  | 
    Generate bzr.1.
 | 
|
145  | 
    """
 | 
|
146  | 
def run(self):  | 
|
147  | 
build.run(self)  | 
|
148  | 
||
| 
1551.3.11
by Aaron Bentley
 Merge from Robert  | 
149  | 
import generate_docs  | 
150  | 
generate_docs.main(argv=["bzr", "man"])  | 
|
| 
1185.29.3
by Wouter van Heyst
 Create bzr.1 manpage from setup.py  | 
151  | 
|
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
152  | 
|
| 
1185.1.40
by Robert Collins
 Merge what applied of Alexander Belchenko's win32 patch.  | 
153  | 
########################
 | 
154  | 
## Setup
 | 
|
155  | 
########################
 | 
|
156  | 
||
| 
1739.1.1
by Robert Collins
 First cut at adding pyrex facilities.  | 
157  | 
command_classes = {'install_scripts': my_install_scripts,  | 
| 
2571.3.1
by Alexander Belchenko
 Building Python-based installer for bot Python 2.4 and 2.5  | 
158  | 
'build': bzr_build}  | 
| 
2814.4.1
by Lukáš Lalinský
 Don't abort ``python setup.py install`` if building of a C extension is not possible.  | 
159  | 
from distutils import log  | 
| 
2814.4.2
by Alexander Belchenko
 support for win32  | 
160  | 
from distutils.errors import CCompilerError, DistutilsPlatformError  | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
161  | 
from distutils.extension import Extension  | 
| 
1739.1.1
by Robert Collins
 First cut at adding pyrex facilities.  | 
162  | 
ext_modules = []  | 
163  | 
try:  | 
|
164  | 
from Pyrex.Distutils import build_ext  | 
|
165  | 
except ImportError:  | 
|
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
166  | 
have_pyrex = False  | 
| 
1739.1.1
by Robert Collins
 First cut at adding pyrex facilities.  | 
167  | 
    # try to build the extension from the prior generated source.
 | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
168  | 
    print
 | 
| 
2617.1.2
by John Arbash Meinel
 Try another form of comment  | 
169  | 
print ("The python package 'Pyrex' is not available."  | 
170  | 
" If the .c files are available,")  | 
|
171  | 
print ("they will be built,"  | 
|
172  | 
" but modifying the .pyx files will not rebuild them.")  | 
|
| 
2617.1.3
by John Arbash Meinel
 Add another blank line to make it show up better  | 
173  | 
    print
 | 
| 
1739.1.4
by Robert Collins
 Fix building of C modules without pyrex installed.  | 
174  | 
from distutils.command.build_ext import build_ext  | 
| 
1739.1.1
by Robert Collins
 First cut at adding pyrex facilities.  | 
175  | 
else:  | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
176  | 
have_pyrex = True  | 
| 
2814.4.1
by Lukáš Lalinský
 Don't abort ``python setup.py install`` if building of a C extension is not possible.  | 
177  | 
|
178  | 
||
179  | 
class build_ext_if_possible(build_ext):  | 
|
180  | 
||
| 
2814.4.2
by Alexander Belchenko
 support for win32  | 
181  | 
def run(self):  | 
182  | 
try:  | 
|
183  | 
build_ext.run(self)  | 
|
184  | 
except DistutilsPlatformError, e:  | 
|
| 
2814.4.4
by Alexander Belchenko
 changes suggested by Aaron and Martin  | 
185  | 
log.warn(str(e))  | 
| 
2814.4.5
by Alexander Belchenko
 double quotes for extension name  | 
186  | 
log.warn('Extensions cannot be built, '  | 
187  | 
'will use the Python versions instead')  | 
|
| 
2814.4.2
by Alexander Belchenko
 support for win32  | 
188  | 
|
| 
2814.4.1
by Lukáš Lalinský
 Don't abort ``python setup.py install`` if building of a C extension is not possible.  | 
189  | 
def build_extension(self, ext):  | 
190  | 
try:  | 
|
191  | 
build_ext.build_extension(self, ext)  | 
|
192  | 
except CCompilerError:  | 
|
| 
2814.4.5
by Alexander Belchenko
 double quotes for extension name  | 
193  | 
log.warn('Building of "%s" extension failed, '  | 
194  | 
'will use the Python version instead' % (ext.name,))  | 
|
| 
2814.4.1
by Lukáš Lalinský
 Don't abort ``python setup.py install`` if building of a C extension is not possible.  | 
195  | 
|
196  | 
||
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
197  | 
# Override the build_ext if we have Pyrex available
 | 
| 
2814.4.1
by Lukáš Lalinský
 Don't abort ``python setup.py install`` if building of a C extension is not possible.  | 
198  | 
command_classes['build_ext'] = build_ext_if_possible  | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
199  | 
unavailable_files = []  | 
200  | 
||
| 
2617.1.2
by John Arbash Meinel
 Try another form of comment  | 
201  | 
|
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
202  | 
def add_pyrex_extension(module_name, **kwargs):  | 
203  | 
"""Add a pyrex module to build.  | 
|
204  | 
||
205  | 
    This will use Pyrex to auto-generate the .c file if it is available.
 | 
|
206  | 
    Otherwise it will fall back on the .c file. If the .c file is not
 | 
|
207  | 
    available, it will warn, and not add anything.
 | 
|
208  | 
||
209  | 
    You can pass any extra options to Extension through kwargs. One example is
 | 
|
210  | 
    'libraries = []'.
 | 
|
211  | 
||
212  | 
    :param module_name: The python path to the module. This will be used to
 | 
|
213  | 
        determine the .pyx and .c files to use.
 | 
|
214  | 
    """
 | 
|
215  | 
path = module_name.replace('.', '/')  | 
|
216  | 
pyrex_name = path + '.pyx'  | 
|
217  | 
c_name = path + '.c'  | 
|
218  | 
if have_pyrex:  | 
|
| 
3557.2.7
by Alexander Belchenko
 Pass extra arguments for extensions, and supply WIN32 macro for pyrex.  | 
219  | 
ext_modules.append(Extension(module_name, [pyrex_name], **kwargs))  | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
220  | 
else:  | 
221  | 
if not os.path.isfile(c_name):  | 
|
222  | 
unavailable_files.append(c_name)  | 
|
223  | 
else:  | 
|
| 
3557.2.7
by Alexander Belchenko
 Pass extra arguments for extensions, and supply WIN32 macro for pyrex.  | 
224  | 
ext_modules.append(Extension(module_name, [c_name], **kwargs))  | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
225  | 
|
226  | 
||
| 
2474.1.71
by John Arbash Meinel
 [merge] bzr.dev 2625  | 
227  | 
add_pyrex_extension('bzrlib._dirstate_helpers_c')  | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
228  | 
add_pyrex_extension('bzrlib._knit_load_data_c')  | 
| 
3504.4.3
by John Arbash Meinel
 Start working on an extension specifically for win32,  | 
229  | 
if sys.platform == 'win32':  | 
| 
3557.2.7
by Alexander Belchenko
 Pass extra arguments for extensions, and supply WIN32 macro for pyrex.  | 
230  | 
    # pyrex uses the macro WIN32 to detect the platform, even though it should
 | 
231  | 
    # be using something like _WIN32 or MS_WINDOWS, oh well, we can give it the
 | 
|
232  | 
    # right value.
 | 
|
233  | 
add_pyrex_extension('bzrlib._walkdirs_win32',  | 
|
| 
3557.2.9
by John Arbash Meinel
 Alexander noticed I typed macro instead of macros.  | 
234  | 
define_macros=[('WIN32', None)])  | 
| 
2781.1.1
by Martin Pool
 merge cpatiencediff from Lukas  | 
235  | 
ext_modules.append(Extension('bzrlib._patiencediff_c', ['bzrlib/_patiencediff_c.c']))  | 
| 
2617.1.1
by John Arbash Meinel
 Update setup.py to just skip extensions that are not available.  | 
236  | 
|
237  | 
||
238  | 
if unavailable_files:  | 
|
239  | 
print 'C extension(s) not found:'  | 
|
240  | 
print ' %s' % ('\n '.join(unavailable_files),)  | 
|
241  | 
print 'The python versions will be used instead.'  | 
|
242  | 
    print
 | 
|
243  | 
||
| 
1739.1.1
by Robert Collins
 First cut at adding pyrex facilities.  | 
244  | 
|
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
245  | 
if 'bdist_wininst' in sys.argv:  | 
| 
2691.1.18
by Alexander Belchenko
 teach windows python installer to find docs in all subdirectories  | 
246  | 
def find_docs():  | 
247  | 
docs = []  | 
|
248  | 
for root, dirs, files in os.walk('doc'):  | 
|
249  | 
r = []  | 
|
250  | 
for f in files:  | 
|
| 
3224.2.1
by Alexander Belchenko
 (bialix) Include quick-start-summary.svg file to python-based installer for Windows (bug #192924)  | 
251  | 
if (os.path.splitext(f)[1] in ('.html','.css','.png','.pdf')  | 
252  | 
or f == 'quick-start-summary.svg'):  | 
|
| 
2691.1.18
by Alexander Belchenko
 teach windows python installer to find docs in all subdirectories  | 
253  | 
r.append(os.path.join(root, f))  | 
254  | 
if r:  | 
|
255  | 
relative = root[4:]  | 
|
256  | 
if relative:  | 
|
257  | 
target = os.path.join('Doc\\Bazaar', relative)  | 
|
258  | 
else:  | 
|
259  | 
target = 'Doc\\Bazaar'  | 
|
260  | 
docs.append((target, r))  | 
|
261  | 
return docs  | 
|
262  | 
||
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
263  | 
    # python's distutils-based win32 installer
 | 
264  | 
ARGS = {'scripts': ['bzr', 'tools/win32/bzr-win32-bdist-postinstall.py'],  | 
|
| 
2571.3.1
by Alexander Belchenko
 Building Python-based installer for bot Python 2.4 and 2.5  | 
265  | 
'ext_modules': ext_modules,  | 
| 
1860.1.3
by Alexander Belchenko
 python-installer:  | 
266  | 
            # help pages
 | 
| 
2691.1.18
by Alexander Belchenko
 teach windows python installer to find docs in all subdirectories  | 
267  | 
'data_files': find_docs(),  | 
| 
2571.3.1
by Alexander Belchenko
 Building Python-based installer for bot Python 2.4 and 2.5  | 
268  | 
            # for building pyrex extensions
 | 
| 
2814.4.1
by Lukáš Lalinský
 Don't abort ``python setup.py install`` if building of a C extension is not possible.  | 
269  | 
'cmdclass': {'build_ext': build_ext_if_possible},  | 
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
270  | 
           }
 | 
| 
1821.1.2
by Alexander Belchenko
 resurrected python's distutils based installer for win32  | 
271  | 
|
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
272  | 
ARGS.update(META_INFO)  | 
273  | 
ARGS.update(BZRLIB)  | 
|
| 
1911.1.1
by Alexander Belchenko
 setup.py: need to install data files for selftest from bzrlib/tests/test_patched_data  | 
274  | 
ARGS.update(PKG_DATA)  | 
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
275  | 
|
276  | 
setup(**ARGS)  | 
|
277  | 
||
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
278  | 
elif 'py2exe' in sys.argv:  | 
| 
3193.7.3
by Alexander Belchenko
 bzr.exe: move builtin plugins (launchpad, multiparent) out of library.zip to plugins directory  | 
279  | 
import glob  | 
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
280  | 
    # py2exe setup
 | 
281  | 
import py2exe  | 
|
282  | 
||
283  | 
    # pick real bzr version
 | 
|
284  | 
import bzrlib  | 
|
285  | 
||
286  | 
version_number = []  | 
|
287  | 
for i in bzrlib.version_info[:4]:  | 
|
288  | 
try:  | 
|
289  | 
i = int(i)  | 
|
290  | 
except ValueError:  | 
|
291  | 
i = 0  | 
|
292  | 
version_number.append(str(i))  | 
|
293  | 
version_str = '.'.join(version_number)  | 
|
294  | 
||
295  | 
target = py2exe.build_exe.Target(script = "bzr",  | 
|
296  | 
dest_base = "bzr",  | 
|
297  | 
icon_resources = [(0,'bzr.ico')],  | 
|
298  | 
name = META_INFO['name'],  | 
|
299  | 
version = version_str,  | 
|
300  | 
description = META_INFO['description'],  | 
|
301  | 
author = META_INFO['author'],  | 
|
| 
2232.1.1
by mbp at sourcefrog
 update global copyright to 2007  | 
302  | 
copyright = "(c) Canonical Ltd, 2005-2007",  | 
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
303  | 
company_name = "Canonical Ltd.",  | 
304  | 
comments = META_INFO['description'],  | 
|
305  | 
                                    )
 | 
|
| 
2231.1.1
by Alexander Belchenko
 Python 2.5 fixes for win32 installer  | 
306  | 
|
| 
3193.7.3
by Alexander Belchenko
 bzr.exe: move builtin plugins (launchpad, multiparent) out of library.zip to plugins directory  | 
307  | 
packages = BZRLIB['packages']  | 
308  | 
packages.remove('bzrlib')  | 
|
309  | 
packages = [i for i in packages if not i.startswith('bzrlib.plugins')]  | 
|
310  | 
includes = []  | 
|
311  | 
for i in glob.glob('bzrlib\\*.py'):  | 
|
312  | 
module = i[:-3].replace('\\', '.')  | 
|
| 
3193.7.9
by Alexander Belchenko
 Ian's review  | 
313  | 
if module.endswith('__init__'):  | 
314  | 
module = module[:-len('__init__')]  | 
|
| 
3193.7.3
by Alexander Belchenko
 bzr.exe: move builtin plugins (launchpad, multiparent) out of library.zip to plugins directory  | 
315  | 
includes.append(module)  | 
316  | 
||
| 
3193.7.7
by Alexander Belchenko
 custom module finder to find additional dependencies for built-in plugins (to bundle additional packages and modules into bzr.exe's library.zip)  | 
317  | 
additional_packages = set()  | 
| 
2231.1.1
by Alexander Belchenko
 Python 2.5 fixes for win32 installer  | 
318  | 
if sys.version.startswith('2.4'):  | 
319  | 
        # adding elementtree package
 | 
|
| 
3193.7.7
by Alexander Belchenko
 custom module finder to find additional dependencies for built-in plugins (to bundle additional packages and modules into bzr.exe's library.zip)  | 
320  | 
additional_packages.add('elementtree')  | 
| 
2234.5.2
by Wouter van Heyst
 (Alexander Belchenko) add windows installer check for python2.5  | 
321  | 
elif sys.version.startswith('2.5'):  | 
| 
3193.7.7
by Alexander Belchenko
 custom module finder to find additional dependencies for built-in plugins (to bundle additional packages and modules into bzr.exe's library.zip)  | 
322  | 
additional_packages.add('xml.etree')  | 
| 
2234.5.2
by Wouter van Heyst
 (Alexander Belchenko) add windows installer check for python2.5  | 
323  | 
else:  | 
324  | 
import warnings  | 
|
325  | 
warnings.warn('Unknown Python version.\n'  | 
|
326  | 
'Please check setup.py script for compatibility.')  | 
|
| 
2571.3.2
by Alexander Belchenko
 Build pyrex/C extensions for bzr.exe  | 
327  | 
    # email package from std python library use lazy import,
 | 
328  | 
    # so we need to explicitly add all package
 | 
|
| 
3193.7.7
by Alexander Belchenko
 custom module finder to find additional dependencies for built-in plugins (to bundle additional packages and modules into bzr.exe's library.zip)  | 
329  | 
additional_packages.add('email')  | 
| 
2231.1.1
by Alexander Belchenko
 Python 2.5 fixes for win32 installer  | 
330  | 
|
| 
3087.2.4
by Alexander Belchenko
 Help topics can now be loaded from files (based on Ian's patch, adapted to proper support various windows installers).  | 
331  | 
    # text files for help topis
 | 
| 
3089.3.6
by Ian Clatworthy
 make help topics more discoverable  | 
332  | 
text_topics = glob.glob('bzrlib/help_topics/en/*.txt')  | 
| 
3193.7.3
by Alexander Belchenko
 bzr.exe: move builtin plugins (launchpad, multiparent) out of library.zip to plugins directory  | 
333  | 
topics_files = [('lib/help_topics/en', text_topics)]  | 
334  | 
||
335  | 
    # built-in plugins
 | 
|
336  | 
plugins_files = []  | 
|
337  | 
for root, dirs, files in os.walk('bzrlib/plugins'):  | 
|
338  | 
x = []  | 
|
339  | 
for i in files:  | 
|
340  | 
if not i.endswith('.py'):  | 
|
341  | 
                continue
 | 
|
342  | 
if i == '__init__.py' and root == 'bzrlib/plugins':  | 
|
343  | 
                continue
 | 
|
344  | 
x.append(os.path.join(root, i))  | 
|
345  | 
if x:  | 
|
| 
3193.7.7
by Alexander Belchenko
 custom module finder to find additional dependencies for built-in plugins (to bundle additional packages and modules into bzr.exe's library.zip)  | 
346  | 
target_dir = root[len('bzrlib/'):] # install to 'plugins/...'  | 
| 
3193.7.3
by Alexander Belchenko
 bzr.exe: move builtin plugins (launchpad, multiparent) out of library.zip to plugins directory  | 
347  | 
plugins_files.append((target_dir, x))  | 
| 
3193.7.7
by Alexander Belchenko
 custom module finder to find additional dependencies for built-in plugins (to bundle additional packages and modules into bzr.exe's library.zip)  | 
348  | 
    # find modules for built-in plugins
 | 
349  | 
import tools.package_mf  | 
|
350  | 
mf = tools.package_mf.CustomModuleFinder()  | 
|
351  | 
mf.run_package('bzrlib/plugins')  | 
|
352  | 
packs, mods = mf.get_result()  | 
|
353  | 
additional_packages.update(packs)  | 
|
| 
3193.7.3
by Alexander Belchenko
 bzr.exe: move builtin plugins (launchpad, multiparent) out of library.zip to plugins directory  | 
354  | 
|
| 
3514.1.1
by John Arbash Meinel
 Updates to allow building with mingw, and to exclude Vista system dlls  | 
355  | 
    # MSWSOCK.dll is a system-specific library, which py2exe accidentally pulls
 | 
356  | 
    # in on Vista.
 | 
|
| 
3193.7.7
by Alexander Belchenko
 custom module finder to find additional dependencies for built-in plugins (to bundle additional packages and modules into bzr.exe's library.zip)  | 
357  | 
options_list = {"py2exe": {"packages": packages + list(additional_packages),  | 
358  | 
"includes": includes + mods,  | 
|
| 
2481.2.1
by Alexander Belchenko
 don't bundle into standalone bzr.exe site.py (with their depends), and tools/doc_generate  | 
359  | 
"excludes": ["Tkinter", "medusa", "tools"],  | 
| 
3514.1.1
by John Arbash Meinel
 Updates to allow building with mingw, and to exclude Vista system dlls  | 
360  | 
"dll_excludes": ["MSWSOCK.dll"],  | 
| 
1821.1.1
by Alexander Belchenko
 win32 installer for bzr.dev.0.9  | 
361  | 
"dist_dir": "win32_bzr.exe",  | 
362  | 
                              },
 | 
|
363  | 
                   }
 | 
|
364  | 
setup(options=options_list,  | 
|
365  | 
console=[target,  | 
|
366  | 
'tools/win32/bzr_postinstall.py',  | 
|
367  | 
                  ],
 | 
|
| 
3087.2.4
by Alexander Belchenko
 Help topics can now be loaded from files (based on Ian's patch, adapted to proper support various windows installers).  | 
368  | 
zipfile='lib/library.zip',  | 
| 
3193.7.9
by Alexander Belchenko
 Ian's review  | 
369  | 
data_files=topics_files + plugins_files,  | 
| 
3087.2.4
by Alexander Belchenko
 Help topics can now be loaded from files (based on Ian's patch, adapted to proper support various windows installers).  | 
370  | 
          )
 | 
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
371  | 
|
372  | 
else:  | 
|
| 
2662.1.1
by Alexander Belchenko
 allow ``easy_install bzr`` runs without fatal errors. (Alexander Belchenko, #125521)  | 
373  | 
    # ad-hoc for easy_install
 | 
374  | 
DATA_FILES = []  | 
|
375  | 
if not 'bdist_egg' in sys.argv:  | 
|
376  | 
        # generate and install bzr.1 only with plain install, not easy_install one
 | 
|
377  | 
DATA_FILES = [('man/man1', ['bzr.1'])]  | 
|
378  | 
||
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
379  | 
    # std setup
 | 
380  | 
ARGS = {'scripts': ['bzr'],  | 
|
| 
2662.1.1
by Alexander Belchenko
 allow ``easy_install bzr`` runs without fatal errors. (Alexander Belchenko, #125521)  | 
381  | 
'data_files': DATA_FILES,  | 
| 
1739.1.3
by Robert Collins
 Merge bzr.dev.  | 
382  | 
'cmdclass': command_classes,  | 
383  | 
'ext_modules': ext_modules,  | 
|
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
384  | 
           }
 | 
| 
2666.2.1
by Alexander Belchenko
 change generated documentation extension from htm to html  | 
385  | 
|
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
386  | 
ARGS.update(META_INFO)  | 
387  | 
ARGS.update(BZRLIB)  | 
|
| 
1911.1.1
by Alexander Belchenko
 setup.py: need to install data files for selftest from bzrlib/tests/test_patched_data  | 
388  | 
ARGS.update(PKG_DATA)  | 
| 
1860.1.2
by Alexander Belchenko
 setup.py:  | 
389  | 
|
390  | 
setup(**ARGS)  |