Friday, August 27, 2010

Sun RPC Licensing Change

I never imagine I’d be linking to a LiveJournal article ever, but today seems to be an outlier.

The long, sordid tale of Sun RPC, abbreviated somewhat, to protect the guily and the irresponsible.
Once upon a time (1984), Sun created an RPC implementation for Unix, with the intent of implementing RFC 707 (High-level framework for network-based resource sharing). Now, in those days, a good way to ensure that people used code that you wrote was to upload it to usenet, and in 1985, Sun did that. (Google has one of the posts archived here: Sun RPC part 8 of 10)
Keep in mind the following: the first formal definition of free software was published by the FSF in February 1986, so there were technically no "free software" licenses when Sun RPC was written. For that era, the licensing of Sun RPC was remarkably permissive, it said:
/*
* Sun RPC is a product of Sun Microsystems, Inc. and is provided for
* unrestricted use provided that this legend is included on all tape
* media and as a part of the software program in whole or part. Users
* may copy or modify Sun RPC without charge, but are not authorized
* to license or distribute it to anyone else except as part of a product or
* program developed by the user.
*
* SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
* WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
* PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
*
* Sun RPC is provided with no support and without any obligation on the
* part of Sun Microsystems, Inc. to assist in its use, correction,
* modification or enhancement.
*
* SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
* INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
* OR ANY PART THEREOF.
*
* In no event will Sun Microsystems, Inc. be liable for any lost revenue
* or profits or other special, indirect and consequential damages, even if
* Sun has been advised of the possibility of such damages.
*
* Sun Microsystems, Inc.
* 2550 Garcia Avenue
* Mountain View, California 94043
*/
People wanted to be able to support RPC, so this code was used all over the place. Notably, it is a core component of how NFS works on Unix (and since Linux is Unix-y, there too). Over time, this code was ported to Linux, and added, most notably, to glibc, all along, inheriting the same license Sun wrote for it in 1984.
The problem is that this license is clearly non-free, it places restrictions on distribution. Now, Debian has known about this concern for a while now, since 2002, to be precise, as you can see here: Debian Bug 181493 
Fedora caught this when we first started doing serious license audits, circa 2005.

[Keep Reading]