diff -u python2.7-2.7.2/debian/changelog python2.7-2.7.2/debian/changelog --- python2.7-2.7.2/debian/changelog +++ python2.7-2.7.2/debian/changelog @@ -1,3 +1,14 @@ +python2.7 (2.7.2-5ubuntu2) UNRELEASED; urgency=low + + * New patch, ctypes-arm, allow for ",hard-float" after libc6 in ldconfig -p + output; this code needs a larger redesign as currently the first library + wins, and it can't deal with a single uname that supports multiple ABIs. + For instance this wont work correctly in the biarch or multiarch cases + such as armel + armhf and it doesn't even work for i386 + amd64 unless one + cares to run under linux32. + + -- Loïc Minier Wed, 30 Nov 2011 14:53:49 +0100 + python2.7 (2.7.2-5ubuntu1) oneiric; urgency=low * Use the ncursesw include directory when linking with ncursesw. diff -u python2.7-2.7.2/debian/patches/series.in python2.7-2.7.2/debian/patches/series.in --- python2.7-2.7.2/debian/patches/series.in +++ python2.7-2.7.2/debian/patches/series.in @@ -56 +56,2 @@ -ncursesw-incdir.diff +ncursesw-incdir.diff +ctypes-arm.diff only in patch2: unchanged: --- python2.7-2.7.2.orig/debian/patches/ctypes-arm.diff +++ python2.7-2.7.2/debian/patches/ctypes-arm.diff @@ -0,0 +1,32 @@ +--- a/Lib/ctypes/util.py ++++ b/Lib/ctypes/util.py +@@ -206,16 +206,27 @@ + + def _findSoname_ldconfig(name): + import struct ++ # XXX this code assumes that we know all unames and that a single ++ # ABI is supported per uname; instead we should find what the ++ # ABI is (e.g. check ABI of current process) or simply ask libc ++ # to load the library for us ++ uname = os.uname()[4] ++ # ARM has a variety of unames, e.g. armv7l ++ if uname.startswith("arm"): ++ uname = "arm" + if struct.calcsize('l') == 4: +- machine = os.uname()[4] + '-32' ++ machine = uname + '-32' + else: +- machine = os.uname()[4] + '-64' ++ machine = uname + '-64' + mach_map = { + 'x86_64-64': 'libc6,x86-64', + 'ppc64-64': 'libc6,64bit', + 'sparc64-64': 'libc6,64bit', + 's390x-64': 'libc6,64bit', + 'ia64-64': 'libc6,IA-64', ++ # this actually breaks on biarch or multiarch as the first ++ # library wins; uname doesn't tell us which ABI we're using ++ 'arm-32': 'libc6(,hard-float)?', + } + abi_type = mach_map.get(machine, 'libc6') +