[med-svn] r17892 - in trunk/packages/python-biopython/trunk/debian: . patches

Andreas Tille tille at moszumanska.debian.org
Mon Sep 1 14:01:17 UTC 2014


Author: tille
Date: 2014-09-01 14:01:17 +0000 (Mon, 01 Sep 2014)
New Revision: 17892

Added:
   trunk/packages/python-biopython/trunk/debian/patches/fix_test_problem_on_powerpc.patch
Modified:
   trunk/packages/python-biopython/trunk/debian/changelog
   trunk/packages/python-biopython/trunk/debian/patches/series
Log:
Patch provided by upstream to run test suite on PowerPC


Modified: trunk/packages/python-biopython/trunk/debian/changelog
===================================================================
--- trunk/packages/python-biopython/trunk/debian/changelog	2014-09-01 05:48:47 UTC (rev 17891)
+++ trunk/packages/python-biopython/trunk/debian/changelog	2014-09-01 14:01:17 UTC (rev 17892)
@@ -1,3 +1,12 @@
+python-biopython (1.64+dfsg-4) UNRELEASED; urgency=medium
+
+  * debian/patches/fix_test_problem_on_powerpc.patch: Patch provided by
+    upstream to run test suite on PowerPC (thanks to Michiel de Hoon
+    <mjldehoon at yahoo.com>)
+    Closes: #751277
+
+ -- Andreas Tille <tille at debian.org>  Mon, 01 Sep 2014 15:59:30 +0200
+
 python-biopython (1.64+dfsg-3) unstable; urgency=medium
 
   * Skip test on mips architecture which is known to fail

Added: trunk/packages/python-biopython/trunk/debian/patches/fix_test_problem_on_powerpc.patch
===================================================================
--- trunk/packages/python-biopython/trunk/debian/patches/fix_test_problem_on_powerpc.patch	                        (rev 0)
+++ trunk/packages/python-biopython/trunk/debian/patches/fix_test_problem_on_powerpc.patch	2014-09-01 14:01:17 UTC (rev 17892)
@@ -0,0 +1,207 @@
+Author: Michiel de Hoon <mjldehoon at yahoo.com>
+Last-Update: Fri, 29 Aug 2014 20:37:24 -0700
+Bug-Debian: http://bugs.debian.org/751277
+Forwarded-Upstream: yes
+Description: Fix issue in test suite on PowerPC (and hopefully mips, s390x)
+
+--- a/Bio/Cluster/clustermodule.c
++++ b/Bio/Cluster/clustermodule.c
+@@ -27,31 +27,79 @@
+ /* -- Helper routines ------------------------------------------------------- */
+ /* ========================================================================== */
+ 
++#if PY_MAJOR_VERSION < 3
++static char
++extract_single_character(PyObject* object, const char variable[],
++                         const char allowed[])
++{   char c = '\0';
++    const char* data;
++    Py_ssize_t n;
++    if (PyString_Check(object))
++    {   n = PyString_GET_SIZE(object);
++        if (n==1) {
++            data = PyString_AS_STRING(object);
++            c = data[0];
++        }
++    }
++    else if (PyUnicode_Check(object))
++    {   n = PyUnicode_GET_SIZE(object);
++        if (n==1) {
++            Py_UNICODE* u = PyUnicode_AS_UNICODE(object);
++            Py_UNICODE ch = u[0];
++            if (ch < 128) c = ch;
++        }
++    }
++    else
++    {   PyErr_Format(PyExc_ValueError, "%s should be a string", variable);
++        return 0;
++    }
++    if (!c)
++    {   PyErr_Format(PyExc_ValueError,
++                     "%s should be a single character", variable);
++        return 0;
++    }
++    else if (!strchr(allowed, c))
++    {   PyErr_Format(PyExc_ValueError,
++                     "unknown %s function specified (should be one of '%s')",
++                     variable, allowed);
++        return 0;
++    }
++    return c;
++}
++#else
++static char
++extract_single_character(PyObject* object, const char variable[],
++                         const char allowed[])
++{   Py_UCS4 ch;
++    Py_ssize_t n;
++    if (!PyUnicode_Check(object))
++    {   PyErr_Format(PyExc_ValueError, "%s should be a string", variable);
++        return 0;
++    }
++    if (PyUnicode_READY(object)==-1) return 0;
++    n = PyUnicode_GET_LENGTH(object);
++    if (n!=1)
++    {   PyErr_Format(PyExc_ValueError,
++                     "%s should be a single character", variable);
++        return 0;
++    }
++    ch = PyUnicode_READ_CHAR(object, 0);
++    if (ch < 128)
++    {   const char c = ch;
++        if (strchr(allowed, c)) return c;
++    }
++    PyErr_Format(PyExc_ValueError,
++                 "unknown %s function specified (should be one of '%s')",
++                 variable, allowed);
++    return 0;
++}
++#endif
++
+ static int
+ distance_converter(PyObject* object, void* pointer)
+ { char c;
+-  const char* data;
+-  const char known_distances[] = "ebcauxsk";
+-#if PY_MAJOR_VERSION < 3
+-  if (PyString_Check(object))
+-      data = PyString_AsString(object);
+-  else
+-#endif
+-  if (PyUnicode_Check(object))
+-      data = PyUnicode_AS_DATA(object);
+-  else
+-  { PyErr_SetString(PyExc_ValueError, "distance should be a string");
+-    return 0;
+-  }
+-  if (strlen(data)!=1)
+-  { PyErr_SetString(PyExc_ValueError, "distance should be a single character");
+-    return 0;
+-  }
+-  c = data[0];
+-  if (!strchr(known_distances, c))
+-  { PyErr_Format(PyExc_ValueError, "unknown distance function specified (should be one of '%s')", known_distances);
+-    return 0;
+-  }
++  c = extract_single_character(object, "dist", "ebcauxsk");
++  if (c==0) return 0;
+   *((char*)pointer) = c;
+   return 1;
+ }
+@@ -59,28 +107,8 @@ distance_converter(PyObject* object, voi
+ static int
+ method_treecluster_converter(PyObject* object, void* pointer)
+ { char c;
+-  const char* data;
+-  const char known_methods[] = "csma";
+-#if PY_MAJOR_VERSION < 3
+-  if (PyString_Check(object))
+-      data = PyString_AsString(object);
+-  else
+-#endif
+-  if (PyUnicode_Check(object))
+-      data = PyUnicode_AS_DATA(object);
+-  else
+-  { PyErr_SetString(PyExc_ValueError, "method should be a string");
+-    return 0;
+-  }
+-  if (strlen(data)!=1)
+-  { PyErr_SetString(PyExc_ValueError, "method should be a single character");
+-    return 0;
+-  }
+-  c = data[0];
+-  if (!strchr(known_methods, c))
+-  { PyErr_Format(PyExc_ValueError, "unknown method function specified (should be one of '%s')", known_methods);
+-    return 0;
+-  }
++  c = extract_single_character(object, "method", "csma");
++  if (c==0) return 0;
+   *((char*)pointer) = c;
+   return 1;
+ }
+@@ -88,28 +116,8 @@ method_treecluster_converter(PyObject* o
+ static int
+ method_kcluster_converter(PyObject* object, void* pointer)
+ { char c;
+-  const char* data;
+-  const char known_methods[] = "am";
+-#if PY_MAJOR_VERSION < 3
+-  if (PyString_Check(object))
+-      data = PyString_AsString(object);
+-  else
+-#endif
+-  if (PyUnicode_Check(object))
+-      data = PyUnicode_AS_DATA(object);
+-  else
+-  { PyErr_SetString(PyExc_ValueError, "method should be a string");
+-    return 0;
+-  }
+-  if (strlen(data)!=1)
+-  { PyErr_SetString(PyExc_ValueError, "method should be a single character");
+-    return 0;
+-  }
+-  c = data[0];
+-  if (!strchr(known_methods, c))
+-  { PyErr_Format(PyExc_ValueError, "unknown method function specified (should be one of '%s')", known_methods);
+-    return 0;
+-  }
++  c = extract_single_character(object, "method", "am");
++  if (c==0) return 0;
+   *((char*)pointer) = c;
+   return 1;
+ }
+@@ -117,31 +125,12 @@ method_kcluster_converter(PyObject* obje
+ static int
+ method_clusterdistance_converter(PyObject* object, void* pointer)
+ { char c;
+-  const char* data;
+-  const char known_methods[] = "amsxv";
+-#if PY_MAJOR_VERSION < 3
+-  if (PyString_Check(object))
+-      data = PyString_AsString(object);
+-  else
+-#endif
+-  if (PyUnicode_Check(object))
+-      data = PyUnicode_AS_DATA(object);
+-  else
+-  { PyErr_SetString(PyExc_ValueError, "method should be a string");
+-    return 0;
+-  }
+-  if (strlen(data)!=1)
+-  { PyErr_SetString(PyExc_ValueError, "method should be a single character");
+-    return 0;
+-  }
+-  c = data[0];
+-  if (!strchr(known_methods, c))
+-  { PyErr_Format(PyExc_ValueError, "unknown method function specified (should be one of '%s')", known_methods);
+-    return 0;
+-  }
++  c = extract_single_character(object, "method", "amsxv");
++  if (c==0) return 0;
+   *((char*)pointer) = c;
+   return 1;
+ }
++
+ /* -- data ------------------------------------------------------------------ */
+ 
+ static double**

Modified: trunk/packages/python-biopython/trunk/debian/patches/series
===================================================================
--- trunk/packages/python-biopython/trunk/debian/patches/series	2014-09-01 05:48:47 UTC (rev 17891)
+++ trunk/packages/python-biopython/trunk/debian/patches/series	2014-09-01 14:01:17 UTC (rev 17892)
@@ -1 +1,2 @@
 remove_mathml-qname.patch
+fix_test_problem_on_powerpc.patch




More information about the debian-med-commit mailing list