From: Prarit Bhargava <prarit(a)redhat.com>
redhat/docs: Add a description of kernel naming
Add a file that describes how kernel NVRs are constructed.
Signed-off-by: Prarit Bhargava <prarit(a)redhat.com>
diff --git a/redhat/docs/index.rst b/redhat/docs/index.rst
index blahblah..blahblah 100644
--- a/redhat/docs/index.rst
+++ b/redhat/docs/index.rst
@@ -111,6 +111,7 @@ Contributor Guide
submitting-contributions
faq
makefile-changes
+ kernel-naming
Maintainer Guide
diff --git a/redhat/docs/kernel-naming.rst b/redhat/docs/kernel-naming.rst
new file mode 100644
index blahblah..blahblah 100644
--- /dev/null
+++ b/redhat/docs/kernel-naming.rst
@@ -0,0 +1,44 @@
+.. _kernel-naming:
+
+=============
+Kernel Naming
+=============
+
+The kernel NVR looks like, for example,
+kernel-5.17.0-0.rc8.551acdc3c3d2.124.test.fc35. This string contains
+information about the upstream release, a unique build number, and information
+about the distribution the RPM was targeted for. An explanation of each of the
+fields and how the fields are used in the kernel NVR, is below.
+
+**PACKAGE_NAME**: This is the name of the package. By default this is
+'kernel', but a well-known variant is kernel-rt.
+
+**SPECKVERSION**: This is the VERSION variable defined in the top-level linux
+Makefile.
+
+**SPECKPATCHLEVEL**: This is the PATCHLEVEL variable defined in the top-level
+linux Makefile.
+
+**SPECKSUBLEVEL**: This is the SUBLEVEL variable defined in the top-level linux
+Makefile.
+
+**UPSTREAMBUILD**: This is a representation of the upstream build information.
+It includes the EXTRAVERSION variable (defined in the top-level Makefile) or
+'rc0' if the tree is based on an a specific upstream release. If the tree is
+not based on a specific "rc" release, this field also contains a git hash
+reference to the top of tree commit.
+
+**BUILD**: This is the RHEL_RELEASE variable defined in the top-level linux
+Makefile.rhelver.
+
+**LOCALVERSION**: By default, this variable is set to ".test". This value can
+be overriden by defining a string in redhat/localversion.
+
+**DIST**: This is the dist release suffix used in the package release, eg.
+.fc34 or .el9.
+
+The kernel name is constructed as
+
+$(PACKAGE_NAME)-$(SPECKVERSION).$(SPECKPATCHLEVEL).$(SPECKSUBLEVEL)-$(UPSTREAMBUILD)$(BUILD)$(LOCALVERSION)$(DIST)
+
+In general, the kernel follows the Fedora Naming Guidelines,
`https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidelines
<
https://fedoraproject.org/wiki/Packaging:Naming?rd=Packaging:NamingGuidel....
--
https://gitlab.com/cki-project/kernel-ark/-/merge_requests/1779