Naturally, sharing knowledge and inventions is a good act of love. This action is often made incomplete and warped by not sharing source code. As a result, the programmer gains power and/or wealth at the expense of the users’ freedom and convenience.
When I learned about ethical issues related to sex, it reminded me of pooprietary software.
Humanae Vitae (July 25, 1968) | Paul VI
[Married love] is a love which is total—that very special form of personal friendship in which husband and wife generously share everything, allowing no unreasonable exceptions and not thinking solely of their own convenience. Whoever really loves his partner loves not only for what he receives, but loves that partner for the partner’s own sake, content to be able to enrich the other with the gift of himself.
And if each of these essential qualities, the unitive and the procreative, is preserved, the use of marriage fully retains its sense of true mutual love…
Hence to use this divine gift while depriving it, even if only partially, of its meaning and purpose, is equally repugnant to the nature of man and of woman…
The 2 parts of sex (unitive and procreative) are analogous to the 4 freedoms that cause a program to be libre: as a user, your dignity is fully respected only when you get all 4 freedoms.
When a software developer takes away all freedoms except for the freedom to run the program, it interferes with important parts of human nature: our community and our pursuit of better tools that do what we want.
…the fundamental nature of the marriage act … also renders them capable of generating new life—and this as a result of laws written into the actual nature of man and of woman.
The distribution of libre software makes derived works (just like “new life”) possible
Edit: There’s another issue with fornication (sex but with no full commitment): it’s somewhat dishonest because sex expresses a full gift and commitment of one’s self. This type of issue is present in a much more extreme way in pooprietary software, especially when DRM and backdoors are involved.