KernelMaintenance
|
Size: 3694
Comment:
|
Size: 4132
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 19: | Line 19: |
| == Maintain multiple releases using Linus tree as reference == | == Setup multiple releases using Linus tree as reference == |
| Line 44: | Line 44: |
| === Update Process === | == Update Process == |
| Line 100: | Line 100: |
== First upload to a new remote == First, set up the new remote. For example, calling it zequence. {{{ git remote add zequence git@github.com:zequence/ubuntu-<release>-lowlatency.git git push -u --tags zequence master git push -u --tags zequence lowlatency }}} Now that the remote zequence is set up, future maintenance will just involve the update process, and pushing, like so: {{{ git push --tags zequence lowlatency }}} |
Howto for maintaining the linux-lowlatency kernel
The plan for maintaining kernels 12.04 and 12.10 is to keep the source at github, and have apw at UTK pull from there.
The plan for 13.04 is to use a PPA at launchpad (owned by ubuntustudio-kernel team)
All of the below is preliminary, and is not to be used literally.
Prerequisites
If doing maintenance from a ubuntu machine
sudo apt-get install ubuntu-dev-tools debhelper build-essential kernel-wedge kernel-package fakeroot sudo apt-get build-dep linux-lowlatency
Make sure you have a gpg signing key ready.
Setup multiple releases using Linus tree as reference
Get the Source
Clone Linus main linux tree into a bare git reporitory.
git clone --bare git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linus-linux.git
Clone generic trees using Linus tree as reference
git clone --reference linus-linux.git git://kernel.ubuntu.com/ubuntu/ubuntu-precise.git ubuntu-precise-lowlatency git clone --reference linus-linux.git git://kernel.ubuntu.com/ubuntu/ubuntu-quantal.git ubuntu-quantal-lowlatency git clone --reference linus-linux.git git://kernel.ubuntu.com/ubuntu/ubuntu-raring.git ubuntu-raring-lowlatency
In each repo, add the lowlatency remote, and create a new branch for it (when basing on apw trees):
git remote add lowlatency git://kernel.ubuntu.com/apw/ubuntu-<release>-lowlatency.git git fetch lowlatency git checkout -b lowlatency lowlatency/lowlatency
You'll now have the main linux vanilla tree that Linus maintains, and three much smaller Ubuntu linux-generic trees (precise, quantal, raring), which share objects with the tree they refer to (linus-linux.git), each containing a branch for lowlatency.
Update Process
When a tracker bug appears, like this one: LP: #1095799, it is good time to prepare the linux-lowlatency source tree. (In this case, we are updating linux-lowlatency-precise)
First, make sure Linus vanilla tree is up to date.
~/repos/linus-linux.git$ git fetch
Now head to the lowlatency tree, and begin with cleanup (make sure we are in the lowlatency branch). The clean up also adds some extra files, which we will NOT add to the git tree. This procedure is needed in order to have the update script work(next step).
~/repos/ubuntu-precise-lowlatency$ git checkout lowlatency ~/repos/ubuntu-precise-lowlatency$ fakeroot debian/rules clean
Now, were going to do much of the maintenance procedure automatically, by using a script. Basically, it does a rebase against the generic kernel source, and does some nice looking git commits, as well as prepares the debian package for a new release version.
~/repos/ubuntu-precise-lowlatency$ ./debian.lowlatency/etc/update-from-master
If all went fine, the last two lines...
*** verify and tag the release.
git tag -s -m Lowlatency-3.2.0-36.35 Lowlatency-3.2.0-36.35...tell you to do a git tag, but before we do that, we need to add one more thing.
Edit the debian changelog, to include the tracker bug
nano debian.lowlatency/changelog
Make it look something like this (with the correct bug report)
linux-lowlatency (3.2.0-36.35) precise-proposed; urgency=low
[ Kaj Ailomaa ]
* rebase to Ubuntu-3.2.0-36.56
* Release Tracking Bug
- LP: #1095799Now, we need to redo the last commit by doing:
git commit -a --amend
Now, we do the tag:
git tag -s -m Lowlatency-3.2.0-36.35 Lowlatency-3.2.0-36.35
All done.
First upload to a new remote
First, set up the new remote. For example, calling it zequence.
git remote add zequence git@github.com:zequence/ubuntu-<release>-lowlatency.git git push -u --tags zequence master git push -u --tags zequence lowlatency
Now that the remote zequence is set up, future maintenance will just involve the update process, and pushing, like so:
git push --tags zequence lowlatency
UbuntuStudio/KernelMaintenance (last edited 2013-07-29 12:43:45 by 212)