Rune - Clean up strings
[rune.git] / COPYRIGHT
1
2                             RUNE LANGUAGE COPYRIGHT
3
4     This software is (c)Copyright 1993-2018 by Matthew Dillon.  Use of
5     this code and binaries produced by this code are governed by the
6     following stipulations:
7
8     (1) All files making up the Rune distribution are defined as "the product"
9         and subject to these terms.
10
11     (2) There are two Rune Language licenses:  A commercial license, and a
12         free license.  The license you need depends on the conditions under
13         which you use this program.  Most open-source programmers and users
14         will fall under the free license.
15
16         The free license, when applicable, does NOT require registration or
17         a signed contract.  Commercial licenses are negotiated on a
18         case-by-case basis.
19
20     (3) All uses of the product are governed by these copyright terms PLUS
21         the license terms under the appropriate license.  WITHOUT A LICENSE,
22         YOU HAVE NO RIGHTS AT ALL TO USE OR MODIFY THIS PRODUCT.  IF THE
23         LICENSE IS DEEMED WHOLELY INVALID, YOU HAVE NO RIGHTS AT ALL TO USE
24         OR MODIFY THIS PRODUCT.
25
26     (4) NON TRANSFERABILITY: Unless otherwise stated, licenses are 
27         non-transferable.  This means that it applies to you and does not
28         automatically transfer to the people you distribute your product to.
29         In order to use the product you have distributed, those people will
30         be subject to the same copyright terms and MAY OR MAY NOT qualify for
31         their own separate, free, unregistered license.
32
33     (5) This copyright notice, applicable licenses, copyright notices in
34         all distributed source code and documentation, and copyright notices
35         embedded in object code and binaries, must be retained at all times,
36         even when codebase modifications are allowed.  In particular, the
37         copyright and license must be retained and readily accessible in
38         the directory tree containing the the files it applies to.  If you
39         are managing code with a repository (for example, git), the copyright
40         and license must also be retained in the repository.
41
42     (6) Any documentation referencing this work must refer to or contain
43         this copyright notice and the following acknowledgement: "This product
44         includes software developed by Matthew Dillon and contributors.".
45
46         ---------------------------------------------------------
47                         The "FREE" Rune Language License
48                                (when applicable)
49
50     Synopsis: This license is designed to support and promote an open-source
51     and open-use environment while still protecting the author's interests
52     in preventing misuse.  All use of this distribution not covered by this
53     license requires a negotiated commercial license.
54
55     (1) There are distinctions between using this product, porting
56         modifications, enhancement modifications, integrations, and
57         redistributions.  This license may be used for these purposes
58         in the limited fashion covered in the clauses below.
59
60         Clause (1) covers binary derived works (below).
61         Clause (2) covers using the product.
62         Clause (3) covers porting modifications.
63         Clause (4) covers enhancements.
64         Clause (5) covers integrations.
65         Clause (6) covers packaging systems.
66
67         When you write a program in Rune, intermediate, library, and binary
68         files will contain some copyrighted Rune code simply by being linked
69         against the rune core and the runtime will also have dynamic library
70         dependencies against the rune core.  You are granted a perpetual,
71         non-revocable license to be able to run such binaries as well as to
72         distribute such binaries and the related run-time support
73         infrastructure commercially or non-commercially, as long as your
74         application is not substantially similar to the Rune product itself
75         (e.g. not used to simply wrap our product, with or without enhancement).
76
77         Your own wholely written source files and the program binary that
78         results from linking your own code are yours.  You can copyright
79         and license them as you wish.  The specific elements of Rune embedded
80         in these files (including but not limited to the Rune grammar,
81         dynamic libraries, and statically linked bits) are not yours, but
82         operate under the perpetual license described above which allows
83         your program binary to use them.
84
85     (2) Using Rune is defined as downloading, compiling, installing, and/or
86         using the Rune binaries and libraries in any way.
87
88         Just as with most computer languages, simply installing and using
89         the rune environment is unrevocably free and covered by the free
90         license.
91
92     (3) Porting modifications.  Any commercial or non-commercial entity can
93         make modifications to the Rune distribution for the purpose of
94         porting the distribution to an architecture under the following
95         stipulations.
96
97         * If you distribute your modifications or anything derived from your
98           modifications, including binaries, you agree to make all such
99           modifications available in patch or GIT form as an
100           internet-accessible publically available patch or GIT repo,
101           and:
102
103         * You agree to relinquish all the rights releaseable under your
104           country's law to said modifications such that anyone else can use
105           your modifications, including any recopyrighting and relicensing,
106           almost as if they were in the public domain.  In return, anyone
107           using your modifications agrees to attribute them to you.  A
108           GIT commit message in the related repo is considered sufficient,
109           and if the modification is significant enough the person using your
110           modifications (under his sole discretion) may also add the author
111           of the modification to the contributors list at the top of the file.
112
113           The Rune copyright holder (Matthew Dillon) is allowed to
114           specifically use this release to integrate patches into the main
115           distribution under the Rune copyright.
116
117         * If the law does not allow the degree of freedom required to allow
118           others to use modifications as stipulated, then you may not make
119           modifications under this clause.
120
121         * Contributions to the project are assumed to be made as a good
122           faith donation as stipulated above.  For example, if a patch is
123           sent to us, posted on a public forum, or integrated into any
124           open-source distribution.  We assume these to be contributions
125           that fall under these stipulations.
126
127           If you do this mistakenly and do not wish to contribute the
128           material, within a reasonable period of time of 6 months or as
129           allowed by law from when you published it, you must notify us and
130           we will withdraw it from the public.  Your only recourse is that
131           it be withdrawn from the HEAD of the repo and no longer used in
132           ongoing distributions down the line.  The repo history will remain
133           intact.
134
135         * The author of any modifications stipulates that they are entirely 
136           his own work and that he or she agrees to the terms of the license.
137           If multiple authors, that all authors have read and agree to the
138           terms of this license.
139
140         * These stipulations remain in effect whether the copyright holder
141           of the product (Matthew Dillon) decides to integrate the
142           modifications into the base distribution or not.
143
144         * Again, as a clarification, you cannot apply your own license or
145           copyright to modifications, even whole-file modifications.
146
147           In the open-source world, authors typically name themselves in
148           source files via a copyright line near the top of the file.  We
149           wish to allow authors to include their names in source files but
150           it cannot be done with a copyright line.  Instead, you may add
151           your name in comments near the top of a source file using the
152           following example form:
153
154           /*
155            * Contributor - Charlie Chan <charlie@backplane.com> - bug fixes
156            */
157
158           or (if Rune code)
159
160            #
161            # ... other contributors ...
162            # Contributor - Charlie Chan <charlie@backplane.com> - bug fixes
163            #
164
165     (4) An 'enhancement' is defined to be the addition of any new feature
166         to Rune.  As a clarification, features include optimizations,
167         grammar changes, additions to the core classes, and anything else
168         that adds functionality to the Rune language that isn't a simple
169         patch for porting purposes or bug fix to existing functionality.
170
171         This clause is meant to control the open-source forking problem that
172         can quickly destroy portability (particularly for a language), and
173         indeed can destroy the whole project.  Enhancements can be made with
174         the following stipulations:
175
176         * All stipulations in section (3).
177
178         * Your enhancements are being made with the intent of getting them
179           back into the core distribution.  The copyright holder and core
180           team for Rune have final say on whether features and enhancements
181           go in or not.  We will probably say 'no' a lot, we do not want Rune
182           to become a kitchen-sink language and complex features have to be
183           extremely well-tested before they can be considered for inclusion.
184           On the otherhand, there is a huge amount of work that needs to
185           be done especially on the core classes.
186
187         * You cannot fork the project, meaning you can't take rejected
188           enhancements and start your own project up to support them.
189           That said, we need and expect contributors to maintain their
190           own GIT repos with all their work.  Theoretically these repos
191           are a fork of a sort, but there is a big difference between using
192           a repo to hold side branches in a supporting role and using copies
193           of the repo in a primary role.  We distinguish between these two
194           use cases.
195
196           Using copies of the repo in a supporting role is fully supported
197           and allowed by this clause.
198
199         * SUNSET CLAUSE FOR FORK RESTRICTIONS - The restriction on forking
200           the project will be lifted on December 31 2020.  The project
201           forking stipulation above will no longer be applicable and can be
202           removed on that date.
203           
204     (5) We consider an 'integration' of our product to be any situation where
205         a substantial portion of the functionality of our product, such as
206         being able to parse, compile, assemble, link, or interpret a Rune
207         program (including JIT compilation), is repackaged into some other
208         distribution not under our (the copyright holder, Matthew Dillon's)
209         control.  Integrations are governed by the following stipulations:
210
211         * Integration into any non-commercial open-source product is allowed,
212           defined as any product governed by the BSD or any GPL license whos
213           controlling entity is not also distributing (or associated with an
214           entity distributing) a proprietary form of the product.
215
216           For example, Rune could be integrated into most linux distributions
217           under this clause.
218
219           Any modifications made to Rune to accomplish such an integration
220           must still follow section (4) above.
221
222         * Integration into any commercial product or by any commercial
223           entity who distributes a proprietary form of an open-source
224           product requires a commercial license.  The Free license may not
225           be used in this case.
226
227         * A commercial license is required for any other integration of Rune. 
228           Also, keep in mind that this license is not transferable so any
229           users of your distribution must separately qualify for the free
230           license or obtain their own.
231
232     (6) Packaging.  Any packaging system which packages the core Rune
233         distribution, unenhanced, with only porting modifications which
234         follow clause (3), may use this license to generate the port,
235         maintain a copy of the sources, and build and host binary
236         distributions.
237
238     (7) LIMITED-REVOKABILITY of the FREE license by Matthew Dillon.  This
239         clause exists to protect the integrity of the Free License for both
240         the licensee and the copyright holder, protecting both sides from
241         extreme levels of liability should a conflict arise.  This clause
242         does NOT prevent the copyright holder (Matthew Dillon) from filing
243         a lawsuit based on copyright law, but it does say in writing what the
244         intent of the copyright holder is and any judge is expected to take
245         that into account.
246
247         By using this software the licensee is agreeing to the terms and
248         conditions of this license.  The Free license is not revocable when
249         used in good faith.  However, situations may arise where the licensee
250         does not act in good faith.
251
252         The copyright holder (Matthew Dillon) reserves the right to revoke
253         the free license if he believes the licensee is not using it in
254         good faith.  Upon notification, the licensee is no longer able to use
255         the Free license and must immediately stop using the product.  If
256         the licensee stops using the product and does not contest the
257         revocation the conflict is considered resolved.
258
259         The licensee has the right to contest the revocation by posting
260         bond within 30 days at the going rate (as determined by the mediation
261         company chosen by the copyright holder) for a licensed mediator to
262         resolve the conflict.  If the revocation is not contested within
263         the time limit the mediation option is taken off the table and the
264         copyright holder (Matthew Dillon) may resort to a lawsuit.
265
266         If bond is posted within the time limit or as otherwise agreed to
267         by the copyright holder if past the time-limit, The copyright holder
268         (Matthew Dillon) will then hire a licensed mediator who will then
269         mediate the conflict within 30 days and render a final verdict.
270         The question to the mediator is solely as to whether the free license
271         was applicable to the licensee's use case or not, it is not meant to
272         adjudicate royalties or other payments (though such conversations can
273         occur directly between licensee and copyright holder).
274
275         If the copyright holder wins the licensee pays for the mediation via
276         the bond and the licensee agrees to stop using the product.  If the
277         licensee wins the bond is returned and the copyright holder
278         (Matthew Dillon) pays for the mediation.
279
280         Note that 'good faith' is a matter of interpretation.  It is not meant
281         to be a strict reading of the license, but it is meant to distinguish
282         between honest mistakes and intentional actions.  Of course, given
283         notification of a mistake, an honest mistake can quickly turn into an
284         intentional one if the licensee does not quickly address it.  The
285         mediator is asked to take this into account as well.
286
287         Once revoked, the person or entity in question will no longer be
288         able to use the Free license for Rune for any purpose, indefinitely,
289         and must withdraw any products already distributed or sold using
290         the license, and any future products.
291
292     (8) LIMITED LIABILITY.  THIS SOFTWARE IS PROVIDED BY MATTHEW DILLON AND
293         CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
294         INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
295         MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
296         IN NO EVENT SHALL MATT DILLON OR CONTRIBUTORS BE LIABLE FOR ANY
297         DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
298         DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
299         GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
300         INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
301         IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
302         OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
303         EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
304
305     (9) Sunset provision for entire project.  On December 31st 2040 the
306         copyright on the official distribution will be replaced with the
307         2-clause BSD copyright in its entirety.  This license will no longer
308         be applicable at that time and instead of the almost-public-domain
309         BSD license will become applicable, allowing the codebase to be
310         used for virtually any purpose by virtually anyone, commercial or
311         not.
312
313         ---------------------------------------------------------
314                         Examples of Free vs Commercial use.
315
316     These examples are meant to clarify the intent of our copyright and
317     license.  These examples are not part of the official copyright or
318     license, but may be used by mediators or the courts for clarification.
319     Generally speaking my goal is for Rune to be freely useable in
320     open-source-friendly settings but I want a piece of the pie if a
321     commercial entity integrates it into a commercial product.  A commercial
322     license is generally required when you wish to make proprietary 
323     modifications or extensions to Rune, or integrate Rune into a commercial
324     product.  If you aren't sure, assume that a commercial license is required.
325
326     * Lets say you are FreeBSD or Debian and you wish to distribute Rune
327       as part of the base system or as a package, including hosting copies
328       of the repo and/or binary packages.  The Free license will allow you
329       to do so.  Keep in mind that any patches you place in the ports
330       system must adhere to clause (3).
331
332     * Lets say you are a commercial CD printing outfit and wish to include
333       Rune on one of your CDs, which you sell.  The Free license will allow
334       you to do so under clause (5)... that is, if the CD printing outfit is
335       merely redistributing a wholely open-source product as a product and
336       not distributing its own proprietary version of the product, then it
337       may use clause (5).  However if the CD printing outfit wants to
338       sell both a fully-open-source and a proprietatry product, then a
339       commercial license is required for both
340
341     * Lets say you are a company that wishes to make proprietary modifications
342       to Rune and sell the result.  A Commercial license would be required.
343
344     * Lets say you are a company that wishes to create proprietary extensions
345       to Rune, for example by interfacing it to your own proprietary backend.
346       We consider this an enhancement (even if it operates as a separate
347       program) and not an application and you would need a commercial license.
348
349     * Lets say you are a company that wishes to incorporate Rune into your
350       proprietary commercial application in order to allow users of your
351       application to write code in Rune via the application.  We consider
352       this a proprietary 'Integration' of our product and a commercial
353       license would be required.
354
355     * Lets say you are a company that uses Rune to develop an application.
356       You can distribute binaries of your application without having to
357       get a Rune Commercial License.
358
359     * Lets say you want to rebrand Rune and sell the result.  We consider
360       this wrapping and a commercial license would be required.
361
362     * Lets say you wish certain negotiated rights to be transfered to the
363       end-user.  Since the Free License is non-transferable you would need
364       a commercial license to be able to grant your end-users negotiated
365       rights.  For example, if you want to give your end-users the right
366       to make proprietary extensions to Rune libraries you would need a
367       commercial license from us because the Free License does not provide
368       any such right.