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 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? 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 GoJS.

  • 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! Jan 12 '19 at 4:05
  • 2
    Hi Simon, let's say I use GoJS to build a VS Code extension, as a dependency, and distribute it so others can download and use. In such case, for users to use my extension, they would have to pay to buy GoJS. Is it correct?
    – laike9m
    Jul 27 '20 at 1:34
  • 1
    @laike9m Normally yes, but if this is a hobby project or for public benefit we may be able to do something else. Can you tell me a bit about it, email simon [at]nwoods.com ? Jul 27 '20 at 16:11
  • Curious enough that happens to be the same situation as @laike9m where I'm building a vscode extension MIT licensed and planning to use gojs to show some diagrams. How is the case for those scenarios?
    – Sebastian
    Jul 27 '20 at 22:02
  • 1
    I contacted the GoJS team and was told there's no free version. My project is indeed a hobby project, but I don't want to take the risk of it not being able to use by others, say companies, as it can make adoption hard. Thanks Simon for taking a look, to be safe, I'll just pick another library.
    – laike9m
    Jul 28 '20 at 2:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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