Skip to content

cross-compiling python 3.13 readline error - unable to find ncurses.pc while ncursesw.pc is available #125452

@th0ma7

Description

@th0ma7

Bug report

Bug description:

python package maintainer for the SynoCommunity. Preparing the migration path from our python 3.11 to 3.13 but the installer changed since previous version, no longer using setup.py.

Long-story short, the configure script finds ncursesw properly, altough testing for readline later on fails as only assuming ncurses.pc (vs the w variant).

error from our logs:

The necessary bits to build these optional modules were not found:
_tkinter                  readline                                         
To find the necessary bits, look in configure.ac and config.log.

Checked 112 modules (33 built-in, 61 shared, 1 n/a on linux-x86_64, 15 disabled, 2 missing, 0 failed on import)
make[4]: Leaving directory '/home/spksrc/python-wheels/spksrc/spk/python313/work-x64-7.1/Python-3.13.0'
===>  Installing for python313
find /home/spksrc/python-wheels/spksrc/spk/python313/work-x64-7.1/install//var/packages/python313/target/../ \! -type d -printf '%P\n' | sed 's?^target/??g' | sort > /home/spksrc/python-wheels/spksrc/spk/python313/work-x64-7.1/python313.plist.tmp

I've been digging into the configure.ac in hope to find why but no luck just yet... configure detection of ncursesw:

checking for ncursesw... yes
checking for ncursesw/curses.h... no
checking for ncursesw/ncurses.h... no
checking for ncursesw/panel.h... no
checking for ncurses/curses.h... no
checking for ncurses/ncurses.h... no
checking for ncurses/panel.h... no
checking for curses.h... yes
checking for ncurses.h... yes
checking for curses function is_pad... yes
checking for curses function is_term_resized... yes
checking for curses function resize_term... yes
checking for curses function resizeterm... yes
checking for curses function immedok... yes
checking for curses function syncok... yes
checking for curses function wchgat... yes
checking for curses function filter... yes
checking for curses function has_key... yes
checking for curses function typeahead... yes
checking for curses function use_env... yes
checking for stdlib extension module _curses... yes
checking for stdlib extension module _curses_panel... yes

I presume relatively simple to fix, but haven't found how just yet.

CPython versions tested on:

3.13

Operating systems tested on:

Linux

And sections from the config.log

configure:24789: checking for readline
configure:24796: $PKG_CONFIG --exists --print-errors "readline"
Package ncurses was not found in the pkg-config search path.
Perhaps you should add the directory containing `ncurses.pc' 
to the PKG_CONFIG_PATH environment variable
Package 'ncurses', required by 'readline', not found
configure:24799: $? = 1
configure:24813: $PKG_CONFIG --exists --print-errors "readline"
Package ncurses was not found in the pkg-config search path.
Perhaps you should add the directory containing `ncurses.pc'
to the PKG_CONFIG_PATH environment variable
Package 'ncurses', required by 'readline', not found
configure:24816: $? = 1
configure:24830: result: no
Package 'ncurses', required by 'readline', not found

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.13bugs and security fixesbuildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions