Can I use GPL software in a commercial application

  • 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?

    Commercial != Proprietary

    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"?

    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.

    @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.

  • 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.

    So what if my framework provides an interface for a syntax highlighter, and some one implements that interface using GeSHi. What effect does the GPL have on my framework in that case?

    Got to love the GPL: Force everything that touches it to be open source

    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."

    @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.

    "Got to love the GPL: Force everything that touches it to be open source" and "The GPL is like a virus: it infects everything it touches." - These are not necessarily true. Refer section 2 of http://www.gnu.org/licenses/gpl-2.0.html. IANAL. TINLA.

    "it probably would violate the license to supply the source code as a photocopy" - In addition to what mipadi has stated it should be noted that section 3 of http://www.gnu.org/licenses/gpl-2.0.html explicitly mentions about "machine-readable source code" and "complete machine-readable copy of the corresponding source code". IANAL. TINLA.

    If the question has been asked several times, then why is this not a duplicate?

    @bhadra: I think section 2 of your link is pretty clear: 2. "You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: ... b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License." <<-- NOTICE use of "must".

    The spirit of the GPL is to guarantee that any and all users of your program has the same rights to modify the program as you have. The "infectious" nature is a result of preventing users from distributing your code in a way which deprives users from the right to modify the program. If you distribute a plugin under GPL to a program which is not GPL, I don't think that would cause any trouble. The non-GPL program cannot be redistributed *with* your GPL:ed program, but that is hardly your problem.

    GPLv2 requires you to make available the machine-readable source code. GPLv3 says, in part, "You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License...". In other words, offering a photocopy of the source listing is NOT GOOD ENOUGH.

    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.

    OK point taken you can't distribute a photocopy. In the interests of keep the comments meaningful I won't update the original answer.

    Re "reasonable handling fee". I once worked for a company required by GPL to distribute source code. Our handling fee was US$150, because to handle the request, gather the code from an archive (at latest revision), process paperwork, and email or burn a CD would take about an hour. At commercial engineering rates, the cost + opportunity cost was actually closer to $300 for that hour. So $150 was cheap. We still got shouted at for being "unreasonable". Most of those who criticise "reasonable" don't have much understanding of actual commercial costs.

    How in sanity's name does something that should in any reasonably set up version control system take about five seconds plus the time to burn a CD if you're going to be old-fashioned about it take "about an hour" ?

    Lets see... in a real company with real people, every person has to be paid. So follow the steps. Mail or email comes in. Somebody has to read it. And then think and figure out what to do with it. Allow 5 mins. Send on to the person who actions it. Person who actions it takes 5 mins as well. Gets up, goes to cabinet, gets CD. Puts in drive. (another 5 mins gone). Finds stuff. Burns. 5 .. 10 mins. Takes out CD. Puts it cover. Finds padded bag. (5 mins). Addresses bag (after finding address... email dude asking). Seals bag. Walks to mail drop. Mail picked up by employee... count every true cost.

    I worked out a long time ago there is no such thing as free, and no such thing as a 5 minute job. Every distraction, every task has a cost - both in doing it and in opportunity cost. Example above, task is about 30 - 45 mins of human effort consumed. Opportunity cost effectively doubles that. Calling it about an hour is roughly right for most people most of the time. If you seriously think these kind of tasks can be done for free, you'll winder why your boss is always bleating about cost overruns too.

    and if the Closed Source Application (CSA) makes a system call to the GPL application, the same way we could do in the command line, manually, with parameters? But that call is so important that the CSA requires it to work. So, the GPL application is NOT a library. The CSA is NOT dynamically linking to the GPL application as lib. But, the CSA is, at runtime, on the user machine, making the GPL application create some output in a specific/predethermined way, very often. Do the CSA is forced to make its sources available? (I can make a new question with all I am thinking if it seems better too).

    @quickly_now: So, there is a good reason to put it on a public server, so the first person can just send the link and be done with it.

    @Aquarius Power: Grey area. Perhaps it is OK. I am not a lawyer. I suggest you get legal advice.

    @Deduplicator: One could of course put things on a public server. But remember it needs to be kept up to date (that is YOUR OBLIGATION), which means means that you need to have a PERSON regularly snapshot and/or separate things from your source control (after all you don't want public access to your entire proprietary source control do you?). Every change needs to be reflected into that public link thing. See... nothing is free.

    @TheLQ Yeah right... Fantastic... :/

    How are you interpreting "If I use GPL software in my application"? There's a huge difference between referencing a library and not changing or including any of their source code versus integrating it such that your own work becomes a derivative work. It is probably worth clarifying. I think the first statement is open to misinterpretation.

    @quickly_now, So, do you mean if php is open-source, Every php based application MUST be open-source?

    You need to read the license terms of PHP. You can find those here: http://www.php.net/license/3_01.txt PHP is not governed by the GPL. When using open source s/w, reading the license is important.

    @AaronLS - agreed. You need to read the specific license, however GPL tends to be far more embracing than LGPL, for example (or for that matter many other open source licenses).

    This answer is incomplete. There is a way to include gpl software in your own software, and be to distribute it without having to make your own software gpl. See the official gpl faq on the gnu website on the topic of software aggregates: https://www.gnu.org/licenses/gpl-faq.html#MereAggregation

    Yes, by all means read that reference. It clarifies things. If you use pipes or other RPC mechanisms then you are probably not touched by the GPL. Making function / library calls in the same address space (even as run-time binding) then you are touched by the GPL.

    @Petah If someone else writes the syntax highlighter, that has no effect on your program. (The other person would not be allowed to distribute their highlighter together with your program)

    `Only a lawyer can give you proper legal advice.` not really true, nor is there any guarantee that a lawyer advice will hold up though a legal case. Anyone competent on the subject can give a proper advice, and no proper advice is guaranteed to be immune to legal interpretations or court interests.

    @dtech: Not a very good comment. "Any advice you get here (from me or anyone else)should be treated fairly carefully. Only a lawyer can give you proper legal advice." is known as a DISCLAIMER. I'm not claiming to be a lawyer. A lawyer might know, or not. OR might give good advice. Or not. But don't interpret what I say (OR ANYONE ELSE COMMENTING HERE) as being legal advice. It isn't.

    The properness of an advice depends on the competence behind it. And competence goes beyond labels people put on things ;) Granted, an experienced lawyer who has practiced sufficiently in the field of IP and licensing is significantly more likely to produce a good advice than someone else, but that's a rather specific condition. Being a lawyer is just a profession, it is not some form of divine authority. And again, there is absolutely no guarantee that a lawyer's advice is proper or able to hold up in court, and that a non-lawyer's advice cannot make a legal case.

    It is OK to wipe your hands clean of liability that your legal advice shouldn't be taken for granted, but neither should your advice on who can and can't give proper legal advice, unless you are central or professional authority on the subject ;) Are you qualified to qualify who is qualified? I'd personally word that disclaimer of yours a bit more carefully.

    I am using ejabbered instant messaging server and its GPL. if i created a mobile chat app using this will i have to open sourced my whole project code?

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM