Posted by: Akutz
Andrew Kutz, Virtualization, VMware
A while back I reported on what was a sticky issue for many people: VMware Server 1.0.4 did not work with the latest Linux kernel (2.6.23+) because the VMware Server memory module used the dumpable bit which had been removed in 2.6.23+ in favor of the GPL v3 exported set_dumpable and get_dumpable functions. Because the VMware Server memory module is not GPL v3 compliant (it does not use the MODULE_LICENSE macro to declare itself such), either a kernel recompilation was required in order to redact the GPL v3 changes to the set and get dumpable functions or a vmmon module recompilation was required in order to lie about its license type. Unlike the writer’s strike, a compromise has been reached.
The Linux Kernel development team has not removed set and get dumpable’s GPL v3 requirements and VMware has not made the vmmon memory module GPL v3 compliant (which in turn would require VMware Server to be licensed under GPL v3). VMware did not even future proof themselves by creating a Kernel module shim licensed with LGPL. VMware simply access the dumpable bit directly with set_bit and clear_bit now. Lines 1663 of the vmmon source file driver.c begins with:
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23) || defined(MMF_DUMPABLE)
/* Dump core, readable by user. */
While some may hail this change as a good thing, I do not. What happens next time when there is no work-a-round? Both VMware and the Linux Kernel Development team have a chance to showcase that closed-source and open-source can work together. That closed-source companies are open to listening to the reasons for things like GPL v3. And proponents of GPL v3 have an opportunity to show that they are not just zealots whose blind actions damage the usefulness of their software to end users.
I think it is great that VMware listened (whether or not it was to me) and fixed this issue. I just wish that the opportunity for two communities to come together could have been embraced instead of side-stepped.
Until next time.