Your message dated Fri, 27 Jul 2007 18:47:16 +0000 with message-id <[EMAIL PROTECTED]> and subject line Bug#434905: fixed in python2.5 2.5.1-3 has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what I am talking about this indicates a serious mail system misconfiguration somewhere. Please contact me immediately.) Debian bug tracking system administrator (administrator, Debian Bugs database)
--- Begin Message ---Package: python2.5 Version: 2.5.1-2 Severity: important Tags: patch python2.5 is unable to serialize a floating point variable which equals Infinity or NaN on ARM using marshal. As it is the function used when byte-compiling python source files, this breaks a lot of packages. For example python-xml: Setting up python2.5-minimal (2.5.1-1) ... Traceback (most recent call last): File "/usr/bin/py_compilefiles", line 116, in <module> exit_status = int(not main()) File "/usr/bin/py_compilefiles", line 108, in main elif not compile_files(files, ddir, force, rx, quiet, ignore): File "/usr/bin/py_compilefiles", line 38, in compile_files ok = py_compile.compile(fullname, None, dfile, True) File "/usr/lib/python2.5/py_compile.py", line 138, in compile marshal.dump(codeobject, fc) ValueError: unmarshallable object pycentral: pycentral rtinstall: package python-xml: error byte-compiling files (214) pycentral rtinstall: package python-xml: error byte-compiling files (214) The problem is that python2.5 wants to manage the floating points in memory by itself, and assume that they are only little and big endian IEEE formats. Otherwise it fallback to a generic code, which does not handle NaN or Infinity. The attached patched fixed that by adding mixed-endian IEEE format, as it can be found on ARM old-ABI. Please fix this bug as soon as possible, as it make a lot of python packages uninstallable on ARM. -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: arm (armv5tejl) Kernel: Linux 2.6.18-4-versatile Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to fr_FR.UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages python2.5 depends on: ii libbz2-1.0 1.0.3-7 high-quality block-sorting file co ii libc6 2.6-2 GNU C Library: Shared libraries ii libdb4.4 4.4.20-8 Berkeley v4.4 Database Libraries [ ii libncursesw5 5.6-3 Shared libraries for terminal hand ii libreadline5 5.2-3 GNU readline and history libraries ii libsqlite3-0 3.3.17-1 SQLite 3 shared library ii libssl0.9.8 0.9.8e-5 SSL shared libraries ii mime-support 3.39-1 MIME files 'mime.types' & 'mailcap ii python2.5-minimal 2.5.1-2 A minimal subset of the Python lan python2.5 recommends no packages. -- no debconf informationdiff -u python2.5-2.5.1/debian/rules python2.5-2.5.1/debian/rules --- python2.5-2.5.1/debian/rules +++ python2.5-2.5.1/debian/rules @@ -915,6 +915,7 @@ hotshot-import \ subprocess-eintr-safety \ webbrowser \ + arm-float \ # pydebug-path \ only in patch2: unchanged: --- python2.5-2.5.1.orig/debian/patches/arm-float.dpatch +++ python2.5-2.5.1/debian/patches/arm-float.dpatch @@ -0,0 +1,119 @@ +#! /bin/sh -e + +# DP: Support mixed-endian IEEE floating point, as found in the ARM old-ABI. + +dir= +if [ $# -eq 3 -a "$2" = '-d' ]; then + pdir="-d $3" + dir="$3/" +elif [ $# -ne 1 ]; then + echo >&2 "usage: `basename $0`: -patch|-unpatch [-d <srcdir>]" + exit 1 +fi +case "$1" in + -patch) + patch $pdir -f --no-backup-if-mismatch -p0 < $0 + ;; + -unpatch) + patch $pdir -f --no-backup-if-mismatch -R -p0 < $0 + ;; + *) + echo >&2 "usage: `basename $0`: -patch|-unpatch [-d <srcdir>]" + exit 1 +esac +exit 0 + +--- Objects/floatobject.c.orig 2006-05-25 10:53:30.000000000 -0500 ++++ Objects/floatobject.c 2007-07-27 06:43:15.000000000 -0500 +@@ -982,7 +982,7 @@ + /* this is for the benefit of the pack/unpack routines below */ + + typedef enum { +- unknown_format, ieee_big_endian_format, ieee_little_endian_format ++ unknown_format, ieee_big_endian_format, ieee_little_endian_format, ieee_mixed_endian_format + } float_format_type; + + static float_format_type double_format, float_format; +@@ -1021,6 +1021,8 @@ + return PyString_FromString("IEEE, little-endian"); + case ieee_big_endian_format: + return PyString_FromString("IEEE, big-endian"); ++ case ieee_mixed_endian_format: ++ return PyString_FromString("IEEE, mixed-endian"); + default: + Py_FatalError("insane float_format or double_format"); + return NULL; +@@ -1073,11 +1075,14 @@ + else if (strcmp(format, "IEEE, big-endian") == 0) { + f = ieee_big_endian_format; + } ++ else if (strcmp(format, "IEEE, mixed-endian") == 0) { ++ f = ieee_mixed_endian_format; ++ } + else { + PyErr_SetString(PyExc_ValueError, + "__setformat__() argument 2 must be " +- "'unknown', 'IEEE, little-endian' or " +- "'IEEE, big-endian'"); ++ "'unknown', 'IEEE, little-endian', " ++ "'IEEE, big-endian' or 'IEEE, mixed-endian'"); + return NULL; + + } +@@ -1230,6 +1235,8 @@ + detected_double_format = ieee_big_endian_format; + else if (memcmp(&x, "\x05\x04\x03\x02\x01\xff\x3f\x43", 8) == 0) + detected_double_format = ieee_little_endian_format; ++ else if (memcmp(&x, "\x01\xff\x3f\x43\x05\x04\x03\x02", 8) == 0) ++ detected_double_format = ieee_mixed_endian_format; + else + detected_double_format = unknown_format; + } +@@ -1565,8 +1572,19 @@ + p += 7; + incr = -1; + } ++ else if (double_format == ieee_mixed_endian_format) { ++ if (le) ++ p += 4; ++ else { ++ p += 3; ++ incr = -1; ++ } ++ } + + for (i = 0; i < 8; i++) { ++ if (double_format == ieee_mixed_endian_format && i == 4) ++ p += -8 * incr; ++ + *p = *s++; + p += incr; + } +@@ -1739,6 +1757,27 @@ + } + memcpy(&x, buf, 8); + } ++ else if (double_format == ieee_mixed_endian_format) { ++ char buf[8]; ++ char *d; ++ int i, incr = 1; ++ ++ if (le) ++ d = &buf[4]; ++ else ++ d = &buf[3]; ++ ++ for (i = 0; i < 4; i++) { ++ *d = *p++; ++ d += incr; ++ } ++ d += -8 * incr; ++ for (i = 0; i < 4; i++) { ++ *d = *p++; ++ d += incr; ++ } ++ memcpy(&x, buf, 8); ++ } + else { + memcpy(&x, p, 8); + }
--- End Message ---
--- Begin Message ---Source: python2.5 Source-Version: 2.5.1-3 We believe that the bug you reported is fixed in the latest version of python2.5, which is due to be installed in the Debian FTP archive: idle-python2.5_2.5.1-3_all.deb to pool/main/p/python2.5/idle-python2.5_2.5.1-3_all.deb python2.5-dbg_2.5.1-3_i386.deb to pool/main/p/python2.5/python2.5-dbg_2.5.1-3_i386.deb python2.5-dev_2.5.1-3_i386.deb to pool/main/p/python2.5/python2.5-dev_2.5.1-3_i386.deb python2.5-examples_2.5.1-3_all.deb to pool/main/p/python2.5/python2.5-examples_2.5.1-3_all.deb python2.5-minimal_2.5.1-3_i386.deb to pool/main/p/python2.5/python2.5-minimal_2.5.1-3_i386.deb python2.5_2.5.1-3.diff.gz to pool/main/p/python2.5/python2.5_2.5.1-3.diff.gz python2.5_2.5.1-3.dsc to pool/main/p/python2.5/python2.5_2.5.1-3.dsc python2.5_2.5.1-3_i386.deb to pool/main/p/python2.5/python2.5_2.5.1-3_i386.deb A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to [EMAIL PROTECTED], and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Matthias Klose <[EMAIL PROTECTED]> (supplier of updated python2.5 package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing [EMAIL PROTECTED]) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.7 Date: Fri, 27 Jul 2007 20:01:35 +0200 Source: python2.5 Binary: python2.5-dbg idle-python2.5 python2.5 python2.5-examples python2.5-minimal python2.5-dev Architecture: source i386 all Version: 2.5.1-3 Distribution: unstable Urgency: high Maintainer: Matthias Klose <[EMAIL PROTECTED]> Changed-By: Matthias Klose <[EMAIL PROTECTED]> Description: idle-python2.5 - An IDE for Python (v2.5) using Tkinter python2.5 - An interactive high-level object-oriented language (version 2.5) python2.5-dbg - Debug Build of the Python Interpreter (version 2.5) python2.5-dev - Header files and a static library for Python (v2.5) python2.5-examples - Examples for the Python language (v2.5) python2.5-minimal - A minimal subset of the Python language (version 2.5) Closes: 434905 Changes: python2.5 (2.5.1-3) unstable; urgency=high . * Support mixed-endian IEEE floating point, as found in the ARM old-ABI (Aurelien Jarno). Closes: #434905. Files: fa7b8a7f9916e3db96e33ca0b7718222 1353 python optional python2.5_2.5.1-3.dsc eff5b3865343ce422b6bd9182d5fb944 327358 python optional python2.5_2.5.1-3.diff.gz b038cb13ca4d5ba175cefbbcc963705f 645398 python optional python2.5-examples_2.5.1-3_all.deb e932dbe83fada187800d6a068bb7b756 64150 python optional idle-python2.5_2.5.1-3_all.deb 401c3ff5d52b118a1d99c26238c00ad9 3080954 python optional python2.5_2.5.1-3_i386.deb 00812c86f4865986df5a13d1dbf7b5fd 1162044 python optional python2.5-minimal_2.5.1-3_i386.deb d293646f4b03661ad08657488875244c 1634810 python optional python2.5-dev_2.5.1-3_i386.deb 14e04dde1ecf1759a926c0ec7bb5fcd9 7760244 python extra python2.5-dbg_2.5.1-3_i386.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFGqjelStlRaw+TLJwRAo4DAJ9xhOr2yunZvih9+3xOaH+yGRZ5tQCfbILh LP0o3nsTT/SFGfhk4vJO8xQ= =g/6I -----END PGP SIGNATURE-----
--- End Message ---

