SIGN IN SIGN UP

[3.13] gh-113565: Improve and harden detection of curses dependencies (GH-119816) (#121202)

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.
(cherry picked from commit f80376b129ad947263a6b03a6c3a874e9f8706e6)

Co-authored-by: Erlend E. Aasland <erlend@python.org>
M
Miss Islington (bot) committed
82777cd024331598dd87b45a00f9dd71437b93fa
Parent: d481d4b
Committed by GitHub <noreply@github.com> on 7/1/2024, 8:35:38 AM