Choosing a Free/Libre/OpenSource Licence
Embarrassing. As a Free/Libre/OpenSource developer, I have shied away from choosing a licence for over twenty years. It's time to make some decisions.
Many times I have thought and read about the issues for free(dom)-software licensing, the four freedoms, the difference between copy-left and permissive, commercial versus non-commercial, artistic versus practical, the benefits of standard over custom.
How did I avoid making a decision? I was almost entirely contributing to existing projects, and simply followed their existing choice of licence. New things I wrote were small and I didn't declare a licence. That means they were not, in fact, free software, because rights were not granted. Oops.
There is another reason I avoided the issue. It used to seem entirely unclear. I dislike politics and drama and posturing and arguing, and there has been a lot of that, and not much clarity. At the same time, the world of most people's exposure to software was shifting, from running applications themself to using network services. The more important issue for most people's daily life is no longer about software they run directly, but about online services they use: the openness or usually closedness of those services. Freedom of computing is now about our rights related to our control over our own data and our digital identity and our communications. That is the area in which I have focused my attention in recent years, and the reason I am such a fan of Matrix and other open protocols.
But we still need software licenses.
Over the last few years I have solidified a point of view. For software that is complex, such as an app that provides a delightful experience directly to its users, then copy-left: “build on my work, give back to the community”. For software that is not rich in itself but aims to facilitate or promote the uptake of a free/libre/open protocol or service, or something else I value, then permissive: “take this and use it how you like”. The value of a small tool is not in itself (it could easily be recreated from scratch) but in that its existence supports the freedom of the more valuable thing. In this case I feel allowing the tool to become more widely used (even if also to proprietary ends) lends more benefit to the end goal than could be reaped from requiring all modifications to be published.
In summary:
- complex, delightful “apps”: copy-left
- simple tools toward Free/Libre/Open goals: permissive
OK, Now Let's Actually Choose a Licence
Now I am appreciating the advice of the Free Software Foundation (GNU). They discuss more fully and make recommendations in their How to Choose a License for Your Own Work and in their list of Various Licenses and Comments about Them.
My simplified take-away from their advice is, for my two basic software cases:
- complex, delightful “apps”: “GNU GPL version 3 or any later version” (SPDX
GPL-3.0-or-later
) - simple tools toward Free/Libre/Open goals: “Apache Licence 2.0” (SPDX
Apache-2.0
)
and for other cases consider LGPL (for libraries) and AGPL (for server software).
For written works:
- for documentation: see their recommendations and list
- for opinions (e.g. my blogs): see their list: probably “GNU Verbatim Copying License” (which is simple but seems to have no SPDX identifier currently), else for more substantial works “CC BY-ND”
- for included code snippets: they recommend additionally licensing these under CC0 (SPDX
CC0-1.0
)
Follow/Feedback/Contact: RSS feed · Fedi follow this blog: @julian@wrily.foad.me.uk · use the Cactus Comments box above · matrix me · Fedi follow me · email me · julian.foad.me.uk Donate: via Liberapay All posts © Julian Foad and licensed CC-BY-ND except quotes, translations, or where stated otherwise