assigning-copyright.html (10140B)
1 <!--#include virtual="/server/header.html" --> 2 <!-- Parent-Version: 1.96 --> 3 <!-- This page is derived from /server/standards/boilerplate.html --> 4 <!--#set var="TAGS" value="essays licensing copyleft" --> 5 <!--#set var="DISABLE_TOP_ADDENDUM" value="yes" --> 6 <title>When a Company Asks For Your Copyright 7 - GNU Project - Free Software Foundation</title> 8 <link rel="canonical" 9 href="https://www.fsf.org/blogs/rms/assigning-copyright" /> 10 <!--#include virtual="/philosophy/po/assigning-copyright.translist" --> 11 <!--#include virtual="/server/banner.html" --> 12 <!--#include virtual="/philosophy/ph-breadcrumb.html" --> 13 <!--GNUN: OUT-OF-DATE NOTICE--> 14 <!--#include virtual="/server/top-addendum.html" --> 15 <div class="article reduced-width"> 16 <h2>When a Company Asks For Your Copyright</h2> 17 <div class="thin"></div> 18 19 <p>Companies that develop free software and release it under the GNU GPL 20 sometimes distribute some copies of the code in other ways. If they 21 distribute the exact same code under a different license to certain 22 users that pay for this, typically permitting including the code in 23 proprietary programs, we call it “selling exceptions.” If they 24 distribute some version of the code solely in a proprietary manner, we 25 call that releasing a purely proprietary version of the program.</p> 26 27 <p>“<a href="/philosophy/selling-exceptions.html">Selling exceptions 28 to the GNU GPL</a>” explains why 29 selling exceptions is acceptable, though only barely. By contrast, 30 releasing a purely proprietary version is outright wrong, like 31 any other proprietary software.</p> 32 33 <p>Companies normally do these things using code they 34 developed. Since they hold the copyright on that code, they can 35 legally distribute it in any manner, even in multiple manners in 36 parallel. But what happens when you publish a modified version of 37 that free program, and the company wants to include your changes in 38 its version?</p> 39 40 <p>Since you got the program under the GPL, when you distribute a 41 modified version you have to license it under the GPL. If the company 42 receives a copy, it will be able to use those changes under the GPL; 43 it won't be allowed to include your changes in that program and sell 44 exceptions for it. It also won't be able to release purely 45 proprietary versions containing your code. If this is the outcome you 46 want, you get it by default. However, if the company intends to sell 47 exceptions, it will probably decide not to use your changes.</p> 48 49 <p>Suppose, though, that you're not opposed to selling exceptions and 50 you're willing to let the company do so while including your changes 51 in the program. You can agree to this, but you need to be careful 52 about what you sign, or you may be surprised by the results.</p> 53 54 <p>The company will probably invite you to assign or license your 55 copyright to the company, by signing a copyright assignment contract 56 or a contributor license agreement. That in itself is not inherently bad; for 57 instance, many GNU software developers have assigned copyrights 58 to the FSF. However, the FSF never sells exceptions, and its 59 assignment contracts include a commitment to distribute the 60 contributor's code only with source and only permitting 61 redistribution.</p> 62 63 <p>The company's proposed contract may not include such a commitment. It 64 might instead let the company use your changes any way it likes. If 65 you sign that, the company could do various things with your code. It 66 could keep selling exceptions for a program including your code. It 67 could release purely proprietary modified or extended versions 68 including your code. It could even include your code <em>only</em> in 69 proprietary versions. Your contribution of code could turn out to be, 70 in effect, a donation to proprietary software.</p> 71 72 <p>It is up to you which of these activities to permit, but here are the 73 FSF's recommendations. If you plan to make major contributions to the 74 project, insist that the contribution agreement require that software 75 versions including your contributions be available to the public under 76 a free software license. This will allow the developer to sell 77 exceptions, but prevent it from using your contributions in software 78 that is only available under a proprietary license.</p> 79 80 <p>If your contributions are smaller, you could accept a weaker 81 condition, that the company make your contributions available in a 82 free software release as well as possibly in nonfree programs. 83 This would allow the company to use your contributions in 84 modified software that's only available under a proprietary license. 85 Releasing proprietary software is never a good thing, but if your 86 changes are smaller, it might be more important to improve the free 87 version than resist the nonfree versions.</p> 88 89 <p>You can control these outcomes by insisting on the proper conditions 90 in the contract. To allow selling exceptions for the program that 91 contains your code, but refuse to let the company release purely 92 proprietary versions containing your code, you can insist on a 93 condition more or less like this:</p> 94 95 <blockquote class="emph-box"> 96 <p>Any program based on (as defined in GNU General Public License 97 version 3) Hacker's code that FOO distributes shall be made 98 available by FOO under <b>(a)</b> the “GNU General Public License (GPL), 99 version 2 or later,” or <b>(b)</b> the licensing in (a), above, but with “2” 100 replaced by any higher existing GPL version number. Provided FOO 101 makes the program available as source code gratis to the public in 102 this way, it may also distribute the identical program to some of 103 its users under terms permitting them to link the program's code 104 with nonfree code and release the combination in binary form under a 105 license of their own choosing.</p> 106 </blockquote> 107 108 <p>Or, if what you object to is that some variant <em>of your code</em> 109 might be released solely in a proprietary version, you can insist on a 110 condition more or less like this:</p> 111 112 <blockquote class="emph-box"> 113 <p>Any program based on (as defined in GNU General Public License 114 version 3) Hacker's code that FOO distributes shall be made 115 available by FOO under <b>(a)</b> the “GNU General Public License (GPL), 116 version 2 or later,” or <b>(b)</b> the licensing in (a), above, but with “2” 117 replaced by any higher existing GPL version number. Provided FOO 118 makes the program available as source code gratis to the public in 119 this way, it may also distribute the same version of Hacker's code 120 in other programs released under other licenses of its own choosing.</p> 121 </blockquote> 122 123 <p>If the program is released under the GNU Affero GPL, then add “Affero” 124 before “General,” change “GPL” to “AGPL,” change “2 or” to “3 or,” and 125 it could make sense to replace “that FOO distributes” with “that FOO 126 distributes, or deploys on a server accessible to users other than 127 FOO.”</p> 128 129 <p>The FSF has had these texts reviewed by a lawyer, but you should get 130 your own legal advice before using them.</p> 131 132 <p>When a company says which of these conditions it will accept, that 133 will show you how far it plans to depart from the principles of free 134 software. Then you can respond to ensure your work will contribute to 135 the free software community and not be diverted into proprietary 136 software.</p> 137 </div> 138 139 </div><!-- for id="content", starts in the include above --> 140 <!--#include virtual="/server/footer.html" --> 141 <div id="footer" role="contentinfo"> 142 <div class="unprintable"> 143 144 <p>Please send general FSF & GNU inquiries to 145 <a href="mailto:gnu@gnu.org"><gnu@gnu.org></a>. 146 There are also <a href="/contact/">other ways to contact</a> 147 the FSF. Broken links and other corrections or suggestions can be sent 148 to <a href="mailto:webmasters@gnu.org"><webmasters@gnu.org></a>.</p> 149 150 <p><!-- TRANSLATORS: Ignore the original text in this paragraph, 151 replace it with the translation of these two: 152 153 We work hard and do our best to provide accurate, good quality 154 translations. However, we are not exempt from imperfection. 155 Please send your comments and general suggestions in this regard 156 to <a href="mailto:web-translators@gnu.org"> 157 <web-translators@gnu.org></a>.</p> 158 159 <p>For information on coordinating and contributing translations of 160 our web pages, see <a 161 href="/server/standards/README.translations.html">Translations 162 README</a>. --> 163 Please see the <a 164 href="/server/standards/README.translations.html">Translations 165 README</a> for information on coordinating and contributing translations 166 of this article.</p> 167 </div> 168 169 <!-- Regarding copyright, in general, standalone pages (as opposed to 170 files generated as part of manuals) on the GNU web server should 171 be under CC BY-ND 4.0. Please do NOT change or remove this 172 without talking with the webmasters or licensing team first. 173 Please make sure the copyright date is consistent with the 174 document. For web pages, it is ok to list just the latest year the 175 document was modified, or published. 176 177 If you wish to list earlier years, that is ok too. 178 Either "2001, 2002, 2003" or "2001-2003" are ok for specifying 179 years, as long as each year in the range is in fact a copyrightable 180 year, i.e., a year in which the document was published (including 181 being publicly visible on the web or in a revision control system). 182 183 There is more detail about copyright years in the GNU Maintainers 184 Information document, www.gnu.org/prep/maintain. --> 185 186 <p>Copyright © 2010, 2014, 2021 Free Software Foundation, Inc.</p> 187 188 <p>This page is licensed under a <a rel="license" 189 href="http://creativecommons.org/licenses/by-nd/4.0/">Creative 190 Commons Attribution-NoDerivatives 4.0 International License</a>.</p> 191 192 <!--#include virtual="/server/bottom-notes.html" --> 193 194 <p class="unprintable">Updated: 195 <!-- timestamp start --> 196 $Date: 2021/10/01 17:02:54 $ 197 <!-- timestamp end --> 198 </p> 199 </div> 200 </div><!-- for class="inner", starts in the banner include --> 201 </body> 202 </html>