~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to setup.py

Rework test_script a little bit.


Don't allow someone to request a stdin request to echo.
Echo never reads from stdin, it just echos its arguments.
You use 'cat' if you want to read from stdin.

A few other fixes because the tests were using filenames
that are actually illegal on Windows, rather than just
nonexistant.


Change the exception handling for commands so that
unknown errors don't get silently squashed and then
turn into hard-to-debug errors later.

test_script now passes on Windows.

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
    'version':      bzrlib.__version__,
38
38
    'author':       'Canonical Ltd',
39
39
    'author_email': 'bazaar@lists.canonical.com',
40
 
    'url':          'http://bazaar.canonical.com/',
 
40
    'url':          'http://www.bazaar-vcs.org/',
41
41
    'description':  'Friendly distributed version control system',
42
42
    'license':      'GNU GPL v2',
43
43
    'download_url': 'https://launchpad.net/bzr/+download',
186
186
    from distutils.command.build_ext import build_ext
187
187
else:
188
188
    have_pyrex = True
189
 
    pyrex_version_info = tuple(map(int, pyrex_version.split('.')))
190
189
 
191
190
 
192
191
class build_ext_if_possible(build_ext):
283
282
    add_pyrex_extension('bzrlib._walkdirs_win32')
284
283
    z_lib = 'zdll'
285
284
else:
286
 
    if have_pyrex and pyrex_version_info[:3] == (0,9,4):
 
285
    if have_pyrex and pyrex_version == '0.9.4.1':
287
286
        # Pyrex 0.9.4.1 fails to compile this extension correctly
288
287
        # The code it generates re-uses a "local" pointer and
289
288
        # calls "PY_DECREF" after having set it to NULL. (It mixes PY_XDECREF
290
289
        # which is NULL safe with PY_DECREF which is not.)
291
 
        # <https://bugs.edge.launchpad.net/bzr/+bug/449372>
292
 
        # <https://bugs.edge.launchpad.net/bzr/+bug/276868>
293
290
        print 'Cannot build extension "bzrlib._dirstate_helpers_pyx" using'
294
291
        print 'your version of pyrex "%s". Please upgrade your pyrex' % (
295
292
            pyrex_version,)
302
299
add_pyrex_extension('bzrlib._chk_map_pyx', libraries=[z_lib])
303
300
ext_modules.append(Extension('bzrlib._patiencediff_c',
304
301
                             ['bzrlib/_patiencediff_c.c']))
305
 
if have_pyrex and pyrex_version_info < (0, 9, 6, 3):
306
 
    print
307
 
    print 'Your Pyrex/Cython version %s is too old to build the simple_set' % (
308
 
        pyrex_version)
309
 
    print 'and static_tuple extensions.'
310
 
    print 'Please upgrade to at least Pyrex 0.9.6.3'
311
 
    print
312
 
    # TODO: Should this be a fatal error?
313
 
else:
314
 
    # We only need 0.9.6.3 to build _simple_set_pyx, but static_tuple depends
315
 
    # on simple_set
316
 
    add_pyrex_extension('bzrlib._simple_set_pyx')
317
 
    ext_modules.append(Extension('bzrlib._static_tuple_c',
318
 
                                 ['bzrlib/_static_tuple_c.c']))
 
302
add_pyrex_extension('bzrlib._simple_set_pyx')
 
303
ext_modules.append(Extension('bzrlib._static_tuple_c',
 
304
                             ['bzrlib/_static_tuple_c.c']))
319
305
add_pyrex_extension('bzrlib._btree_serializer_pyx')
320
306
 
321
307
 
415
401
    # PyQt4 itself still escapes the plugin detection code for some reason...
416
402
    packages.append('PyQt4')
417
403
    excludes.append('PyQt4.elementtree.ElementTree')
418
 
    excludes.append('PyQt4.uic.port_v3')
419
404
    includes.append('sip') # extension module required for Qt.
420
405
    packages.append('pygments') # colorizer for qbzr
421
406
    packages.append('docutils') # html formatting
470
455
 
471
456
def get_svn_py2exe_info(includes, excludes, packages):
472
457
    packages.append('subvertpy')
473
 
    packages.append('sqlite3')
474
458
 
475
459
 
476
460
if 'bdist_wininst' in sys.argv:
554
538
                                     version = version_str,
555
539
                                     description = META_INFO['description'],
556
540
                                     author = META_INFO['author'],
557
 
                                     copyright = "(c) Canonical Ltd, 2005-2010",
 
541
                                     copyright = "(c) Canonical Ltd, 2005-2009",
558
542
                                     company_name = "Canonical Ltd.",
559
543
                                     comments = META_INFO['description'],
560
544
                                    )
573
557
    if sys.version.startswith('2.4'):
574
558
        # adding elementtree package
575
559
        additional_packages.add('elementtree')
576
 
    elif sys.version.startswith('2.6') or sys.version.startswith('2.5'):
 
560
    elif sys.version.startswith('2.5'):
577
561
        additional_packages.add('xml.etree')
578
562
    else:
579
563
        import warnings
625
609
            excludes.extend(["bzrlib.plugins." + d for d in dirs])
626
610
        x = []
627
611
        for i in files:
628
 
            # Throw away files we don't want packaged. Note that plugins may
629
 
            # have data files with all sorts of extensions so we need to
630
 
            # be conservative here about what we ditch.
631
 
            ext = os.path.splitext(i)[1]
632
 
            if ext.endswith('~') or ext in [".pyc", ".swp"]:
 
612
            if os.path.splitext(i)[1] not in [".py", ".pyd", ".dll", ".mo"]:
633
613
                continue
634
614
            if i == '__init__.py' and root == 'bzrlib/plugins':
635
615
                continue
712
692
        # easy_install one
713
693
        DATA_FILES = [('man/man1', ['bzr.1'])]
714
694
 
715
 
    if sys.platform != 'win32':
716
 
        # see https://wiki.kubuntu.org/Apport/DeveloperHowTo
717
 
        #
718
 
        # checking the paths and hardcoding the check for root is a bit gross,
719
 
        # but I don't see a cleaner way to find out the locations in a way
720
 
        # that's going to align with the hardcoded paths in apport.
721
 
        if os.geteuid() == 0:
722
 
            DATA_FILES += [
723
 
                ('/usr/share/apport/package-hooks',
724
 
                    ['apport/source_bzr.py']),
725
 
                ('/etc/apport/crashdb.conf.d/',
726
 
                    ['apport/bzr-crashdb.conf']),]
727
 
 
728
695
    # std setup
729
696
    ARGS = {'scripts': ['bzr'],
730
697
            'data_files': DATA_FILES,