On July 9th 2007 the Samba project announced that future releases of their software would be made under the Free Software Foundation’s newly-minted GNU General Public License v3. Previous releases had come under the GPL v2. Most people who have used Linux will be familiar with Samba. It enables Linux, as well as many other varieties of Unix variants, to access and provide file and print services to/by computers running Microsoft’s Windows. To put it another way, it is an implementation of the Microsoft-created SMB/CIFS protocols, created through reverse engineering and reference to publicly available documentation . Samba forms an essential part of the Linux software stack, given how widespread Windows machines are, and this is reflected by its inclusion in nearly all Linux distributions.
Why is this licence-swap a big deal? There are a couple of reasons. Firstly, despite succeeding the most widely-used free and open source software licence (the GPL v2) there remains some doubt over how popular the GPL v3 will be. Some figures in the world of free and open source software – notably Linux creator Linus Torvalds – have expressed doubts about the new licence’s terms. Torvalds has in the past said that he will be keeping the Linux kernel under the GPL v2, as a result of these doubts. Thus ever since the GPL v3’s final publication on 29 June 2007, commentators have been waiting eagerly to see which free and open source projects will move to the new licence and thereby contribute to its success. Samba’s conversion is a big win for the Free Software Foundation and its aim of propagating GPL v3 usage as widely as possible.
There’s another reason that Samba’s announcement is big news, and it relates to the complex story of Microsoft’s patent covenant deal with Novell. Back in November 2006, Novell and Microsoft announced that they had struck a deal to promote Windows/Linux interoperability and support each other’s customers. As part of this deal, Novell and Microsoft promised not to sue each other’s customers over the use of their patents; both Microsoft and Novell hold extensive software patent portfolios. The deal antagonised many in the free and open source community, for a couple of reasons.
Firstly it seemed to have been formulated specifically to avoid an essential provision of the GPL v2. Distributors of GPL v2 software must either distribute the software freely, or not at all. If – for example – a patent judgement forced the distributor to slap an additional ten pence charge on top of the software in order to pay for a patent licence, the GPL v2 says that the distributor would have to stop distributing the software entirely. In this way the GPL v2 discourages patent actions against distributors by making them unlikely to yield any real cash for the patent owners. It also prevents a single distributor becoming ‘favoured’ over others through the granting of a patent licence to them. Now with this customer-aimed cross-licensing deal, Novell and Microsoft had found a way around this provision. Neither company was making direct payment to the other for the use of patents – they were merely making a promise not to take each other’s customers to court. As a result of the deal, Microsoft managed to give the impression that all Linux users – with the exception of Novell’s customers – were illegally making use of Microsoft patented technology and might very well get sued one day. Novell, whose Linux business had been struggling, had managed to give the impression that theirs was the only ‘safe’ Linux available, if you believed their reasoning…
It was this second reason – the designation of some Linux users as safe from Microsoft legal action while others had to live in doubt – that most annoyed the free and open source software community. Some feared that it was the beginning of a new anti-Linux strategy by Microsoft, replacing their failed strategy of criticism and denial. If Microsoft could successfully give the impression to the world that you need a patent licence from them to run Linux (or more accurately a promise or ‘covenant’ not to sue) then they could exercise control over the uptake of Linux, favouring distributors whom they liked or who had something to give in return with covenants while scaring customers away from everyone else’s distributions with implied threats of patent action.
Now at the same time as Novell and Microsoft announced their deal, the Free Software Foundation was grinding through its public consultation process over the rewriting of the GPL v2. This process had originally been scheduled to complete in late 2006, but the opposition to the wording of the original draft had been wider and angrier than expected. By November 2006 it was clear that the timetable had slipped. This tardiness became a blessing in disguise once the true potential of the Microsoft-Novell deal became clear. There was now time to incorporate changes into the new GPL that would broaden its provisions and explicitly prohibit such patent covenants. It would not catch the current Microsoft-Novell deal, but it would close a loophole that many felt might in the future threaten the entire free and open source software eco-system.
Eben Moglen, the Free Software Foundation’s lawyer, redrafted the GPL v3 to cover the more indirect benefits that such deals provide. If x was promising not to sue y‘s customers, the new version said, that counted as payment, and therefore y could either try to get the same benefit for all distributors and their customers worldwide or – if they could not – they would have to stop distributing.
Following all this so far? Good. Now you might think that this was an exercise in closing the stable door after the horse has bolted – after all Novell and Microsoft struck their deal before the GPL v3 came out. It’s not quite that simple though. What happens when Novell want to include newly-released free or open source software in their distribution and it’s licensed under the GPL v3? The simple answer is that they can’t. Their patent deal violates the terms of the GPL v3, so they cannot be distributors of GPL v3 software. How practical is this as a position for a distributor? That depends on which software moves to the GPL v3. If a major component of Linux changed licence, Novell would be forced to break off the deal with Microsoft or drop the component from their distribution…
It’s not really surprising that Jeremy Allison, Samba’s lead developer, was the first to take advantage of Novell’s uncomfortable position. Allison quit his job with Novell last November in protest at the Microsoft deal. By moving Samba to GPL v3, Allison has put Novell – and the other Linux distros who have made similar deals with Microsoft like Linspire, LG and and Xandros – in a dark corner. They can either keep their ‘special’ status or they can include Samba. They cannot do both.
And what of Microsoft? They may be just as keen to drop the deal as their newly-negotiated friends. You see, as part of the original Novell deal, Microsoft bought and distributed ‘support vouchers’ for Novell’s Linux. These vouchers entitle the owner to receive support for Novell’s Linux from Microsoft, including bug fixes. They were intended to cement Novell’s position as Microsoft’s favoured Linux partner. The vouchers are – apparently – undated and have no use-by date. What this means is that Microsoft may already be legally committed to distributing GPL v3 code (or more accurately procuring distribution from Novell, an act also covered by the GPL v3) in the form of patches for Novell’s Linux distribution. Microsoft recently released a statement on this issue in which they argue – somewhat confusingly – that they are not GPL v3 licensees despite having made commitments to support Linux in the form of the vouchers. Microsoft also said that they wont be supporting any GPL v3 code. At the same time Novell issued a statement saying that their Linux distributions will include GPL v3 code regardless of what Microsoft’s statement implies. This new friendship may already be on the rocks, thanks to the Free Software Foundation.
Note: Although I’ve used the word ‘distribution’ throughout this post, the GPL v3 actually replaces the word ‘distribution’ with ‘propagation’, and defines that activity more broadly. For the purposes of clarity, and until we’re all used to the new vocab, I’ve stuck with ‘distribution’ here.