"If you plan to use [some software] on a commercial basis, you must separately purchase a commercial-use license" [1]

Assuming the commercial-use and non-commercial use licenses for my software both obey the four essential freedoms, does extract [1] violate any of the four freedoms?

On the one hand, I can see why [1] suggests the software is not free for anyone to use for any purpose since the cost is different depending on how it is intended to be used. This would imply it violates Freedom 0. However, for software to be free it can still have a cost. So really I'm asking whether the owner of free software is allowed to distribute it with different license costs depending on the intended use of the software by the user?

  • 15
    If it's truly free (as opposed to zero-cost), how do you propose to stop someone buying a copy of your software on the cheapest licence tier, then using it for another (more-expensively tiered) purpose, or making a copy of it to use for another such purpose, or giving a copy to someone else to use for another such purpose? Free software doesn't say you can't charge different amounts according to what the user tells you, but it does say they're unlikely to pay more than the lowest tier, or to pay twice.
    – MadHatter
    Commented Jun 6, 2020 at 12:35
  • @MadHatter that's true, I'm just trying to understand what constitutes as free software (the question is purely theoretical)
    – Amelia
    Commented Jun 6, 2020 at 12:40
  • Legal aspects of that question are different in the USA and in Europe (and probably different in France and in Germany). Since you are from UK, the Brexit is adding complexity to that matter. Please contact your lawyer. Commented Jun 7, 2020 at 11:21
  • 9
    "Assuming the commercial-use and non-commercial use licenses for my software both obey the four essential freedoms ..." - How would you write such a non-commercial use license? After all, you cannot exclude commercial usage, since that would violate freedom 0 (the freedom to use the software for any purpose).
    – marcelm
    Commented Jun 7, 2020 at 21:09
  • You cannot easily do that. The GPL uses the "distribute source" as a way to get commercial software. Commented Jun 9, 2020 at 9:01

7 Answers 7


The GNU Philosophy says:

“Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “free software” is a matter of liberty, not price.

It says there that the price of the software does not matter in any situation. As long as you respect the 4 essential freedoms, your software should still be free, even if you do have to pay for it in some scenarios.

  • 30
    I think simply writing "have to pay for it" is obscuring something really important - while it's irrelevant to freedom whether or not users must pay in order to receive the software from you, it's not free if users must pay to receive the software at all since users should be free to redistribute the software (without permission from or payment to the original author). This answer fails to make that distinction and seems, at the most reasonable reading, to suggest that the author could force certain users to pay while respecting the listed freedoms. Commented Jun 7, 2020 at 0:09
  • 5
    My interpretation is that redistributing means that users can distribute the software once they have a copy. This does not mean that can only get copies for free.
    – sugarfi
    Commented Jun 7, 2020 at 0:38
  • 4
    Though no recipients of the software from the original author are under any obligation to distribute it to anyone else. Commented Jun 7, 2020 at 4:13
  • 8
    @sugarfi It does mean the first person to get a copy may as well give it to everyone. It's a rather unreliable business model. IIRC, grsecurity managed to achieve this because it requires frequent updates and the creator won't give any updates to anyone who redistributed a prior version. Commented Jun 7, 2020 at 17:57

You may charge money for distributing free (as-in-freedom) software.

However, if your license is a true FSF-approved free license, then charging based on purpose isn't so much a license violation as it is a nonsensical thing to do. Because the license provides the freedom to use it for any purpose, a buyer can trivially express a desire to use your software for its cheapest purpose and then change their mind immediately after purchase to use it for any purpose whatsoever.

A license that codifes Freedom 0 is one that does not allow you to legally punish a buyer for not limiting their use to the use they said they purchased the software for.

Contrapositively, if your legal setup does not allow the possessor of a copy to change their mind in this way, then your terms are nonfree.


The main problem you will be having is with the freedom to redistribute copies (freedom 2 and 3). The GNU project codifies this freedom in GPL clarifying it's exact meaning:

You are free to redistribute copies, either with or without modifications, either gratis or charging a fee for distribution, to anyone anywhere. Being free to do these things means (among other things) that you do not have to ask OR PAY for permission to do so.

This means you may charge for commercial use if you want but you also:

  1. May not prevent people who downloaded your software for non-commercial use to then give it to other people to who then use it for commercial use for free.

  2. May not prevent people who downloaded your software for non-commercial use to then sell it to other people to who then use it for either commercial or non-commercial use.

  3. May not prevent people who paid for your software for commercial use to then give it to other people to who then use it for commercial use for free.

  4. May not prevent people who paid for your software for commercial use to then sell it to other people to who then use it for either commercial or non-commercial use.

Therefore it does not make much sense to ask people to pay you for commercial use because you cannot prevent people from then redistributing it for others to use your software for commercial use.

In addition, preventing someone from using your software for their own reason violates freedom 0 - the freedom to use the software for any reason. However this is mostly strictly defined in GPL and GPL derived licenses but there are licenses where this right is not specified the same way. For GPL, a user may download your software for non-commercial use then later (for example 1 millisecond later) decide to use it for commercial use instead and you cannot prevent him from doing so without violating GPL clauses.


Technically you still have free software, but such a business model by itself is questionable.

If your product is an end-user application, this is unlikely to work as a pricing model. Anyone who obtained a copy for free can post it online, so that commercial users can get it for free. If you put an addition term that prevents such distribution, then you no longer have free software.

If your product is a library, the situation is different. You can dual license your library, under GPL (or another copyleft license) and a commercial license. Open source users can use the GPL version. Proprietary users will need to buy the commercial license. Many companies actually do this.

  • 1
    AGPL might be useful for preventing server-side usage. Commented Jun 7, 2020 at 19:46
  • Yes, which is why I said "or another copyleft license". Servers in general does make the definition of free software blurred though.
    – Max Xiong
    Commented Jun 8, 2020 at 15:22

You cannot restrict this just with the license in an efficient, working way and still claim it is a Free software.

The right thing to do would be to have the support contract in addition to the software. The support may be paid for commercial use and free (mostly non existent or relying on community input only) for non commercial use.


Short answer:

Whether software is "free" (as in freedom) depends on the licensing terms, and the software owner is allowed to license it to different users under different terms.

Longer answer:

A license that allows noncommercial use only is not a free license because it violates "The freedom to run the program as you wish, for any purpose (freedom 0)."

If you received the software from someone else under the terms of a free license, any redistribution must be consistent with the free license's terms. Thus, you cannot limit the purposes the software can be used for; you cannot apply a "noncommercial use only" restriction.

However, if you yourself are the software owner, you can license your software however you want. You are allowed to give it away or sell it under terms of your choosing. For example:

  • You can sell the software to some users under a free license.
  • At the same time you can give away the software to other users under a nonfree license, such as a "noncommercial use only" license.

So it's possible for the same software to be free for some users and nonfree for others.

But, as mentioned in other answers, if someone receives software under a free license, they can redistribute it at will, thus making the software free for anyone who receives it from them.

Two more points:

  1. Calling a free license a "commercial license" is kind of unusual, so it could be confusing to those who receive the software. Calling it a "license to use for any purpose" is more clear -- but it's probably best to just describe it as a free software license.
  2. Also it's important to make sure to specify which free license is being applied (GPL, MIT, etc.)

no, software which attaches terms for use does not constitute free software. that is implied in the term free :).

something like "FSF-approved free license" is not a free license, it's a software license that has no guarantee with being "free" regardless of having the word in the title (twice). in fact if you feel the need to have a license dictating terms of use at all then it is not free in my book.

a bit of a rant on the obvious, but obfuscation should happen on the code and not in the language describing the code. the companies I have been at have avoided any "free" or "open source" software because having a lawyer to check the applicability of the license is more expensive than paying for a royalty free license elsewhere.

A very black and white interpretation, I know. but unless the definition in the the dictionary has changed dramatically, it's worth pointing out.

  • 4
    Sorry, but this site does use the definitions of free and open-source chosen by the FSF and OSI respectively. I accept that an argument can be had about any restrictions remove my freedom, but this isn't the place to have it.
    – MadHatter
    Commented Jun 8, 2020 at 9:37
  • 1
    fair enough. when someone is asking if their software is "free" if he charges for it, then felt compelled to be captain obvious. I'll refrain from further comment.
    – Stevo
    Commented Jun 8, 2020 at 9:53
  • 1
    I hope you don't refrain from comment, since I suspect you have interesting points to make. They do, however, need to be within the remit of the site. You can also, of course, argue that the remit should change; but meta is the place to do that, not the main site.
    – MadHatter
    Commented Jun 8, 2020 at 10:13
  • 1
    The word "free" has multiple meanings (freedom vs no cost). In combination with licenses, the meaning of freedom is what is commonly used around here. If you want to use "free" in another sense, then you should be explicit about that to avoid confusion. Commented Jun 9, 2020 at 8:44

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.