md5, sha1, sha256, sha512: add gl_SET_CRYPTO_CHECK_DEFAULT
[gnulib.git] / doc / Copyright / conditions.text
1 Legal Issues about Contributing Code to GNU     last updated 8 Feb 2009
2
3 Project GNU has to be careful to obey copyright laws, even though
4 these laws are wrong when they stop people from sharing generally
5 useful published information such as software, because we are in the
6 public eye.  We also use copyright to defend users' freedom, by means
7 of copyleft (though this does not excuse copyright law for helping
8 to make software proprietary).
9
10 This means that if you want to contribute software to GNU, you have to
11 do something to give us legal permission to use it.  There are three
12 ways this can be done:
13
14 * Assign the copyright to the Free Software Foundation.
15 This allows the FSF to act to stop violations of the GPL.
16
17 * Keep the copyright and release the program yourself under the GNU
18 GPL.  (This alternative too impractical for contributions to a
19 preexisting FSF-copyrighted GNU program.)
20
21 * Put the code in the public domain.  Then there is nothing to stop
22 hoarding of modified versions, but we can still use the program in GNU.
23
24 Most of these alternatives require a signed piece of paper to make it
25 happen.
26
27 * Assigning copyright.
28
29 Assigning the copyright means signing a contract that makes the Free
30 Software Foundation the "owner" of the program according to the law.
31 As the copyright holder, the Foundation can sue anyone who tries to
32 distribute the program as a proprietary product.  We are willing to
33 keep your name on the program as the author for as long as the program
34 remains recognizably distinct.  ("Owner" is in quotes to show that we
35 don't really believe in this kind of ownership.)
36
37 The assignment contract commits the foundation to setting distribution
38 terms that permit free redistribution.
39
40 Often we don't want to do the work of starting to distribute a program
41 right away.  There are many things which we will need in order to have
42 a complete system but which aren't really useful until the rest of the
43 system is done.  But signing the assignment does not stop you from
44 distributing the program yourself--as long as you do so under the GNU
45 terms.  You don't have to wait for us to start distributing.  You can
46 start distributing as soon as you attach our standard copyleft to the
47 files.  (Ask for our advice on how to do this.)
48
49 The assignment contract we normally use has a clause that permits you
50 to use your code in proprietary programs, on 30 days' notice.  (The 30
51 days' notice is there because, through a legal technicality, it would
52 improve our position in a suit against a hoarder.)  Although we
53 believe that proprietary software is wrong, we include this clause
54 because it would serve no purpose to ask you to promise not to do it.
55 You're giving us a gift in the first place.
56
57 You don't need to invoke this clause in order to distribute copies as
58 free software under the GNU GPL, since everyone is allowed to do that.
59
60 * Releasing it yourself.
61
62 You can release a program yourself under copyleft distribution terms
63 such as the GNU GPL.  (In order to accept the program as GNU software,
64 we would have to be happy with your choice of terms.)  This does not
65 require a contract between you and the FSF, but we would appreciate
66 having a signed piece of paper to confirm your decision.
67
68 If someone violates your terms--for example, if someone gets a copy
69 from us, and uses it as a basis for a proprietary product in violation
70 of the terms--we cannot sue him.  You would have to sue, or he gets
71 away with it.
72
73 * Public domain.
74
75 If you put the program in the public domain, we prefer to have a signed
76 piece of paper--a disclaimer of rights--from you confirming this.  If the
77 program is not very important, we can do without one; the worst that could
78 happen is that we might some day be forced to stop using it.
79
80 The law says that anyone can copyright a modified version of the public
81 domain work.  (This doesn't restrict the original, which remains in the
82 public domain; only the changes are copyrighted.)  If we make extensive
83 changes, we will probably do this and add our usual copyleft.  If we make
84 small changes, we will leave the version we distribute in the public
85 domain.
86
87 * What about your employer?
88
89 If you are employed to do programming, or have made an agreement with your
90 employer that says it owns programs you write, we need a signed piece of
91 paper from your employer disclaiming rights to the program.  It should be
92 signed by a vice president or general manager of the company.  If you
93 can't get at them, it is almost as good to find someone who signs licenses
94 for software that is purchased.  Here is a sample wording:
95
96   Digital Stimulation Corporation hereby disclaims all copyright interest
97   in the program "seduce.el" (a program to direct assemblers to make passes
98   at compilers under GNU Emacs) written by Hugh Heffner.
99
100   <signature of Ty Coon>, 1 April 1987
101   Ty Coon, President of Vice, Digital Stimulation Corp.
102
103 The description of what the program does is just to make it clearer
104 what the disclaimer covers.
105
106 If what you did was change an existing program, it should say this:
107
108   ...in the changes and enhancements made by Hugh Heffner to the
109   program "seduce.el".
110
111 * Did anyone else contribute?
112
113 If someone else contributed more than a few lines here or there to the
114 program, then that person too is an author, and that person too needs to
115 sign papers just as you do.  So may that person's employer.  However, if
116 his contribution is just a fraction of the whole work, it is satisfactory
117 if he disclaims his own rights, even if you are assigning yours.  (If just
118 the minor contributors' work goes in the public domain, that doesn't leave
119 much of a loophole for hoarders.)
120
121 If you incorporated packages which you found floating around as "public
122 domain", we might still want to track down their authors, to get
123 disclaimers to reassure us that they really are in the public domain.  So
124 keep track of what these packages are and who wrote them.
125
126 * A reminder:
127
128 In working on a project for GNU, DO NOT study and follow any Unix
129 sources or other non-free software that might have any bearing on the
130 project.  Don't refer to them at all, unless you are forced to for
131 non-GNU reasons.
132
133 It is not considered a serious problem if you have read Unix sources
134 or other non-free source code in the past for other purposes, provided
135 you don't copy anything in particular from them.  However, referring
136 to them while you do the work could cause us legal problems later.