The Universal Donor

It’s not enough for you to have the rights you need; your community needs the same rights.


A few people reacted negatively to my article on why Public Domain software is broadly unsuitable for inclusion in a community open source project. Most argued that because public domain gave them the rights they need where they live (mostly the USA), I should not say it was wrong to use it. 

That demonstrates either parochialism or a misunderstanding of what public domain really means. It should not be used for the same reason code known to be subject to software patents should not be used — namely that only code that, to the best efforts possible, can be used by anyone, anywhere without the need to ask permission (e.g. by buying a patent license) or check it it’s needed (e.g. is that PD code PD here?) can be used in an open source project. Public domain fails the test for multiple reasons: global differences in copyright term, copyright as an unalienable moral rather than as a property right, and more.

Yes, public domain may give you the rights you need. But in an open source project, it’s not enough for you to determine you personally have the rights you need. In order to function, every user and contributor of the project needs prior confidence they can use, improve and share the code, regardless of their location or the use to which they put it. That confidence also has to extend to their colleagues, customers and community as well.

Some members of the Apache Software Foundation describe this condition as “being a universal donor” of software. The ASF has rigorous rules concerning the licensing of all the software they maintain. They require contributors to confirm the originality or proven origin of their contributions, and to grant to the ASF as a legal entity unrestricted copyright and patent rights. They prohibit use of licenses that might require code recipients to take further licensing actions — this even means banning some OSI-approved licenses such as the GPL.

They have recently also banned use of additional patent statements that modify rights under otherwise acceptable licenses (the recent Facebook example was the origin of this). They permit public domain code, but only after a large amount of due diligence to ensure everyone has the necessary rights. Their goal is to ensure all known obstacles to use, improvement and sharing are removed in advance so their own community can innovate freely and also so that unknown others can freely use Apache code.

Public Domain per se breaks this condition of being a universal donor. While there is a good chance that many contributors will discover they have sufficient rights, the problem is that every one of them has to make their own local determination. That breaks the community. It’s not enough that you have the rights you need; in a community everyone needs those rights, and by including public domain code you give everyone a burden rather than a benefit, because public domain is a local conclusion, not a global license.

(A version of this appeared in the Linux Voice section of issue 206 of Linux Magazine)