~bzr-pqm/bzr/bzr.dev

45 by Martin Pool
- add setup.py and install instructions
1
#! /usr/bin/env python
2
3
# This is an installation script for bzr.  Run it with
4
# './setup.py install', or
5
# './setup.py --help' for more options
6
1185.29.5 by Wouter van Heyst
Add reinvocation code to ensure setup.py is run by python2.4
7
# Reinvocation stolen from bzr, we need python2.4 by virtue of bzr_man
8
# including bzrlib.help
9
10
import os, sys
11
12
try:
13
    version_info = sys.version_info
14
except AttributeError:
15
    version_info = 1, 5 # 1.5 or older
16
17
REINVOKE = "__BZR_REINVOKE"
18
NEED_VERS = (2, 4)
19
KNOWN_PYTHONS = ('python2.4',)
20
21
if version_info < NEED_VERS:
22
    if not os.environ.has_key(REINVOKE):
23
        # mutating os.environ doesn't work in old Pythons
24
        os.putenv(REINVOKE, "1")
25
        for python in KNOWN_PYTHONS:
26
            try:
27
                os.execvp(python, [python] + sys.argv)
28
            except OSError:
29
                pass
30
    print >>sys.stderr, "bzr: error: cannot find a suitable python interpreter"
31
    print >>sys.stderr, "  (need %d.%d or later)" % NEED_VERS
32
    sys.exit(1)
33
if hasattr(os, "unsetenv"):
34
    os.unsetenv(REINVOKE)
35
36
45 by Martin Pool
- add setup.py and install instructions
37
from distutils.core import setup
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
38
from distutils.command.install_scripts import install_scripts
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
39
from distutils.command.build import build
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
40
41
###############################
42
# Overridden distutils actions
43
###############################
44
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
45
class my_install_scripts(install_scripts):
46
    """ Customized install_scripts distutils action.
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
47
    Create bzr.bat for win32.
48
    """
49
    def run(self):
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
50
        import os
51
        import sys
52
53
        install_scripts.run(self)   # standard action
54
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
55
        if sys.platform == "win32":
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
56
            try:
57
                scripts_dir = self.install_dir
58
                script_path = os.path.join(scripts_dir, "bzr")
59
                batch_str = "@%s %s %%*\n" % (sys.executable, script_path)
60
                batch_path = script_path + ".bat"
61
                f = file(batch_path, "w")
62
                f.write(batch_str)
63
                f.close()
64
                print "Created:", batch_path
65
            except Exception, e:
66
                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.
67
68
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
69
class bzr_build(build):
70
    """Customized build distutils action.
71
    Generate bzr.1.
72
    """
73
    def run(self):
74
        build.run(self)
75
76
        import bzr_man
77
        bzr_man.main()
78
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
79
########################
80
## Setup
81
########################
82
45 by Martin Pool
- add setup.py and install instructions
83
setup(name='bzr',
1185.16.144 by Martin Pool
Bump version to 0.7pre
84
      version='0.7pre',
45 by Martin Pool
- add setup.py and install instructions
85
      author='Martin Pool',
86
      author_email='mbp@sourcefrog.net',
87
      url='http://www.bazaar-ng.org/',
88
      description='Friendly distributed version control system',
89
      license='GNU GPL v2',
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
90
      packages=['bzrlib',
1185.33.75 by Martin Pool
Include new submodules in setup.py list of modules.
91
                'bzrlib.export',
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
92
                'bzrlib.plugins',
1185.33.75 by Martin Pool
Include new submodules in setup.py list of modules.
93
                'bzrlib.store',
1185.33.56 by Martin Pool
fixup setup.py for test renaming
94
                'bzrlib.tests',
1185.33.75 by Martin Pool
Include new submodules in setup.py list of modules.
95
                'bzrlib.tests.blackbox',
96
                'bzrlib.transport',
97
                'bzrlib.ui',
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
98
                'bzrlib.util',
99
                'bzrlib.util.elementtree',
100
                'bzrlib.util.effbot.org',
1185.12.58 by Aaron Bentley
Included configobj in setup.py
101
                'bzrlib.util.configobj',
974.1.53 by aaron.bentley at utoronto
Disabled urlgrabber
102
                ],
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
103
      scripts=['bzr'],
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
104
      cmdclass={'install_scripts': my_install_scripts, 'build': bzr_build},
105
      data_files=[('man/man1', ['bzr.1'])],
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
106
     )