A free (libre) license is needed to make your software libre, there’s no doubt in that. A software libre needs a license to be considered as free (as in freedom). As we can see in gnu.org:
A free program must offer the four freedoms to any user that obtains a copy of the software, provided the user has complied thus far with the conditions of the free license covering the software. Putting some of the freedoms off limits to some users, or requiring that users pay, in money or in kind, to exercise them, is tantamount to not granting the freedoms in question, and thus renders the program nonfree.
Also, as I mentioned, there should be a license. A software with no license can’t be considered as a software libre. Again, as GNU says:
If source code does not carry a license to give users the four essential freedoms, then unless it has been explicitly and validly placed in the public domain, it is not free software.
In order for a program to be free, its copyright holders must explicitly grant users the four essential freedoms. The document with which they do so is called a free software license. This is what free software licenses are for.
So, for now, we know that one of the conditions for a software to be considered free (as in freedom) is to carry a free (as in freedom) license. But is that it? Can we just place a license and make a software free?
The answer is no. What makes a software free, is granting people four essential freedoms as mentioned by FSF. A violation of any of these four freedoms makes your software proprietary/nonfree.
Of course, that software can be libre inside, but our issue with software freedom is a legal issue, not just a friendly relationship based on mutual trust. What makes your software free (as in freedom) is to make it legally usable by people by granting them four essential freedoms we talked about before.
If you violate any of those freedoms, you’re the violator of that freedom but still it’s the software that is considered to be proprietary/nonfree. As gnu mentioned it:
Proprietary software, also called nonfree software, means software that doesn’t respect users’ freedom and community. A proprietary program puts its developer or owner in a position of power over its users. This power is in itself an injustice.
License is needed to make a software free but granting a license to a software does not necessarily mean that it is a software libre. Let me make an example. Imagine I make software and put a license in it. Now, I compile the source of it and give it to people, of course with a license, but I don’t give them the source code.
That software is not free (as in freedom) as I don’t have access to the source codes. Let’s check four essential freedoms again:
- The freedom to run the program as you wish, for any purpose (freedom 0).
- The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help others (freedom 2).
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.
As we can see, access to the source codes by users is necessary to make a software considered to be libre and if you don’t give the source codes to users, it would be a violation of freedom 1.
Or, imagine a company makes a program but limits its usage/distribution for a certain people. Let’s say it says everybody can use and distribute it except for those who are placed in Palestine. Now, even if it has a strict license such as GNU AGPL, it’s discriminatory against people and it violates freedoms zero and two so it’s not libre.
Fedora is an example. Fedora licenses its distro under various free licenses but on its download page, it says they comply with US trade laws therefore people in Iran, Cuba, Syria, and some other countries may not download or distribute it. I talked to Mr. Stallman about this and he said if they actually put this limitation, it would make Fedora nonfree.
About Fedora, I should mention that the philosophy of software freedom doesn’t/can’t be changed by any law and no matter if Fedora is forced to comply or not, violating any of the freedoms makes it nonfree.
As I said, a program/software is considered to be libre only if it grants four essential freedoms (as said by FSF/GNU) to users and a key to do so is to give it a free (as in freedom) license and actually comply with the provisions of that license; needless to say that a license can’t violate any of those four freedoms.
Another thing to mention is that a premium software can be libre as well. Software freedom has nothing against trading/selling. But, there are some conditions. For example, it’s OK to ask for a fee for license but if the user doesn’t pay for that license, the copy the user receives is nonfree. That copy of your software can’t be considered as libre. You may want to provide a free (as in freedom) copy of that to a certain people but copies/versions you sold/distributed without a proper libre license are still nonfree.
Another thing I should mention is that you can protect your trademark and it has nothing against software freedom, as long as the trademark policy of you doesn’t violate any of four essential freedoms. For example, you can’t ask a user to not distribute your software because its origin came from your company. However, in some cases/licenses you can ask the user to distribute the software only if it doesn’t violate your trademark policies.
Also, you can’t take back any granted freedoms to users. You can give freedom to people who own a nonfree/proprietary version/copy of your software but you can’t take back users’ freedoms. However, some local laws may give you this permission but local/global laws have nothing to do with software freedom. As mentioned before, a software is considered to be libre if it grants users the four essential freedoms and that didn’t say it should respect your local laws.