~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
1185.74.18 by James Blackwell
Fix up setup.py to call the manpage generation
76
        import generate_docs
77
        generate_docs.main(argv=["bzr", "man"])
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
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',
1530.2.1 by Robert Collins
Start tests for api usage.
91
                'bzrlib.doc',
92
                'bzrlib.doc.api',
1185.33.75 by Martin Pool
Include new submodules in setup.py list of modules.
93
                'bzrlib.export',
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
94
                'bzrlib.plugins',
1185.33.75 by Martin Pool
Include new submodules in setup.py list of modules.
95
                'bzrlib.store',
1185.33.56 by Martin Pool
fixup setup.py for test renaming
96
                'bzrlib.tests',
1185.33.75 by Martin Pool
Include new submodules in setup.py list of modules.
97
                'bzrlib.tests.blackbox',
98
                'bzrlib.transport',
99
                'bzrlib.ui',
974.1.26 by aaron.bentley at utoronto
merged mbp@sourcefrog.net-20050817233101-0939da1cf91f2472
100
                'bzrlib.util',
101
                'bzrlib.util.elementtree',
102
                'bzrlib.util.effbot.org',
1185.12.58 by Aaron Bentley
Included configobj in setup.py
103
                'bzrlib.util.configobj',
974.1.53 by aaron.bentley at utoronto
Disabled urlgrabber
104
                ],
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
105
      scripts=['bzr'],
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
106
      cmdclass={'install_scripts': my_install_scripts, 'build': bzr_build},
107
      data_files=[('man/man1', ['bzr.1'])],
1530.2.1 by Robert Collins
Start tests for api usage.
108
    #   todo: install the txt files from bzrlib.doc.api.
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
109
     )