We are in the process of changing the license terms under which OpenAFS can be distributed to a dual license. Specifically, we are changing the license terms so that you may distribute OpenAFS under either the IBM Public License version 1.0 (IPL) or the GNU General Public License version 2.0 (GPLv2).
Currently, OpenAFS as a whole is distributable only under the terms of the IPL, owing to the origin of the project as a code drop from IBM under the IPL, even though parts of the codebase have since been added under BSD, MIT, or other licenses compatible with the IPL, and some code added since the initial import has also been covered by the IPL. The BSD and MIT license are compatible with both the IPL and GPLv2, so the main change occurring as part of this relicensing effort is to change all the files currently covered only by the IPL to be dual IPL/GPLv2 licensed. Additionally, code currently covered by the Sun RPC license will need to be relicensed, since the Sun RPC license is not compatible with the GPLv2.
The first major step was completed on February 5, 2025 when IBM announced that OpenAFS 1.0 is now distributed under the IPL/GPLv2 dual license, and the original code copyrighted by Sun Microsystems is now available under the 3-part BSD Oracle Sun RPC license.
After consulting with a legal team recommended to us by the Software Freedom Conservancy, we have decided to contact contributors of the code in question by email to request permission to change the license of their contributions.
Individual contributors will be contacted by email to confirm whether their contributions were made on behalf of themselves or an affiliated organization, and to request their agreement for the license change if they hold the rights to do so.
OpenAFS includes a filesystem driver as a kernel module. We support several operating systems, including macOS, Solaris, AIX, and Linux.
It has become increasingly difficult to provide a non-GPL Linux kernel module for filesystems. New interfaces within the Linux kernel are usually marked for symbol visibility only to GPLv2 licensed code, meaning that only GPLv2 licensed code can call these functions. The Linux kernel is moving away from supporting non-GPL out-of-tree filesystems, making it increasingly impractical for OpenAFS to support modern Linux versions.
In addition to the large corpus of IPL code, OpenAFS contains code derived from the original Sun Microsystems RPC implementation. While the original RPC code has been relicensed by Oracle, we still have changes within OpenAFS that are distributed under the original Sun Microsystems license, which is problematic since the Sun Microsystems RPC license is not compatible with the GPLv2 and generally is considered a non-free license.
In 2000, IBM originally released OpenAFS 1.0 under the IBM Public License version 1.0 (IPL). The IBM Public License was an early and influential open source license. The IPL was superseded by the Common Public License 1.0 (CPL) in 2001, which was the basis of the Eclipse Public License 1.0. However, very few projects have been released under the IPL. Postfix is the only other well-known and actively maintained project still released under the IPL.
The IPL is approved by the Free Software Foundation (FSF) and is described as an open-source license by the Open Source Initiative. However, it is not considered to be compatible with the GPLv2 because of restrictions not found in the GPLv2. For example, a choice-of-law clause that states that the IPL is to be interpreted under the laws of the State of New York and United States intellectual property law.
Over 300 individuals from many organizations have contributed to the OpenAFS code base since the original release in the past 25 years. Many of those changes were made to files distributed under the IPL and thus inherited the IPL.
To further complicate matters, the RPC implementation in OpenAFS is based on the original SUN RPC code, which was copyrighted by Sun Microsystems in 1984, predating the definition of "free software." This code was widely used for RPC and NFS implementations, including the original AFS RPC implementation. Unfortunately, the original license places restrictions on distribution, making it incompatible with the GPLv2.
Fortunately, others have worked for years to rectify this situation. Tom Calloway's post in 2010 recounted that effort. The original SUN RPC code has been relicensed, and all changes made by IBM before and after the OpenAFS 1.0 release have been relicensed to the 3-part BSD license.
A full listing of the files within OpenAFS subject to the Sun RPC license change can be found in this commit message.
No changes are being made to copyright assignments.
No license changes are being made to files contributed under a BSD license.
Organizations will still be able to distribute OpenAFS under the terms of the IBM Public License.
Contributors should expect to receive email from the OpenAFS project asking if you can assert that you have the right to relicense your contributions to OpenAFS, and for your permission to change the license of your contributions to the dual IPL/GPLv2 license.
If changes were done as work-for-hire for another organization, the legal entity may need to agree to the licensing change.
We would like to thank Todd Desantis (IBM) and Brad Topol (IBM) for completing the relicensing of OpenAFS 1.0, without which none of this would be possible.
We would like to thank Karen Sandler at the Software Freedom Conservancy, for her support, and Aaron Williamson for providing general direction in the relicensing effort.