gh-113565: Improve and harden detection of curses dependencies (#119816)

1. Use pkg-config to check for ncursesw/panelw. If that fails, use 
   pkg-config to check for ncurses/panel.
2. Regardless of pkg-config output, search for curses/panel headers, so
   we're sure we have all defines in pyconfig.h.
3. Regardless of pkg-config output, check if libncurses or libncursesw
   contains the 'initscr' symbol; if it does _and_ pkg-config failed
   earlier, add the resulting -llib linker option to CURSES_LIBS.
   Ditto for 'update_panels' and PANEL_LIBS.
4. Wrap the rest of the checks with WITH_SAVE_ENV and make sure we're 
   using updated LIBS and CPPFLAGS for those.

Add the PY_CHECK_CURSES convenience macro.
This commit is contained in:
Erlend E. Aasland 2024-07-01 10:10:03 +02:00 committed by GitHub
parent bd473aa598
commit f80376b129
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 630 additions and 796 deletions

1170
configure generated vendored

File diff suppressed because it is too large Load diff