Blob Blame History Raw
pyyaml FTBFS on the s390x buildd.  It seems this is due to using int
where the libyaml API uses size_t.  I tested the attached patch in
zelenka.d.o's sid chroot, and at least the python2 build/test worked (it
failed with the same error as the buildd pre-patching).
Patch by Julien Cristau <jcristau@debian.org>
Add to the pyyaml package by Scott Kitterman <scott@kitterman.com>
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=676536

Index: pyyaml-3.10/ext/_yaml.pxd
===================================================================
--- pyyaml-3.10.orig/ext/_yaml.pxd	2011-05-29 23:31:01.000000000 -0400
+++ pyyaml-3.10/ext/_yaml.pxd	2012-06-08 16:33:54.309407701 -0400
@@ -86,15 +86,15 @@
         YAML_MAPPING_END_EVENT
 
     ctypedef int yaml_read_handler_t(void *data, char *buffer,
-            int size, int *size_read) except 0
+            size_t size, size_t *size_read) except 0
 
     ctypedef int yaml_write_handler_t(void *data, char *buffer,
-            int size) except 0
+            size_t size) except 0
 
     ctypedef struct yaml_mark_t:
-        int index
-        int line
-        int column
+        size_t index
+        size_t line
+        size_t column
     ctypedef struct yaml_version_directive_t:
         int major
         int minor
@@ -113,7 +113,7 @@
         char *suffix
     ctypedef struct _yaml_token_scalar_data_t:
         char *value
-        int length
+        size_t length
         yaml_scalar_style_t style
     ctypedef struct _yaml_token_version_directive_data_t:
         int major
@@ -152,7 +152,7 @@
         char *anchor
         char *tag
         char *value
-        int length
+        size_t length
         int plain_implicit
         int quoted_implicit
         yaml_scalar_style_t style
Index: pyyaml-3.10/ext/_yaml.pyx
===================================================================
--- pyyaml-3.10.orig/ext/_yaml.pyx	2011-05-29 23:31:01.000000000 -0400
+++ pyyaml-3.10/ext/_yaml.pyx	2012-06-08 16:33:54.313409701 -0400
@@ -905,7 +905,7 @@
                 raise error
         return 1
 
-cdef int input_handler(void *data, char *buffer, int size, int *read) except 0:
+cdef int input_handler(void *data, char *buffer, size_t size, size_t *read) except 0:
     cdef CParser parser
     parser = <CParser>data
     if parser.stream_cache is None:
@@ -1515,7 +1515,7 @@
             self.ascend_resolver()
         return 1
 
-cdef int output_handler(void *data, char *buffer, int size) except 0:
+cdef int output_handler(void *data, char *buffer, size_t size) except 0:
     cdef CEmitter emitter
     emitter = <CEmitter>data
     if emitter.dump_unicode == 0: