4

I have written a Java program designed to run server-side with a plain HTML web interface:

  • I am reusing and I have integrated in this app a bunch of third-party libraries that are licensed under the GPLv3. Some are pure Java, some are a combo of C/C++ and Java. I am calling their methods from my Java code.
  • These libraries do not contribute directly to the UI of my app, but rather perform utility functions on the back-end, though some output can be made available to users for download in my web app.
  • I use all these libraries as-is and unmodified: I use only the pre-compiled binary Jars as provided by the projects.

In each of the following cases, when would I have to redistribute the source code of my own application and of this library per the GPLv3?

e.g. when is the copyleft triggered for my unmodified usage?

  1. When I run this web application on a private company network and its is only available internally to my company employees?

  2. When I run this application as a public web site on the open internet?

  3. When I redistribute this application (including the GPLv3 libraries) as a packaged software product to a third party?

For clarity: none of these libraries have a GPL exception: they are using the full GPLv3

5

When I run this web application on a private company network and its is only available internally to my company employees?

No, see below.

When I run this application as a public web site on the open internet?

No. Neither of these cases is an example of "conveying" (or "distribution" as it used to be called in GPLv2): https://www.gnu.org/licenses/gpl-faq.en.html#NoDistributionRequirements.

When I redistribute this application (including the GPLv3 libraries) as a packaged software product to a third party?

Maybe. The FSF view on this issue is that your application will be a derivative work of the libraries you are linking with, and therefore the whole program must be released under GPLv3. If you can successfully argue that the bundle is a mere aggregate, however, you may be able to get away without open sourcing your application, and only providing sources for the GPLv3 libraries. Expect to get a lot of flame if you go this route, however.

Also, check for linking exceptions in the libraries. Many GPL libraries have linking exceptions that explicitly allow proprietary programs to link with them. In this case, you are free and clear as long as you distribute the sources of, and any modifications you make to, the libraries themselves.

  • "Many GPL libraries have linking exceptions that explicitly allow proprietary programs to link with them" forgive me, but that sounds like LPGL libraries. Do you have examples of GPL libraries that include such an exemption? – MadHatter Jan 27 '17 at 7:10
  • I added a clarification: none of these libraries have a GPL exception: they are using the full GPL – Philippe Ombredanne Jan 27 '17 at 8:44
  • @MadHatter ... I guess the Classpath exception would be one. So OpenJDK? but this is used with the GPLv2 not v3? – Philippe Ombredanne Jan 27 '17 at 8:45
  • 1
    @PhilippeOmbredanne but the "Classpath exception" is GPL + Explicit Exception, like any other GPL+EE, and I thought you'd just ruled those out? Or are you quoting that as an example of GPL+EE, and then saying those aren't included in the question? Sorry to have to ask for clarification! – MadHatter Jan 27 '17 at 9:17
  • 1
    @PhilippeOmbredanne got it, thanks. The order of your postings confused me, but all is now clear. – MadHatter Jan 27 '17 at 9:21

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.