AIX Open Source

 View Only

Migrating to python3.9 for AIX Toolbox python3 ecosystem

  • 1.  Migrating to python3.9 for AIX Toolbox python3 ecosystem

    Posted 4 days ago
    Edited by SANGAMESH MALLAYYA 4 days ago

    This post gives an information on what changes will be introduced and what steps users have to take when we upload packages built
     with python3.9 for which python3.9 will be the default python3.

    We are hoping to upload all python modules built with python3.9 in couples of weeks.


    Introduction

    Currently on AIX Toolbox python3 based packages are built with python 3.7.

    Python 3.7 will be EOL in June 2023. https://www.python.org/downloads/

    Hence it is necessary to move to supported python3 version for AIX Toolbox packages.

    The default python3

    The AIX Toolbox default python3 is python3-3.7. Along with this we have python3.9-3.9 as well.

    Till now users who wants to use python3.9 needed to install it separately either with "dnf install python3.9" or by manually using rpm install command "rpm -ivh python3.9 …."

    But now default python3 will be python3.9 instead of python3-3.7.

    Because of this now when user will run "dnf update", python3.9 along with any other python3 modules (installed from AIX toolbox) or python3 based packages installed (dnf, ninja-build, git, gdb etc) will be update to python3.9 based builds. It is recommended to run "dnf update" instead of updating individual packages.

    python3, python3-devel, python3-idle, python3-test, python3-tkinter rpms are now meta-packages that ships default binaries like python3, python3-config, pydoc3, etc. which are actually symlinks to python3.9, python3.9-config, pydoc3.9, etc. provided by python3.9 rpms.
    These meta packages have dependencies on actual python packages those supplies the binaries and libraries. Users are recommended to install meta-packages through dnf and implicitly main python3 packages will be installed.

    We have rebuilt all our python3 modules with python3.9.


    Other issues fixed along with python3.9 rebuilds

    Earlier we had an issue with python3 and runtime linking.

    This also exposed the issues in rpm.rte and runtime linking.

    Overall, this was causing issues with DNF, and breaking DNF itself where users had to fix it by manually downloading some of the rpms from AIX Toolbox.

    This has been explained in detail in this forum post  Recent DNF and YUM issues with newer python3 and curl builds

    Users action

    To get all of these latest changes users can run "dnf update".  Don't try to update the package individually it recommended to run DNF update.

    But before running any DNF commands one needs update rpm.rte to latest version.

    We have rebuilt rpm.rte to remove runtime linking and rebuilt DNF and dependencies against this newly rebuilt rpm.rte. DNF dependencies now links to rpm.rte provided archive libraries (.a) instead of directly linking to .so libraries.

    To avoid errors related to missing librpm*.a libraries one needs to update rpm.rte first.

    You can download latest rpm.rte versions from AIX web download site.
    https://www.ibm.com/resources/mrs/assets?source=aixbp

    For AIX 7.1 and 7.2: Download and install rpm.rte-4.15.1.1010

    For AIX 7.3: Download and install rpm.rte-4.15.1.2009

    DNF bundle update

    DNF bundle will be updated to include rebuilt DNF python3 modules with python3.9 and an updated rpm.rte.

    So, when setting up the DNF using the install script, it tries to update to the latest rpm.rte first and then install the required rpm packages.

    Custom Python3 Modules

    If a user has built and installed python3 modules (with python3.7) on their own outside AIX toolbox then those modules will not be migrated to python3.9. User will have to reinstall them separately for python3.9.

    Summary

    From a user perspective there is not much work to migrate to python3.9. One just need to install latest rpm.rte from AIX web download link mentioned above (if not already at latest) and run "dnf update" to get the latest python3.9 ecosystem. Or if you are setting up first time dnf environment then just install latest rpm.rte and then install dnf with the AIX toolbox dnf install script.



    ------------------------------
    SANGAMESH
    ------------------------------