Update home
parent
0f3ca82628
commit
8a26fda13f
64
home.md
64
home.md
@ -1,11 +1,13 @@
|
||||
This guide covers setting up a development environment, the repository layout, and the general contribution workflow.
|
||||
|
||||
# Quick Start
|
||||
|
||||
## Setup
|
||||
|
||||
To start with you need to:
|
||||
|
||||
1. Make a [GitLab account](https://gitlab.com/users/sign_in#register-pane) if you do not already have one.
|
||||
2. Fork the [ARK tree](https://gitlab.com/cki-project/kernel-ark) (click the fork button in the upper right-hand corner and wait patiently).
|
||||
2. [Fork the ARK tree](https://gitlab.com/cki-project/kernel-ark/-/forks/new). Wait patiently for this to complete.
|
||||
|
||||
Once GitLab finishes forking the repository (this can take a while):
|
||||
|
||||
@ -13,24 +15,74 @@ Once GitLab finishes forking the repository (this can take a while):
|
||||
2. ``git remote add -f linus git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git``
|
||||
3. ``git remote add -f upstream https://gitlab.com/cki-project/kernel-ark.git``
|
||||
|
||||
## Rebasing
|
||||
|
||||
Rebasing the kernel involves the following steps:
|
||||
|
||||
### Kernel Patches
|
||||
|
||||
1. Rebase the kernel patches: ``git rebase <upstream-tag> ark/patches``.
|
||||
2. File an [issue](https://gitlab.com/cki-project/kernel-ark/issues) for any patches that do not apply and skip them. If the fix is clear, go ahead and fix it.
|
||||
3. Create a branch for this revision of the kernel patches. This is useful when comparing the state of the patches between versions: ``git branch ark/patches/<upstream-tag>``
|
||||
|
||||
### Configuration
|
||||
|
||||
1. git checkout internal
|
||||
2. git merge <upstream-tag>
|
||||
3. make rh-configs-commit
|
||||
4. git push
|
||||
5. ./redhat/gen_config_patches.sh
|
||||
6. Open a merge request for each configs/<date>/ branch.
|
||||
|
||||
### Release branch
|
||||
|
||||
Once the kernel patches and configuration have been updated for the new release, it's time to create the release branch:
|
||||
|
||||
1. git checkout -b ark/<upstream-tag> ark/patches/<upstream-tag>
|
||||
2. git merge internal
|
||||
3. touch localversion
|
||||
4. make rh-release
|
||||
5. make rh-release-tag
|
||||
6. git push origin ark/<upstream-tag> ark/patches/<upstream-tag>
|
||||
7. git checkout master
|
||||
8. git reset --hard ark/<upstream-tag>
|
||||
9. git push -f origin master ark/patches
|
||||
|
||||
# Repository Layout
|
||||
|
||||
## Branches
|
||||
|
||||
### master
|
||||
|
||||
The master branch points to the latest ARK branch.
|
||||
The master branch points to the latest ARK release branch.
|
||||
|
||||
### internal
|
||||
|
||||
The internal branch is used for the kernel configuration and build scripts. When new configuration options are needed or the build requirements change, this is the branch to send merge requests to. When a new release is made, this branch is merged into the release branch. Configuration and build scripts can be found in the ``redhat/`` directory.
|
||||
|
||||
### rhpatches
|
||||
### ark/patches
|
||||
|
||||
This branch tracks the latest version of the kernel patches for ARK.
|
||||
This branch tracks the latest version of the kernel patches for ARK. It is regularly rebased and force-pushed, much like the master branch. Patches for a particular release are available via the ``ark/patches/vX.Y[-rcN]`` branches.
|
||||
|
||||
### Release branches
|
||||
|
||||
Each time the kernel is rebased, a set of branches is created to track that release. The branch format for releases is ``ark/<upstream tag>``.
|
||||
Each time the kernel is rebased, a set of branches is created to track that release.
|
||||
|
||||
#### ark/patches/vX.Y[-rcN]
|
||||
|
||||
Branches in this format (e.g. ``ark/patches/v5.4-rc1`` or ``ark/patches/v5.3``) contain the kernel patches ARK carries for that particular kernel release. These are merged into the ``ark/vX.Y`` release branches.
|
||||
|
||||
#### ark/vX.Y[-rcN]
|
||||
|
||||
Branches in this format (e.g. ``ark/v5.4-rc1`` or ``ark/v5.3``) contain the set of patches that were added on top of the upstream kernel release along with the configuration and build scripts. They can be checked out and built into RPMs.
|
||||
Branches in this format (e.g. ``ark/v5.4-rc1`` or ``ark/v5.3``) contain the set of patches that were added on top of the upstream kernel release along with the configuration and build scripts. They can be checked out and built into RPMs. The ``master`` branch points to the latest version of these branches.
|
||||
|
||||
|
||||
## Tags
|
||||
|
||||
### vX.Y[-rcN]
|
||||
|
||||
Tags in this format (e.g. ``v5.4-rc1`` or ``v5.3``) are the upstream Linux kernel tags from Linus's tree.
|
||||
|
||||
### kernel-X.Y.Z-N.elrdy
|
||||
|
||||
Tags in this format (e.g. ``kernel-5.4.0-1.elrdy``) map to the RPM name-version-release tuple in the build system. These can be used to check out the source tree used to build that RPM.
|
Loading…
x
Reference in New Issue
Block a user