~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',
91
                'bzrlib.plugins',
92
                'bzrlib.selftest',
93
                'bzrlib.util',
1414 by Robert Collins
merge in an adjusted version of Jelmer's empty-log detection patch.
94
                'bzrlib.transport',
95
                'bzrlib.store',
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
96
                'bzrlib.util.elementtree',
97
                'bzrlib.util.effbot.org',
1185.12.58 by Aaron Bentley
Included configobj in setup.py
98
                'bzrlib.util.configobj',
974.1.53 by aaron.bentley at utoronto
Disabled urlgrabber
99
                ],
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
100
      scripts=['bzr'],
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
101
      cmdclass={'install_scripts': my_install_scripts, 'build': bzr_build},
102
      data_files=[('man/man1', ['bzr.1'])],
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
103
     )