Merge branch 'master' from upstream changes.
This commit is contained in:
		
						commit
						b59142e32c
					
				
					 1 changed files with 17 additions and 16 deletions
				
			
		|  | @ -139,7 +139,7 @@ | |||
| <dd> | ||||
|     <p>The GPL violation at issue involves VMware's ESXi product. | ||||
|     Conservancy independently reviewed ESXi 5.5 and its incomplete | ||||
|       <acronym title="complete, corresponding source">CCS</acronym> | ||||
|       <abbr title="complete, corresponding source">CCS</abbr> | ||||
|     release as part of our GPL enforcement efforts described above.</p> | ||||
| 
 | ||||
|     <p>Conservancy's preliminary investigation indicated that the operating | ||||
|  | @ -148,14 +148,14 @@ | |||
|           <li> the proprietary component “vmkernel”, which is | ||||
|             released in binary form only,</li> | ||||
|             <li>the kernel module “vmklinux”, which contains modified Linux | ||||
| Code, and for which (at least some) source code for which is provided. | ||||
| Code, and for which (at least some) source code is provided. | ||||
|             <li>other kernel modules with device drivers, most of which are | ||||
|             modified Linux drivers, and for which (at least some) source code | ||||
|               is provided.</li> | ||||
|         </ul> | ||||
| 
 | ||||
|     <p>Conservancy examined the incomplete CCS alongside the | ||||
|            binary “vmkernel” component.  Such examination indicates that function | ||||
|            binary “vmkernel” component.  Such examination indicates that functions | ||||
|            in “vmkernel” do make function calls to Linux's kernel code | ||||
|       in the usual way for a single program written in C.</p></dd> | ||||
| 
 | ||||
|  | @ -208,7 +208,8 @@ Code, and for which (at least some) source code for which is provided. | |||
|            called <code>vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c</code>, | ||||
|            which can be found in the “Open Source” release for | ||||
|            ESXi 5.5.0 Update 2 (5.5U2).  A small excerpt from that file, found in the | ||||
|            function <code>LinuxPCIDeviceRemoved()</code>, reads as follows: | ||||
|            function <code>LinuxPCIDeviceRemoved()</code>, reads as follows:</p> | ||||
| 
 | ||||
| <pre> | ||||
| if (unlikely( | ||||
|   /* NOTE: vmk_PCIGetDeviceName is defined in vmvisor64-vmkernel */ | ||||
|  | @ -222,7 +223,7 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID, | |||
|                         linuxDev->driver->remove, | ||||
|                         linuxDev); | ||||
| </pre>         | ||||
| </p> | ||||
| 
 | ||||
| <p>The function, <code>vmk_PCIGetDeviceName()</code> must be defined, with an | ||||
|       implementation, for this code above to work, or even compile. | ||||
|       Inside <code>BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/device/vmkapi_pci_incompat.h</code>, | ||||
|  | @ -234,13 +235,16 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID, | |||
| <p>Further evidence that the implementation of this function occurs elsewhere | ||||
|   can by found by running <code>objdump -x</code> on the un-vmtar'ed | ||||
|   <code>vmklinux_9</code> module.  Note the following output in the “SYMBOL | ||||
|   TABLE” section: | ||||
|   TABLE” section:</p> | ||||
| 
 | ||||
| <pre> | ||||
| 0000000000000000         *UND*  0000000000000000 vmk_PCIGetDeviceName | ||||
| </pre> | ||||
| 
 | ||||
| <p> | ||||
| …and the following lines found in the  “RELOCATION RECORDS FOR | ||||
| [.text]” section: | ||||
| </p> | ||||
| 
 | ||||
| <pre> | ||||
| 00000000000327ff R_X86_64_PC32     vmk_PCIGetDeviceName+0xfffffffffffffffc | ||||
|  | @ -248,7 +252,6 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID, | |||
| 00000000000387e1 R_X86_64_PC32     vmk_PCIGetDeviceName+0xfffffffffffffffc | ||||
| 000000000003cf40 R_X86_64_PC32     vmk_PCIGetDeviceName+0xfffffffffffffffc | ||||
| </pre> | ||||
| </p> | ||||
| 
 | ||||
| <p>The above two properties both suggest that the <code>vmklinux_9</code> | ||||
|  module requires: (a) a definition of the <code>vmk_PCIGetDeviceName()</code> | ||||
|  | @ -264,12 +267,13 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID, | |||
|   compressed data, was ‘vmvisor64-vmkernel.stripped’”. | ||||
|   These findings strongly suggests this is an image of the | ||||
|   “vmkernel” component.  An <code>objdump -x</code> yields this | ||||
|   “SYMBOL TABLE” section: | ||||
|   “SYMBOL TABLE” section:</p> | ||||
| 
 | ||||
| <pre> | ||||
| 000041800036a408 g     F .text  0000000000000137 vmk_PCIGetDeviceName | ||||
| </pre> | ||||
| 
 | ||||
| … which indicated these binary file contains the function body | ||||
| <p>… which indicated these binary file contains the function body | ||||
| for  <code>vmk_PCIGetDeviceName</code>.</p> | ||||
| 
 | ||||
| <p>Finally, after detailed searching, Conservancy found no evidence that any | ||||
|  | @ -280,7 +284,7 @@ for  <code>vmk_PCIGetDeviceName</code>.</p> | |||
|   yields similar results as above.</p> | ||||
| 
 | ||||
| <p>Given this evidence and related contextual clues, the only logical | ||||
|   conclusions are: | ||||
|   conclusions are:</p> | ||||
|     <ul><li><code>vmklinux_9</code>, as a binary object, dynamically links | ||||
|  with <code>k.b00</code>, another binary object, to form a single running | ||||
|  binary.</li> | ||||
|  | @ -300,7 +304,6 @@ for  <code>vmk_PCIGetDeviceName</code>.</p> | |||
|       compliance requires source code (or an offer therefor) for the material | ||||
|         in <code>k.b00</code>.</li> | ||||
|     </ul> | ||||
|     </p> | ||||
| <p>The above is but one piece of evidence among many, but hopefully it helps | ||||
|   to explain the types of “combined work” violations found in | ||||
|   VMware's ESXi product.</p> | ||||
|  | @ -313,7 +316,7 @@ previously-mentioned <code>linux_pci.c</code>, | |||
| <code>vmkapi_pci_incompat.h</code>, and <code>k.b00</code> files, as well as | ||||
|     <code>vmklinux_9</code> and the source code that builds the latter.</p> | ||||
| 
 | ||||
|   <p>To obtain the source components, follow these steps (no login is required): | ||||
|   <p>To obtain the source components, follow these steps (no login is required):</p> | ||||
| 
 | ||||
| <ol> | ||||
| <li>Visit <a href="https://my.vmware.com/web/vmware/details?downloadGroup=ESXI55U2_OSS&productId=353">https://my.vmware.com/web/vmware/details?downloadGroup=ESXI55U2_OSS&productId=353</a>.</li> | ||||
|  | @ -344,9 +347,8 @@ previously-mentioned <code>linux_pci.c</code>, | |||
|   f679e81ffb2f92729917bbc64c2d541cf75b5b94.</li> | ||||
| 
 | ||||
| </ol> | ||||
| </p> | ||||
| 
 | ||||
|   <p>To obtain the binary components, follow these steps (a login is required): | ||||
|   <p>To obtain the binary components, follow these steps (a login is required):<p> | ||||
| 
 | ||||
| <ol> | ||||
| <li>Register for an account at <a href="https://my.vmware.com/web/vmware/registration">https://my.vmware.com/web/vmware/registration</a>.</li> | ||||
|  | @ -395,9 +397,8 @@ at <code>bin/vmtar</code> inside | |||
| <code>sb.v00</code>, similar to <code>misc_dri.v00</code> above.</li> | ||||
| 
 | ||||
| </ol> | ||||
| </p> | ||||
| 
 | ||||
|   <p>Note that VMware may present you with <acronym title="End User Licensing Agreement">EULA</acronym>s and <acronym title="Terms of Service">ToS</acronym> when you download | ||||
|   <p>Note that VMware may present you with <abbr title="End User Licensing Agreement">EULA</abbr>s and <abbr title="Terms of Service">ToS</abbr> when you download | ||||
|   software from VMware's website.  Conservancy strongly suggests that you review these | ||||
|   terms in great detail with the assistance of your own legal counsel before | ||||
|   downloading the software and/or engaging in the process that Conservancy | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Bradley M. Kuhn
						Bradley M. Kuhn