Why does Mono for Android cost money if the mono project is opensource and therefore everything based on it must be opensource?

  • 7
    You need to look up what open source means and what not (prohibiting commercial usage is contrary to all common definitions), and understand the applicable licenses - from a quick search, it seems different parts of Mono are under different licenses. "Everything based on it must be open source" is a bastardization of the copyleft concept, and only some open source licenses include that.
    – user7043
    Dec 8, 2013 at 16:15

2 Answers 2


There are two "free" aspects to open-source software:

  • Free as in speech,
  • Free as in beer.

Free as in beer means you don't have to pay for it. Free as in speech means that you have the freedom to examine the source code, make derived works, etc.

Mono is based on four open source licenses, as described here:

  • The C# compiler is dual-licensed under the MIT/X11 license and the GNU General Public License (GPL).
  • The tools are released under the terms of the GNU General Public License (GPL).
  • The runtime libraries are under the GNU Library GPL 2.0 (LGPL 2.0).
  • The class libraries are released under the terms of the MIT X11 license.
  • ASP.NET MVC, the Managed Extensibility Framework (MEF), the Dynamic Language Runtime (DLR), System.Data.Services.Client, parts of System.Numerics and ASP.NET AJAX client software are released by Microsoft under the open source Microsoft Permissive License, some of them are dual licensed also as Apache2.

The most important aspect of these licenses is the "copyleft" provision in the GPL. The copyleft provision essentially prevents you from using those libraries and code in a proprietary application, and then distributing it to users or customers. Distribution is what triggers the copyleft provision. Licenses such as MIT and Apache that do not have the copyleft provision in them do not prevent you from using the code in closed-source, commercial applications.

Because the class libraries are licensed under MIT, you are not required to obtain a commercial license to write and distribute your own commercial applications, if you can otherwise abide by the terms of the Lesser/Library GPL, which only requires that you provide any source code changes that you make to the GPL libraries in Mono back to the community.

Contributors who contribute code to the Mono project must assign copyright of their code to the Mono project, so that Xamarin can redistribute the code under a different license. This is how they are able to make certain components of Xamarin proprietary, so that they can charge for it. Because Xamarin is the copyright holder for the entire Mono project, they can redistribute their code in any way they see fit.


Mono is LICENSED to OTHERS as Open Source. That does not imply that the owners of the copyright have the same restrictions -- they can do whatever they like, including all forms of closed-source use, even if that seems to go against their founding principles. To prevent that, you would AT LEAST need the company's official, registered aims to clearly state that all products would be open source, and probably for CEOs / other executives to be employed on a contract stating that they would always only create open source products. Even then, the definition of "product" could undo that safeguard.

  • 1
    this post is rather hard to read (wall of text). Would you mind editing it into a better shape?
    – gnat
    Feb 27, 2014 at 10:58
  • @gnat: Huh? It's a single, short paragraph. You'd have a valid point if it was twice as long, or filled with different topics which should rightly be separate paragraphs. In that case, I'd be ashamed of myself, and only too glad to fix it. In this case, though, I'm going to say, sorry, but be more patient with your reading.
    – user51532
    Feb 27, 2014 at 11:24

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.