4

Suppose I have a GPL v2-licensed library that is of interest to a closed-source project (e.g. Wolfram Alpha).

If some of my code were used in Wolfram Alpha, or a product that interfaces with Wolfram Alpha, would they have to release all of their code for Wolfram Alpha under the GPL v2 license?

Jess Smith
  • 159
  • 2
  • 7
    They have to ask their lawyers. – Basile Starynkevitch Sep 07 '14 at 19:05
  • 1
    And their lawyers probably will tell them to not use your GPL software. If you want to write a free software which helps Wolfram, use some more permissive license like MIT. – Basile Starynkevitch Sep 07 '14 at 19:26
  • @BasileStarynkevitch: we can think for ourselves here, you know. The FSF makes this very clear that linking a GPL software into any body of work requires the whole work to be licensed per the GPL. http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem – whatsisname Sep 07 '14 at 19:28
  • 1
    This is part of the reason why the GPL is called a [viral license](http://en.wikipedia.org/wiki/Viral_license). –  Sep 08 '14 at 23:59

2 Answers2

8

Standard disclaimer: I am not a lawyer. You should get one, if you are concerned about possible legal issues.

If some of my code were used in Wolfram Alpha ... would they have to release all of their code for Wolfram Alpha under the GPL?

No. While GNU GPL indeed is ‘hereditary’ license, that forces one to apply GPL to his program, that use GPL-licensed library, distributing it (speaking in the terms of GPLv3, conveying it), GPL does not force anyone to distribute software he wrote.

Wolfam Alpha is a web-application or, if you will, software as a service (SaaS). That kind of usage does not qualify as distributing / conveying under terms of GNU GPL, so you cannot require Wolfram Alpha LCC to publish sources of their product.

If you do not like this (reasonably), you have to consider using GNU AGPL (Affero General Public License) for the next versions of your libraries – it was purposefully created to prevent that problem. (That decision, of course, would not be retroactive.)


Suppose you develop and release a free program under the ordinary GNU GPL. If developer D modifies the program and releases it, the GPL requires him to distribute his version under the GPL too. Thus, if you get a copy of his version, you are free to incorporate some or all of his changes into your own version.

But suppose the program is mainly useful on servers. When D modifies the program, he might very likely run it on his own server and never release copies. Then you would never get a copy of the source code of his version, so you would never have the chance to include his changes in your version. You may not like that outcome.

Using the GNU Affero GPL avoids that outcome. If D runs his version on a server that everyone can use, you too can use it. Assuming he has followed the license requirement to let the server's users download the source code of his version, you can do so, and then you can incorporate his changes into your version.

GNU.org. ‘Why Affero GPL’


P. S. @whatsisname pointed out that Wolfram Alpha is actually offered for deploying at customer’s hardware (what the price might be, I wonder). That should overturn the situation. But I believe, OP had not knew about it, choosing the hypothetical example, as well as I had not realized it, answering.

  • The answer to your first paragraph is still yes. While Wolfram would not be required to distribute their software, if they did, they would be required to do so by the terms of the GPL. – whatsisname Sep 08 '14 at 18:10
  • @whatsisname Of course, if Wolfram Alpha use GPL-covered library in the way, that makes it ‘based on’ (it terms of GPL) that library (we do not know it for sure at the moment), they would have to apply GNU GPL to entire work, when they decide to distribute it. But I am not sure, I understand what you’ve said about answer to my first paragraph — I did not ask any question in it. – Dmitry Alexandrov Sep 08 '14 at 19:46
  • @DimitryAlexandrov: You've answered no because you are focusing on whether they release or not, not based on what terms a hypothetical release would have to be under. Additionally, in the OPs example, Wolfram Alpha, Wolfram **does** sell that to be run on customer's hardware: http://products.wolframalpha.com/appliance/ and if the OPs situation took place, the terms of that sale would have to be per the GPL. – whatsisname Sep 08 '14 at 21:06
  • @DmitryAlexandrov: your answer would be better if you specified the difference between v2 and v3 of the GPL. – DougM Sep 08 '14 at 21:34
  • @whatsisname Oho! Thanks, I had not realized that WA is offered for deploying; but I’m pretty much sure, that OP had not either. – Dmitry Alexandrov Sep 08 '14 at 21:52
  • @DougM Hmm. It seems to be no any essential differences between v2 and v3 of GNU GPL in that particular case. (v2 does not use term _convey_, though – fixed, thanks for motive to refresh my memory about it.) – Dmitry Alexandrov Sep 08 '14 at 22:38
-3

If Wolfram was to use link against GPL code in their software, then they would be required to distribute that resulting work per the GPL, as those are the terms of redistributing the GPL code.

The FSF makes this very clear in their FAQ: http://www.gnu.org/licenses/gpl-faq.html#GPLInProprietarySystem

whatsisname
  • 27,463
  • 14
  • 73
  • 93
  • 4
    But it might less simple if a software component of Wolfram runs only on their servers. GPL is related to software *distribution* and not every piece of software is distributed. Perhaps some piece of Wolfram Alpha is only running on their servers. – Basile Starynkevitch Sep 07 '14 at 19:35
  • 4
    Good thing the FSF has already provided an explanation of those details: http://www.gnu.org/licenses/gpl-faq.html#UnreleasedMods – whatsisname Sep 07 '14 at 19:37
  • What if they were to look at the code and decide to use the algorithms (but not the code itself)? That is, could they look at my code, see how it works, and then copy it but with different details (variable names, methods, etc.)? – Jess Smith Sep 07 '14 at 21:11
  • 1
    @JessSmith: that situation is no different than any other license, if the copying of the code constitutes a derivative work, then the resulting copied code has to be distributed according to the same terms as the original work. Whether doing that would constitute a derivative work isn't completely for certain, but almost surely is: http://programmers.stackexchange.com/questions/86754/is-it-illegal-to-rewrite-every-line-of-an-open-source-project-in-a-slightly-diff – whatsisname Sep 07 '14 at 21:40
  • 2
    Do you have a more independent source than the FSF's FAQ for your claims that a purely technical act involving absolutely no human interaction whatsoever (linking) somehow creates a derivative work? AFAIK, no copyright lawyer actually believes that to be true, nor has any court ever ruled that way. In fact, I heard that apart from Richard Stallman (who is not a lawyer) not even the FSF's lawyers believe that. – Jörg W Mittag Sep 07 '14 at 21:48
  • 2
    @JörgWMittag: Linking does require human interaction: someone developing the software choosing whether to use the linked software or not. While RMS himself is not a lawyer, the FSF has lawyers in its staff. While the linking claim has not been ruled true, it has neither been ruled false, it has not been tested in court. However, other times where the terms of the GPL have been challenged in court, the GPL has prevailed. Regardless, the text of the GPL explicitly states that if a GPL software is part of your 'whole', your software must also be released as per the GPL. Violate at your own risk. – whatsisname Sep 07 '14 at 22:46
  • 1
    @JörgWMittag, my understanding is that linking is not even needed to create a derivative work (source: company lawyer in an IP training). – AProgrammer Sep 08 '14 at 11:31
  • @AProgrammer: Yes, of course, there are many ways to create a derivative work. Copying and editing the source code, for example. That's literally "deriving". But mere linking alone cannot create a derivative work. Take the following scenario: I develop some piece of software which links against some library. Later, you develop a drop-in replacement for that library and release it under the GPL. Some user installs your library and my software and now the linker links my software against your library. How does that make my software a derivative? Yours didn't exist when I wrote mine! – Jörg W Mittag Sep 08 '14 at 14:48
  • 2
    @JörgWMittag Isn't that perfectly fine? GPL's restrictions apply to distribution. If some user links your software against a GPL library he's creating a new derivative work, but he can't distribute the executable and the library together because he'd need to make the source code available, and he wouldn't have it if your software is closed source. I'm assuming dynamic linking here, of course. – Doval Sep 08 '14 at 16:24
  • @whatsisname: The GPL 2 was explicitly mentioned, and this exact issue (distribution of source code to users who were not actually given the software) is literally why GPL 3 was created. It's not clear from your link if the FSF is talking about v2 or v3 in that question. – DougM Sep 08 '14 at 21:33
  • 1
    @DougM: No, GPL 3 was mainly because of vendors shipping hardware that would only run software cryptographically signed with a particular secret key, thus preventing users from modifying the software and running it on their hardware, despite that software being GPL software. http://www.gnu.org/licenses/rms-why-gplv3.html – whatsisname Sep 08 '14 at 21:39