Rev 2817: Merge install-without-compiler fix for 0.91 in http://sourcefrog.net/bzr/0.91-integration

Martin Pool mbp at sourcefrog.net
Mon Sep 17 02:34:51 BST 2007


At http://sourcefrog.net/bzr/0.91-integration

------------------------------------------------------------
revno: 2817
revision-id: mbp at sourcefrog.net-20070917013450-gcweeqfh3xo1kc5b
parent: pqm at pqm.ubuntu.com-20070912051907-80aaitfew8esgq23
parent: bialix at ukr.net-20070915051300-fyhdnjmmv97uec4u
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: 0.91-integration
timestamp: Mon 2007-09-17 11:34:50 +1000
message:
  Merge install-without-compiler fix for 0.91
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 2814.3.5
    revision-id: bialix at ukr.net-20070915051300-fyhdnjmmv97uec4u
    parent: bialix at ukr.net-20070914113928-u2my9p5l1oxdq760
    committer: Alexander Belchenko <bialix at ukr.net>
    branch nick: install.wo.compiler
    timestamp: Sat 2007-09-15 08:13:00 +0300
    message:
      double quotes for extension name
    modified:
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 2814.3.4
    revision-id: bialix at ukr.net-20070914113928-u2my9p5l1oxdq760
    parent: bialix at ukr.net-20070913122547-019sbxz14kyyl37l
    committer: Alexander Belchenko <bialix at ukr.net>
    branch nick: install.wo.compiler
    timestamp: Fri 2007-09-14 14:39:28 +0300
    message:
      changes suggested by Aaron and Martin
    modified:
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 2814.3.3
    revision-id: bialix at ukr.net-20070913122547-019sbxz14kyyl37l
    parent: bialix at ukr.net-20070913110018-whu5m8wfdu7j3n5e
    committer: Alexander Belchenko <bialix at ukr.net>
    branch nick: install.wo.compiler
    timestamp: Thu 2007-09-13 15:25:47 +0300
    message:
      fixed incomplete try-except
    modified:
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 2814.3.2
    revision-id: bialix at ukr.net-20070913110018-whu5m8wfdu7j3n5e
    parent: lalinsky at gmail.com-20070911080621-kru223e15w1fkzaa
    committer: Alexander Belchenko <bialix at ukr.net>
    branch nick: install.wo.compiler
    timestamp: Thu 2007-09-13 14:00:18 +0300
    message:
      support for win32
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
    ------------------------------------------------------------
    revno: 2814.3.1
    revision-id: lalinsky at gmail.com-20070911080621-kru223e15w1fkzaa
    parent: pqm at pqm.ubuntu.com-20070911055622-a3060rj7l0iy38l2
    committer: Lukáš Lalinský <lalinsky at gmail.com>
    branch nick: build_ext_if_possible
    timestamp: Tue 2007-09-11 10:06:21 +0200
    message:
      Don't abort ``python setup.py install`` if building of a C extension is not possible.
    modified:
      NEWS                           NEWS-20050323055033-4e00b5db738777ff
      setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
=== modified file 'NEWS'
--- a/NEWS	2007-09-12 05:19:07 +0000
+++ b/NEWS	2007-09-17 01:34:50 +0000
@@ -4,6 +4,15 @@
 
 .. contents::
 
+bzr 0.91 series
+===============
+
+  BUG FIXES:
+
+   * Print a warning instead of aborting the ``python setup.py install``
+     process if building of a C extension is not possible.
+     (Lukáš Lalinský, Alexander Belchenko)
+
 bzr 0.91rc2 2007-09-11
 ======================
 

=== modified file 'setup.py'
--- a/setup.py	2007-09-04 09:10:35 +0000
+++ b/setup.py	2007-09-15 05:13:00 +0000
@@ -149,6 +149,8 @@
 
 command_classes = {'install_scripts': my_install_scripts,
                    'build': bzr_build}
+from distutils import log
+from distutils.errors import CCompilerError, DistutilsPlatformError
 from distutils.extension import Extension
 ext_modules = []
 try:
@@ -165,8 +167,28 @@
     from distutils.command.build_ext import build_ext
 else:
     have_pyrex = True
+
+
+class build_ext_if_possible(build_ext):
+
+    def run(self):
+        try:
+            build_ext.run(self)
+        except DistutilsPlatformError, e:
+            log.warn(str(e))
+            log.warn('Extensions cannot be built, '
+                     'will use the Python versions instead')
+
+    def build_extension(self, ext):
+        try:
+            build_ext.build_extension(self, ext)
+        except CCompilerError:
+            log.warn('Building of "%s" extension failed, '
+                     'will use the Python version instead' % (ext.name,))
+
+
 # Override the build_ext if we have Pyrex available
-command_classes['build_ext'] = build_ext
+command_classes['build_ext'] = build_ext_if_possible
 unavailable_files = []
 
 
@@ -230,7 +252,7 @@
             # help pages
             'data_files': find_docs(),
             # for building pyrex extensions
-            'cmdclass': {'build_ext': build_ext},
+            'cmdclass': {'build_ext': build_ext_if_possible},
            }
 
     ARGS.update(META_INFO)




More information about the bazaar-commits mailing list