Motorola and the FOSS that Wasn't

mattflaschen's picture
Submitted by mattflaschen on Tue, 07/03/2007 - 15:57
Category:

When Motorola decided to write an "open source" Service Availability Framework they, perhaps unknowingly, illustrated a disturbing trend in the FOSS (free and open source software) world. The new OpenSAF initiative is designed to "[u]tilize an open source licensing model not tied to any commercial implementation" and in doing so remove the need for vendors to implement their own proprietary infrastructure code. Naturally, Motorola describes their motivation to the trade press (Internet News, July 2007) as an example of their desire "to get people to move away from building proprietary platforms".

But nowadays, "open source" is not always what it appears. The license of OpenSAF isn't really open source after all. It isn't approved by the Open Source Initiative, and couldn't be because it is designed to protect existing proprietary models at the cost of the rights the Open Source Definition enumerates. This fundamental error was not made due to a lack of understanding of the open source community. Rather, it seems Motorola took a look at FOSS and decided it would change it as it saw fit.

The OpenSAF license is an awkward combination of version 2 of the GNU General Public License (GPL), version 1.1 of the Mozilla Public License, and a traditional proprietary license. It seems that the drafters started with a proprietary license, because the license is filled with awkward and unnecessary detail, as is common in such documents. For your convenience, text from the Motorola license is in red, and text from established FOSS documents is in blue. Motorola's license defines an "Initial Program" as:

"Initial Program" means the program and related programmer materials, including source code and object code, as initially distributed, made available, or transferred with this Software License by the Initial Contributor, that is a software implementation of a platform and operating system agnostic, distributed, high-availability operating environment based upon the Service Availability Forumâ„¢ Application Interface Specification ("AIS") B.01.1 revision for AIS services plus additional functionality for enabling added services , wherein the basic services and added services are as follows:

(a) (AIS) B.01.1 services:
(i) Availability management framework;
(ii) Checkpoint service;
(iii) Global lock service;
(iv) Event distribution service ;
(v) Message queue service ; and

(b) additional functionality
(i) Message distribution service;
(ii)Message based checkpointing service;
(iii) Interface service;
(iv) Management access service;
(v) Persistent store/restore service;
(vi) Distributed tracing service;
(vii) System resource monitoring service;
(viii) Command line interface;
(ix) Layered Environment for Accelerated Portability (LEAP).

It is when dealing with issues specific to FOSS, such as source availability, redistribution, modification, and versioned licenses, that the license document borrows most heavily from the GPL. One of GPLv2's options for source code distribution is:

Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. [...] If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

This is borrowed as:

accompany the Program with a written offer (valid for at least three years following distribution thereof) to give any Recipient the complete corresponding source code, including a machine-readable version (valid for at least three years following distribution thereof), to be distributed, transferred or provided under the terms of Section 2 on a medium customarily used for software interchange. If distribution, transfer or provision of object code or executable code is made by offering access to a copy thereof by a designated means of access, then offering equivalent access to a copy of the source code from the same means of access satisfies the requirement to distribute the source code or offer the source code, even though third parties are not compelled to copy such source code along with the object code or executable code.

The license even takes GPLv2's liberty or death clause:

If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all.

almost verbatim as:

If, as a consequence of a court judgment, allegation of infringement or misappropriation of any intellectual property rights, or any other situation or circumstance, conditions or obligations are imposed on a Recipient (whether by court order, agreement or otherwise), that contradict any of the terms and conditions of this Software License, such conditions or obligations do not excuse such Recipient from any of the terms and conditions of this Software License. If such Recipient cannot distribute so as to satisfy simultaneously its obligations under this Software License and any other pertinent obligations, then as a consequence such Recipient may not distribute the Program at all.

The MPL's inspiration is less obvious, but evident on inspection. The MPL's contributor copyright grant clause reads:

Subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license

a. under intellectual property rights (other than patent or trademark) Licensable by Contributor, to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof) either on an unmodified basis, with other Modifications, as Covered Code and/or as part of a Larger Work [...]

which inspires:

Subject to the terms and conditions of this Software License, each Contributor hereby grants each Recipient a nonexclusive, worldwide, royalty-free license under all copyrights owned or licensable by such Contributor to reproduce, publicly display, publicly perform and distribute, transfer or otherwise provide to another person or entity the Program in source code, object code and executable code forms, as such Recipient receives the Program, in any medium, provided [...]

Given the family resemblence, one wonders why Motorola didn't simply choose an established FOSS license for their new project. The answer is clear; once Motorola understood FOSS, it disturbed their status quo so they chose to twist it into something more familiar. This explains first the arduous definitions clauses specific to Motorola's project. Here, the corporate lawyers simply wrote the type of license they were most familiar with. But it is also clear that Motorola and its partners consciously drew away from FOSS in order to maintain their proprietary business model. Thus, while GPLv2 says "We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all." and MPL grants a license:

under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: 1) Modifications made by that Contributor (or portions thereof); and 2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination)

the OpenSAF only provides that:

Each Contributor and each Recipient that is a Commercial Distributor (each a "Granting Party") agrees that it shall not assert any existing or future Incorporated Patents that such Granting Party owns or otherwise has rights in (sufficient to permit the granting of the non-assertion agreement in this Section 5), against any Recipient with respect to such Recipient using, making, having made, importing, transferring or otherwise disposing of the Program, but solely for so long as such Recipient is not a Commercial Distributor

Commercial distributors can only get:

"a license to that Recipient under any or all (as requested) Incorporated Patents of Contributor on fair, reasonable and non-discriminatory terms, for the right of Recipient to use, make, have made, sell, offer to sell, import, transfer or otherwise dispose of the Program, subject to reciprocity."

This obviously endangers commercial distributors that don't pay royalties, violating point 6 of the Open Source Definition, which provides that "The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research." Without a patent license, the rights of redistribution, modification, and use granted in the license are only theoretical. Fair, reasonable and non-discriminatory patent licenses typically charge per-unit, which effectively prohibits the common FOSS business model of widely distributing at no charge and offering paid support for those interested.

The lesson here is that the worlds of FOSS and proprietary software are fundamentally different. FOSS licenses are built on freedom and openness, while proprietary licenses are designed to carefully protect the licensor's business model. Selective borrowing from FOSS is not enough to change the character of a proprietary company or license. It requires a whole new way of thinking.

—Matthew Flaschen


Creative Commons License

This work is licensed under a Creative Commons Attribution-No Derivative Works 3.0 License.