Open Source Software Development - Group home

Building Ubuntu Packages for s390x

By Elizabeth K. Joseph posted Mon August 05, 2019 05:40 PM

  

As application developers, one of the biggest hidden challenges can be getting your software distributed to users with all the dependencies managed. Linux distributions began offering a solution to this problem long ago in the form of packages and package management systems. In the case of Ubuntu, software is distributed in Debian or “.deb” packages, for Red Hat software is distributed as .rpm packages.

Today, a large chunk of the Ubuntu repository that is already packaged for Ubuntu is ported for LinuxONE’s s390x hardware architecture. Users of Ubuntu on LinuxONE can already run thousands of Linux applications with a flick of apt. In order to effectively do this, there’s a team at Canonical responsible for this port, and they have an IBM Z server to do their work on.

But what if you have a piece of software that is not already included in the Ubuntu repositories, but you want to provide it to s390x users? The first step is creating a .deb package, which you can learn about here.

From there, the Ubuntu community has a process by which software projects can distribute their own packages directly to users, called a Personal Package Archive (PPA). By default, Launchpad builds PPAs for i386 and amd64, but if you select “Change details” of your PPA, you’re presented with a list of other architectures you can target, including IBM Z.


That means that with a simple checking of a box, you can now have your own Ubuntu PPA package ported for s390x automatically for free! Within minutes (depending on the complexity of your package) you can have packages built for all three architectures, and build logs to inspect if anything goes wrong.

This screen shot shows a very simple “Hello World” Golang package:


You can then provide the launchpad address to your users, customers, or whomever else, and they will be able to add a customize repository to their system to install the package, and receive updates when you upload a new package. 

In a perfect world, this would be the end of the story and your software will run beautifully on s390x without modification, but what if your package doesn’t build? That’s where the LinuxONE Community Cloud comes into play. This free cloud service provides you with a virtual machine on a LinuxONE server for 120 days that can be used for development and testing of your application. As of today, the only distributions you can automatically provision are Red Hat or Suse, so you won’t be able to test your .deb package on it just yet, but you can use it be sure the code itself works on Linux on s390x so you can adjust your code and try to build your PPA again.

If you’re interested in getting more serious about testing your open source application, perhaps adding a s390x virtual machines to your Continuous Integration system, please reach out to me, Elizabeth K. Joseph at lyz@ibm.com, so we can talk about ways to support your project.


#LinuxONE
#Ubuntu
#LinuxonZ
#LinuxONEOS