KernelPackaging

Revision 4 as of 2010-07-28 19:09:47

Clear message

Building the Ubuntu kernel package(s)

linux

The following commands are for building the linux kernel package. Note 'fdr' is an alias for 'fakeroot debian/rules'

cd ubuntu-<RELEASE>
fdr clean
dpkg-buildpackage -S -rfakeroot -I.git -I.gitignore -i'\.git.*' "$@"

It's suggested to wrap the above commands into a script.

linux-meta

The following commands are for building the linux-meta package.

cd ubuntu-<RELEASE>-meta
make clean
make source

Uploading the Ubuntu kernel package(s)

Per Package Upload Rights

Once the package(s) have been built, they are ready for upload. However, before you are even able to upload to the main archive, you must obtain per-package upload rights for the kernel. You must https://wiki.ubuntu.com/UbuntuDevelopers#PerPackage through the https://wiki.ubuntu.com/DeveloperMembershipBoard (DMB). Your application will be reviewed at an upcoming DMB IRC meeting. You must attend this meeting and answer any questions regarding your application. Getting your application approved can take weeks depending when the next DMB (Developer Membership Board) meeting is, so get your application submitted early in the development cycle.

Examples of applications can be seen at:

https://wiki.ubuntu.com/AndyWhitcroft/KernelUploadsApplication

https://wiki.ubuntu.com/LeannOgasawara/KernelUploadsApplication

Uploading linux and linux-meta

Once you have been granted per-package upload rights for the Ubuntu kernel, the following instructions are for uploading the kernel packages to the main archive. The instructions assume the kernel packages were built on the kernel team's server, ie zinc.

  1. Remotely sign the package
    debsign -r zinc:linux_<VERSION>-<ABI>.<UPLOAD>_source.changes
  2. View the .changes file and verify everything looks correct prior to uploading.
    • Check the release pocket is correct
    • Check the package and version is correct
    • Check the changelog is accurate
  3. Upload the package (from zinc)
    dput linux_<VERSION>-<ABI>.<UPLOAD>_source.changes

The linux-meta package follows the same upload instructions as the linux package. Remember that the linux-meta package usually only needs an upload when the linux package ABI has been rev'd.

Best Practices

During the release cycle there a few best practices to follow when building and uploading the kernel package(s)

  • Upload typically once per week
  • Wait to upload linux-meta until after linux finishes building successfully on the main archs
  • Once uploaded, if there was an ABI bump, send an email announcement to Ubuntu kernel-team mailing list, the ubuntu-installer mailing list, and the ubuntu-mobile mailing list.
  • Keep a watchful eye on the milestone dates. eg. http://wiki.ubuntu.com/MaverickReleaseSchedule

    • Remember the archive freezes the Tuesday before the milestone. As such, the kernel needs to be uploaded and successfully built before the archive freezes. This means the kernel for the milestone should typically be uploaded the Friday before the milestone. This allows enough lead time for the package(s) to build prior to the archive freezing.
    • Be sure to communicate the milestone dates and the last day to get patches accepted into the kernel. Announce this in the weekly Ubuntu Kernel IRC meeting. Also, send an email to the Ubuntu kernel-team mailing list 1 week prior to the final kernel upload (ie ~2weeks before the milestone). This informs anyone wanting patches included in the kernel for the milestone to get them submitted ASAP.


Kernel/Handbook/Developer