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 looking at developing some commercial product (sell for money, only binaries, no sourcecodes). I have read up on open source licensing, but I just could not understand if what I want to achieve is possible. Will need some bros to walk me through.

Like I mentioned, I looking forward to create a simple commercial product, I might be looking at using json for communication. I saw quite a number of favorable comments for Jackson JSON.

Is it legally advisable for me to use it's library, but do not distribute my own source code? Or is there any other condition that I have to adhere to before I can sell my product without distributing my own source code? I won't be modifying the Jackson library at all, only calling its method. I definitely have no intention of paying to obtain a separate license to allow me not to distribute my source code.

If this is not feasible, any other json library that I can look at?

ps:I hope that there will not be answers directing me to read up on the license, as I have read, but do not understand the advise legally.

share|improve this question
Jackson is dual licensed under LGPL and ASL - both allow you to link code with your project without needing to distribute your own code as open source. For the LGPL, the linking part is really important. Using the library under the ASL license allows even more freedom in how you want to use it, but you will definitely have to read about the requirements of use. But seriously, if you need real legal advice, get advice from a real lawyer. – birryree Apr 27 '12 at 16:29
@birryree ok, I can consider your point in using the ASL license. But actually how should I specify what license I'm intending to use in my application? Normally I would see other system just attach a license text file for the various file that they are using. – C_Rance Apr 27 '12 at 16:52
up vote 1 down vote accepted

Here's the nitty-gritty on LGPL

You can link to (ie dll, module import) a LGPL module without requiring you to distribute the source code for that module.

You are not allowed to change or extend that code without submitting those changes back to the project. That means you can derive functionality from (ie inherit) but not extend the actual code internally (ie anything that would require a re-compile).

You also have to make the license visible and present to indicate that the library falls under that license when you distribute your software.

If it was GPL

The project that uses GPL code needs to make that code publicly available with the license present. The code can also only be used on a project that uses a similar or more copy-left (ie liberal) licensing scheme.

Both can be sold for money and/or paired with software that is sold for money as long as that software meets the terms.

share|improve this answer
Ok, you made it very clear for me. I think your answer will be simple and good for someone who needs the same help as me. – C_Rance Apr 28 '12 at 2:31

LGPL allows linking and distribution for what you want to do.

share|improve this answer
thank you then. But if it was GPL, then I would need to distribute my own source? – C_Rance Apr 27 '12 at 16:30
That, or figure out how to call their library from an open-source "shim" in your application. This is done often with a little RPC module. – insta Apr 27 '12 at 17:09
ok, at least there is a sort of "workaround" – C_Rance Apr 27 '12 at 17:18

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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