Skip to content

Commit 2515a93

Browse files
committed
Initialize README
Basical Boiler Plate explination of how this repo will work.
1 parent a90016a commit 2515a93

File tree

1 file changed

+130
-1
lines changed

1 file changed

+130
-1
lines changed

README.md

Lines changed: 130 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,130 @@
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

Comments
 (0)