IBM i Open Source Gets Better With Fall 2021 TRs
September 20, 2021 Alex Woodie
The open source community has become a big source of new software for the IBM i platform in recent years, if not the biggest contributor. To that end, the recent Technology Refreshes (TRs) for IBM i 7.3 and 7.4 bring a dozen or so new or updated packages to the platform.
One of the most exciting additions to IBM i’s open source repertoire is tn5250, a bare-bones terminal emulator for accessing IBM i system and application screens. Distributed via Source Forge, tn5250 is a Windows program that enables users to access green screens from the Secure Shell (SSH) terminal.
The tn5250 emulator includes only English language support, and it only provides display and printing support. It doesn’t support more advanced functions that might be found in other emulators. But considering the 20-year history of this tool and the generally positive user reviews, it’s good to know that there’s another option
With version 16, the Node.js community gets native support for Apple silicon, a series of chips and processors designed by Apple, mainly using the ARM architecture. It is used in Mac computers iPhones, iPads, Apple TVs, and Apple Watches. It brings other enhancements in the areas of performance, security, and diagnostics. For more info see the Node.js GitHub Wiki.
IBM has also upped its support for Python, the scripting language that has become extremely popular for data science and machine learning workloads over the past few years. IBM has supported Python on IBM i for a number of years, and the general boom in popularity (not to mention the number of Python-literate developers) is spilling over into the IBM i community, where Python presents another option for developing modern next-gen IBM i applications.
In the latest Python version 3.9 release, the Python community has brought numerous language enhancements, including dictionary merge and update operators, string manipulation improvements, and assignment expressions, IBM says. Version 3.9 is also a newer LTS release, which should give IBM i shops confidence to adopt it.
IBM i applications will be able to access the Sybase and Microsoft SQL Server databases via FreeTDS, a project that documents and implements the Tabular Data Stream (TDS) protocol, which is used by Sybase and SQL Server.
According to IBM, IBM i applications running in the Unix-like PASE runtime will be the big beneficiaries of the addition of FreeTDS to the open source software rolls. In particular, better integration between Db2 data for those PASE apps and Sybase and SQL Server-resident data. More information is available at www.freetds.org.
IBM has also upgraded its support for GNU Compiler Collection (GCC), which is a free and open source compiler that was originally developed by Richard Stallman for the GNU operating system (which is the foundation for Linux). Over the years, GCC has grown to include a host of handy functions, including compilers for languages like Python and Perl, a version of Bash, and more.
IBM is now supporting version 10 of GCC, which was first released in the spring of 2020 (the GCC is now up to version 10.3). According to the GCC 10 release series documentation, this release brings many fixes and enhancements, including new built-in functions, new command-line options, inter-procedural optimization improvements, and link-time optimization improvements. It also brings support for the latest releases of languages and a host of language-specific improvements.
IBM i is expanding its support for Bash, the Unix shell and command language that has been in use since 1989, and which has become the default login shell for most Linux distributions. Specifically, IBM has added three new Bash built-ins, including liblist, cl, and getjobid.
According to IBM engineer Kevin Adler’s blog post, the new built-ins “function nearly identically to the liblist, system, and getjobid commands that exist in PASE and/or QSH.” While the functions duplicate existing functions to some extent, they streamline certain tasks around calling library lists and job IDs, and will save developers’ time.
Another open source addition is dos2unix, which is a handy utility designed to make it easier to convert files between DOS/Windows and UNIX formats. The need stems from the different ways that the two systems deal with line breaks in a text file.
The dox2unix utility, which first debuted 32 years ago, address the problem by converting between the carriage return and line feed (CRLF) ending of the DOS/Windows format to the line feed (LF) ending of the Unix format. It also deals with the CR ending of the Mac OS format. There is also “unix2dos,” which goes the other way.
Speaking of Unix (hopefully that doesn’t scare you), the new TRs also includes support for Cron, the popular Unix-based job scheduling tool that was first created at Bell Labs in 1975. According to IBM, Cron is now available on IBM i as part of the “cronie” package.
“This software is a modern version of the cron daemon, used by the most Linux distributions,” IBM says in its software announcement for the TRs. “The ‘anacron’ tool is also available. Unlike cron, which requires a scheduler job to be running continuously, anacron can be invoked at periodic intervals.” More information can be found at the Cronie GitHub wiki.
The new TRs also bring support for hexdump, another open source utility that’s popular among Unix programmers. Hexdump has traditionally been used to get a hexadecimal view of file, the memory, or storage device.
In the case of IBM i, hexdump will be used to provide another way to examine the contents of a file, as opposed to the raw contents of memory or storage. The utility works across secure SSH connections. “With the hexdump utility, the individual bytes within a file can be easily analyzed,” IBM says.
It’s not Halloween just yet, but it is time for IBM i to support Ghostscript. It shouldn’t be too scary, though–Ghostscript is just a PostScript or PDF interpreter that can be used to generate PDFs from various input formats.
Available under the GNU APL Affero license, Ghostscript’s main purpose is the rasterization or rendering of PostScript and PDF pages. It can also convert between PostScript and PDF. A commercial version is available from the company Artifex.