Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm developing a commercial CMS, which I'm going to sell. I use jQuery, also I use date and time picker jQuery plugin in it, I can say this is just a 1% of my big script.

I don't want sell my whole program as GPL because of these two small integrations (jQuery and DateTime picker).

My questions:

  1. I'm worried about the license issue. What is the best way to sell my product (what should be the licensing type)?
  2. Is there any way to provide some partial licenses? I mean just add small notification in my license that the jQuery and The DateTime picker is still in GPL, but for the other part of this CMS a commercial license?
  3. If there isn't any way to sell commercial product as close source with GPL small parts, what is the most strong license for selling my product to keep it safe?
share|improve this question

closed as not a real question by Robert Harvey, Walter, MainMa, gnat, Tim Post Dec 6 '12 at 14:19

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

What do you mean by "safe" and "best?" You cannot piecemeal the GPL in this way; it's all or nothing. – Robert Harvey Dec 5 '12 at 18:31
So do you mean if e.g. XenForo uses jQuery, it should be sold as GPL license forum? – Victor Dec 5 '12 at 18:34
There is no "should be" when it comes to licensing, only that which meets your needs. You "should be" more specific about what you need. We don't know the answers to "best way" or "strong license" or "safe;" you have to be more specific about what you mean by these words. – Robert Harvey Dec 5 '12 at 18:37
He's right. Note though that jQuery (as well as many other related libraries; didn't look up your specific plugin) is not exclusively under the GPL. You can also use it under the MIT license. Do your research please. – delnan Dec 5 '12 at 18:39
Thank you very much for answers. The MIT is good for me, as far as I see if I only use the jQuery with MIT license without any other GPL scripts (e.g. datetime picker), then I can sell my product as close source. Am I right? – Victor Dec 5 '12 at 18:43
up vote 1 down vote accepted

In short: no, you cannot include GPL and non-GPL code in the same script.

The long answer: yes, but only if you know exactly what you are doing and aren't breaking the spirit of the GPL. My understanding is:

If you incorporate GPL licensed things into your software, those pieces must stay licensed under the GPL. The means: you must provide copies of those "modules" to anyone who asks for them. If you modified them, you must provide the modified copies. Finally, you have to include a copy of the GPL for those parts of your application when distributing your application. There is a minor misunderstanding among some people I've talked to that if you use GPL licensed software, your entire application defaults to a GPL license. This is not true.

The GPL makes a few notable exceptions. If you run software in a separate process it constitutes a separate program. The implication here is that you may interface with GPL software free from the binds of the GPL so long as the exchange is limited to message passing (IPC) and not direct linking (updating the PC and jumping into GPL land). A client to a server running GPL software is not bound by the GPL. Generally, a copy-write (not EULA) license pertaining to a software work itself does/can not cover the output of the program to which it applies.

Additionally, the GPL allows for aggregate works. Aggregate works are covered in section 5 of the GPL-v3:

A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an “aggregate” if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.

Note that an aggregate work does not refer to a software that's linked against a GPL component. As the GPL explicitly states, if any linking occurs (unless excepted either by the LGPL or explicitly such as with the system library exception) to software covered by the GPL, then the client work becomes GPL. So if the code ends up in the same binary or runs in the same process such that functions exposed are invoked directly, it generally must follow the GPL.

This is where it gets interesting. I have no idea if this would hold up in court, but based on my reading, it seems plausible that a GPL component and a non-GPL component could execute within the same process so long as one does not directly invoke the other. In other words, if they only share a data model, I believe they can coexist. In any event, drawing a hard process boundary between two such components is never a bad idea.

For example, Viscosity is a VPN application that provides a configuration interface for an aggregate OpenVPN client. Viscosity's user interface is not covered by the GPL as it simply generates configuration data for OpenVPN and does not link against OpenVPN or do anything other than (instruct the system to) invoke the binary in its entirety. However, in order to make the integration more smooth, Viscosity also ships a patched version of OpenVPN. The patches they apply and resulting binary work derived from OpenVPN is covered under the GPL.

The other route is a SAAS model. Don't even sell the software but sell the services it provides (and related support for those services). This is, in my opinion, the most popular model currently. In this model, your intellectual property (often, business model) is not the software (IP is irrelevant). You write the software, and then you become the best provider of its services to your customers. This is how Github, Bitbucket, etc. work.

share|improve this answer
+1 for aggregate work ...I can never remember the name of the thing – ZJR Dec 5 '12 at 23:59
GPL does not work this way. You can't just modularize it the way you say. If your product will not work with that missing GPL piece you have to license it as GPL. In his case jQuery is an essential part of his product. Not to mention that jQuery dropped the GPL license piece, it's only MIT now. – Andrew T Finnell Dec 6 '12 at 0:32
@AndrewFinnell that's not the conclusion I've come to after reading the GPL (it is, in fact, contradictory to exactly the paragraph from section 5 that I've included in my answer) and after taking a class about software licenses. Where are you drawing your conclusion from? – David Cowden Dec 6 '12 at 3:17
"which are not combined with it such as to form a larger" You are forming a larger program. His program cannot survive without the GPL component. None of these conversations really matter because it is up to the courts to decide. I would also look at the GPL creed to have a better understanding of their stance on closed-source software. I would also be careful with the SAAS model. AGPL was written to close that loop. GLPv3 almost closed that loop but in the end did not completely close it. I imagine if there were to be a GPLv4 they will close the SAAS loop. – Andrew T Finnell Dec 6 '12 at 15:40
@AndrewFinnell I see where your bias lies (; Yes, you are correct that it is up to the courts. As far as SAAS, Is that not the very model Stallman promotes as a proper way to make money off of software? It is not a loophole in my eyes. In the end though, you operate under the restraint of the license chosen by the author. If there is a "loophole" and the author didn't bother to close it with a stricter license then that's either because the author does not think it's a loophole or the author did not know in which case they can alter the license on their work to their liking. – David Cowden Dec 7 '12 at 19:06

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