DOKK Library

How to manage more than 14,000 Software Packages for multiple Linux Distributions

Authors Sarah Julia Kriesch,

License

Plaintext
 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)