Using the openSUSE Build Service to build software for POWER
My favorite and most used service for developers is the openSUSE Build Service (OBS). This is where I build syslog-ng packages first, before anywhere else. OBS is open source, highly flexible software to build software packages, and the instance at https://build.opensuse.org/ is free to use for anyone to build open source software. Best of all, it supports multiple architectures, including POWER.
Open Build Service
Actually the OBS acronym stands for two things. The software itself is called Open Build Service. It is open source and you are free to install it on your own network. You can use it to compile any software you like. The openSUSE Build Service is a public OBS instance. It is accessible to any registered user to build open source software.
OBS can be used not just to compile individual software packages, but to maintain and publish complete repositories. It can also build various images from the software compiled: both ISO images and disk images for different virtualization solutions.
The original focus of OBS was i586 and openSUSE. Soon other architectures and Linux distributions were introduced to OBS. While I only use it for openSUSE and SLES packages, many more are supported, including Fedora, RHEL, Ubuntu, Arch, even Raspbian on x86, ARM and POWER.
You can access the OBS both through its web interface and a command line client. In theory you should be able to configure everything from either of them. I tend to use both of them. I configure repositories through the web interface, but submit new builds using the CLI. If you want your software project to get compiled for POWER, it is just a few mouse clicks away. You add a distribution version to your project and then you can configure architectures. If you add an architecture only later, you do not have to re-submit packages as OBS automatically compiles all packages for the new architecture as soon as you click on “update”.
While the focus of POWER support in OBS is PPC64LE, meaning little endian 64 bit POWER, you can also use it to build both 32 bit and 64 bit big endian POWER architecture packages. There were times when the build capacity for POWER was relatively small. You had to wait long for POWER builds to complete. However, early this year the openSUSE received a huge hardware donation from SUSE and IBM: fast, new IBM POWER 9 servers. Building packages on POWER are blazing fast now, compiles finishing often before any other platforms. You can read the announcement at https://news.opensuse.org/2022/01/25/os-gains-new-hardeware/
If you take a look at https://build.opensuse.org/monitor you can see that there are now close to 300 POWER workers in OBS. 1.5x more than just a couple of months ago. They are often working close to full capacity (most likely when Factory is being rebuilt), but it seems that there are always some resources left free for random incoming jobs from users.
I keep mentioning, that POWER is just one of the architectures supported by OBS. Then why I write my first blog after introducing myself as an IBM POWER Champion about the openSUSE Build Service? Because it is quite rare that you want to build a software only for a single Linux distribution on POWER. In that case OBS gives you tremendous speed and flexibility: you do a single submit and it gets compiled on a dozen of different Linux distributions and possibly also on a dozen of different architecture variants.