Developer Certificate Of Origin

In May 2004, the kernel development community decided to standardize on a requirement to adhere to a Developer Certificate of Origin for contributions to the Linux kernel.

The text of the DCO is located in the file Documentation/process/submitting-patches.rst in the Linux kernel source tree.

The full text of the DCO version 1.1 (the current version as of 2011) is:

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I           have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am           permitted to submit under a different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.

(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all           personal information I submit with it, including my sign-off) is            maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.

There is a kernel thread discussing the original proposal from Linus here (lkml.org), and here (google groups). And here (aimsgroup).

Here is another article describing rationale for the 1.1 version: Clarifying the Developer's Certificate of Origin KernelTrap, June 14, 2005

Example
Here is an example Signed-off-by line, that indicates the submitter accepts the DCO: Signed-off-by: John Doe 

Resources

 * Using '-s' with 'git commit' will automatically add a Signed-off-by line to your commit message.
 * The kernel tool checkpatch.pl scans kernel patches for errors, and will indicate if the Signed-off-by line is missing.

Here is what a checkpatch.pl error for missing SoB looks like:

$ scripts/checkpatch.pl init/0001-main-add-debug-printk.patch ERROR: Missing Signed-off-by: line(s) total: 1 errors, 0 warnings, 7 lines checked NOTE: For some of the reported defects, checkpatch may be able to      mechanically convert to the typical style using --fix or --fix-inplace. init/0001-main-add-debug-printk.patch has style problems, please review. NOTE: If any of the errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.


 * There is an app for github which will check for Signed-off-by lines, and automatically mark whether a pull request has one or not.
 * See https://probot.github.io/apps/dco/

Older versions
The original DCO, version 1.0, read:

Developer's Certificate of Origin 1.0

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or

(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a   different license), as indicated in the file; or

(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.