KernelSimpleGuide

Differences between revisions 2 and 4 (spanning 2 versions)
Revision 2 as of 2009-03-27 13:56:37
Size: 3724
Editor: 210
Comment:
Revision 4 as of 2009-04-03 17:50:41
Size: 4273
Editor: astatine
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
Install necessary packages. Install necessary packages. you can install more packages you need.
Line 18: Line 18:
Setup msmtp, we take 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 42: Line 42:
We takes Jaunty kernel tree as an example.<<BR>>
You can check KernelGitGuide for the details.
We takes Jaunty kernel tree as an example. You can check KernelTeam/KernelGitGuide for the details.
Line 58: Line 57:
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 72: Line 71:
local# git commit -s -F debian/commit-templates/sauce-patch <files_modified> local# git commit -s -F debian/commit-templates/patch <files_modified>
Line 74: Line 73:
We have several commit message templates in debian/commit-templates. You shall choose them according to your modify.
Line 103: Line 103:
=== Push your change to your git tree on zinc === === Push your changes to your git tree on zinc ===
Line 107: Line 107:
So that everyone could easily have your changes. Kernel tree maintainers could easily pull changes from your public git tree to the mainline.
Line 111: Line 112:
           git://kernel.ubuntu.com/<your_id_on_zinc/my-jaunty.git \            git://kernel.ubuntu.com/<your_id_on_zinc>/my-jaunty.git \
Line 114: Line 115:
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)