Difference between revisions of "Developer Certificate Of Origin"

From eLinux.org
Jump to: navigation, search
(Resources)
 
(8 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
to the Linux kernel.
 
to the Linux kernel.
  
The full text of the DCO is:
+
The text of the DCO is located in the file [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst 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:
 +
 
 +
<pre>
 +
        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.
 +
</pre>
 +
 
 +
There is a kernel thread discussing the original proposal from Linus
 +
[https://lkml.org/lkml/2004/5/23/10 here (lkml.org),] and
 +
[http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=1YUY7-6fF-11%40gated-at.bofh.it&rnum=1&prev=/groups%3Fq%3Dg:thl3436074442d%26dq%3D%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D1YUY7-6fF-11%2540gated-at.bofh.it here (google groups).] And
 +
[http://marc.theaimsgroup.com/?l=linux-kernel&m=108529494402563&w=2 here (aimsgroup).]
 +
 
 +
Here is another article describing rationale for the 1.1 version:
 +
[http://kerneltrap.org/node/5277 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:
 +
<pre>
 +
Signed-off-by: John Doe <john.doe@hisdomain.com>
 +
</pre>
 +
 
 +
== 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:
  
 
<pre>
 
<pre>
Line 22: Line 93:
 
     certified (a), (b) or (c) and I have not modified it.
 
     certified (a), (b) or (c) and I have not modified it.
 
</pre>
 
</pre>
 
Here is the online reference for the official DCO:
 
http://www.osdl.org/newsroom/press_releases/2004/2004_05_24_dco.html
 
 
Here is an announcement talking about DCO:
 
http://www.osdl.org/newsroom/press_releases/2004/2004_05_24_beaverton.html
 
 
There is a kernel thread discussing the original proposal from Linus
 
[http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=1YUY7-6fF-11%40gated-at.bofh.it&rnum=1&prev=/groups%3Fq%3Dg:thl3436074442d%26dq%3D%26hl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D1YUY7-6fF-11%2540gated-at.bofh.it here (google groups).] And
 
[http://marc.theaimsgroup.com/?l=linux-kernel&m=108529494402563&w=2 here (aimsgroup).]
 
  
 
[[Category:Categories]]
 
[[Category:Categories]]

Latest revision as of 10:12, 29 January 2020

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 <john.doe@hisdomain.com>

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.

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.