Now that Microsoft has declared itself untouched by any GPLv3 terms, everyone is trying to figure out if they have a leg to stand on. There is a whole lot of analysis going on, with some wondering if Microsoft is a distributor of software under GPLv3 by means of the voucher distribution and others wondering just what those vouchers included.
First, "distribution" isn't the issue with GPLv3. That is a GPLv2 question, as I'll show you. GPLv3 talks about "propagating" and "conveying", not just distribution. Propagation includes anything, including distribution but not limited to it, that would make you directly *or secondarily* liable for infringement if you lack permission. Convey means "any kind of propagation" that enables another party to make or receive copies of a work. Like selling them the vouchers, perchance? It's a much broader category of activities than just distribution, and I'll explain the terms that I think would have made Microsoft fit neatly into the "convey" category, had they not backed out. I think you'll be able to see how much more protection GPLv3 provides to your code than GPLv2.
And somehow I missed this earlier, but I now discover that if you read the marketing agreement between Novell and Microsoft more carefully than I did before, it turns out we can know what one got with the vouchers, and what they offered included software, upgrades, and support. No wonder Microsoft decided to pull the plug before any GPLv3 software began to be made available. I just don't know if that is enough to save them, since the vouchers they already sold have no expiration date.
First, the GPLv3 definitions of propagate and convey:
To “propagate” a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.
To “convey” a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.
Both definitions matter when we begin looking at the GPLv3 clauses that I think could be viewed as applying to Microsoft:
You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it....
If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. “Knowingly relying” means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it.
A patent license is “discriminatory” if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.
They certainly seem, to my brain, to be covered by the phrase "propagate by procuring conveyance of" in that they were propagating and procuring conveyance of SUSE by means of the vouchers they actively marketed. Now, in
Microsoft's Statement About GPLv3 [local copy], it mentions both support and updates:
While there have been some claims that Microsoft’s distribution of certificates for Novell support services, under our interoperability collaboration with Novell, constitutes acceptance of the GPLv3 license, we do not believe that such claims have a valid legal basis under contract, intellectual property, or any other law....
At this point in time, in order to avoid any doubt or legal debate on this issue, Microsoft has decided that the Novell support certificates that we distribute to customers will not entitle the recipient to receive from Novell, or any other party, any subscription for support and updates relating to any code licensed under GPLv3. We will closely study the situation and decide whether to expand the scope of the certificates in the future....
In particular, our technical and business collaboration with Novell continues to move full steam ahead, including our joint development work on virtualization, standards-based systems management, identity interoperability and document format translators. In addition, the patent covenants offered by Microsoft and Novell to each other’s customers are unchanged, and will continue to apply in the same way they did previously.
So now Microsoft has modified what you get with the vouchers, or tried to. Novell won't agree not to provide support for GPLv3 software, though, so that blunts the effectiveness of Microsoft's announcement and I must say thank you to Novell for that. I doubt Microsoft realistically thought Novell would stop supporting the software it sells. Microsoft just wanted to say, "Hey, it's not us doing that. We don't authorize or approve. We tried to stop it." And since Eben Moglen has pointed out that the vouchers have no cutoff date, Microsoft, by my analysis, still has to face what it will mean for them if even one such voucher is turned in after Novell begins to offer GPLv3 software.
We did expect Microsoft to make some changes with regard to the vouchers.
Novell acknowledged in its most recent 10K that the patent agreement could be affected by GPLv3's final terms, and Novell expressed in its risks section how the final GPLv3 could impact the Novell-Microsoft deal:
If the final version of GPLv3 contains terms or conditions that interfere with our agreement with Microsoft or our ability to distribute GPLv3 code, Microsoft may cease to distribute SUSE Linux coupons in order to avoid the extension of its patent covenants to a broader range of GPLv3 software recipients, we may need to modify our relationship with Microsoft under less advantageous terms than our current agreement, or we may be restricted in our ability to include GPLv3 code in our products, any of which could adversely affect our business and our operating results. In such a case, we would likely explore alternatives to remedy the conflict, but there is no assurance that we would be successful in these efforts.
And that is exactly what has just happened. Microsoft has in fact altered its behavior to try to avoid being impacted by GPLv3. So much for "we are not bound by GPLv3". Clearly they have enough concerns, they felt they needed to make a change. Why might they be worrying?
Remember that Microsoft wasn't giving those vouchers away. It was selling them for a profit, which the agreement permitted:
Novell acknowledges and agrees that Microsoft may exercise its sole discretion in determining how and whether to use and/or distribute the Prepaid Subscription Rights to best implement Microsoft’s internal business strategies for driving incremental revenue growth and otherwise furthering Microsoft’s business interests. Accordingly, Microsoft, in its sole discretion, will establish the price it will charge Shared Customers and other SLES licensees for such Prepaid Subscription Rights. Novell acknowledges that it is not entitled to share in any revenue (if any) generated by Microsoft from the distribution of the Prepaid Subscription Rights.
So it wasn't comparable to some guy standing on the corner and handing out flyers or a company throwing a coupon in the box with your order. The vouchers represented a much deeper involvement. Here's what the Recitals section of the Novell-Microsoft marketing agreement says:
The parties desire, pursuant to the terms and conditions set forth in the Agreement below, to collaborate on the commercialization of certain of their respective current and future technologies by, among other things:
• marketing a combination of Microsoft and Novell virtualization offerings that allow SLES to run as a guest operating system on Windows, and Windows to run as a guest operating system on SLES, and certain other agreed-upon activities between the parties;
• enabling distribution by Microsoft of Novell support and update service subscriptions for SLES; and
• coordinating the provision of customer support for each party’s virtualization technology components between Microsoft’s and Novell’s respective customer support organizations.
Unfortunate choice of wording, don't you think, in the circumstances? -- "enabling distribution by Microsoft of Novell support *and update* service subscriptions for SLES" seems to nail them to the wall pretty well. But it gets worse. In the marketing plan section, you find this paragraph:
(f) Upgrades. The parties acknowledge and agree that, as the parties issue Upgrades to the Combined Offering Software Components during the Term, they will incorporate such Upgrades into the Marketing Plan activities in a mutually agreed upon manner, provided that if a given Upgrade embodies material functional or feature modifications inconsistent with the overall goals of this Agreement, the parties will assess and come to a mutual decision regarding how and whether to market such Upgrades under this Agreement.
So upgrades were contemplated and included as part of the deal. Clause 4.3(d) shows us that specifically:
(d) Implementation Plan. Within *** following the Effective Date, the parties agree to jointly create, by written agreement, a plan that describes (i) the content of the Subscription Certificates, (ii) the process by which Novell will issue the Subscription Certificates to Microsoft, (iii) the process by which Microsoft can exchange Subscription Certificates in inventory relating to SLES Priority Subscriptions for SLES Standard Subscriptions, and vice versa, based on market demand; and (iv) the process by which the recipient of a Subscription Certificate may notify Novell that it seeks to activate the Prepaid Subscription Right, and by which Novell will execute the appropriate SLES Subscription with recipients who activate the Prepaid Subscription Rights, enroll them in support, and enable them to receive SLES updates pursuant to their SLES Subscription.
And clause 1.15 defines SLES as including software upgrades:
1.15 “SLES” means SUSE Linux Enterprise Server version 10 and any Upgrades thereto that Novell may commercially release during the Term.
So upgrades were part of the offering.
Here's the definition of "upgrades" in the agreement:
1.21 “Upgrades” mean any corrections, improvements, bug fixes, revisions, enhancements, localizations, updates, upgrades or other modifications made commercially available by either party.
Bug fixes is code, folks. Ditto revisions, enhancements, localizations, updates, upgrades and modifications. Now tell me Microsoft, had they not run for the exit, wouldn't have been distributing software under GPLv3, let alone conveying or propagating. Puh lease.
I think after reading all this, you can see why the company decided to try to scrape the Novell vouchers off of its shoes like toilet paper stuck to the bottom. But with the vouchers having no expiration dates, I really wonder if what they have done is enough. So when I read Microsoft's statement that it isn't bound by GPLv3, I'd call it hopeful optimism that the changes they've announced will help them retreat from what would inevitably have been a huge GPLv3 impact. I read it as saying, "*Now* we aren't bound, any more, because we stopped doing what we were doing that would have bound us."
But those pesky vouchers with no expiration date.... the saga is not yet over. So, let's just say, to be continued.
As for Microsoft's statement that they "remain committed to working with the open source community", I have to ask, how will that work, when the GPL is the dominant license chosen by the authors of the community's code? One can't help but wonder how well Microsoft understands the GPL even now. They have brilliant lawyers, no doubt about it, but they are not GPL specialists, and law is a profession of specialization, as you have just witnessed.