Back with another overdue update, this time for July. Big news this month, which had been hinted at for a while. Did you figure it out ahead of time?

New Packages

Python 3.9

Wild Python appeared

In addition to the existing Python 2.7 and 3.6, you can now use Python 3.9 on IBM i. We've spent a significant amount of time running through the Python test suite and fixing issues found so this should be the most stable version of Python on the platform yet! If you're wondering what's new with 3.9, there's the official docs as well as some great summaries like this one.

In addition to the Python 3.9 interpreter and runtime, we've ported the following Python 3.6 packages over:

  • dateutil
  • paramiko
  • pytz
  • six
  • Pillow
  • bcrypt
  • cffi
  • cryptography
  • ibm_db
  • itoolkit
  • psycopg2
  • pycparser
  • pynacl
  • pip
  • setuptools
  • wheel
  • pyodbc

Some of these packages have been updated to the most recent version. In addition, cython has been packaged for Python 3.9 for dependencies while others like idna2 and asn1crypto were not brought over since they are no longer needed.

At this point, the only Python 3.6 packages we still have not brought to Python 3.9 are the ML-related packages:

  • numpy
  • pandas
  • scikit-learn
  • scipy

With Python 3.6 going EOL in December, it's recommended to start porting code to 3.9 as soon as possible.

By default upon installation, it will set /QOpenSys/pkgs/bin/python3 to point to python3.9. For more info on handling Python on IBM i refer to our docs.

Package Updates

ncurses

The ncurses package was updated to ship pkg-config files in ncurses-devel. This can help when building packages which rely on pkg-config to determine the ncurses link and cflags instead of using ncurses' bespoke ncurses6-config script.

python-rpm-macros

The %py_install_wheel macro was updated to adjust the INSTALLER file created by pip to show that the package was installed by rpm.

Other Updates

  • libsodium was updated to 1.0.18

Closing

Another month down, 5 more to go. Come back next Monday for August updates!