KernelPackaging

Differences between revisions 5 and 10 (spanning 5 versions)
Revision 5 as of 2010-07-28 19:10:43
Size: 3770
Editor: c-76-105-148-120
Comment:
Revision 10 as of 2010-08-11 16:47:08
Size: 4598
Editor: emiko
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from Kernel/Dev/KernelPackaging
Line 4: Line 5:
Note, it is recommended to build the packages on the kernel team's server, ie zinc. They will typically build faster and the subsequent upload will also be faster if uploaded from zinc.
Line 6: Line 8:
The following commands are for building the linux kernel package. Note 'fdr' is an alias for 'fakeroot debian/rules' The following commands are for building the linux kernel package. Note 'fdr' is an alias for 'fakeroot debian/rules'. Again, if on zinc, be sure to chroot into an environment first, eg dchroot -c karmic-i386
Line 16: Line 19:
The following commands are for building the linux-meta package. The following commands are for building the linux-meta package.  Again, if on zinc, be sure to chroot into an environment first, eg dchroot -c karmic-i386
Line 23: Line 26:
=== linux-backports-modules-<VERSION> ===
Building the lbm package follows the same steps as the linux kernel package. Again, please note that 'fdr' is an alias for 'fakeroot debian/rules' and if on zinc, be sure to chroot into an environment first, eg dchroot -c karmic-i386.

{{{
cd ubuntu-<RELEASE>-lbm
fdr clean
dpkg-buildpackage -S -rfakeroot -I.git -I.gitignore -i'\.git.*' "$@"
}}}
Line 26: Line 38:
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|apply for per-package upload rights]] through the [[https://wiki.ubuntu.com/DeveloperMembershipBoard|Developer Membership Board]] (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. 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|apply for per-package upload rights]] through the [[https://wiki.ubuntu.com/DeveloperMembershipBoard|Developer Membership Board]] (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 meeting is, so get your application submitted early in the development cycle.
Line 34: Line 46:
=== 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.
=== Uploading linux, linux-meta, and lbm ===
Once you have been granted per-package upload rights for the Ubuntu kernel, the following instructions are for uploading the linux kernel package to the main archive. Again, the instructions assume the kernel packages were built on the kernel team's server, ie zinc.
Line 50: Line 62:
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. The linux-meta and lbm package follows the same upload instructions as the linux package. Remember that the ABI for the linux-meta and lbm package need to be in lock step with the linux package.
Line 62: Line 74:
[[Kernel/Handbook/Developer]] [[Kernel/Handbook/ReleaseManagement]]

Building the Ubuntu kernel package(s)

Note, it is recommended to build the packages on the kernel team's server, ie zinc. They will typically build faster and the subsequent upload will also be faster if uploaded from zinc.

linux

The following commands are for building the linux kernel package. Note 'fdr' is an alias for 'fakeroot debian/rules'. Again, if on zinc, be sure to chroot into an environment first, eg dchroot -c karmic-i386

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. Again, if on zinc, be sure to chroot into an environment first, eg dchroot -c karmic-i386

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

linux-backports-modules-<VERSION>

Building the lbm package follows the same steps as the linux kernel package. Again, please note that 'fdr' is an alias for 'fakeroot debian/rules' and if on zinc, be sure to chroot into an environment first, eg dchroot -c karmic-i386.

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

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 apply for per-package upload rights through the Developer Membership Board (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 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, linux-meta, and lbm

Once you have been granted per-package upload rights for the Ubuntu kernel, the following instructions are for uploading the linux kernel package to the main archive. Again, 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 and lbm package follows the same upload instructions as the linux package. Remember that the ABI for the linux-meta and lbm package need to be in lock step with the linux package.

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/ReleaseManagement

Kernel/Handbook/ReleaseManagement/KernelPackaging (last edited 2014-12-12 16:41:10 by leannogasawara)