Ever try to find a binary, container, or package for a piece of open source software for Linux on the mainframe, but find that none exist?
The new Open Mainframe Project Mainframe Software Hub for Linux is here to address this!
Across the open source ecosystem there are people contributing to the technical enablement of open source software packages for IBM Linux on the mainframe architecture (s390x). Through this work over the decades that Linux has been supported on the platform, we’ve seen thousands of projects enabled, many of which are either included in Linux distributions today, or release binaries, containers, and packages through their own project channels. Unfortunately, that leaves thousands of projects which either don’t fit neatly into the vision of the Linux distributions, or that of the project maintainers who have limited resources for supporting hardware architectures.
This has led to organizations across the mainframe ecosystem maintaining and sharing build scripts and patches, and ultimately building packages themselves for use by themselves or their clients. The Mainframe Software Hub for Linux is a centralized project that allows organizations to have a vendor-neutral home for these build scripts and patches, and a release mechanism so that binaries, containers, and other packages can be found in one location.
A new project and GitHub organization has been created at https://github.com/linuxonzapps to host this work and currently hosts a small collection of binaries for download.
To kick things off, Rishi Misra has begun with a handful of select projects that have build scripts and patches long been maintained by IBM, and residing on the linux-on-ibm-z GitHub wiki.
How to Download the Software
At the current phase of this project, we don’t have a unified interface for downloading the packages that are made available. Instead, we’re using GitHub’s releases mechanism to manage these downloads.
To see if the software you’re seeking is available, follow these steps:
- Go to https://github.com/linuxonzapps
- Search the project names to see if one matches the project you want.
- Click on the project name and go to the Releases page in the right-hand side of the screen.
- Download the version that’s been made available.
As a reminder, all the work is completed and released under the Apache 2.0 license and while we welcome bug reports if you discover an issue, this software is provided under those conditions, including: “on an ‘AS IS’ BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND”. As with all software you integrate into your environment, we strongly recommend you run your own functionality and security evaluation.
How to Develop with Us
As mentioned above, build scripts and patches for each project are referenced in their own project repository inside the linuxonzapps repository. The zlinux-artifacts-builder that has been developed takes these scripts and patches and creates releases that can be downloaded by members of the community who wish to use the software.
Let’s open up the linuxonzapps Bazel repository to see how it works from the developer side.
Within this repository, we have the src/ directory that includes a build.sh file with the s390x-specific build instructions. In this initial launch, it’s pulling in a build_bazel.sh script that still resides on the linux-on-ibm-z/scripts repository.
From there, take a look at the .build-template.yaml file which defines which version to build, and the container image to use for the build.
By running this YAML file through the zlinux-artifacts-builder, a binary released through the releases mechanism provided by GitHub and is immediately made available for download.
The zlinux-artifacts-builder can do much more than that though. It can be extended to support building custom binaries, DEB packages, RPM packages, and container images, the tool gives developers the flexibility to cater their releases specifically to their target audience for consuming the packages. Check out the zlinux-artifacts-builder README for more about usage, and trying it out yourself.
Learn More
We’re in the very early stages of this project, so now is a great time to make an impact.
You can get started today by joining our mailing list at https://lists.openmainframeproject.org/g/mainframe-software-hub-discussion where we share meeting announcements, updates to the builder, and other ideas.
Then dig deeper by looking at general documentation for the project at https://github.com/linuxonzapps/docs
And find further details about our Technical Steering Committee, along with information about our monthly meetings can be found at https://github.com/linuxonzapps/tsc
We can’t wait to share and build some s390x binaries with you!