[Debian-med-packaging] Bug#988469: mypy: failure on armhf and i386

Adrian Bunk bunk at debian.org
Thu Sep 23 07:33:10 BST 2021


On Fri, May 14, 2021 at 12:27:33PM +0200, Michael R. Crusoe wrote:
>...
> This out of memory situation in your rebuild and by the reproducible builds
> project could be fixed by lowering the optimization level or even disabling
> compilation and using the pure Python approach, but then users will have a
> less performant mypy experience.
> 
> https://salsa.debian.org/med-team/mypy/-/blob/d9c04b579f68035058c06a2e393a6d46d1447e3d/debian/rules#L16

The build failures of the latest version indicates this is due to 32bit
versus 64bit buildds:
https://buildd.debian.org/status/logs.php?pkg=mypy&ver=0.910-2&arch=armhf&suite=sid

On the porterboxes, I have confirmed that the package builds on
amdahl (64bit) and FTBFS on abel (32bit).

> Given that we have working packages built on the buildds already, I am
> disinclined to lower the performance at this time.
>
> I will positively consider other approaches to reducing the memory
> requirements that do not reduce the optimization level of the compiled mypy
> libraries.
>...

There is no need to lower the performance, one common approach that does 
not affect performance is lowering the amount of debug information the
compiler has to generate and the linker to process.

-g1 means that sufficient information for backtraces is still in the 
-dbgsym, but more detailed debug information is no longer generated.

-g0 would go even further, not producing any debug information that 
would be required for useful backtraces.

In practice it is not causing huge problems to do something like
  ifeq ($(DEB_HOST_ARCH_BITS), 32)
    export DEB_CFLAGS_MAINT_APPEND += -g1
    export DEB_CXXFLAGS_MAINT_APPEND += -g1
  endif
especially considering that many of the affected packages tend to be more
scientific ones (like Debian Med) unlikely to have many users on 32bit.

The following patch works for me on abel:

--- debian/rules.old	2021-09-22 20:26:48.965721202 +0000
+++ debian/rules	2021-09-22 20:27:42.077156286 +0000
@@ -16,7 +16,7 @@
 ifneq (,$(filter $(DEB_BUILD_ARCH),hppa))
   export MYPYC_OPT_LEVEL=2
 else ifneq (,$(filter $(DEB_BUILD_ARCH),armhf))
-  export MYPYC_OPT_LEVEL=1
+  export DEB_CFLAGS_MAINT_APPEND += -g1
 else ifneq (,$(filter $(DEB_BUILD_ARCH),armel))
   export MYPYC_OPT_LEVEL=0
 endif
 

> Michael R. Crusoe

cu
Adrian



More information about the Debian-med-packaging mailing list