classification
Title: correct AIX logic in setup.py for (non-existant) optional extensions
Type: behavior Stage: resolved
Components: Extension Modules Versions: Python 3.9, Python 3.8
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: Michael.Felt, ncoghlan, ned.deily
Priority: normal Keywords: patch

Created on 2019-03-06 13:04 by Michael.Felt, last changed 2019-09-25 14:15 by ned.deily. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 12202 merged Michael.Felt, 2019-03-06 19:07
PR 16376 merged Michael.Felt, 2019-09-25 06:26
Messages (6)
msg337298 - (view) Author: Michael Felt (Michael.Felt) * Date: 2019-03-06 13:04
Only marking Python3.8, but this is a historical issue I have ignored as long as possible.

There are many - ancient and recent issues open around the extension module _curses - and over the years it appears many assumptions have come into the code (such as configure.ac that says CPP needs to be expended with /usr/include/ncursesw, but not /usr/include/ncurses (which is what the ncurses project uses).

Further, Pyhton3 assumes that ncurses is the better solution, so if it can find a libncurses library that must be the best approach.

While ncurses might, all other things being equal, be a preferred library - it does not mean it is the best for all platforms.

On AIX - the assumptions made (at least where the include files are) tends to make it impossible to build the _cursesmodule in any form when a third-party ncurses is installed.

When ncurses is not installed _curses builds fine and _curses_panel is skipped.

I propose that "setup.py" - on AIX - specifies libcurses.a rather than libncurses - as the default.
msg339303 - (view) Author: Michael Felt (Michael.Felt) * Date: 2019-04-01 19:18
Updating this to not only correct the failure of 3rd-party library ncurses (while IBM curses builds with no issue) to also stop announcing that the optional modules osaudiodev and spwd have not been built.

Neither are supported on AIX - so they will never be there.
msg346217 - (view) Author: Nick Coghlan (ncoghlan) * (Python committer) Date: 2019-06-21 13:58
New changeset 08970cb03c61f62f4f69e7769d0075fa66bb86aa by Nick Coghlan (Michael Felt) in branch 'master':
bpo-36210: update optional extension handling for AIX (GH-12202)
https://github.com/python/cpython/commit/08970cb03c61f62f4f69e7769d0075fa66bb86aa
msg353061 - (view) Author: Michael Felt (Michael.Felt) * Date: 2019-09-24 07:06
Hi all,

Now that I have finally noticed that the 3.8 branches are active for AIX bots I see something that I had always thought was in the 3.8 branch, but is not yet.

https://github.com/python/cpython/pull/12202

Seems the backport never succeeded. Although, iirc it was, then, very near the day that "3.9" started. So, surprised that it failed the backport. Can that process be started again, or will I need to do this manually, so that the PPC64 bot also passes.
msg353145 - (view) Author: Michael Felt (Michael.Felt) * Date: 2019-09-25 06:28
Added a backport for 3.8.

p.s. - what is the file "name of the past"?
msg353202 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2019-09-25 14:14
New changeset e4be8c984d035da30f9ed051aa6f3f762f0e9060 by Ned Deily (Michael Felt) in branch '3.8':
bpo-36210: correct logic in setup.py for optional extensions for AIX (GH-12202) (GH-16376)
https://github.com/python/cpython/commit/e4be8c984d035da30f9ed051aa6f3f762f0e9060
History
Date User Action Args
2019-09-25 14:15:19ned.deilysetstatus: open -> closed
stage: patch review -> resolved
resolution: fixed
versions: + Python 3.9, - Python 3.7
2019-09-25 14:14:12ned.deilysetnosy: + ned.deily
messages: + msg353202
2019-09-25 14:03:55ned.deilysetfiles: - name of the past
2019-09-25 06:28:07Michael.Feltsetmessages: + msg353145
2019-09-25 06:26:18Michael.Feltsetpull_requests: + pull_request15955
2019-09-24 07:06:03Michael.Feltsetmessages: + msg353061
2019-06-21 13:58:25ncoghlansetnosy: + ncoghlan
messages: + msg346217
2019-04-02 06:25:36Michael.Feltsettitle: correct AIX logic in setup.py for non-existant optional extensions -> correct AIX logic in setup.py for (non-existant) optional extensions
2019-04-01 23:55:23عشقى و حنانيsetfiles: + name of the past
2019-04-01 19:19:06Michael.Feltsetversions: + Python 3.7
2019-04-01 19:18:51Michael.Feltsetmessages: + msg339303
title: ncurses versus cursus integration - platform differences and defaults -> correct AIX logic in setup.py for non-existant optional extensions
2019-03-06 19:07:34Michael.Feltsetkeywords: + patch
stage: patch review
pull_requests: + pull_request12197
2019-03-06 13:04:38Michael.Feltcreate