logo

drewdevault.com

[mirror] blog and personal website of Drew DeVault git clone https://hacktivis.me/git/mirror/drewdevault.com.git

Dont-sign-a-CLA-2.md (6922B)


  1. ---
  2. title: Seriously, don't sign a CLA
  3. date: 2023-07-04
  4. ---
  5. [SourceGraph][0] is making their product closed source, abandoning the Apache
  6. 2.0 license it was originally distributed under, so once again we convene in the
  7. ritual condemnation we offer to commercial products that piss in the pool of
  8. open source. Invoking Bryan Cantrill once more:
  9. [0]: https://about.sourcegraph.com/
  10. <iframe
  11. width="560"
  12. height="315"
  13. src="https://www.youtube-nocookie.com/embed/-zRN7XLCRhc?start=2483"
  14. frameborder="0"
  15. allow="accelerometer; autoplay; gyroscope; picture-in-picture"
  16. allowfullscreen></iframe>
  17. <p>
  18. <a
  19. style="display: block; text-align: center"
  20. href="https://youtu.be/-zRN7XLCRhc?t=2483"
  21. ><small>Bryan Cantrill on OpenSolaris &mdash; YouTube</small></a>
  22. A contributor license agreement, or CLA, usually (but not always) includes an
  23. important clause: a copyright assignment. These agreements are provided by
  24. upstream maintainers to contributors to open source software projects, and they
  25. demand a signature before the contributor's work is incorporated into the
  26. upstream project. The copyright assignment clause that is usually included
  27. serves to offer the upstream maintainers more rights over the contributor's work
  28. than the contributor was offered by upstream, generally in the form of ownership
  29. or effective ownership over the contributor's copyright and the right to license
  30. it in any manner they choose in the future, including proprietary distributions.
  31. This is a strategy employed by commercial companies with one purpose only: to
  32. place a rug under the project, so that they can pull at the first sign of a bad
  33. quarter. This strategy exists to subvert the open source social contract. These
  34. companies wish to enjoy the market appeal of open source and the free labor of
  35. their community to improve their product, but do *not* want to secure these
  36. contributors any rights over their work.
  37. This is particularly pathetic in cases like that of SourceGraph, which used a
  38. permissive Apache 2.0 license. Such licenses already allow their software to be
  39. incorporated into non-free commercial works, such is the defining nature of a
  40. permissive license, with relatively few obligations: in this case, a simple
  41. attribution will suffice. SourceGraph could have been made non-free without a
  42. CLA at all if this one obligation was met. The owners of SourceGraph find the
  43. simple task of crediting their contributors too onerous. This is disgusting.
  44. SourceGraph once approached SourceHut asking about building an integration
  45. between our platforms. They wanted us to do most of the work, which is a bit
  46. tacky but reasonable under the reciprocal social contract of open source. We
  47. did not prioritize it and I'm glad that we didn't: our work would have been made
  48. non-free.
  49. Make no mistake: a CLA is a promise that a open source software project will one
  50. day become non-free. Don't sign them.
  51. **What are my rights as a contributor?**
  52. If you sign away your rights by agreeing to a CLA, you retain all of the rights
  53. associated with your work.
  54. By default, you own the copyright over your contribution and the contribution is
  55. licensed under the same software license the original project uses, thus, your
  56. contribution is offered to the upstream project on the same terms that their
  57. contribution was offered to you. The copyright for such projects is held
  58. collectively by all contributors.
  59. You also always have the right to fork an open source project and distribute
  60. your improvements on your own terms, without signing a CLA -- the only power
  61. upstream holds is authority over the "canonical" distribution. If the rug is
  62. pulled from under you, you may also continue to use, and improve, versions of
  63. the software from prior to the change in license.
  64. **How do I prevent this from happening to my project?**
  65. A CLA is a promise that software will one day become non-free; you can also
  66. promise the opposite. Leave copyright in the collective hands of all
  67. contributors and use a copyleft license.
  68. Without the written consent of all contributors, or performing their labor
  69. yourself by re-writing their contributions, you cannot change the license of a
  70. project. Skipping the CLA leaves their rights intact.
  71. In the case of a permissive software license, a new license (including
  72. proprietary licenses) can be applied to the project and it can be redistributed
  73. under those terms. In this way, all future changes can be written with a new
  74. license. The analogy is similar to that of a new project with a proprietary
  75. license taking a permissively licensed project and incorporating all of the code
  76. into itself before making further changes.
  77. You can prevent this as well with a copyleft license: such a license requires
  78. the original maintainers to distribute future changes to the work under a free
  79. software license. Unless they can get all copyright holders -- all of the
  80. contributors -- to agree to a change in license, they are obligated to
  81. distribute their improvements on the same terms.
  82. Thus, the absence of a CLA combined with the use of a copyleft license serves as
  83. a strong promise about the future of the project.
  84. Learn more at [writefreesoftware.org](https://writefreesoftware.org):
  85. * [Managing copyright ownership](https://writefreesoftware.org/learn/participate/copyright-ownership/)
  86. * [Re-using free software](https://writefreesoftware.org/learn/participate/derived-works/)
  87. * [What is copyleft?](https://writefreesoftware.org/learn/participate/derived-works/)
  88. **What should I do as a business instead of a CLA?**
  89. It is not ethical to demand copyright assignment in addition to the free labor
  90. of the open source community. However, there are some less questionable aspects
  91. of a contributor license agreement which you may uphold without any ethical
  92. qualms, notably to establish provenance.
  93. Many CLAs include clauses which establish the provenance of the contribution and
  94. transfer liability to the contributor, such that the contributor agrees that
  95. their contribution is either their own work or they are authorized to use the
  96. copyright (for example, with permission from their employer). This is a
  97. reasonable thing to ask for from contributors, and manages your exposure to
  98. legal risks.
  99. The best way to ask for this is to require contributions to be "signed-off" with
  100. the [Developer Certificate of
  101. Origin](https://drewdevault.com/2021/04/12/DCO.html).
  102. ---
  103. Previously:
  104. * [Breaking down Apollo Federation's anti-FOSS corporate gaslighting](https://drewdevault.com/2021/11/05/Apollo-federation-2-gaslighting.html)
  105. * [The Developer Certificate of Origin is a great alternative to a CLA](https://drewdevault.com/2021/04/12/DCO.html)
  106. * [Open source means surrendering your monopoly over commercial exploitation](https://drewdevault.com/2021/01/20/FOSS-is-to-surrender-your-monopoly.html)
  107. * [Elasticsearch does not belong to Elastic](https://drewdevault.com/2021/01/19/Elasticsearch-does-not-belong-to-Elastic.html)