~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to setup.py

merge olaf - InvalidRevisionId fixes

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#! /usr/bin/env python
2
2
 
3
 
"""Installation script for bzr.
4
 
Run it with
5
 
 './setup.py install', or
6
 
 './setup.py --help' for more options
7
 
"""
8
 
 
9
 
import bzrlib
10
 
 
11
 
##
12
 
# META INFORMATION FOR SETUP
13
 
 
14
 
META_INFO = {'name':         'bzr',
15
 
             'version':      bzrlib.__version__,
16
 
             'author':       'Canonical Ltd',
17
 
             'author_email': 'bazaar-ng@lists.ubuntu.com',
18
 
             'url':          'http://www.bazaar-vcs.org/',
19
 
             'description':  'Friendly distributed version control system',
20
 
             'license':      'GNU GPL v2',
21
 
            }
22
 
 
23
 
BZRLIB = {'packages': ['bzrlib',
24
 
                       'bzrlib.benchmarks',
25
 
                       'bzrlib.bundle',
26
 
                       'bzrlib.bundle.serializer',
27
 
                       'bzrlib.doc',
28
 
                       'bzrlib.doc.api',
29
 
                       'bzrlib.export',
30
 
                       'bzrlib.plugins',
31
 
                       'bzrlib.plugins.launchpad',
32
 
                       'bzrlib.store',
33
 
                       'bzrlib.store.revision',
34
 
                       'bzrlib.store.versioned',
35
 
                       'bzrlib.tests',
36
 
                       'bzrlib.tests.blackbox',
37
 
                       'bzrlib.tests.branch_implementations',
38
 
                       'bzrlib.tests.bzrdir_implementations',
39
 
                       'bzrlib.tests.interrepository_implementations',
40
 
                       'bzrlib.tests.intertree_implementations',
41
 
                       'bzrlib.tests.interversionedfile_implementations',
42
 
                       'bzrlib.tests.repository_implementations',
43
 
                       'bzrlib.tests.revisionstore_implementations',
44
 
                       'bzrlib.tests.tree_implementations',
45
 
                       'bzrlib.tests.workingtree_implementations',
46
 
                       'bzrlib.transport',
47
 
                       'bzrlib.transport.http',
48
 
                       'bzrlib.ui',
49
 
                       'bzrlib.util',
50
 
                       'bzrlib.util.configobj',
51
 
                       'bzrlib.util.effbot.org',
52
 
                       'bzrlib.util.elementtree',
53
 
                      ],
54
 
         }
55
 
 
56
 
 
57
 
######################################################################
 
3
# This is an installation script for bzr.  Run it with
 
4
# './setup.py install', or
 
5
# './setup.py --help' for more options
 
6
 
58
7
# Reinvocation stolen from bzr, we need python2.4 by virtue of bzr_man
59
8
# including bzrlib.help
60
9
 
61
 
import os
62
 
import sys
 
10
import os, sys
63
11
 
64
12
try:
65
13
    version_info = sys.version_info
107
55
        if sys.platform == "win32":
108
56
            try:
109
57
                scripts_dir = self.install_dir
110
 
                script_path = self._quoted_path(os.path.join(scripts_dir,
111
 
                                                             "bzr"))
112
 
                python_exe = self._quoted_path(sys.executable)
113
 
                args = self._win_batch_args()
114
 
                batch_str = "@%s %s %s" % (python_exe, script_path, args)
 
58
                script_path = os.path.join(scripts_dir, "bzr")
 
59
                batch_str = "@%s %s %%*\n" % (sys.executable, script_path)
115
60
                batch_path = script_path + ".bat"
116
61
                f = file(batch_path, "w")
117
62
                f.write(batch_str)
120
65
            except Exception, e:
121
66
                print "ERROR: Unable to create %s: %s" % (batch_path, e)
122
67
 
123
 
    def _quoted_path(self, path):
124
 
        if ' ' in path:
125
 
            return '"' + path + '"'
126
 
        else:
127
 
            return path
128
 
 
129
 
    def _win_batch_args(self):
130
 
        if os.name == 'nt':
131
 
            return '%*'
132
 
        else:
133
 
            return '%1 %2 %3 %4 %5 %6 %7 %8 %9'
134
 
#/class my_install_scripts
135
 
 
136
68
 
137
69
class bzr_build(build):
138
70
    """Customized build distutils action.
144
76
        import generate_docs
145
77
        generate_docs.main(argv=["bzr", "man"])
146
78
 
147
 
 
148
79
########################
149
80
## Setup
150
81
########################
151
82
 
152
 
if 'bdist_wininst' in sys.argv:
153
 
    import glob
154
 
    # doc files
155
 
    docs = glob.glob('doc/*.htm') + ['doc/default.css']
156
 
    # python's distutils-based win32 installer
157
 
    ARGS = {'scripts': ['bzr', 'tools/win32/bzr-win32-bdist-postinstall.py'],
158
 
            # install the txt files from bzrlib.doc.api.
159
 
            'package_data': {'bzrlib': ['doc/api/*.txt']},
160
 
            # help pages
161
 
            'data_files': [('Doc/Bazaar', docs)],
162
 
           }
163
 
 
164
 
    ARGS.update(META_INFO)
165
 
    ARGS.update(BZRLIB)
166
 
    
167
 
    setup(**ARGS)
168
 
 
169
 
elif 'py2exe' in sys.argv:
170
 
    # py2exe setup
171
 
    import py2exe
172
 
 
173
 
    # pick real bzr version
174
 
    import bzrlib
175
 
 
176
 
    version_number = []
177
 
    for i in bzrlib.version_info[:4]:
178
 
        try:
179
 
            i = int(i)
180
 
        except ValueError:
181
 
            i = 0
182
 
        version_number.append(str(i))
183
 
    version_str = '.'.join(version_number)
184
 
 
185
 
    target = py2exe.build_exe.Target(script = "bzr",
186
 
                                     dest_base = "bzr",
187
 
                                     icon_resources = [(0,'bzr.ico')],
188
 
                                     name = META_INFO['name'],
189
 
                                     version = version_str,
190
 
                                     description = META_INFO['description'],
191
 
                                     author = META_INFO['author'],
192
 
                                     copyright = "(c) Canonical Ltd, 2005-2006",
193
 
                                     company_name = "Canonical Ltd.",
194
 
                                     comments = META_INFO['description'],
195
 
                                    )
196
 
    options_list = {"py2exe": {"packages": BZRLIB['packages'] +
197
 
                                           ['elementtree'],
198
 
                               "excludes": ["Tkinter", "medusa"],
199
 
                               "dist_dir": "win32_bzr.exe",
200
 
                              },
201
 
                   }
202
 
    setup(options=options_list,
203
 
          console=[target,
204
 
                   'tools/win32/bzr_postinstall.py',
205
 
                  ],
206
 
          zipfile='lib/library.zip')
207
 
 
208
 
else:
209
 
    # std setup
210
 
    ARGS = {'scripts': ['bzr'],
211
 
            'data_files': [('man/man1', ['bzr.1'])],
212
 
            # install the txt files from bzrlib.doc.api.
213
 
            'package_data': {'bzrlib': ['doc/api/*.txt']},
214
 
            'cmdclass': {'build': bzr_build,
215
 
                         'install_scripts': my_install_scripts,
216
 
                        },
217
 
           }
218
 
    
219
 
    ARGS.update(META_INFO)
220
 
    ARGS.update(BZRLIB)
221
 
 
222
 
    setup(**ARGS)
 
83
setup(name='bzr',
 
84
      version='0.8pre',
 
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',
 
90
      packages=['bzrlib',
 
91
                'bzrlib.doc',
 
92
                'bzrlib.doc.api',
 
93
                'bzrlib.export',
 
94
                'bzrlib.plugins',
 
95
                'bzrlib.store',
 
96
                'bzrlib.store.revision',
 
97
                'bzrlib.store.versioned',
 
98
                'bzrlib.tests',
 
99
                'bzrlib.tests.blackbox',
 
100
                'bzrlib.tests.branch_implementations',
 
101
                'bzrlib.tests.bzrdir_implementations',
 
102
                'bzrlib.tests.interrepository_implementations',
 
103
                'bzrlib.tests.interversionedfile_implementations',
 
104
                'bzrlib.tests.repository_implementations',
 
105
                'bzrlib.tests.revisionstore_implementations',
 
106
                'bzrlib.tests.workingtree_implementations',
 
107
                'bzrlib.transport',
 
108
                'bzrlib.transport.http',
 
109
                'bzrlib.ui',
 
110
                'bzrlib.util',
 
111
                'bzrlib.util.elementtree',
 
112
                'bzrlib.util.effbot.org',
 
113
                'bzrlib.util.configobj',
 
114
                ],
 
115
      scripts=['bzr'],
 
116
      cmdclass={'install_scripts': my_install_scripts, 'build': bzr_build},
 
117
      data_files=[('man/man1', ['bzr.1'])],
 
118
    #   todo: install the txt files from bzrlib.doc.api.
 
119
     )