Free and Open Source Software should be in the public domain

2021-02-05


Introduction

While Free[0] and Open Source[1] Software (I will use those terms interchangeably in this article as a reasonable simplification) have driven the software industry to a state that it would not have achieved with proprietary software and other software concepts alone, there is much friction loss happening due to waste of resources, incompatibilities and unintended prevention of software usage.

This article shows a way that solves many license problems in software projects by recommending Creative Commons CC0[2] as a tool which is compatible with current Open Source software.

Why do we restrict usage in licenses?

I was a Debian Developer for about 13 years enjoying license checking of the software packages that we wanted to include in this great operating system without missing any licensing problems. At the same time, during the last 20 years, I worked in many commercial software projects. And often, Open Source libraries, frameworks and operating systems were employed.

And this is where the difficulties started. In my eyes, Open Source provides general tools that would need to be developed independently in many companies around the world. This is duplicated work since only 1% of code that is special about a company and its business logic (and it's reasonable to keep it secret) can often be separated from the 99% of common software systems which can be Open Source. What a waste of resources to care about building the common 99% if it's freely available for everyone anyway?

Unfortunately, Open Source licensing is one of the most important reason not to use Open Source more widely. Don't get me wrong: Richard Stallman and Bruce Perens did great work to formalize Free and Open Source Software via the FSF[3], GNU[4], the Open Source Initiative[5] and Debian[6]. And in some cases, the author of a software package explicitly wants to prevent their code from being used in proprietary software. This is OK and the LGPL and GPL will be suited better for them.

I doubt that this is the common case.

For example, the Linux kernel explicitly allows the use of non-GPL software to run on top of it. Otherwise, the GPL would forbid such use and the Linux kernel would not be able to be used by many software packages and in many embedded devices.

I witnessed discussions about including Open Source libraries, spanning years. An example is Qt[7]. Even though it is provided as an Open Source package and dual-licensed with a commercial/proprietary contract which costs many thousands of euros, I observed several cases where its use in software projects was cancelled due to complicated licensing.

Another example is OpenSSL whose license was incompatible with GPL programs[8] which just couldn't use the OpenSSL for licensing reasons although both had an officially approved Open Source license[9] and both were included in the Debian operating system and many others. Fortunately, this single problem is gone[10] but it illustrates the issue with hundreds of available Open Source licenses with many of them not even guided by a lawyer.

In my opinion we are not doing our best by crafting Open Source licenses by the same rules as commercial and proprietary licenses are done, playing by the rules of international copyright - writing contracts for someone who doesn't pay us anyway. It makes things unnecessarily complicated and prevents progress by wasting resources.

How can we solve this?

I herewith propose using the Creative Commons CC0 as a tool for making Open Source software available. It is not a copyright license, but instead puts "the work" (i.e. the software) into the public domain. This is the freest way possible to make software available. And it's compatible with basically all Open Source licenses. CC0 even makes sure that in jurisdictions where no public domain exists, you get a license to use the software to the freest extent possible.

If you ask some lawyers, they will try to prevent you from doing that[11] because software in the public domain would make at least some lawyers jobless. They list "arguments" which are mostly void like "a gift cannot be enforced" and "the donor can retract his gift at any time and for any reason". Luckily, if the content of the referenced article is everything they have to counter then CC0 looks like a good choice.

While the Free Software Foundation officially recommends the CC0 as the best way to put software into the public domain (and making it Free Software at the same time)[12] and the Debian project also acknowledges CC0 as a DFSG-free license[13], the Open Source Initiative is still reluctant to list CC0 in their approved licenses[14].

The reason they are explaining is about patents that the author doesn't grant to the user while putting the software into the public domain. In my opinion, this argument is not very strong. While patents are a real problem for software (and not limited to Open Source), the patent clause in CC0 doesn't make the software less usable. Any patent holder can sue you if you live under a respective jurisdiction, no matter under which software contract you are working (commercial, proprietary, Public Domain or other Open Source model).

Another point is that public domain is not a license but rather a waiver of rights. Therefore, it formally doesn't qualify as a "license" in the official Open Source licenses list. However, it makes the software compatible to the DFSG[13] and therefore the OSD[1].

People raised the question if public domain is possibly not applicable in certain jurisdictions and if problems arise if CC0 can not safely apply its "fallback clause" as a liberal copyright license at all. In practice, nobody could show such a case for many years now.

How to apply CC0

I you want to make your software available via CC0, you can add a paragraph similar to the following to the place where you would normally add a license text[15]:

    <PROGRAM NAME> - <DESCRIPTION>

    Written in <YEAR> by <AUTHOR NAME> <AUTHOR E-MAIL ADDRESS>

    [other author/contributor lines as appropriate]

    To the extent possible under law, the author(s) have dedicated all
    copyright and related and neighboring rights to this software to the public
    domain worldwide. This software is distributed without any warranty.

    You should have received a copy of the CC0 Public Domain Dedication along
    with this software. If not, see
    http://creativecommons.org/publicdomain/zero/1.0/

Of course, don't forget to include the full source code of the program to finally make it Open Source.

There are even Unicode symbols allocated now for Public Domain (#1F16E) and CC0 (#1F10D)[16] besides the copyright symbol. Please note that not all fonts and typesetting programs support them yet.

Summary

This article explained the current problems of Free and Open Source Software licenses and recommended a practical solution for many practical cases. It also described cases where traditional licenses should still be employed. Finally, it showed how to apply the CC0 to a software project.

References

[0] https://www.gnu.org/philosophy/free-sw.html
[1] https://opensource.org/osd
[2] https://creativecommons.org/publicdomain/zero/1.0/
[3] https://www.fsf.org/
[4] https://www.gnu.org/
[5] https://opensource.org/
[6] https://www.debian.org/
[7] https://www.qt.io/
[8] https://people.gnome.org/~markmc/openssl-and-the-gpl.html
[9] https://opensource.org/licenses
[10] https://www.openssl.org/blog/blog/2017/03/22/license/
[11] http://www.rosenlaw.com/lj16.htm
[12] https://www.gnu.org/licenses/license-list.html
[13] https://wiki.debian.org/DFSGLicenses
[14] https://opensource.org/faq
[15] https://wiki.creativecommons.org/wiki/CC0_FAQ#How_do_I_apply_CC0_to_my_work.3F
[16] https://creativecommons.org/2020/03/18/the-unicode-standard-now-includes-cc-license-symbols/




Impressum, Datenschutzerklärung