diff -Nru python-greenlet-0.3.1/debian/changelog python-greenlet-0.3.1/debian/changelog --- python-greenlet-0.3.1/debian/changelog 2011-12-05 19:48:32.000000000 +0000 +++ python-greenlet-0.3.1/debian/changelog 2012-07-26 23:44:41.000000000 +0000 @@ -1,3 +1,17 @@ +python-greenlet (0.3.1-1ubuntu5.2) precise; urgency=low + + * debian/control, rules: Build and include debug symbols in + dbg package. + + -- Adam Gandelman Thu, 26 Jul 2012 16:23:43 -0700 + +python-greenlet (0.3.1-1ubuntu5.1) precise-proposed; urgency=low + + * Fix segfault on armhf (LP: #990162): + - Backported patch from 0.3.3 which fixes the segfault. + + -- Chuck Short Wed, 18 Jul 2012 13:07:35 -0500 + python-greenlet (0.3.1-1ubuntu5) precise; urgency=low * Enable building on armhf as well as armel. diff -Nru python-greenlet-0.3.1/debian/control python-greenlet-0.3.1/debian/control --- python-greenlet-0.3.1/debian/control 2011-12-05 19:46:44.000000000 +0000 +++ python-greenlet-0.3.1/debian/control 2012-07-26 23:44:41.000000000 +0000 @@ -3,15 +3,22 @@ Maintainer: Ubuntu Developers XSBC-Original-Maintainer: Örjan Persson Uploaders: Andreas Schuldei -Build-Depends: debhelper (>= 7.0.50), python-all-dev, gcc (>= 4), python-setuptools +Build-Depends: debhelper (>= 8.1.0~), + gcc (>= 4), + python-all-dev, + python-all-dbg, + python-support (>= 0.90), + python-setuptools Standards-Version: 3.8.4 Section: python Homepage: http://pypi.python.org/pypi/greenlet Package: python-greenlet-dbg Section: debug -Architecture: i386 amd64 powerpc sparc s390 s390x mips armel armhf -Depends: ${misc:Depends}, python-greenlet (= ${binary:Version}) +Priority: extra +Recommends: python-dbg +Architecture: amd64 armel armhf i386 mips powerpc s390 s390x sparc +Depends: python-greenlet (= ${binary:Version}), ${misc:Depends} Description: Lightweight in-process concurrent programming development files The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called "tasklets". Tasklets run pseudo-concurrently @@ -27,7 +34,7 @@ Package: python-greenlet-doc Section: doc Architecture: all -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${misc:Depends}, ${shlibs:Depends} Suggests: python-greenlet, python-greenlet-dev Description: Lightweight in-process concurrent programming development files The greenlet package is a spin-off of Stackless, a version of CPython that @@ -42,8 +49,10 @@ This is the documentation for greenlet. Package: python-greenlet-dev -Architecture: i386 amd64 powerpc sparc s390 s390x mips armel armhf -Depends: ${shlibs:Depends}, ${misc:Depends}, python-greenlet (= ${binary:Version}) +Architecture: amd64 armel armhf i386 mips powerpc s390 s390x sparc +Depends: python-greenlet (= ${binary:Version}), + ${misc:Depends}, + ${shlibs:Depends} Description: Lightweight in-process concurrent programming development files The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called "tasklets". Tasklets run pseudo-concurrently @@ -57,10 +66,10 @@ This is the development package for greenlet. Package: python-greenlet -Architecture: i386 amd64 powerpc sparc s390 s390x mips armel armhf -Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} +Architecture: amd64 armel armhf i386 mips powerpc s390 s390x sparc +Depends: ${misc:Depends}, ${python:Depends}, ${shlibs:Depends} Conflicts: python-codespeak-lib (<< 1.0) -Suggests: python-greenlet-doc, python-greenlet-dev, python-greenlet-dbg +Suggests: python-greenlet-dbg, python-greenlet-dev, python-greenlet-doc Description: Lightweight in-process concurrent programming The greenlet package is a spin-off of Stackless, a version of CPython that supports micro-threads called "tasklets". Tasklets run pseudo-concurrently diff -Nru python-greenlet-0.3.1/debian/patches/armhf-segfault-fix.patch python-greenlet-0.3.1/debian/patches/armhf-segfault-fix.patch --- python-greenlet-0.3.1/debian/patches/armhf-segfault-fix.patch 1970-01-01 00:00:00.000000000 +0000 +++ python-greenlet-0.3.1/debian/patches/armhf-segfault-fix.patch 2012-07-26 23:44:41.000000000 +0000 @@ -0,0 +1,61 @@ +diff -Naupr python-greenlet-0.3.1.orig/platform/switch_arm32_gcc.h python-greenlet-0.3.1/platform/switch_arm32_gcc.h +--- python-greenlet-0.3.1.orig/platform/switch_arm32_gcc.h 2012-07-18 13:13:26.000000000 -0500 ++++ python-greenlet-0.3.1/platform/switch_arm32_gcc.h 2012-07-18 13:15:53.734564264 -0500 +@@ -25,7 +25,20 @@ + + #ifdef SLP_EVAL + #define STACK_MAGIC 0 +-#define REGS_TO_SAVE "r4", "r5", "r6", "r7", "r8", "r9","fp", "ip", "lr" ++#define REGS_TO_SAVE_GENERAL "r4", "r5", "r6", "r7", "r8", "r9", \ ++ "r10", "r11", "ip", "sp", "lr", "pc" ++#if defined(__SOFTFP__) ++#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL ++#elif defined(__VFP_FP__) ++#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL, "d8", "d9", "d10", "d11", \ ++ "d12", "d13", "d14", "d15" ++#elif defined(__MAVERICK__) ++#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL, "mvf4", "mvf5", "mvf6", "mvf7", \ ++ "mvf8", "mvf9", "mvf10", "mvf11", \ ++ "mvf12", "mvf13", "mvf14", "mvf15" ++#else ++#define REGS_TO_SAVE REGS_TO_SAVE_GENERAL, "f4", "f5", "f6", "f7" ++#endif + + static int + slp_switch(void) +@@ -33,8 +46,8 @@ slp_switch(void) + void *fp; + register int *stackref, stsizediff; + __asm__ volatile ("" : : : REGS_TO_SAVE); +- __asm__ volatile ("str fp,%0" : "=m" (fp)); +- __asm__ ("mov %0,sp" : "=g" (stackref)); ++ __asm__ volatile ("mov r0, fp\n\tstr r0, %0" : "=m" (fp) : : "r0"); ++ __asm__ ("mov %0,sp" : "=r" (stackref)); + { + SLP_SAVE_STATE(stackref, stsizediff); + __asm__ volatile ( +@@ -45,7 +58,7 @@ slp_switch(void) + ); + SLP_RESTORE_STATE(); + } +- __asm__ volatile ("ldr fp,%0" : : "m" (fp)); ++ __asm__ volatile ("ldr r0, %0\n\tmov fp, r0" : : "m" (fp) : "r0"); + __asm__ volatile ("" : : : REGS_TO_SAVE); + return 0; + } +diff -Naupr python-greenlet-0.3.1.orig/setup.py python-greenlet-0.3.1/setup.py +--- python-greenlet-0.3.1.orig/setup.py 2010-05-27 12:07:07.000000000 -0500 ++++ python-greenlet-0.3.1/setup.py 2012-07-18 13:14:15.098561781 -0500 +@@ -1,7 +1,12 @@ + import os ++import sys + from setuptools import Extension + from setuptools import setup + ++# workaround segfaults on ARMv7 ++if sys.platform == "linux2" and os.uname()[-1] == "armv7l": ++ os.environ["CFLAGS"] = ("%s %s" % (os.environ.get("CFLAGS", ""), "-fomit-frame-pointer")).lstrip() ++ + setup( + name="greenlet", + version='0.3.1', diff -Nru python-greenlet-0.3.1/debian/patches/series python-greenlet-0.3.1/debian/patches/series --- python-greenlet-0.3.1/debian/patches/series 2011-09-05 18:31:30.000000000 +0000 +++ python-greenlet-0.3.1/debian/patches/series 2012-07-26 23:44:41.000000000 +0000 @@ -1,3 +1,4 @@ debian-changes-0.3.1-1ubuntu1 fix-arm-broken-tests.patch drop-ts_origin.patch +armhf-segfault-fix.patch diff -Nru python-greenlet-0.3.1/debian/rules python-greenlet-0.3.1/debian/rules --- python-greenlet-0.3.1/debian/rules 2011-09-04 14:41:53.000000000 +0000 +++ python-greenlet-0.3.1/debian/rules 2012-07-26 23:44:41.000000000 +0000 @@ -4,6 +4,7 @@ override_dh_strip: dh_strip --dbg-package=python-greenlet-dbg + cd debian/python-greenlet-dbg/usr/lib/debug/usr/lib && mv pyshared pymodules override_dh_installdocs: dh_installdocs --link-doc=python-greenlet