Python 3.13 ncurses-related build failure in opensuse

Overview

Building python 3.13 on opensuse 15.6 fails:

usr/bin/install -c -m 755 Modules/_curses.cpython-313-aarch64-linux-gnu.so /opt/gitlab/embedded/lib/python3.13/lib-dynload/_curses.cpython-313-aarch64-linux-gnu.so
Error:
    [ERROR] _curses failed to import: /var/cache/omnibus/src/python3/Python-3.13.7/build/lib.linux-aarch64-3.13/_curses.cpython-313-aarch64-linux-gnu.so: undefined symbol: _nc_acs_map
[ERROR] _curses_panel failed to import: PyCapsule_Import could not import module "_curses"
/usr/bin/install: cannot stat 'Modules/_curses.cpython-313-aarch64-linux-gnu.so': No such file or directory




gmake: *** [Makefile:2307: sharedinstall] Error 1

Context

Our omnibus-builder image installs ncurses-devel ; we also build ncurses in omnibus. For opensuse we end up with a mix of the system and our own libraries and at runtime we link against the system provided one. Then we fail as seen above. Removing ncurses-devel pushes the build to completion but is not the solution, just a proof of where the problem is.

Deliverables

Python should build with no errors, the curses module should be importable with no errors.

Edited by Stefan Constantin