|
1 |
| -# kernel-src-tree |
| 1 | +# CIQ Maintained Kernels |
| 2 | +This is single kernel structure we will use to manage the CIQ Linux Kernel. |
| 3 | +We will keep remote references to `kernel.org - mainline`; all relevant |
| 4 | +`CentOS-##-stream` repositories; and branch Rocky versions off the closest |
| 5 | +CentOS base version. |
| 6 | + |
| 7 | +This README is a How-To interact with the CIQ Kernel Repository because its |
| 8 | +different than many other source code repositories. We are using this model as |
| 9 | +we want a common ancestor history between all branches regardless of mainline |
| 10 | +version as ALL kernels branch from a Tag release on `kernel.org`. The common |
| 11 | +ancestry will help with utilizing `git cherry-pick` to move commits between the |
| 12 | +various kernel version branches. |
| 13 | + |
| 14 | +## How is this different? |
| 15 | +For all non-CentOS-stream CentOS series, and all RESF based Rocky builds we run |
| 16 | +a rebuild history command against the src.rpm for that specific release. ex: |
| 17 | +`kernel-4.18.0-80.el8.src.rpm` is CentOS 8 and its the release 80 for CentOS |
| 18 | +during for the 4.18 kernel. We do a build prep of the source and then attempt to |
| 19 | +replay all rpm changelog entries as commits via `git cherry-pick`. If a commit |
| 20 | +cannot be `cherry-picked` we will perform an empty commit with a stashed copy of |
| 21 | +the resulting merge conflict in a |
| 22 | +`ciq/ciq_backports/<kernel_version>/<sha>.failed` file in case an engineer needs |
| 23 | +to references this in the future. Once the our process reaches the top (most |
| 24 | +recent change) of the rpm change log the script will move everything out of the |
| 25 | +kernel repo then copy the `rpmbuild -bp` source output into the kernel repo. |
| 26 | +This allows for `git` to track all the changes that could not be attributed to |
| 27 | +empty commits and changes we could not match with upstream commits. Finally some |
| 28 | +additional data like `.git` and `ciq` and `src.rpm:SOURCES/*.confg` are copied |
| 29 | +into the repo path to make the repo as ready for a `make olddefconfig` and build |
| 30 | +as possible. |
| 31 | + |
| 32 | +## Include Remotes |
| 33 | +We cannot include/commit the remotes that would be a part of `.git/config` when |
| 34 | +added. We can however include a dot file in the base repo to set these up with |
| 35 | +the following command. |
| 36 | +``` |
| 37 | +git config --local include.path ../.gitremotes |
| 38 | +``` |
| 39 | + |
| 40 | +## Structure |
| 41 | +* main - README Only |
| 42 | +* centos8 - Branch off v4.18 where all CentOS8 release are committed |
| 43 | +* rocky8_y - Branch and tag off the nearest centos8 release where the minor release was forked. |
| 44 | +* ciq8_y - This is when CIQ-LTS (Long Term Support) picks up from Rocky and RESF. |
| 45 | +* centos9 - Branch Checkout off v5.14 + merge from CentOS-9-streams |
| 46 | +* rocky9_y - Branch and tag off the nearest centos-9-stream where minor release was forked |
| 47 | +* ciq9_y- Same as above |
| 48 | + |
| 49 | +**Special Branches** |
| 50 | +* rockyX_y-RT / ciqX_y-RT - Real Time Kernel is a separate kernel tree until CentOS 10 so we will treat this as a separate branch as the rocky8 and minor release process will need to be used here. |
| 51 | +* sig-cloud-X-<kernel-version> - These are branches that will be used for the SIG-Cloud Kernel until it can be integrated into the RESF. This is a "shifting base" branch that will only be used per kernel-version, if that kernel version updates all the additional content needs to be migrated to the newer branch. |
| 52 | +* FIPS - FIPS kernels |
| 53 | + * FIPS-X -- Base for Certification |
| 54 | + * FIPS-FT-X - Base for certification testing |
| 55 | + * FIPS-compatible-X - Extension of Certification branch (NO LONGER CERTIFIED) |
| 56 | + |
| 57 | +Example Branch Diagram |
| 58 | +``` |
| 59 | +* HEAD - Kernel.org |
| 60 | +| |
| 61 | +| * HEAD - CentOS9-streams |
| 62 | +| | |
| 63 | +| | * [HEAD->CIQ LTS 9.2] CVE |
| 64 | +| | * CVE |
| 65 | +| | * ciq9_2 - CIQ Rocky 9.2 Branch Create |
| 66 | +| | / |
| 67 | +| | ? Repeat per RESF build |
| 68 | +| | | |
| 69 | +| | * RESF tar.xz Splat |
| 70 | +| | * Cherry-Picks - Multiple Commits |
| 71 | +| | * rocky9_2 - Branch Create |
| 72 | +| | / |
| 73 | +| * centos9-streams/tags/kernel-5.14.0-284 |
| 74 | +| * Merge CentOS9-Streams |
| 75 | +| * centos9 - Branch Create |
| 76 | +| / |
| 77 | +* kernel/tags/v5.14 |
| 78 | +| |
| 79 | +| * HEAD - CIQ Import of most recent CentOS base build until 8.10 |
| 80 | +| | |
| 81 | +| | * [HEAD->CIQ LTS 8.8] CVE |
| 82 | +| | * CVE |
| 83 | +| | * ciq8_8 - CIQ Rocky 8.8 Branch Create |
| 84 | +| | / |
| 85 | +| | ? Repeat per RESF build |
| 86 | +| | | |
| 87 | +| | * RESF tar.xz Splat |
| 88 | +| | * Cherry-Picks - Multiple Commits |
| 89 | +| | * rocky8_8 - Branch Create |
| 90 | +| | / |
| 91 | +| ? Repeat CentOS8.7 -> CentOS8.6: |
| 92 | +| * CentOS Tar.xz Splat |
| 93 | +| * Cherry-Picks - Multiple Commnits |
| 94 | +| | * [HEAD->CIQ LTS 8.6] CVE |
| 95 | +| | * CVE |
| 96 | +| | * ciq8_6 - CIQ Rocky 8.6 Branch Create |
| 97 | +| | / |
| 98 | +| | ? Repeat per RESF build |
| 99 | +| | | |
| 100 | +| | * RESF tar.xz Splat |
| 101 | +| | * Cherry-Picks - Multiple Commits |
| 102 | +| | * rocky8_6 - Branch Create |
| 103 | +| | / |
| 104 | +| ? Repeat CentOS8.0 -> CentOS8.6: |
| 105 | +| * CentOS Tar.xz Splat |
| 106 | +| * Cherry-Picks - Multiple Commnits |
| 107 | +| | |
| 108 | +| | |
| 109 | +| * centos8 - Branch Create |
| 110 | +| / |
| 111 | +* kernel/tags/v4.18 |
| 112 | +| |
| 113 | +| |
| 114 | +* 1st Commit Kernel |
| 115 | +``` |
| 116 | + |
| 117 | +Branches |
| 118 | +``` |
| 119 | +FIPS-8/4.18.0-425.13.1 : FIPS-8 production branch |
| 120 | +FIPS-FT-8/4.18.0-425.13.1 : FIPS-8 Functional Test branch |
| 121 | +
|
| 122 | +FIPS-9/5.14.0-284.30.1 : FIPS-9 production branch |
| 123 | +
|
| 124 | +sig-cloud-8/latest : Sig-Cloud-8 current branch. |
| 125 | +sig-cloud-8/<base> : Sig-Cloud-8 branch based on EL <base>. |
| 126 | +
|
| 127 | +sig-cloud-9/latest : Sig-Cloud-9 current branch. |
| 128 | +sig-cloud-9/<base> : Sig-Cloud-9 branch based on EL <base>. |
| 129 | +
|
| 130 | +``` |
0 commit comments