Context: GoJS is not open source, its license stating in particular that modification is forbidden (though the fact that its source code is hosted on GitHub seems to confuse some people).

The maintainer of GoJS wrote:

You may include the evaluation version of GoJS in open source projects, but people who use your project and want to use GoJS with it will have to purchase a license.

Is this statement true?

  • Are there any particular open source licenses you are interested in here? There's going to be a difference between a permissive license like MIT and a Free Software license like the GPL – Philip Kendall Oct 4 '18 at 6:01
  • @PhilipKendall: I am particularly interested in MIT/Apache 2/GPLv3, but answers about other OSI licenses are welcome too. The most important being, can an open source project include the library and still stay open source? – Nicolas Raoul Oct 4 '18 at 6:49

You say the most important question is

can an open source project include the library and still stay open source?

IANAL/IANYL, but as I read it, no. Firstly, section 2.1.4(b) of the licence specifies that

Customer may not ... modify any Licensed Product, or create any derivative work of any Licensed Product

s2.1.5(a) allows you to modify it under certain circumstances, but then says you can't redistribute the modified version. Since our accepted definition of open source says in s3 that

The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

You could not combine GoJS and any piece of free software into a derivative work, and redistribute it as a free project. I can't square the maintainer's words quoted above with the licence text, and the licence text is likely to have the final word on the subject, but even if we take his/her words at face value, your combined project would be non-free as users would be required to buy a licence for GoSJ.

  • While I think it is possible to create permissively-licensed open source projects that have non-free dependencies, the result would still be a non-free software system and would be of little use to other open source projects (as your answer explains). This equivalent to the “free plugin in non-free application” problem. – amon Oct 4 '18 at 11:20

Yes that statement is true. (I am one of the developers of GoJS)

The other answerer seems to be conflating open source with free. You are allowed to bundle the GoJS evaluation version for free with your free (and open source) software. But you don't have to bundle it, either. You can leave it as a dependency that is up to others to download (either they download the evaluation, or buy a license, etc).

A project still remains open source even if it has a dependency that is not open source. This is very common, think of all the open source projects that run on (closed source) Windows. Open source projects do not need to distribute all their dependencies, either.

  • Interesting point of view! Thank you for joining the conversation. Would you mind providing examples of software projects that are widely recognized as open source (for instance Firefox or GIMP) but "include the evaluation version of" a non-open source library? Thanks! – Nicolas Raoul Jan 12 at 4:05

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.