diff options
author | Mcgrof <anonymous.contributor@example.org> | 2014-11-17 21:00:43 +0000 |
---|---|---|
committer | Konstantin Ryabitsev <konstantin@linuxfoundation.org> | 2024-10-04 15:47:33 -0400 |
commit | 540cee4ecb745849cc18a2cf52dc1c1b48488530 (patch) | |
tree | a47887fff843a61dcae7c3577ae47f26b212e384 | |
parent | e3a479687d77bbc83c0028db7ef059cecee7e109 (diff) | |
download | backports-540cee4ecb745849cc18a2cf52dc1c1b48488530.tar.gz |
Update Documentation/backports/hacking
-rw-r--r-- | wiki/Documentation_backports_hacking.mediawiki | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/wiki/Documentation_backports_hacking.mediawiki b/wiki/Documentation_backports_hacking.mediawiki index 0749476..faa307e 100644 --- a/wiki/Documentation_backports_hacking.mediawiki +++ b/wiki/Documentation_backports_hacking.mediawiki @@ -6,17 +6,58 @@ title: Documentation/backports/hacking The project aims to optimize the backporting process by not only providing backported drivers but by also aiming to [http://www.do-not-panic.com/2012/08/automatically-backporting-linux-kernel.html automatically backport the Linux kernel] by [http://www.do-not-panic.com/2012/08/optimizing-backporting-collateral.html optimizing backporting collateral evolutions]. += Backports development flow = + +The [https://git.kernel.org/cgit/linux/kernel/git/backports/backports.git backports.git] master +development branch always tracks linux-next, allowing it to +track all the development trees. This ensures that at the end +of each merge window, the state of the backports will be +very close to the state of the first release candidate. At this +point, the backports project creates a further branch that tracks +the progress of the new release over the release candidate +evaluation period, to the major release, and on to its lifetime as +a stable kernel. + +The backports project thus makes three kinds +of backports releases possible: those derived from linux-next, those +derived from the most recent release candidate if any, and +those derived from recent stable kernels. + += Backports git tree tags and branches = + +The project uses two types of git tags: + +* daily tags following linux-next +* stable tags following either Linus' tree for rc releases or Greg's stable tree for stable extra version releases + +The project uses a master branch and a series of stable branches, a stable branch to track each stable release of the kernel. The master branch always tags linux-next, for example the backports tag backports-20141114 supports using linux-next tag next-20141114. Once Linus makes a release candidate of the kernel a respective ''stable backports branch'' is created based on the version of Linux Linus released, this backports branch will be based on a recent backports tag which was tracking linux-next. Future release candidates of the same version of Linux as well as stable release of Linux under the same version will be backported using the respective ''backports stable branch'' created. + +If any of this is fuzzy please refer to the [https://github.com/mcgrof/paper-backports/raw/master/paper.pdf Increasing Automation in the Backporting of Linux Drivers Using Coccinelle] paper, in particular the sections: + +* 1A - A. The Linux kernel development model +* 1B - A brief history of the Linux kernel backports project + = Git trees you will need = -backports backports a few subsystems down to older kernels. To be able to synchronize backporting the latest and greatest the [https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git linux-next.git] tree is used as its main source for kernel updates. +The project backports a few subsystems down to older kernels. To be able to synchronize backporting the latest and greatest the [https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git linux-next.git] tree is used as its main source for kernel updates. backports brings a general kernel compatibility part containing some backported c functions and header files in addition to patches for code in linux-next to make it work on older kernel versions and with the general kernel compatibility part. -This is now in one repository [https://git.kernel.org/cgit/linux/kernel/git/backports/backports.git backports.git] and not spitted over two any more. +You will need first the [https://git.kernel.org/cgit/linux/kernel/git/backports/backports.git backports.git] tree. Once cloned you can run: + + ./devel/backports-update-manager + +That will get you all other trees and sources required for development, which are: + +* linux-next - Stephen Rothwell's tree which tracks all development trees daily +* linux - Linus' tree +* linux-stable - Greg's stable tree for stable extra version releases + +This will use git clone --reference to minimize disk usage. You can generate backports based on different trees depending on your needs. We are supporting build based on [https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/ linux-next.git], [https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ linux.git] and [https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/ linux-stable.git]. You can also generate builds based on your own tree, but then you probably have to patch backports yourself to add support for that. = Tool prerequests = -git, python patch and coccinelle are needed to generate a backports release. +git, python patch and coccinelle are needed to generate a backports release. The tools will complain if you do not have any of the required dependencies. = Generate new release = |