[Python-modules-commits] r29716 - in packages/matplotlib/trunk/debian (5 files)

yoh at users.alioth.debian.org yoh at users.alioth.debian.org
Fri Jul 11 03:29:58 UTC 2014


    Date: Friday, July 11, 2014 @ 03:29:57
  Author: yoh
Revision: 29716

ENH: added gtk3agg_check_no-multiprocessing.patch and unified extension for the fix_infinite_recursion patch

Added:
  packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.patch
    (from rev 29715, packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.diff)
  packages/matplotlib/trunk/debian/patches/gtk3agg_check_no-multiprocessing.patch
Modified:
  packages/matplotlib/trunk/debian/changelog
  packages/matplotlib/trunk/debian/patches/series
Deleted:
  packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.diff

Modified: packages/matplotlib/trunk/debian/changelog
===================================================================
--- packages/matplotlib/trunk/debian/changelog	2014-07-11 03:28:41 UTC (rev 29715)
+++ packages/matplotlib/trunk/debian/changelog	2014-07-11 03:29:57 UTC (rev 29716)
@@ -10,9 +10,14 @@
     - removed, no longer needed
 
   [ Julian Taylor ]
-  * debian/patches/fix_infinite_recursion.diff
+  * debian/patches/fix_infinite_recursion.patch
     - fix infinite recursion in units.py with ndarray subclasses
       (Closes: #729590)
+  * debian/patches/gtk3agg_check_no-multiprocessing.patch
+    - fix infinite recursion in units.py with ndarray subclasses
+      (Closes: #729590)
+    - do not use backend_gtk3agg_internal_check with multiprocessing.
+      Workaround to resolve the deadlock in setup.py
   * debian/patches/multiarch-tktcl.patch
     - fixed missing tkagg due to absent path to multiarch tktcl
       (Closes: #750630)

Deleted: packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.diff
===================================================================
--- packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.diff	2014-07-11 03:28:41 UTC (rev 29715)
+++ packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.diff	2014-07-11 03:29:57 UTC (rev 29716)
@@ -1,22 +0,0 @@
-Description: fix infinite recursion in units with ndarray subclasses
-Origin: upstream, https://github.com/matplotlib/matplotlib/commit/21fd7c03ba1444
-Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729590
-Last-Update: 2013-12-24
-
---- a/lib/matplotlib/units.py
-+++ b/lib/matplotlib/units.py
-@@ -145,7 +145,13 @@
-                     return converter
-             except AttributeError:
-                 # not a masked_array
--                converter = self.get_converter(xravel[0])
-+                # Make sure we don't recurse forever -- it's possible for
-+                # ndarray subclasses to continue to return subclasses and
-+                # not ever return a non-subclass for a single element.
-+                next_item = xravel[0]
-+                if (not isinstance(next_item, np.ndarray) or
-+                    next_item.shape != x.shape):
-+                    converter = self.get_converter(next_item)
-                 return converter
- 
-         if converter is None and iterable(x):

Copied: packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.patch (from rev 29715, packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.diff)
===================================================================
--- packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.patch	                        (rev 0)
+++ packages/matplotlib/trunk/debian/patches/fix_infinite_recursion.patch	2014-07-11 03:29:57 UTC (rev 29716)
@@ -0,0 +1,22 @@
+Description: fix infinite recursion in units with ndarray subclasses
+Origin: upstream, https://github.com/matplotlib/matplotlib/commit/21fd7c03ba1444
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=729590
+Last-Update: 2013-12-24
+
+--- a/lib/matplotlib/units.py
++++ b/lib/matplotlib/units.py
+@@ -145,7 +145,13 @@
+                     return converter
+             except AttributeError:
+                 # not a masked_array
+-                converter = self.get_converter(xravel[0])
++                # Make sure we don't recurse forever -- it's possible for
++                # ndarray subclasses to continue to return subclasses and
++                # not ever return a non-subclass for a single element.
++                next_item = xravel[0]
++                if (not isinstance(next_item, np.ndarray) or
++                    next_item.shape != x.shape):
++                    converter = self.get_converter(next_item)
+                 return converter
+ 
+         if converter is None and iterable(x):

Added: packages/matplotlib/trunk/debian/patches/gtk3agg_check_no-multiprocessing.patch
===================================================================
--- packages/matplotlib/trunk/debian/patches/gtk3agg_check_no-multiprocessing.patch	                        (rev 0)
+++ packages/matplotlib/trunk/debian/patches/gtk3agg_check_no-multiprocessing.patch	2014-07-11 03:29:57 UTC (rev 29716)
@@ -0,0 +1,39 @@
+Author: Julian Taylor <jtaylor.debian at googlemail.com>
+Subject: Avoid using multiprocessing to figure out if Agg backend should be used
+
+   Seems to cause a dead-lock on many Debian systems.
+   We have all necessary dependencies to support Agg so enable the backend
+   unconditionally.
+
+Origin: Ubuntu
+Last-Update: 2014-07-10
+
+--- a/setupext.py
++++ b/setupext.py
+@@ -1587,24 +1587,9 @@ class BackendGtk3Agg(OptionalBackendPack
+         # This check needs to be performed out-of-process, because
+         # importing gi and then importing regular old pygtk afterward
+         # segfaults the interpreter.
+-        try:
+-            p = multiprocessing.Pool()
+-        except:
+-            return "unknown (can not use multiprocessing to determine)"
+-        try:
+-            success, msg = p.map(backend_gtk3agg_internal_check, [0])[0]
+-        except:
+-            success = False
+-            msg = "Could not determine"
+-        finally:
+-            p.close()
+-            p.join()
+-        if success:
+-            BackendAgg.force = True
++        BackendAgg.force = True
+ 
+-            return msg
+-        else:
+-            raise CheckFailed(msg)
++        return "ok"
+ 
+     def get_package_data(self):
+         return {'matplotlib': ['mpl-data/*.glade']}

Modified: packages/matplotlib/trunk/debian/patches/series
===================================================================
--- packages/matplotlib/trunk/debian/patches/series	2014-07-11 03:28:41 UTC (rev 29715)
+++ packages/matplotlib/trunk/debian/patches/series	2014-07-11 03:29:57 UTC (rev 29716)
@@ -5,4 +5,5 @@
 60_deal_with_no_writable_dirs.patch
 70_bts720549_try_StayPuft_for_xkcd.patch
 multiarch-tktcl.patch
-fix_infinite_recursion.diff
+fix_infinite_recursion.patch
+gtk3agg_check_no-multiprocessing.patch




More information about the Python-modules-commits mailing list