Developer's Certificate of Origin (DCO) Sign-off

The GCC project now allows contributions to use the "sign-off" procedure originally introduced by the Linux Kernel project, and subsequently adopted by many other free software projects. This procedure is required for contributions not covered by either FSF copyright assignment or the MAINTAINERS DCO list.

The sign-off is a simple line at the end of the explanation for the patch, which certifies that you wrote it or otherwise have the right to pass it on as a free software patch. The rules are pretty simple: if you can certify the below:

Developer's Certificate of Origin 1.1

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

  1. 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
  2. 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
  3. The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
  4. 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.
then you just add a line saying:
    Signed-off-by: Random J Developer <random@developer.example.org>
using a known identity (sorry, no anonymous contributions.) This will be done for you automatically if you use `git commit -s`. The name you use as your identity should not be an anonymous id or false name that misrepresents who you are.

A known identity can be the committer's real, birth or legal name, but can also be an established (online) identity. It is the name you convey to people in the community for them to use to identify you as you. A key concern is that your identification is sufficient enough to contact you if an issue were to arise in the future about your contribution. You should not deliberately use a name or email address that hides your identity. When you wish to only contribute under an (anonymous) pseudonym, or when you require an explicit employer disclaimer, then following the FSF assignment process is more appropriate.

Some people also put extra optional tags at the end. The GCC project does not require tags from anyone other than the original author of the patch, but other people involved in passing along the patch can add their own Signed-off-by if they wish.

Developers with write access should certify the DCO for all their patches by adding themselves to the DCO list in the MAINTAINERS file.