KernelSimpleGuide

Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2009-03-27 13:13:40
Size: 3597
Editor: ikepanhc
Comment:
Revision 5 as of 2009-04-07 06:30:19
Size: 4317
Editor: ikepanhc
Comment: This wiki shall be a kernel team public wiki
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from KernelSimpleGuide
Line 2: Line 3:
Line 6: Line 6:
Line 8: Line 7:

Install necessary packages
Install necessary packages. you can install more packages you need.
Line 11: Line 9:
local# sudo apt-get install build
Line 19: Line 16:
local# sudo apt-get install debhelper
Line 21: Line 19:
Setup msmtp, we use gmail account as an example Setup msmtp, we take gmail account as an example. You shall check with your ISP or email service provider for the details.
Line 44: Line 42:
=== Clone source code === === Get the lastest source code from ubuntu server ===
We takes Jaunty kernel tree as an example. You can check KernelTeam/KernelGitGuide for the details.
Line 59: Line 58:
Setup a remote on your local tree Setup a remote on your local tree, so you can push the commit on your local laptop to zinc
Line 73: Line 72:
local# git commit -s -F debian/commit-templates/sauce-patch <files_modified> local# git commit -s -F debian/commit-templates/patch <files_modified>
Line 75: Line 74:
We have several commit message templates in debian/commit-templates. You shall choose them according to your modify.
Line 104: Line 104:
=== Push your change to your git tree on zinc === === Push your changes to your git tree on zinc ===
Line 108: Line 108:
So that everyone could easily have your changes. Kernel tree maintainers could easily pull changes from your public git tree to the mainline.
Line 112: Line 113:
           git://kernel.ubuntu.com/<your_id_on_zinc/my-jaunty.git \            git://kernel.ubuntu.com/<your_id_on_zinc>/my-jaunty.git \
Line 115: Line 116:
The request-pull messages tells kernel tree maintainers where they can pull your changes, and summary of the changes

Prepare your environment

Install and setup necessary packages

Install necessary packages. you can install more packages you need.

local# sudo apt-get install build-essential
local# sudo apt-get install fakeroot
local# sudo apt-get install kernel-wedge
local# sudo apt-get install libncurses5-dev
local# sudo apt-get install msmtp
local# sudo apt-get install git-core
local# sudo apt-get install git-email
local# sudo apt-get install debhelper

Setup msmtp, we take gmail account as an example. You shall check with your ISP or email service provider for the details.

local# vi ~/.msmtprc
# Set default values for all following accounts.
defaults
logfile ~/.msmtp.log

# gmail
account gmail
protocol smtp
host smtp.gmail.com
user <your_id_in_gmail>@gmail.com
password <your_passwd_in_gmail>
port 587
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
syslog LOG_MAIL 

# Set a default account
account default : gmail

Get the lastest source code from ubuntu server

We takes Jaunty kernel tree as an example. You can check KernelTeam/KernelGitGuide for the details.

local# git clone git://kernel.ubuntu.com/ubuntu/ubuntu-jaunty.git

Prepare your public tree

If you have an account on zinc.ubuntu.com, you can public your commit with it.
Prepare your git tree on zinc.ubuntu.com

      * access into zinc.ubuntu.com *
zinc# git clone -l -n -s /srv/kernel.ubuntu.com/git/ubuntu/ubuntu-jaunty.git
zinc# vi ubuntu-jaunty/.git/description # Give a short description of your tree
zinc# mv ubuntu-jaunty/.git /srv/kernel.ubuntu.com/git/<your_id_on_zinc>/my-jaunty.git
zinc# rmdir ubuntu-jaunty

Setup a remote on your local tree, so you can push the commit on your local laptop to zinc

local# git remote add zinc \
git+ssh://zinc.ubuntu.com/srv/kernel.ubuntu.com/git/<your_id_on_zinc>/my-jaunty.git

Working with your local tree

local# git checkout -b new_branch_1
       * Working with codes *

Commit changes

local# git commit -s -F debian/commit-templates/patch <files_modified>

We have several commit message templates in debian/commit-templates. You shall choose them according to your modify.

Sending your patch to mail list

Prepare your patch file

local# git format-patch -1 --cover-letter
local# vi 0000-cover-letter.patch # Modify the summary and subject and From
local# vi 0001-xxxxxx.patch .... # Modify anything here

Send to mail list

local# git send-email \
           --no-chain-reply-to \
           --thread
           --suppress-cc all
           --smtp-server /usr/bin/msmtp
           --from <your_email_address>
           --to kernel-team@lists.ubuntu.com
           ./0000-cover-letter.patch
local# git send-email \
           --no-chain-reply-to \
           --thread
           --suppress-cc all
           --smtp-server /usr/bin/msmtp
           --from <your_email_address>
           --to kernel-team@lists.ubuntu.com
           ./0001-xxxxxx.patch

Send the request-pull to mailing list

Push your changes to your git tree on zinc

local# git push zinc new_branch_1

So that everyone could easily have your changes. Kernel tree maintainers could easily pull changes from your public git tree to the mainline.

Generate your request-pull summary

local# git request-pull \
           <lastest SHA before your commit> \
           git://kernel.ubuntu.com/<your_id_on_zinc>/my-jaunty.git \
           > new_branch_1-request-pull.txt

The request-pull messages tells kernel tree maintainers where they can pull your changes, and summary of the changes

Send the summary to mail list

local# git send-email \
           --no-chain-reply-to \
           --thread
           --suppress-cc all
           --smtp-server /usr/bin/msmtp
           --from <your_email_address>
           --to kernel-team@lists.ubuntu.com
           ./new_branch_1-request_pull.txt

KernelTeam/KernelSimpleGuide (last edited 2010-11-05 19:50:01 by 12)