I am thinking of making some applications for Linux (primarily Ubuntu) and I have an intention of selling some in the Ubuntu Software Center and offering a few applications for free.

These free applications will be minor programs mainly used for fun and/or for a little convenience in day-to-day tasks (say, a ToDo list). What is the suitable license I should use for this?

As for the paid applications, they will be more business-oriented (eg: a decision making software). For these, what is the suitable license type?

I really confused about all these licenses (I have heard of Creative Commons, GNU, etc but have no idea whatsoever). And I'm hoping to make these applications using PyGTK and Quickly and some with Java. So if anyone could provide some light on this subject, I'm really grateful.

1 Answer 1


GPL: good if you want to make your project freely available to anyone who is willing to ship source code (which is usually "other free projects"), but also demand a payment if people want to ship without source (which roughly corresponds to "commercial projects").

MIT/BSD: good if you want anyone to be able to use your code in any way whatsoever, but you want to attach your name to it. Sort of an "hey, I did this!" mark. This essentially only requires people to preserve that mark. It also purportedly gives you some protection against frivolous lawsuits, but I don't know if the legal disclaimer is really necessary.

Public domain (availability varies by country): you want to disclaim ownership of the code. It's as if it had always existed, like air that nobody owns. Anyone can do anything they want in it, and if they pretend it's their work you have no recourse. Where disallowed by local laws, the WTFPL (nsfw) may be used instead.

Creative Commons: a set of licenses primarily targeted at artistic creations, like photos, drawings, music etc. You mix and match the conditions you like, such as "no commercial use" - it's up to you whether you allow or forbid this. Not very suitable for source code IMO.

So, if you want to release source code but think there's some commercial potential in it, use GPL. If you just want to give something to the world but have your name on it, use MIT/BSD. For small snippets of code, or if you have ideological reasons to do so, use "public domain" - copyright might not apply to small snippets anyway, and it makes you look very benevolent.

If you don't want to release source code at all, then none of these do you any good. You need something that describes the conditions of use for your program. I don't know of any ready-made licenses for this.

  • That was one of the best explanations I ever saw! Thanks a lot! I plan on using GPL license for my free applications. But how and where can I release my source code? And how will it affect me?
    – Roshnal
    Dec 16, 2011 at 17:07
  • @Roshnal thanks! :) Consider releasing your code on BitBucket or GitHub - they make it much, much easier to receive contributions from other users. Don't use Google Code, SourceForge or other such projects - we've advanced quite a lot since then in terms of collaboration. I prefer BitBucket for its ease of use, but GitHub is more popular. Both of these websites require that you use source control, which might look complicated at first but is absolutely worth every minute you spend on it. Dec 16, 2011 at 17:36
  • I think I'll go with GitHub.. So its something like I start a project and upload the source to GitHub, then I publish my completed application to Ubuntu Software Center, and other users may contribute to my project via GitHub. And time-to-time, I'll release those updates to the Ubuntu Software Center?
    – Roshnal
    Dec 17, 2011 at 8:13
  • @Roshnal I don't know about Ubuntu Software Center, so if you want an answer to that your best bet is to ask a separate question. But besides that, yes. Dec 17, 2011 at 15:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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