Authors Sarah Julia Kriesch,
License
How to manage more than 14,000 Software
Packages for multiple Linux Distributions
openSUSE Release Engineering
Sarah Julia Kriesch
openSUSE, Accenture, FAU
sarah.kriesch@opensuse.org
AdaLovelace on LiberaChat
@sjkriesch
www.opensuse.org
Agenda
●
My way to become an openSUSE Release Engineer
●
openSUSE and the openSUSE Project
●
Release Management
●
The mainframe architecture s390x
●
Packaging with OBS
●
Relationship between openSUSE Leap and SUSE Linux Enterprise
●
Security issues within a community project
●
Automated tests with openQA
●
openSUSE & IBM
●
The Open Mainframe Project
●
The Linux Distributions Working Group
●
Q&A
My way becoming an openSUSE Release
Engineer
●
Computer Science Expert – System Integration
●
First tasks in wiki translations and software
(IHK) translations
●
Linux Systems Administrator ●
Creation of bug reports
●
Systems Engineer ●
Attending conferences (booths, presentations)
●
Bachelor Studies in Computer Science,
TH Nürnberg
●
Global Coordinator Translations
●
Lead AG Open Source ●
Founder of the Heroes Team (Infrastructure)
●
Bachelor Thesis at IBM ●
2 years openSUSE Board Member
●
Senior Consultant at Accenture (part-time) ●
Support of the Release Engineering Team
●
Focus on Mainframes, Multi Cloud/Platform and
Kubernetes ●
Teamlead openSUSE zSystems
●
Master Computer Science, FAU (part-time) ●
openSUSE Release Engineer for s390x
The openSUSE Project
●
Community Open Source Project
●
Multiple Linux distributions for
different goals
●
Many sub projects (OBS, openQA,
Yast)
●
More than 400 Contributors
https://www.opensuse.org/
Our main Linux distributions
●
Stable release with yearly releases
●
Rolling Release
●
Closed to daily releases
●
Latest release version 15.5
●
Foundation for development of other
●
Same foundation as SUSE Linux
distributions (containerization, minimal
Enterprise systems, …)
●
Useful for servers and Linux ●
Used also for container images
Beginners
●
Target Group Developers
Roles at openSUSE
●
openSUSE Board – conflict management & decision
making
●
openSUSE Release Engineering – technical decisions &
announcements
●
Release Managers (additional Program Manager tasks)
●
Translators
●
Package Maintainers - updates from upstream
●
Upstream Developers
●
QA Engineers – automated tests
Package Maintainer
Package Maintainer
Test Test
Stages Dev
Dev Stages Contributor
Factory Release
Manager
x86 arm arm64 s390x ppcle riscv
Release
Engineers
The Release Engineering Team
●
Responsible for successful releases
●
Managing/forwarding bug reports to Bugowners
●
Fixing architecture related issues
Publishing release announcements and managing websites
●
for releases
Technical decisions (together with SUSE)
●
Collecting feature requests
●
Agile status update meeting in a weekly basis
●
Representatives for x86, s390x, arm, Power
●
Mainframes
●
Large high-performance
computer systems
●
Big Endian systems
●
Architecture s390x
●
Used for mission-critical data
●
Thousands of VMs can run on
such a system https://www.ibm.com/it-infrastructure/z/hardware
Open Build Service
●
Open Source Software for building iso images, packages (rpm,
deb) and container images
●
Integrated CI/CD pipelines (green success, red failed, red
unresolvable, broken)
●
Supported Linux distributions:
– openSUSE/SLES
– Fedora/RHEL
– Debian, Ubuntu
– Scientific Linux
– CentOS Stream, Mageia
– AppImage, Univention, openEuler, Raspbian, ArchLinux
https://openbuildservice.org
Structure in the Open Build Service
●
development project with different software
●
dependency checks automated before factory
●
manual checks for critical software
●
forwarding to architecture specific ports
●
building of packages and iso (some container) images on build hardware in a
data center
●
Automated container releases for container registries possible
●
Publishing/Releasing after successful tests with openQA
Example package:
https://build.opensuse.org/package/show/Java:Factory/java-17-openjdk
Container registry: https://registry.opensuse.org
How do you handle software
dependencies in AMOS?
Software Bill of Materials in Spec Files
●
Software dependencies (BuildRequires, Requires,
Provides) in Spec files
Example: BuildRequires: gcc-c++ >= 7
●
Definition of special version numbers possible
●
Software will use only this specific software versions
then
●
Reason: Otherwise Release Managers would have to
update the SBOM daily
Command Line for Release Engineers and
Package Maintainers
●
Command osc available for most Linux distributions
●
Building packages on your own device or sending to
OBS
Package dependencies in the terminal:
osc whatdependson openSUSE:Factory llvm16 standard x86_64
https://openbuildservice.org/help/manuals/obs-user-guide/
cha.obs.osc.html
How to manage versions in different
Linux distributions
●
If-else cases for Linux distributions with their different
requirements
●
Programming languages are maintained for different versions
as an example
●
Example: MozillaFirefox
%if 0%{?sle_version} >= 150000 && 0%{?sle_version} <= 150500
BuildRequires: python39
BuildRequires: python39-curses
BuildRequires: python39-devel
%else
BuildRequires: python3 >= 3.7
BuildRequires: python3-curses
BuildRequires: python3-devel
%endif
openSUSE Leap and SUSE Linux Enterprise
https://www.suse.com/c/how-suse-builds-its-
enterprise-linux-distribution-part-5/
Security issues in open source communities
●
Upstream projects have got nothing more than
their default CI/CD pipelines
●
Security scan environments can be expensive
●
Enterprise companies (and other people) should
report, that security issues can be fixed!
●
openSUSE in relationship to SUSE Security
CVEs in openSUSE
I have found a SUSE has got
security issue. Can I enough CVE
receive a CVE numbers. What has
number, please? happened?
I have fixed already That is CVE-2022-1271.
something with zgrep Send me more details,
in AppArmor. I want to that I can create a
reference it. database entry.
security@suse.de
openQA
●
Automated tests after the build in OBS
●
Developed tool by SUSE QA Engineers
●
Used by openSUSE, SUSE, Fedora, Debian,
Gentoo Linux, AlmaLinux, Rocky Linux (public)
●
Automotive software companies are using it also
http://open.qa/
Automated tests with openQA
https://openqa.opensuse.org/group_overview/34
Our Reviews and tests
https://en.opensuse.org/openSUSE:Factory_development_model
openSUSE & IBM
●
Officially supported Linux distributions:
- SLES, RHEL, Ubuntu
●
Unofficial support for community Linux distributions
●
Fixes for Linux kernel, compiler, frameworks, network
●
Bugreports forwarded via Linux Program Manager at IBM
●
Benefit of knowledge about the Linux on Z department @ IBM
●
Development infrastructure via the LinuxONE OSS Community
Cloud
Development Collaboration with other
Linux Distributions?
LinuxONE (OSS) Community Cloud
●
VMs on LinuxONE sponsored by IBM
●
Free access (120 days) for single open-source
contributors (SLES, RHEL, Ubuntu)
●
Long-term access for open-source projects
available
●
https://linuxone.cloud.marist.edu/#/login
The Open Mainframe Project
●
Founded 2015
●
Focal point for deployment and
usage of Linux and Open Source
in a mainframe computing
environment
●
Project under the Linux
Foundation
Working Groups
Linux Distributions Working Group
Structure
Founders/ (Co-)Chairs:
– Sarah Julia Kriesch (openSUSE, Accenture)
– Elizabeth K. Joseph (IBM)
●
One Representative for every Linux distribution
(required for input)
●
Sponsor: SUSE
Our Goals
●
Create a place to collaborate across Linux
Distributions via an OMP mailing list, wiki, and chat
●
Provide a space for distributions to request for help
on their port
●
Ensure any and all infrastructure required is
available for supporting the ports
●
Better support from IBM to fix s390x specific bugs
https://wiki.openmainframeproject.org/display/LinuxDistrosWG/
Linux+Distributions+Working+Group
Our collaborative process
●
Problem discussions on mailing lists
●
Reproducing issues (sometimes)
Open discussions on the mailing list
●
Forwarding issues/ideas of improvement for
IBM
●
Monthly meetings (come together) with
review
Collaboration as a benefit
●
Upstream contributions available for all
●
Lowering research & development costs
(at IBM and in the community)
●
Same solutions for all Linux distributions
●
Sharing knowledge between communities
●
Increasing innovation (diverse community ideas)
●
Accelerating Linux development for s390x
You can achieve more together than alone!
Reasons for such required forwarding
●
Many open source projects everywhere
●
IBM does not know all Linux integrated software
(especially new ones)
●
IBM Maintainers are only for base projects (strategic open
source projects) available
●
Linux Distribution Maintainers know their requirements
●
Connection between IBM and upstream projects is
missing
Conclusion
●
You can not keep 14,000 software packages up to date
alone!
●
Most of the release process has to be automated
●
Use available tools for receiving the overview
●
Trust to the community/communities
●
Collaborate inside and outside/upstream
Recommended books
●
Wade, Karsten: The Open Source Way
●
Cotton, Ben: Program Management for
Open Source Projects
●
Brock, Amanda: Open Source Law, Policy
and Practice
●
Mozilla: Open Leadership Training Series
(https://mozilla.github.io/open-leadership-
training-series/)
Q&A
creative commons licensed (BY-NC-SA)