cognitect-labs / vase

Data driven microservices
Eclipse Public License 1.0
374 stars 40 forks source link

License #22

Closed maacl closed 7 years ago

maacl commented 7 years ago

Have you considered whether the EPL is really the correct choice of license?

The EPL requires that source code be made available if a derivative work of the licensed work is distributed. Given the use case for Vase most uses are likely to create a derivative work.

Re EPL/derivative work, distribution etc please see the below:

Some open source software communities specify what they mean by a "derivative work". Does the Eclipse Foundation have a position on this? As described in article 1(b)(ii) of the Eclipse Public License, "...Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program." The definition of derivative work varies under the copyright laws of different jurisdictions. The Eclipse Public License is governed under U.S. law. Under the U.S. Copyright Act, a "derivative work" is defined as "...a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a "derivative work"." The Eclipse Foundation interprets the term "derivative work" in a way that is consistent with the definition in the U.S. Copyright Act, as applicable to computer software. You will need to seek the advice of your own legal counsel in deciding whether your program constitutes a derivative work.

ohpauleez commented 7 years ago

Vase is a library that performs code-generation based on a declarative data description of a service. One consumes Vase the same way any other parser/compiler is consumed. The files that you feed Vase aren't part of its distribution (they're part of yours), so they're under your own copyright and license.

Additionally, the EPL is a non-viral copyleft license.

Does that help to clear things up?

maacl commented 7 years ago

In reverse order.

If by viral you mean a license that has effects on derivative works of works licensed under said license, the EPL is most certainly viral. The distribution of a work derived from a EPL licensed work requires that that source code of the distributed work is made available to the recipient.

As to licensing of code generation tools and the intellectual property effect on the generated artifacts please see below snippet from the EPL FAQ point 29. As you can tell the effect is highly uncertain, which was the reason for my question. If you are interested this article also provides a very nice summary of the issue and specifically analyzes the EPL.

Many Eclipse tools and wizards use code templates which are included in the application that is generated. Is the code generated by these tools considered a derivative work that must be licensed under the EPL? Unfortunately, there is no clear answer to this question. To the extent that the code generated by a wizard is purely functional in nature and therefore not the proper subject matter for copyright protection, it could be argued that it is not subject to copyright protection, and therefore is not a derivative work. An example of that type of code would include calls to APIs or other technical instructions which are dictated by functional or technical requirements. Moreover, to the extent the generated code is a very small part of the final overall work, there is an argument that such use would be di minimus, and the final product or application should not be considered to be a derivative work. Finally, to the extent developers who use the generated code make many changes and additions to the code, there is also an argument that the resultant application is not a derivative work. Of course, these are just arguments and not "bright line" tests, and therefore each position could be subject to differing viewpoints. Eclipse cannot take a position on this issue, as it will ultimately be a question of the facts and circumstances associated with a particular use.

ohpauleez commented 7 years ago

That doesn't apply to how Vase works. Vase isn't a wizard/template generator, it's more akin to a JSON parser, where your service is any arbitrary JSON string. Vase's "parsing" capabilities are just a side-effect of Clojure's reader.

Thanks for your concern and highlighting an important issue across software in general. It's nice to have people engage so early in Vase's public life. We're going to keep the project licensed under EPL for now.

maacl commented 7 years ago

That of course is your prerogative. Sake good order "parsing" is not the issue, rather code generation is.