The Linux Foundation Projects
Skip to main content

The zArchitecture (or s390x)-based processor in an IBM Z or LinuxONE is a big-endian computer architecture, and at the hardware level is not compatible with what you may be familiar with if you’ve only developed for x86_64 architecture. As such, the code needs to be specifically compiled for it.

Since support for Linux on IBM Z has been around for more than 20 years, dozens of languages and frameworks, and hundreds of major open source applications have been ported. A sampling of them can be found by searching the Open Mainframe Project Software Discovery Tool with dozens of updates being made each month — and the sea of applications continues to grow. Today you can run everything from a simple web server or database to your latest Go or Python application to Kubernetes for Linux on IBM Z by simply running the build commands you’re already familiar with.

As a developer of an open source software project, you can also build your Linux-based application for IBM Z. The following chart provides an overview of the technical resources available free of charge for developers seeking to build for Linux on IBM Z.

Note: Your project must be open source at the time of request to engage with most of these resources.

 

 

IBM LinuxONE Community Cloud The most flexible option available for open source developers looking to get started with porting their applications is a full virtual machine on the IBM LinuxONE Community Cloud.

 

The account gives you root access to a Linux-based virtual machine on the s390x architecture. The initial trial lasts 60 days, with the option to renew for another 60 days.

Learn more and sign up here: https://developer.ibm.com/articles/get-started-with-ibm-linuxone/
IBM LinuxONE Open Source Software Cloud Once you’ve tested your application on the Community Cloud (above), you may be interested in longer-lived VMs for continued development or for use in your CI system. This Open Source Software program is designed to meet this need, and offers more options for virtual machine sizes and environments. Fill out the following request form to apply for the program: https://www.ibm.com/community/z/open-source/virtual-machines-request/
Oregon State University Open Source Lab IBM Z Continuous Integration If you are using Jenkins for your project CI system, the Oregon State University Open Source Lab (OSU OSL) manages a Jenkins service.

Projects may apply for access and then configure their tests, all of which are run on a Jenkins server on IBM Z.
Learn more and sign up at https://osuosl.org/services/ibm-z/
Travis CI build service for IBM Z Travis CI manages a build service for IBM Z builds specifically for open source projects.

For projects that already use hosted Travis CI on GitHub, adding additional architectures to your CI builds can be done with a simple addition to your Travis configuration.
Learn more, and how to configure your project at: https://docs.travis-ci.com/user/multi-cpu-architectures/.
CircleCI self-hosted runner CircleCI support for s390x is now available in the self-hosted runner.

You can either use your own Linux on IBM Z or LinuxONE resources, or apply for one of the free virtual machine resources available (see above) to run the runner.
Once you have a virtual machine, learn how to configure the self-hosted runner for each architecture available in the Machine runner installation on Linux documentation.
openSUSE Build Service The openSUSE team has built multi-architecture support into their openSUSE Build Service (OBS).

This service handles building packages across multiple hardware architectures, including IBM Z and supports package formats for several Linux distributions.

Learn more, including how to sign up, here: https://en.opensuse.org/Portal:Build_Service
Launchpad Personal Package Archives Launchpad is a service from Canonical that’s used for a variety of things, but it includes a Personal Package Archives component for packaging and releasing software.

It supports Ubuntu and Debian packages, and once you have your package source files ready, you can then upload them, specify that you want to build for IBM Z, and watch Launchpad do the rest — including providing the address for an apt repository for your users to download the resulting packages.
Learn more at https://help.launchpad.net/Packaging/PPA
GitLab self-hosted Runner
GitLab Runner support is available for s390x, which you can install on an s390x Linux environment.
You can either use your own Linux on IBM Z or LinuxONE resources, or apply for one of the free virtual machine resources available (see above) to run the runner.

Once you have a virtual machine, learn how to configure the self-hosted runner for each architecture by following the documentation at https://docs.gitlab.com/runner/install/
GitHub Actions self-hosted runner GitHub Actions does not have official support for s390x, but a patch and build instructions are being maintained by the community.

You can either use your own Linux on IBM Z or LinuxONE resources, or apply for one of the free virtual machine resources available (see above) to run the runner.

Once you have a virtual machine, learn how to build a self-hosted runner container for by following the documentation in the gaplib README: https://github.com/anup-kodlekere/gaplib