Rev 5082: (andrew) Merge lp:bzr/2.1, including fixes for #496813, #526211, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Thu Mar 11 05:38:58 GMT 2010


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 5082 [merge]
revision-id: pqm at pqm.ubuntu.com-20100311053854-0aw575c1892k1djg
parent: pqm at pqm.ubuntu.com-20100311050232-4n3s5jbvlb1w3dy7
parent: andrew.bennetts at canonical.com-20100311043341-rzdik83fnactjsxs
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2010-03-11 05:38:54 +0000
message:
  (andrew) Merge lp:bzr/2.1, including fixes for #496813, #526211,
  	#526353.
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/osutils.py              osutils.py-20050309040759-eeaff12fbf77ac86
  setup.py                       setup.py-20050314065409-02f8a0a6e3f9bc70
=== modified file 'NEWS'
--- a/NEWS	2010-03-11 04:18:33 +0000
+++ b/NEWS	2010-03-11 05:38:54 +0000
@@ -60,6 +60,11 @@
 * Allow exporting a single file using ``bzr export``.
   (Michal Junák, #511987)
 
+* Allow syscalls to automatically restart when ``TextUIFactory``'s
+  SIGWINCH handler is invoked, avoiding ``EINTR`` errors during blocking
+  IO, which are often poorly handled by Python's libraries and parts of
+  bzrlib.  (Andrew Bennetts, #496813)
+
 * Avoid infinite recursion when probing for apport.
   (Vincent Ladeuil, #516934)
 
@@ -91,6 +96,9 @@
   ftp servers while trying to take a lock.
   (Martin Pool, #528722)
 
+* Fix stub sftp test server to call os.getcwdu().
+  (Vincent Ladeuil, #526211, #526353)
+
 * Network transfer amounts and rates are now displayed in SI units according
   to the Ubuntu Units Policy <https://wiki.ubuntu.com/UnitsPolicy>.
   (Gordon Tyler, #514399)
@@ -115,6 +123,11 @@
 API Changes
 ***********
 
+* Added ``bzrlib.osutils.set_signal_handler``, a convenience function that
+  can set a signal handler and call ``signal.siginterrupt(signum,
+  False)`` for it, if the platform and Python version supports it.
+  (Andrew Bennetts, #496813)
+
 * New ``bzrlib.initialize`` is recommended for programs using bzrlib to 
   run when starting up; it sets up several things that previously needed
   to be done separately.
@@ -185,6 +198,22 @@
 Bug Fixes
 *********
 
+* Allow syscalls to automatically restart when ``TextUIFactory``'s
+  SIGWINCH handler is invoked, avoiding ``EINTR`` errors during blocking
+  IO, which are often poorly handled by Python's libraries and parts of
+  bzrlib.  (Andrew Bennetts, #496813)
+
+* Avoid ``malloc(0)`` in ``patiencediff``, which is non-portable.
+  (Martin Pool, #331095)
+
+* Fix plugin packaging on Windows. (Ian Clatworthy, #524162)
+
+* Fix stub sftp test server to call os.getcwdu().
+  (Vincent Ladeuil, #526211, #526353)
+
+* Fixed CHM generation by moving the NEWS section template into
+  a separate file. (Ian Clatworthy, #524184)
+
 * Merge correctly when this_tree is not a WorkingTree.  (Aaron Bentley)
 
 * Register SIGWINCH handler only when creating a ``TextUIFactory``; avoids
@@ -209,6 +238,14 @@
 * Drop Google Analytics from the core docs as they caused problems
   in the CHM files. (Ian Clatworthy, #502010)
 
+API Changes
+***********
+
+* Added ``bzrlib.osutils.set_signal_handler``, a convenience function that
+  can set a signal handler and call ``signal.siginterrupt(signum,
+  False)`` for it, if the platform and Python version supports it.
+  (Andrew Bennetts, #496813)
+
 
 bzr 2.1.0
 #########
@@ -567,8 +604,8 @@
   (Martin Pool)
 
 
-bzr 2.0.5 (not released yet)
-############################
+bzr 2.0.5
+#########
 
 :Codename:
 :2.0.5: NOT RELEASED YET

=== modified file 'bzrlib/osutils.py'
--- a/bzrlib/osutils.py	2010-03-05 08:55:12 +0000
+++ b/bzrlib/osutils.py	2010-03-11 04:33:41 +0000
@@ -1349,6 +1349,27 @@
     normalized_filename = _inaccessible_normalized_filename
 
 
+def set_signal_handler(signum, handler, restart_syscall=True):
+    """A wrapper for signal.signal that also calls siginterrupt(signum, False)
+    on platforms that support that.
+
+    :param restart_syscall: if set, allow syscalls interrupted by a signal to
+        automatically restart (by calling `signal.siginterrupt(signum,
+        False)`).  May be ignored if the feature is not available on this
+        platform or Python version.
+    """
+    old_handler = signal.signal(signum, handler)
+    if restart_syscall:
+        try:
+            siginterrupt = signal.siginterrupt
+        except AttributeError: # siginterrupt doesn't exist on this platform, or for this version of
+            # Python.
+            pass
+        else:
+            siginterrupt(signum, False)
+    return old_handler
+
+
 default_terminal_width = 80
 """The default terminal width for ttys.
 
@@ -1456,7 +1477,7 @@
             # the current design -- vila 20091216
             pass
         else:
-            signal.signal(signal.SIGWINCH, _terminal_size_changed)
+            set_signal_handler(signal.SIGWINCH, _terminal_size_changed)
         _registered_sigwinch = True
 
 

=== modified file 'setup.py'
--- a/setup.py	2010-03-05 08:55:12 +0000
+++ b/setup.py	2010-03-11 04:33:41 +0000
@@ -37,7 +37,7 @@
     'version':      bzrlib.__version__,
     'author':       'Canonical Ltd',
     'author_email': 'bazaar at lists.canonical.com',
-    'url':          'http://www.bazaar.canonical.com/',
+    'url':          'http://bazaar.canonical.com/',
     'description':  'Friendly distributed version control system',
     'license':      'GNU GPL v2',
     'download_url': 'https://launchpad.net/bzr/+download',
@@ -553,7 +553,7 @@
                                      version = version_str,
                                      description = META_INFO['description'],
                                      author = META_INFO['author'],
-                                     copyright = "(c) Canonical Ltd, 2005-2009",
+                                     copyright = "(c) Canonical Ltd, 2005-2010",
                                      company_name = "Canonical Ltd.",
                                      comments = META_INFO['description'],
                                     )
@@ -624,7 +624,11 @@
             excludes.extend(["bzrlib.plugins." + d for d in dirs])
         x = []
         for i in files:
-            if os.path.splitext(i)[1] not in [".py", ".pyd", ".dll", ".mo"]:
+            # Throw away files we don't want packaged. Note that plugins may
+            # have data files with all sorts of extensions so we need to
+            # be conservative here about what we ditch.
+            ext = os.path.splitext(i)[1]
+            if ext.endswith('~') or ext in [".pyc", ".swp"]:
                 continue
             if i == '__init__.py' and root == 'bzrlib/plugins':
                 continue




More information about the bazaar-commits mailing list