264

I have 3 questions about the GPL here:

  1. If I use GPL software in my application, but don't modify or distribute it, do I have to release my application under the GPL?

  2. What if I modify some software that my application uses. Then do I have to release my application under the GPL, or can I just supply the modified software under the GPLs terms.

  3. And what if I use GPL software, but don't modify it, can I distribute it with my application?

My case in point is, I have a PHP framework which I use the GeSHi library to highlight some output.

  1. Because GeSHi is GPL, does my framework have to be GPL?

  2. Can I modify GeSHi for particular use cases of my application if I supply the modifications back to the GeSHi maintainers?

  3. Can I redistribute my framework with GeSHi?

4
  • 13
    Commercial != Proprietary
    – Gerstmann
    Feb 13, 2013 at 8:41
  • 3
    Just curious, what does distribute mean in this case? If the program in question were, say, firmware in an appliance where it cannot be touched by anyone but the company that sells the appliance, is that "distribution"?
    – Wes Miller
    May 21, 2013 at 14:08
  • 2
    Yes the is distribution. That's why you find things like ADSL routers where the source code is (has to be) available for download. Reputable suppliers make the source available because the license conditions require it of them. Same applies to NAS boxes, IP cameras and numerous other gadgets. Jun 22, 2013 at 1:11
  • 2
    @quickly_now - that is why the Tivoisation stuff was added in the GPLv3, so if you use GPLv2 code in an appliance, you don't really have to release it, but if you use GPLv3 code, you do. Remember that Tivo used GPL code and never released their modifications, which upset a bunch of people and in part lead to the GPLv3. Feb 11, 2015 at 13:13

6 Answers 6

234
+50

If I use GPL software in my application, but don't modify or distribute it, do I have to release my application under the GPL?

ANSWER: Your question is a little ambiguous. Two cases:

(a) If you do not distribute YOUR APPLICATION, then the answer is No, because you did not distribute your application. For example if it was for internal use only in your company, then you have no obligation to do anything.

(b) If you do distribute YOUR APPLICATION, and you used something GPL as part of your application (even if only linking at run-time to a library) - and even if you do not charge money - and even if you do not change that GPL s/w in any way - then you MUST make the source of YOUR APPLICATION available.

Making source available does not mean download. IT might be that you must get a written request and you send a photocopy of a listing (see comments: you can't actually send a listing. This was exaggeration to make a point). You are allowed to charge a "reasonable" handling / copying charge. But you can not escape the obligation to make your own source code available.

What if I modify some software that my application uses. Then do I have to release my application under the GPL, or can I just supply the modified software under the GPLs terms.

ANSWER: See above. If you used GPL s/w, then you must make your source code available. This includes the modified GPL code.

And what if I use GPL software, but don't modify it, can I distribute it with my application?

ANSWER: See above. You can distribute it (the GPL code), provided you make your source available.

Because GeSHi is GPL, does my framework have to be GPL?

ANSWER: If you distribute your framework, then YES.

Can I modify GeSHi for particular use cases of my application if I supply the modifications back to the GeSHi maintainers?

ANSWER: You can if you want to. You don't have to. You could modify it, but when you distribute your application you are obliged to make your source available and also the source for the modifications you made to the library.

Can I redistribute my framework with GeSHi?

ANSWER: You can if you want to. If your application is not distributed with the GPL code and you make users download it separately to make use of it, then your case is a little bit more special and might provoke some argument, but the same principle will most likely ultimately apply: you must make your source available.

If you want to avoid these problems then you need to use things with a different license or at the very least the LGPL which will allow run-time calling of libraries without the viral-spread of the GPL conditions back to your code.

When in doubt you need legal advice. Any advice you get here (from me or anyone else)should be treated fairly carefully. Only a lawyer can give you proper legal advice.

38
  • 95
    Got to love the GPL: Force everything that touches it to be open source
    – TheLQ
    Feb 12, 2011 at 15:33
  • 37
    Just a note: it probably would violate the license to supply the source code as a photocopy. As noted in the license: "The source code for a work means the preferred form of the work for making modifications to it."
    – mipadi
    Feb 12, 2011 at 18:49
  • 35
    @Petah: The GPL is like a virus: it infects everything it touches. If you provide a generic interface and you allow a user to install various components of their choosing, you MAY get away with not being contaminated by the GPL. HOWEVER, supposed you gave your stuff away and somebody else were to bundle the 2 together... then it would look like your stuff would be touched by the GPL. You have a very difficult situation no matter how you try and wriggle around it. Feb 12, 2011 at 23:48
  • 12
    If the question has been asked several times, then why is this not a duplicate?
    – user1249
    Feb 26, 2011 at 12:46
  • 16
    Note that charging an "reasonable" handling fee is not a strong deterrent to people interested in your source code; the first recipient of your source code can choose to legally provide others with your source code.
    – Brian
    May 21, 2013 at 14:12
17

This very strongly seems to disagree if you are using it on a website, rather than re-distributing an executable:

You may copy, distribute and modify the software as long as you track changes/dates of in source files and keep modifications under GPL. You can distribute your application using a GPL library commercially, but you must also provide the source code. GPL v3 tries to close some loopholes in GPL v2.

Specifically:

If you distribute this library in an executable, you must disclose your source code by providing it either alongside your distribution or list an accessible way (URL, physical copy) to obtain the source for 3 years. Does not apply if you serve through a web portal.

https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3%29

4
  • 3
    Could you expand on this? Currently its a one sentence bit of your own and the text from tldrlegal. How does using GPL on a web site differ from using it in a stand alone application?
    – user40980
    Jul 20, 2014 at 18:22
  • A web site usually dont distribute software (but just provides a service) Jul 20, 2014 at 18:23
  • 5
    ASIDE: there is the AGPL license that tries to address GPL running as a service: tldrlegal.com/license/…
    – kbrock
    Aug 18, 2014 at 23:32
  • If the GPL library in question is written in say HTML, javascript, and CSS, and the library code gets "distributed" by the server to the web browser of people visiting the website, I wonder if that might cause your other HTML, javascript, and CSS code to become GPL. One interesting point is that this code would already be "available" just by viewing the source of the webpage, although possibly not in its preferred form. However, even then, your server side code is not being distributed, and therefore I imagine would not need to be GPL. Nov 15, 2015 at 15:20
2

Disclaimer: I am not a lawyer and I haven't read either version of the GPL in a while, so this answer might be legally inaccurate.

If you release/distribute software containing GPL'd components (such as statically linked libraries), your software must be covered by the GPL. (This is the impression given for version 2; version 3 may be different.)

If you release/distribute software using LGPL'd libraries, your software doesn't need to be covered by the GPL, but the libraries must retain the LGPL.

Modification of [L]GPL'd components suggests contribution back to the creator/maintainer. I'm not clear on how that affects your product's licensing.

0

Some points about the “internal” use: 1. careful if you hire contractors and give them the software. That might be distribution. 2. Tell your employees not to distribute the software. So if they do, they are committing copyright infringement, not you. 3. If you distribute the software with source code then you have fulfilled all your obligations. Nobody can ask you for anything. 4. If you distribute the software with a promise to deliver the source code, anyone in the world can ask for the source code.

0

I Am Not A Lawyer, buuuut:

Unless someone in the comments disagrees, I'd like to point out that if you need to use a bit of GPL code at your devops / build layer, you can make that tool a separate application which CAN, potentially, be made open source w/o giving away the product your other-named tool builds.

If you use GPL code at runtime, you gotta give out the source. If you give out a prebuilt developer environment (docker image, etc), that counts as distributing and you have to make all the gpl-using code also open source... so take some extra time to carve out my-fork-of-gpl-thing that you are comfortable giving away, and just use that app "internally" (see https://opensource.stackexchange.com/questions/2338/can-i-use-gpl-libraries-in-a-closed-source-project-if-only-the-output-is-distrib for more details)

-4

We can force such rules in the jungle, but in real life (juridical of country or state) it depends on who, whom, when and what.

The legal problem (law) raise when you do an act of distributing GPL program as binary or library on non GPL OS. GPL program is infecting and infected the parent and the child non GPL process (proprietary and even other open source license) from the perspective of law. Infecting means derived program violate GPL, infected means GPL program violate its own license. No problem exists when you compile a distributed GPL source as act individual (person, org, company).

1
  • 11
    this seems to merely repeat points made and explained in prior answer that was posted 4 years ago
    – gnat
    Aug 10, 2015 at 7:04

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