Is JULIA suitable for the development of proprietary derived-softwares?


#1

Hello all,

There is an explanation on the JULIA web page as: “therefore the environment, which consists of the language, user interfaces, and libraries, is under the GPL”.

I think the most strict license determines the rights and since GPL is not suitable for proprietary software, nor does JULIA. Because of which component, tool or project does GPL apply? If I know, I may avoid using it.

Thanks.


#2

You can build a GPL-free version of Julia by setting the make-flag USE_GPL_LIBS=0.


#3

What are the GPL’d libs that are omitted with that setting?


#4

I am not asking how. I am asking which of them are causing JULIA goes under GPL? And I will decide.


#5

#6

The list does not include GPL.


#7

Try grep (also itself GPL licensed :wink: ):

$ grep GPL LICENSE.md                                                                                                              
- [GMP](http://gmplib.org/manual/Copying.html#Copying) [LGPL3+ or GPL2+]                                                                                                 
- [LIBGIT2](https://github.com/libgit2/libgit2/blob/development/COPYING) [GPL2+ with unlimited linking exception]
- [MBEDTLS](https://tls.mbed.org/how-to-get) [either GPLv2 or Apache 2.0]
- [MPFR](http://www.mpfr.org/mpfr-current/mpfr.html#Copying) [LGPL3+]
- [SUITESPARSE](http://faculty.cse.tamu.edu/davis/suitesparse.html) [mix of LGPL2+ and GPL2+; see individual module licenses]

#8

thank you


#9

Thank you very much. But why does web page say that JULIA is under GPL. Are there other dependencies of dependent libraries? It is important because GPL prevents one to produce proprietary software.


#10

If you build Julia with the USE_GPL_LIBS=0 flag … then there are no GPL-only libraries used (some are dual-license, as we discussed in the other thread).

The Julia bundles that you can download right now, provided by the community on julialang.org, include GPL libraries, so they are provided under the terms of the GPL – you have the right to source code (obviously we give that to you); you have the right to redistribute the source code; you can’t take those rights away from the next person to whom you give either the code or derived binaries.

The GPL libraries are included because for now it is more important to have those functions available immediately to the end-user in a single download. In the future we might not (there has been work in this direction). But the Julia core code is always MIT licensed if you are using it alone (just because we happen to distribute a GPL bundle now, the license of the bundle doesn’t “flow backward” into the code in the github.com/julialang/julia itself).

See this thread, especially the top post and this one.


#11

There is also JuliaPro which has GPL free Julia binaries https://juliacomputing.com/products/juliapro.html


#12

Just to make sure I understand this completely: Does the license of Julia itself limit the license of projects written in Julia? My understanding is NO.


#13

We are using Julia at Dynactionize.com, to develop proprietary software, and we do have to build our own Julia with USE_GPL_LIBS = 0.
The one issue that was a problem when I first started with Julia, was that there was some code derived from GPL code, in the sparse matrix support, that was part of Julia.
Since it can be dangerous to study GPL derived source code, because of the viral nature of GPL, if you are implementing (or ever want to implement in the future) something proprietary, or even that you want to place under a more permissive license such as MIT, it’s not a good idea to have any GPL derived source at all in the Julia code base.
I do believe that has all been taken care of.


#14

Correct, there are many proprietary programs (including macOS for many years) which are compiled with GCC, which is GPL.


#15

But if I use functions from SuiteSparse for instance then I cannot package the whole thing in one binary and hide the source, that’s against GPL from my limited understanding? So one has to be careful which functionality is used and packaged.


#16

Yes, that’s why we have the compile option mentioned above.


#17

Although I do think it would be better to have any GPL stuff moved completely out of Base, and any LGPL3 dependencies moved to external packages or at least to stdlib.


#18

Thank you very much. I understand GPL very well.

However I do not understand why web page says Julia is under GPL. By “GPL”, does it mean GPL and LGPL licenses? I mean for example what happens when USE_GPL_LIBS=0 flag is used. Are GMP, LIBGIT2, MBEDTLS, MPFR and SUITESPARSE removed during compilation?

Meanwhile was JuliaPro compiled with USE_GPL_LIBS=0 flag?


#19

Example 1: you build Julia yourself from source with USE_GPL_LIBS=0. The Julia source code is under MIT, except the interface subdirectories noted in LICENSE.md which are excluded from the system image by USE_GPL_LIBS=0. No GPL code is linked or loaded in the system image. You can embed in a proprietary application and distribute* without any GPL obligation (MIT license applies).

Example 2: you link your application against the Julia download distribution, which loads GPL code and links to GPL libraries. If you distribute your application, then the GPL applies.

The libraries will never be compiled. The source shouldn’t even be downloaded.

That would probably be a good guess, but I don’t know (I don’t work for Julia Computing).

*Again, if this will impact your business: talk to an actual lawyer who knows something about open source!. There are also open source compliance companies, and Julia Computing mentions that an “indemnity contract” is available for Julia Pro (whether that covers open source compliance specifically, I don’t know – contact them directly).


#20

JuliaPro’s product table says it has a GPL-free option.