/brz/remove-bazaar

To get this branch, use:
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
9
##
10
# META INFORMATION FOR SETUP
11
12
META_INFO = {'name':         'bzr',
13
             'version':      '0.9pre',
14
             'author':       'Canonical Ltd',
15
             'author_email': 'bazaar-ng@lists.ubuntu.com',
16
             'url':          'http://www.bazaar-vcs.org/',
17
             'description':  'Friendly distributed version control system',
18
             'license':      'GNU GPL v2',
19
            }
20
21
BZRLIB = {'packages': ['bzrlib',
22
                       'bzrlib.benchmarks',
23
                       'bzrlib.bundle',
24
                       'bzrlib.bundle.serializer',
25
                       'bzrlib.doc',
26
                       'bzrlib.doc.api',
27
                       'bzrlib.export',
28
                       'bzrlib.plugins',
29
                       'bzrlib.plugins.launchpad',
30
                       'bzrlib.store',
31
                       'bzrlib.store.revision',
32
                       'bzrlib.store.versioned',
33
                       'bzrlib.tests',
34
                       'bzrlib.tests.blackbox',
35
                       'bzrlib.tests.branch_implementations',
36
                       'bzrlib.tests.bzrdir_implementations',
37
                       'bzrlib.tests.interrepository_implementations',
38
                       'bzrlib.tests.interversionedfile_implementations',
39
                       'bzrlib.tests.repository_implementations',
40
                       'bzrlib.tests.revisionstore_implementations',
41
                       'bzrlib.tests.workingtree_implementations',
42
                       'bzrlib.transport',
43
                       'bzrlib.transport.http',
44
                       'bzrlib.ui',
45
                       'bzrlib.util',
46
                       'bzrlib.util.configobj',
47
                       'bzrlib.util.effbot.org',
48
                       'bzrlib.util.elementtree',
49
                      ],
50
         }
51
52
53
##
1185.29.5 by Wouter van Heyst
Add reinvocation code to ensure setup.py is run by python2.4
54
# Reinvocation stolen from bzr, we need python2.4 by virtue of bzr_man
55
# including bzrlib.help
56
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
57
import os
58
import sys
1185.29.5 by Wouter van Heyst
Add reinvocation code to ensure setup.py is run by python2.4
59
60
try:
61
    version_info = sys.version_info
62
except AttributeError:
63
    version_info = 1, 5 # 1.5 or older
64
65
REINVOKE = "__BZR_REINVOKE"
66
NEED_VERS = (2, 4)
67
KNOWN_PYTHONS = ('python2.4',)
68
69
if version_info < NEED_VERS:
70
    if not os.environ.has_key(REINVOKE):
71
        # mutating os.environ doesn't work in old Pythons
72
        os.putenv(REINVOKE, "1")
73
        for python in KNOWN_PYTHONS:
74
            try:
75
                os.execvp(python, [python] + sys.argv)
76
            except OSError:
77
                pass
78
    print >>sys.stderr, "bzr: error: cannot find a suitable python interpreter"
79
    print >>sys.stderr, "  (need %d.%d or later)" % NEED_VERS
80
    sys.exit(1)
81
if hasattr(os, "unsetenv"):
82
    os.unsetenv(REINVOKE)
83
84
45 by Martin Pool
- add setup.py and install instructions
85
from distutils.core import setup
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
86
from distutils.command.install_scripts import install_scripts
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
87
from distutils.command.build import build
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
88
89
###############################
90
# Overridden distutils actions
91
###############################
92
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
93
class my_install_scripts(install_scripts):
94
    """ Customized install_scripts distutils action.
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
95
    Create bzr.bat for win32.
96
    """
97
    def run(self):
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
98
        import os
99
        import sys
100
101
        install_scripts.run(self)   # standard action
102
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
103
        if sys.platform == "win32":
1185.23.1 by Aaron Bentley
win32 setup fixes from Belchenko
104
            try:
105
                scripts_dir = self.install_dir
106
                script_path = os.path.join(scripts_dir, "bzr")
107
                batch_str = "@%s %s %%*\n" % (sys.executable, script_path)
108
                batch_path = script_path + ".bat"
109
                f = file(batch_path, "w")
110
                f.write(batch_str)
111
                f.close()
112
                print "Created:", batch_path
113
            except Exception, e:
114
                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.
115
116
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
117
class bzr_build(build):
118
    """Customized build distutils action.
119
    Generate bzr.1.
120
    """
121
    def run(self):
122
        build.run(self)
123
1551.3.11 by Aaron Bentley
Merge from Robert
124
        import generate_docs
125
        generate_docs.main(argv=["bzr", "man"])
1185.29.3 by Wouter van Heyst
Create bzr.1 manpage from setup.py
126
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
127
1185.1.40 by Robert Collins
Merge what applied of Alexander Belchenko's win32 patch.
128
########################
129
## Setup
130
########################
131
1860.1.2 by Alexander Belchenko
setup.py:
132
if 'bdist_wininst' in sys.argv:
133
    # python's distutils-based win32 installer
134
    ARGS = {'scripts': ['bzr', 'tools/win32/bzr-win32-bdist-postinstall.py'],
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
135
            # install the txt files from bzrlib.doc.api.
136
            'package_data': {'bzrlib': ['doc/api/*.txt']},
137
           }
1821.1.2 by Alexander Belchenko
resurrected python's distutils based installer for win32
138
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
139
    ARGS.update(META_INFO)
140
    ARGS.update(BZRLIB)
141
    
142
    setup(**ARGS)
143
1860.1.2 by Alexander Belchenko
setup.py:
144
elif 'py2exe' in sys.argv:
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
145
    # py2exe setup
146
    import py2exe
147
148
    # pick real bzr version
149
    import bzrlib
150
151
    version_number = []
152
    for i in bzrlib.version_info[:4]:
153
        try:
154
            i = int(i)
155
        except ValueError:
156
            i = 0
157
        version_number.append(str(i))
158
    version_str = '.'.join(version_number)
159
160
    target = py2exe.build_exe.Target(script = "bzr",
161
                                     dest_base = "bzr",
162
                                     icon_resources = [(0,'bzr.ico')],
163
                                     name = META_INFO['name'],
164
                                     version = version_str,
165
                                     description = META_INFO['description'],
166
                                     author = META_INFO['author'],
167
                                     copyright = "(c) Canonical Ltd, 2005-2006",
168
                                     company_name = "Canonical Ltd.",
169
                                     comments = META_INFO['description'],
170
                                    )
171
    options_list = {"py2exe": {"packages": BZRLIB['packages'] +
172
                                           ['elementtree'],
1860.1.2 by Alexander Belchenko
setup.py:
173
                               "excludes": ["Tkinter", "medusa"],
1821.1.1 by Alexander Belchenko
win32 installer for bzr.dev.0.9
174
                               "dist_dir": "win32_bzr.exe",
175
                              },
176
                   }
177
    setup(options=options_list,
178
          console=[target,
179
                   'tools/win32/bzr_postinstall.py',
180
                   'tools/bzr_test_dependencies.py',
181
                  ],
182
          zipfile='lib/library.zip')
1860.1.2 by Alexander Belchenko
setup.py:
183
184
else:
185
    # std setup
186
    ARGS = {'scripts': ['bzr'],
187
            'data_files': [('man/man1', ['bzr.1'])],
188
            # install the txt files from bzrlib.doc.api.
189
            'package_data': {'bzrlib': ['doc/api/*.txt']},
190
            'cmdclass': {'build': bzr_build,
191
                         'install_scripts': my_install_scripts,
192
                        },
193
           }
194
    
195
    ARGS.update(META_INFO)
196
    ARGS.update(BZRLIB)
197
198
    setup(**ARGS)
199