[Python-modules-team] Bug#902036: pygame FTBFS on s390x, testsuite failure.

peter green plugwash at p10link.net
Tue Oct 30 03:25:22 GMT 2018


found 902036 1.9.4.post1+dfsg-1
tags 902036 +patch
thanks


On 30/10/18 02:03, peter green wrote:
>
> Unfortunately while the 1.9.4.post1+dfsg-1 upload fixed the ppc64el failure, it did not fix the s390x failure.
I just took a look at this, turned out to be a typo in a #if causing a 32-bit value to be written to a 64-bit variable. The variable was initialized to zero earlier, so we got away with this on little endian 64-bit but on big endian 64-bit it resulted in the value being 4294967296 times larger than it should be which resulted in an out of range error.

Debdiff attached, no immediate intent to NMU.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/python-modules-team/attachments/20181030/9a62ab50/attachment.html>
-------------- next part --------------
diff -Nru pygame-1.9.4.post1+dfsg/debian/changelog pygame-1.9.4.post1+dfsg/debian/changelog
--- pygame-1.9.4.post1+dfsg/debian/changelog	2018-10-28 13:09:16.000000000 +0000
+++ pygame-1.9.4.post1+dfsg/debian/changelog	2018-10-30 03:03:07.000000000 +0000
@@ -1,3 +1,10 @@
+pygame (1.9.4.post1+dfsg-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Fix a typo that breaks bufferproxy on 64-bit big endian.
+
+ -- Peter Michael Green <plugwash at debian.org>  Tue, 30 Oct 2018 03:03:07 +0000
+
 pygame (1.9.4.post1+dfsg-1) unstable; urgency=high
 
   [ Ondřej Nový ]
diff -Nru pygame-1.9.4.post1+dfsg/debian/patches/fix-bufferproxy-be64.patch pygame-1.9.4.post1+dfsg/debian/patches/fix-bufferproxy-be64.patch
--- pygame-1.9.4.post1+dfsg/debian/patches/fix-bufferproxy-be64.patch	1970-01-01 00:00:00.000000000 +0000
+++ pygame-1.9.4.post1+dfsg/debian/patches/fix-bufferproxy-be64.patch	2018-10-30 03:03:07.000000000 +0000
@@ -0,0 +1,22 @@
+Description: Fix a typo that breaks bufferproxy on 64-bit big endian.
+ A typo in a #if caused a wrong definition of ARG_FORMAT to be used
+ leading to reading a 32-bit value into a 64-bit variable on 64 bit
+ systems.
+ 
+ On little endian we got away with this because the 64-bit value is
+ initialised to zero. However on big endian this resulted in a value
+ 4294967296 times larger than it should be which resulted in an out
+ of range error.
+Author: Peter Michael Green <plugwash at debian.org>
+
+--- pygame-1.9.4.post1+dfsg.orig/src/bufferproxy.c
++++ pygame-1.9.4.post1+dfsg/src/bufferproxy.c
+@@ -479,7 +479,7 @@ proxy_write(PgBufproxyObject *self, PyOb
+     Py_ssize_t offset = 0;
+     char *keywords[] = {"buffer", "offset", 0};
+ 
+-#if Py_VERSION_HEX >= 0x02050000
++#if PY_VERSION_HEX >= 0x02050000
+ #define ARG_FORMAT "s#|n"
+ #else
+ #define ARG_FORMAT "s#|i"  /* In this case Py_ssize_t is an int */
diff -Nru pygame-1.9.4.post1+dfsg/debian/patches/series pygame-1.9.4.post1+dfsg/debian/patches/series
--- pygame-1.9.4.post1+dfsg/debian/patches/series	2018-10-28 13:09:16.000000000 +0000
+++ pygame-1.9.4.post1+dfsg/debian/patches/series	2018-10-30 03:03:07.000000000 +0000
@@ -5,3 +5,4 @@
 arithmetic_fixes.patch
 fix_sphinx_unicode.patch
 skip_flaky_tests_on_le.patch
+fix-bufferproxy-be64.patch


More information about the Python-modules-team mailing list