2
  • There is a GPLv2+ library that I want to use in my front-end SaaS web application
  • The library is a JavaScript library
  • There are lot's of valuable front-end code in my SaaS web application that I cannot make them all GPL.

My assumption (correct me if it's wrong):

  • I can use a Closed Source library in a GPL Application. see here

Here is my solution (looking to see if it's a valid legal solution or not):

  • I move all of the valuable parts of the SaaS front-end into closed source libraries
  • I make the entire front-end application open source (GPL v2+)
  • The front-end application (which is open source by itself) references/uses to the open source library (the one that I wanna use) and closed source libraries.

enter image description here

Nerdy
  • 23
  • 3

1 Answers1

3

No, you cannot do this.

The linking exception is something the copyright holder of a piece of code and only the copyright holder can grant. Unless you are the copyright holder of the GPL libraries you wish to use, you cannot grant the linking exception so therefore the whole of the application must be under the GPL.

You could grant a linking exception allowing your front end code to be linked with "Closed Source Library A" and "Closed Source Library B", but that doesn't help you with "Open Source Library".

MadHatter
  • 48,547
  • 4
  • 122
  • 166
Philip Kendall
  • 19,156
  • 1
  • 57
  • 82
  • Thank you @philip-kendall Your answer described why linking exception doesn't apply here.

    But I still don't understand why the whole picture doesn't work.

    Which part is wrong?

    (1) the entire front-end will be GPL v2. <>

    (2) a GPL v2 software could use some commercial (closed-source) libraries. in this case "Closed Source Library A" and "Closed Source Library B" <>
    (3) a GPL v2 software could use some other GPL v2 libraries (in this case the third party library) <<is this wrong?!>>

    – Nerdy Dec 04 '22 at 02:51
  • it's like I have a GPL v2 application that uses some commercial libraries and some GPL v2 libraries at the same time. – Nerdy Dec 04 '22 at 02:53
  • The linking exception is something which applies to a library. It can apply to "Closed Source Library A/B" because you own them and can allow the exception. It can't apply to "Open Source Library" because you don't own it. – Philip Kendall Dec 04 '22 at 04:50
  • Thanks for reply. I marked as answer and I understand that linking exception doesn't apply here. But I don't understand (and don't see in your answer) why the whole picture doesn't work. is this sentence wrong? "a GPL v2 application can use commercial libraries and GPL v2 libraries at the same time" – Nerdy Dec 05 '22 at 16:50
  • 1
    Well, the first thing that is wrong is that "commercial" and "GPL v2" are not exclusive; assuming you mean "proprietary", you can so long as every library has the linking exception. Unless you are the copyright holder of the GPL library, it does not have the linking exception and you cannot grant that exception. Thinking of this another way: your hypothesis would reduce the GPL to the LGPL, there has to be a reason they both exist. – Philip Kendall Dec 05 '22 at 17:01
  • @PhilipKendall I agree with the core part of your answer, but I believe the keyword here (in the headline of the question) is "SaaS", so my understanding is that there is no distribution. We are dealing with the so-called GPL SaaS loophole, which would only be closed by the AGPL license. Would it be possible that you add the respective clarification to your answer, or should I write my own? – Martin_in_AUT Dec 06 '22 at 15:54
  • @Martin_in_AUT I was interpreting "front-end" to mean "JavaScript" and therefore code which is distributed, even in the SaaS case. – Philip Kendall Dec 06 '22 at 16:28
  • From the question I understood that only one JS library is under GPL. And Closed Source Library A and B (which contain the valuable IP) are likely server-side scripts, not JavaScript distributed to the user, because in that case they would not be closed-source (JS code is usually plain text). I believe this is helpful: https://opensource.stackexchange.com/questions/11725/why-doesnt-the-loading-of-gpled-js-in-the-browser-count-as-distribution – Martin_in_AUT Dec 06 '22 at 17:26