Adding support for adequately tagging AIX (pep425) to support distributed wheels

Goal - using wheels rather than RPM and/or installp formats for distributing binary modules Why bother? One reason (there are likely more) - using wheels means packages/modules can be loaded in a virtualenv rather than require they are first loaded in the system environment using installp/rpm/yum (with root authority). This alone has been reason enough for me to do the research. Introduction The use of pip and wheels is commonplace in the worlds of Linux, macOS and Windows. Not so for AIX. Not because it couldn't be commonplace. The current situation for AIX is comparable to the initial issue Linux was facing when PEP513 was written: "Currently, distribution of binary Python extensions for Windows and OS X is straightforward. ... For Linux, the situation is much more delicate. ... Build tools using PEP 425 platform tags [3] do not track information about the particular Linux distribution or installed system libraries, and instead assign all wheels the too-vague linux_i686 or linux_x86_64 tags. Because of this ambiguity, ..." The root cause for the *ambiguity* that Linux systems had is not the ambiguity that AIX faces. AIX has provided a consistent way to "tag" it's runtime environment since at least 2007 (AIX 5.3 TL7). Since that time IBM AIX has also *guaranteed* binary compatibility for migration of applications from old to new OS levels. I would like to see these tags added - at a minimum that they can be retrieved by something such as sysconfig.get_var('AIC_BLD_TAG'). It would be "nice" to see sysconfig.get_platform() updated to include these values from the running system. Further, while pip related tools can add the "bitness" to the platform tags I would like to see something added to the AIX get_platform() tag (b32, ppc, aix32), (b64, ppc64, aix64) for 32 and 64 bit operations, respectively - as that is a "running" environment attribute. Open to other ideas on what the bitness tag should be. IMHO - anything is better than nothing. Maybe this could be considered a bug rather than as a new feature. Thank you for your feedback. Michael

I conclude my writing style has not helped soliciting responses. I would appreciate them. Summary - what I would like to say - is that there are platforms that have been successful in applying PEP425's definitions of tagging Python and modules. Looking at the modules pip and wheel I can verify it is already possible to build and install wheels on AIX. However, the tag provided by CPython is inadequate for "pip wheel" to create a wheel that could be used, safely, by AIX on a different OS level. I use the term safely because it might work, but it is just as likely that it will not. Even if the PEP425 tag for AIX is not used in ways similar to ways that macOS and linux1 tags are used (supporting multiple OS levels) a better tag is needed to "stamp" the current ABI characteristics - including 32 or 64 bit (or perhaps both). For simplicity I would start with "bit-signed" tags. Please note: while AIX may not be the most popular platform to develop on - there are Python based applications that are used on AIX. The lack of certain behaviors that are taken for granted on other platforms hampers admins, architects and businesses that wish to use Python apps in a heterogeneous environment. Thank you for your comments! Michael

On Sep 1, 2019, at 13:04, Michael Felt <michael@felt.demon.nl> wrote:
I conclude my writing style has not helped soliciting responses.
I would appreciate them.
Maybe you’re just asking in the wrong place? I think most discussions on issues like this happen on distutils-sig or one of the more specific PyPA lists, or a platform-specific mailing list (I’m not sure if there is one for AIX), and only come to -ideas or -dev if someone thinks it might going to step on unintended toes or can’t be resolved without getting wider input.
participants (3)
-
Andrew Barnert
-
Michael
-
Michael Felt