37
######################################################################
38
# Reinvocation stolen from bzr, we need python2.4 by virtue of bzr_man
39
# including bzrlib.help
42
version_info = sys.version_info
43
except AttributeError:
44
version_info = 1, 5 # 1.5 or older
46
REINVOKE = "__BZR_REINVOKE"
48
KNOWN_PYTHONS = ('python2.4',)
50
if version_info < NEED_VERS:
51
if not os.environ.has_key(REINVOKE):
52
# mutating os.environ doesn't work in old Pythons
53
os.putenv(REINVOKE, "1")
54
for python in KNOWN_PYTHONS:
56
os.execvp(python, [python] + sys.argv)
59
sys.stderr.write("bzr: error: cannot find a suitable python interpreter\n")
60
sys.stderr.write(" (need %d.%d or later)" % NEED_VERS)
61
sys.stderr.write('\n')
63
if getattr(os, "unsetenv", None) is not None:
67
42
def get_bzrlib_packages():
68
43
"""Recurse through the bzrlib directory, and extract the package names"""
292
268
comments = META_INFO['description'],
295
additional_packages = []
271
packages = BZRLIB['packages']
272
packages.remove('bzrlib')
273
packages = [i for i in packages if not i.startswith('bzrlib.plugins')]
275
for i in glob.glob('bzrlib\\*.py'):
276
module = i[:-3].replace('\\', '.')
277
if module.endswith('__init__'):
278
module = module[:-len('__init__')]
279
includes.append(module)
281
additional_packages = set()
296
282
if sys.version.startswith('2.4'):
297
283
# adding elementtree package
298
additional_packages.append('elementtree')
284
additional_packages.add('elementtree')
299
285
elif sys.version.startswith('2.5'):
300
additional_packages.append('xml.etree')
286
additional_packages.add('xml.etree')
303
289
warnings.warn('Unknown Python version.\n'
304
290
'Please check setup.py script for compatibility.')
305
291
# email package from std python library use lazy import,
306
292
# so we need to explicitly add all package
307
additional_packages.append('email')
293
additional_packages.add('email')
309
295
# text files for help topis
311
296
text_topics = glob.glob('bzrlib/help_topics/en/*.txt')
313
options_list = {"py2exe": {"packages": BZRLIB['packages'] +
297
topics_files = [('lib/help_topics/en', text_topics)]
301
for root, dirs, files in os.walk('bzrlib/plugins'):
304
if not i.endswith('.py'):
306
if i == '__init__.py' and root == 'bzrlib/plugins':
308
x.append(os.path.join(root, i))
310
target_dir = root[len('bzrlib/'):] # install to 'plugins/...'
311
plugins_files.append((target_dir, x))
312
# find modules for built-in plugins
313
import tools.package_mf
314
mf = tools.package_mf.CustomModuleFinder()
315
mf.run_package('bzrlib/plugins')
316
packs, mods = mf.get_result()
317
additional_packages.update(packs)
319
options_list = {"py2exe": {"packages": packages + list(additional_packages),
320
"includes": includes + mods,
315
321
"excludes": ["Tkinter", "medusa", "tools"],
316
322
"dist_dir": "win32_bzr.exe",