What is Free Software?
Free Software is software that respects 4 essential freedoms:
0. the freedom to run the software for any purpose, whenever you wish. If someone limits how or when you can run the software, or what you can do with it, you experience moral and financial harm, whenever you need to run it and can't, whenever you want to run the software for a purpose that is not permitted.
1. the freedom to study the software, and adapt it such that it does what you wish. You need source code to do this. If you cannot study the software, you can never be sure it doesn't do things you don't want it to do, or that it does correctly what it claims to do, so you may experience moral and financial harm, whenever you worry about what the software does or doesn't. If you cannot adapt the software to your evolving needs, or the software does things you don't want, or does incorrectly the things you want, either it becomes useless or you must adapt your needs to the software, so you experience moral and financial harm.
2. the freedom to distribute the software as you have received it to whoever you wish, and to publish it, whenever you wish. If you are prohibited from sharing the software, your community is morally and financially harmed, and thus so are you, because one of the foundations of life in society is sharing. If you cannot charge for distribution, then you can only do it at your own expense, so you and your community are morally and financially harmed when you choose not to share it to avoid incurring the costs.
3. the freedom to improve the software (this requires source code) and distribute or publish your modifications, whenever you wish, such that you can contribute your improvements to your community. If you cannot do so, your community is morally and financially harmed, and thus so are you, because you cannot help your neighbor who has similar software needs that you do. If you are not free to keep your private changes to yourself, you suffer financially, for you must distribute them at your own expenses, and morally, because this freedom was turned into an obligation.
If any of these freedoms is substantially limited for you, the Software is non-Free for you. For example, if law requires you to obtain permission from someone in order to enjoy certain freedoms, and the permission is denied, the Software is non-Free for you. If you enter an agreement with someone, and conditions in the agreement prevent you from enjoying certain freedoms, the Software is non-Free for you.
Ethical and Moral foundations
Whoever chooses to deny you permissions, or to impose restrictions, such that you are denied substantial enjoyment of the freedoms, causes you moral and financial harm. But harming someone with intent to cause harm, or with awareness but disregard for the caused harm, is unethical. Therefore, disrespecting any of the four essential freedoms for software users is harmful and unethical.
The fundamental and nearly-universal moral principle known as the golden rule establishes that you should treat others as you would like to be treated. An act that brings more harm than benefit to others, as perceived by themselves, is immoral if it doesn't bring a similar balance of harm and benefit to the perpetrator, as perceived by himself.
A community protects itself and its members from harm through justice, a process that seeks to discourage unethical behavior and to restore moral balance, such that those who bring harm onto others are held accountable for their intentions and the consequences of their acts.
Unethical behavior should be discouraged, because an aggression requires the victim to choose between accepting the harm and seeking justice. Seeking justice requires additional effort from the victim and from the community, i.e., further harm for both, which is unfair.
Accepting the harm is clearly also unfair. However, if the aggression brings more benefit than harm to the perpetrator, it is also immoral, and accepting it indirectly harms the entire community, because it amounts to incentive for the perpetrator to repeat the aggression onto others.
Therefore, the fairest and least harmful outcome is that in which the aggression is avoided.
On using non-Free Software
That who harms others by imposing restrictions that render Software they use non-Free most often do so in order to obtain benefits out of the restrictions, such as being paid more royalties, avoiding competition, inducing exclusive dependencies and even growing a user base through network effects. Since the aggressor gets benefit while the victim is harmed, the aggression is not only unethical, but also immoral.
Unfortunately, seeking justice for such aggressions is impossible under laws that permit them. If you accept the harm imposed on you, you also harm your community. Therefore the alternative that is least harmful to your community is to avoid the aggression, i.e., to reject the non-Free Software through which the aggression would be perpetrated.
Rejecting non-Free Software may require additional effort to live with limitations in Free alternatives, effort to create or improve the alternatives, and even refraining from doing what the software would be used for. All of these may translate into harm for you, but if you decide to reject it, you're always making a morally correct decision, because this decision doesn't harm anyone else.
However, using non-Free Software may provide some benefit for you and your community. Finding out how the balance between harm and benefit to the community compares with the balance to you, if you should choose to accept non-Free Software, may provide you with additional morally correct alternatives, but this requires deep understanding of the benefit to your community and yourself that you expect to achieve through the software, and the harm to your community and yourself out of using the software, accepting its restrictions, spreading them and even paying for the privilege, which makes the aggressor more powerful.
Only someone with deep understanding of the moral and ethical aspects of this decision, taking into account the Free Software philosophy, can properly evaluate the harms, and only someone who deeply understands what you may reasonably expect to achieve through the use of the software can properly evaluate the benefits.
Someone in the latter group, without the former knowledge, will likely be unaware of the harm to the community, thus regarding the acceptance of non-Free Software as a win-win situation, even after taking into account the harm onto you, out of freedom deprivation. But the lack of understanding about the harm to the community is very likely to drive to an immoral decision that supports the acceptance of non-Free Software.
Conversely, someone in the former group, without the latter knowledge, may worry too much about the harm to the community and the most obvious benefits to you, the user, and conclude that the only morally correct decision is to reject the non-Free Software. Without taking into account benefits to the community, this may be a sub-optimal moral decision.
However, being too optimistic about benefits to the community, such as assuming the benefits to you automatically extends to the entire community, and expecting such overestimated benefits to offset the harm to the community, may lead to the incorrect conclusion that accepting the non-Free Software would be morally correct. Therefore, being conservative as to benefits to the community is strongly recommended.
You, the user, are probably best qualified to evaluate benefits to yourself and to the community out of using a piece of non-Free Software, even though you are likely to overestimate the expected benefits before actually trying the software.
Someone with deep knowledge of the philosophy is probably best qualified to evaluate the harm to you and the community out of using that piece of non-Free Software.
Only someone with both qualifications can evaluate them all, to tell whether your intended use of the non-Free Software could qualify as an exception to the general rule.
So, in order to reach an informed and moral decision, you could tell someone else who understands the philosophy better than you what the expected use of the software is, and how you expect this to benefit you and teh community, such that this person can make an informed recommendation taking all the benefits and harms into account.
An alternative is for the person who understands the philosophy to teach it to you, such that you can make infomed decisions from that point on, and even pass on the philosophy to others.
Someone with knowledge about software engineering, the expected use of the software and the mechanics of Free Software development may recommend even superior moral choices, such as investing in the development of Free Software so as to satisfy the expected use case, at some cost and benefit for you, and no harm and much benefit to the community. If you can afford the cost, by yourself or sharing it with others, this is always a morally superior to accepting non-Free Software.
On distributing non-Free Software
If you've ever accepted non-Free Software, you may find yourself in a moral dilemma when a friend asks you for a copy. You might be tempted to apply the same reasoning that you used to decide whether to accept the software in the first place, on behalf of the potential recipient. But this reasoning is not a perfect fit for this very different situation, because it fails to take into account your role.
One important moral issue is that, when you distribute the non-Free Software to someone else, the harm out of deprivation of freedoms moves to the opposide side in your moral balance: accepting the restrictions is no longer your own sacrifice, it's a sacrifice the other gets to make.
On the other hand, sharing and solidarity are important moral values to practice, and they were not applicable in your decision about accepting non-Free Software, but they are in the case of distributing it. However, sharing non-Free Software is always harmful, almost always immoral, and quite often unethical.
When the non-Free Software does not permit redistribution, you have to decide between disappointing your friend, which is immoral, or disrespecting this restriction, so as to help your friend, which is unethical and illegal. But harming that who harms you, without escalating the harm nor taking personal advantage, is not immoral. So it appears that the only morally correct choice for this dilemma is illegal, and only legal choice is immoral. Therefore, you should avoid getting into it. There are two ways to avoid it: don't have friends, or don't have non-Free Software.
Removing the restriction against redistribution takes out the unethical and illegal considerations from the above, which might get you to think that sharing is an obviously correct moral decision, but this would be setting aside the harm onto the recipient and many other factors that affect the community.
Redistributable non-Free Software is a lesser aggression than prohibiting redistribution, but it is an aggression on you and your community nevertheless. Positive feedback to unethical restrictions on studying and adapting the software, often related with limiting functionality of hardware or avoiding competition, should still be avoided.
So, you should take into account that the recipient may not have the same knowledge you do as to the ethical and moral issues involved. It is very important to take into account not only the direct harms and benefits of your distribution, but also that of the recipient's passing it on. If you don't have reasons to believe that the recipient is going to take into consideration the moral and ethical implications of further redistribution, then the harm to society that ensues is your resposibility: it goes against your moral balance. It is like starting a fire without precautions to make sure it remains under control.
You must not disregard the harm that can be brought to the community as a consequence of distributing non-Free Software to someone who's not prepared to evaluate the harmful consequences of accepting it, let alone to pass on the knowledge needed to make such decisions before passing it on. Without this knowledge, the non-Free Software is likely to spread exponentially, its acceptance is likely to influence similar decisions pertaining to other programs, to the point of altering market dynamics as to users' choices of hardware for software to run on, availability of such choices and even making it difficult to spread the knowledge needed to make informed moral choices in this regard.
If you make your decisions based solely on harm and benefits to the recipients and the community, under the reasoning applied to decide whether to accept non-Free Software, you fail to take into account the harm to the community that the recipients may cause as a consequence of your own choice to give them the software. Disregarding such a great harm will very often make a very harmful decision appear to be morally acceptable.
If you can't determine whether the recipient is capable of making informed moral decisions as to whether or not to accept non-Free Software, and whether or not to further distribute it, you are better advised to take the conservative approach of bounding the harm that may ensue: try to pass on the knowledge needed to make both kinds of informed decisions, and try to make sure it is going to be taken into account before you pass on the software. Then, even if the software is obtained from another source, it is more likely that it will be handled in a moral way.
General recommendations
As a general rule of thumb, accepting non-Free Software is bad, but distributing it to someone who wouldn't hesitate before accepting it and passing it on is much worse. In other words, to us closer to the goal of the Free Software Movement, of enabling anyone who wishes to live in digital freedom to do so, don't accept non-Free Software, and, if you do, don't offer it to anyone who would accept it.