• CentOS 8 Rough Status Page


    https://wiki.centos.org/About/Building_8

    Table of Contents

    CentOS 8 Rough Status Page

    General Steps

    Current Build Status

    Architectures

    Main architectures

    AltArch

    Current Timeline

    Definitions


    CentOS 8 Rough Status Page

    Red Hat Enterprise Linux 8 was released on 2019-05-07, and everyone is waiting to find out when the CentOS rebuild will occur. This document is meant to cover general questions and timeline for what is happening.

    A CentOS major release takes a lot of planning and changes in tooling as it is based on a much newer version of Fedora than previous versions. This means that everything from the installer, packages, packaging, and build systems need major overhauls to work with the newer OS. This means that there is always a ramp up period depending on the changes needed to make a rebuild work. The differences between EL-8 and EL-7 are no exception as the kernel has changed drastically, the repository format has added 'modules' and RPMS have grown many features that EL7 and before do not have. About the only item which has not drastically changed between EL7 and EL8 is the init system which is still systemd. [This is a first as EL5 had SysV, EL6 had Upstart, and EL7 had Systemd].

    General Steps

    Steps needed to make a CentOS rebuild usually follow these steps:

    1. Red Hat makes the sources available.
      1. This used to be done via src.rpms but 7 changed to git repos
      2. In 8 CentOS has partnered closer with Fedora and will be sharing git repos with the Fedora system
      3. The pushes from Red Hat started on 2019-05-07 and ended 2019-05-08
    2. CentOS needs to look at the sources and determine what is needed to build these packages
      1. The rpm format has added items like Suggests which change some tooling requirements
      2. The packaging format has moved from yum to dnf4/yum4 which added modularity. Modules are an additional hurdle because they allow parallel available versions of software but not parallel installability (aka you can build perl-5.24 and perl-5.26 and all perl modules need to be compiled against both sets.) Module stream versions are tied to certain timestamps which means you can't rebuild the RHEL or Fedora and get the exact same version name.
      3. There are always packaging loops which need to be worked out. You need golang-(X-1) to build golang-X but golang-(X-1) doesn't exist yet.. how do you build a version and break the loop?
    3. CentOS needs to set up a build system which can allow for these changes.
      1. While CentOS can use the Fedora build system as a template, there are items in it which don't make sense for CentOS.
      2. The EL-8 beta was useful but there are still major changes which need rethinking
    4. CentOS needs to go through the source code and find out all the places where debranding is needed.
      1. No you can't just "sed s'/Red Hat/CentOS/' (someone always offers that)
      2. There are times when you do replace and times when you don't.
    5. Builds can start occurring through the system
      1. This usually requires a multi-loop as you do a build to get started
      2. Then rebuild that core with itself
      3. Then add some more and possibly repeat 1 && 2 a couple of times.

      4. Then you can start building out the rest of the packages
    6. The installer usually takes a certain amount of work to get packaged together.
      1. Some things need additional patches
      2. Some things just need to be ordered correctly
      3. Some things like shim signatures for Secure Boot take outside review by signing authority
    7. QA work can begin
      1. with testing of packages by themselves or building from them
      2. with installer testing for smoke tests
    8. Usually some sort of RC work is done
    9. A final build is released

    The above is a 'you asked the people trying to build the train when it will arrive' guide. That said, every release is different and the order and additional steps get found and added each time.

    Current Build Status

    In the above roadmap, we are currently somewhere in the middle of step 5 but as part of that, still finding things to fix up for step 4.

    The current status of all builds can be seen on CentOS Linux 8 Builder

    Packages that have failed to build (patches are welcome, send to the centos-devel mailing list) can be seen on Failed Builds

    Architectures

    Main architectures

    The following arches are built automatically in parallel in our new Build System :

    • x86_64 (w/ i686 multilib)
    • ppc64le (Little Endian)
    • aarch64 (ARM64, ARMv8)

    Responsibility, Owner: CentOS Core SIG

    AltArch

    The following architecture (not existing upstream, so more difficult to boostrap) is also actually being worked, on, but mainly based on a combination of Fedora 27/28 pkgs that can be used to bootstrap the el8 beta rebuild and then iterating loops until we can include that architecture in our Koji Build System . Update : bootstrap phase is done, so now you can follow builds on Armhfp Build System

    • armhfp (ARM32, ARMv7 - aka armv7hl)

    Responsibility, Owner : CentOS SIG-AltArch

    Current Timeline

    Item

    Started

    Ended

    Status

    Sources pushed to CentOS Git

    2019-05-07

    2019-05-08

    DONE

    Source code evaluation

    2019-05-07

    YYYY-MM-DD

    Ongoing

    New Build System Setup

    2019-05-07

    2019-05-08

    DONE

    Debranding patches added

    2019-05-07

    YYYY-MM-DD

    Ongoing

    Artwork Requested

    2019-03-07

    2019-05-07

    DONE

    Artwork Selections

    2019-05-09

    YYYY-MM-DD

    Ongoing

    Build Loop 0

    2019-05-07

    2019-05-??

    Ongoing

    Build Loop 1

    YYYY-MM-DD

    YYYY-MM-DD

    Not started

    Build Loop N

    YYYY-MM-DD

    YYYY-MM-DD

    Not started

    Installer work

    YYYY-MM-DD

    YYYY-MM-DD

    Not started

    QA work

    YYYY-MM-DD

    YYYY-MM-DD

    Not started

    RC work

    YYYY-MM-DD

    YYYY-MM-DD

    Not started

    Release work

    YYYY-MM-DD

    YYYY-MM-DD

    Not started

    Definitions

    • DONE - Step is completed
    • Ongoing - Work is progressing
    • Not started - This step may requires work from another step to reach some completion or requires time from person who is working on other parts.
    • Build loop 0 - Getting an initial set of packages together which can then build more packages
    • Build loop 1 - Using the smallest set of packages to build a larger set which can then build more packages
    • Build loop N - I really don't know how many loops this is going to be.. so we will use N nomenclature.
    1. Installer work - there are usually some work needed to make the installer actually work with various things like secure boot or different fonts or 'oh they fixed that in an upgrade.img.. let us just short cut and put that here.'
  • 相关阅读:
    常用的正则表达式
    VScode格式化代码,开启ESlint代码检测方法,eslint代码配置
    git 常用的操作
    vscode 格式化的时候自动添加分号怎么去除
    echarts渐变色实现方法
    echart 柱状图 数值较小的时候,文字显示不全
    iview的Modal在提交表单时确认按钮loading状态冲突问题解决方案
    vue.js动态获取菜单
    12.18 webSocket消息推送
    12.18 微信模板消息推送
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644285.html
Copyright © 2020-2023  润新知