Copyright Non-Compliance & VMware

 

The Software Freedom Conservancy organization is financing the legal costs for a lawsuit filed in a German court against virtualization tech giant, VMware, by Linux kernel contributor Christopher Hellwig.

The suit alleges that VMware has failed to comply properly with the terms of the GPLv2. GPLv2 is the licence of Linux and many other Open Source and Free Software included in VMware’s ESXi products.

And, because of this non-compliance with the GPL licensing terms, certain VMware ESXi products infringed Hellwig’s own copyrights.

Of course, if this is true, Hellwig is not unique in his claims. A simplified explanation of the argument is that VMware has combined Linux source code that is released for use under terms of GPL copyright with proprietary code as ‘vmkernel’

Because vmkernel is distributed as part of a shared binary combined inextricably with components that form ESXi, GPLv2 terms of use would require VMware to provide complete corresponding source code.

By not doing so, the allegation is that vmWare misappropriated Hellwig’s copy written work by using it to create an original product without his permission.

VMware’s defense in part claims that vmklinux
is an “interoperability module” which communicates through a stable interface called VMK API.”

For purposes of the suit in Germany, ‘interoperability’ and ‘interface’ is defined by the European Parliament and of the Council Direction April 23, 2009 “on the legal protection of computer programs”

 

(10)
The function of a computer program is to communicate and work together with other components of a computer system and with users and, for this purpose, a logical and, where appropriate, physical interconnection and interaction is required to permit all elements of software and hardware to work with other software and hardware and with users in all the ways in which they are intended to function. The parts of the program which provide for such interconnection and interaction between elements of software and hardware are generally known as ‘interfaces’. This functional interconnection and interaction is generally known as ‘interoperability’; such interoperability can be defined as the ability to exchange information and mutually to use the information which has been exchanged.

By claiming that their use of Linux source code is used to facilitate interoperability between different manufacturer’s products VMware may be attempting to argue that this falls under fair use as indicated in the same EU Directive, section (15)

(15)
The unauthorised reproduction, translation, adaptation or transformation of the form of the code in which a copy of a computer program has been made available constitutes an infringement of the exclusive rights of the author. Nevertheless, circumstances may exist when such a reproduction of the code and translation of its form are indispensable to obtain the necessary information to achieve the interoperability of an independently created program with other programs.

It has therefore to be considered that, in these limited circumstances only, performance of the acts of reproduction and translation by or on behalf of a person having a right to use a copy of the program is legitimate and compatible with fair practice and must therefore be deemed not to require the authorisation of the rightsholder.

An objective of this exception is to make it possible to connect all components of a computer system, including those of different manufacturers, so that they can work together.

[emphasis added]

Hellwig and the SFC dispute this claim. There is an excellent explanation at the FAQ page published by the SFC. There, you’ll find this diagram. A picture worth more than a thousand words.

linux-vs-vmkernel_en

When I worked at VMware I asked one of the kernel developers in Core Engineering about the claims that ESXi was built atop the linux kernel.
He provided a diagram to me that was surprisingly similar to this one.

But went on to say that they have since moved away from this dependency and it is only the case with certain versions of the server product.

Hmmm. That kind of sounds like the argument Hellwig is making.

If it’s true of Hellwig’s SCSI driver code, it will be true for the network driver, usb driver and storage driver code, as well.

Having seen the vmkernel and vmklinux source when I was with the company, there is little argument that linux source is used. In fact, original open source linux development comments can be seen alongside vmware developer changes in file diffs and that always seemed strange to me, something between the company being either blatantly unconcerned or just sloppily indifferent.

To be fair, I didn’t compile the source or inspect the shared libraries or executable directly by running objdump or studying the makefiles. There were reasons compelling enough in packaging of the builds that were brought up to make sure the interests of our major tech partners that depended on VMware during their own product releases were represented. (Being the person who is solely responsible for speaking up for the interests of other company products in a tech company is a role that begs political suicide. As that person, I might as well have had a big red X painted on my back since the day I started. That was a two year every day fight to fend of career EOL.)

By the way, I am a cheerful contributor of cash donations to the Free Software Foundation and consider Richard Stallman a leader of men and such, in addition to being singularly brilliant. And, if you are a proponent of same, the Software Freedom Conservancy is an excellent organization to donate. I suspect this case will not be resolved before it costs a king’s ransom in legal fees.

Speak your mind

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s