ZSystems/Good First Issues
Prerequisites
1) Access to a mainframe (LinuxONE Community Cloud)
2) openSUSE Community account for packaging
Hint for OSD Mentees: IBM will sponsor access to IBM Z systems with openSUSE. You will receive access via your mentors. We will support you with your first openSUSE contributions.
3) Contribute via Github for Dockerfiles/software or OBS for Packaging
Container Images
We want to enable Kubernetes distributions and applications with container images for IBM Z. They will be built with our Open Build Service and published in the openSUSE Registry. Some images are available on Docker Hub:
We want to expand the portfolio with most important applications and runnable on IBM Z.
- Dockerfiles can be contributed to our container image project
- The build of container images can be contributed to the container project in OBS (Mentees receive an introduction)
- HowTo for Building containers:
- Clone official images from the Docker Hub Github repository to the mainframe with pre-installed Docker (or openSUSE Kubic)
- Replace the base image with the openSUSE image (FROM opensuse/tumbleweed)
- Replace installation commands with zypper commands
- Run docker build -t application .
- Fix errors (especially Illegal instructions for s390x)
- Commit the new container image to our container container image repository on Github
Issues:
Creation of your first own Image
- logstash: Use zypper to install logstash
- Python: Use zypper for the installation of Python and pip
- elasticsearch: Use package with zypper from this security-logging repo and copy configs from the elastic repo
- PostgreSQL: Use zypper to install PostgreSQL and copy "EXPOSE" from other Dockerfile (incl. possible configuration improvements)
Software Enablement / Packaging
Many packages have to be enabled for the s390x architecture. Create an openSUSE account for build.opensuse.org and enable following packages which are failing.
- Go to the developing branch of the package
- Branch Package
- Edit the spec file with the fix
- Test the build whether succeeded
- Create Submit Request
Issues:
- clanlib: Add architecture s390x equal to riscv upstream in OBS, test it, submit it and contribute to the upstream project
- openafs: Add s390x to 'ifarch' of 'build_kernel_modules' into the Spec file
- Realtek driver: Add architecture with s390x as an architecture equal to arm, and the other architectures in Spec file
- [Done, mariabornski] change uploaded libnvidia-container : Add s390x as an architecture to ExcludeArch in Spec file
- kanku : Add s390x to "Requires: qemu-kvm" in the Spec file
- librealsense: Add version number to BuildRequires of cmake into the Spec file
- DSP function library: Add s390x architecture (cmake) flags for s390x into the Spec file
- qtile: Add "mypy" as BuildRequires to Spec file
- drbd: Add 'BuildRequires:' with 'kernel-syms' and 'modutils' into the Spec file
- yate: Create patch file equal to arm to enable support for s390x and add it to the Spec file - Sabrina Ang - Ongoing
- fwts: C programming: Redeclare AcpiGbl_IgnoreErrors in file fwts_acpica.c from boolean to void (packaging and upstream development) - Pallavi Deshmukh (ongoing)
- hdjmod: C programming: Declare 'hdj_probe' and rename 'hdj_disconnect' to 'hdjbulk_disconnect' in file hdjmod/obj/default/device.c (packaging and upstream development) - Ying-Hua Lee (ongoing)
- kernel-installation-tapeipl: fix location of "defconfig" file in the spec file
Upstream Enablement
There is a lot of open-source software not compatible with IBM Z. You can enable that with development on a mainframe.
1) Clone the repository to the mainframe
2) Install required compilers
3) Edit the Makefile or the specific file with the other architectures
4) Add the architecture part with s390x
5) Test it on the mainframe
6) Create Pull Request for the open-source project