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> | <dd> | ||||||
|     <p>The GPL violation at issue involves VMware's ESXi product. |     <p>The GPL violation at issue involves VMware's ESXi product. | ||||||
|     Conservancy independently reviewed ESXi 5.5 and its incomplete |     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> |     release as part of our GPL enforcement efforts described above.</p> | ||||||
| 
 | 
 | ||||||
|     <p>Conservancy's preliminary investigation indicated that the operating |     <p>Conservancy's preliminary investigation indicated that the operating | ||||||
|  | @ -148,14 +148,14 @@ | ||||||
|           <li> the proprietary component “vmkernel”, which is |           <li> the proprietary component “vmkernel”, which is | ||||||
|             released in binary form only,</li> |             released in binary form only,</li> | ||||||
|             <li>the kernel module “vmklinux”, which contains modified Linux |             <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 |             <li>other kernel modules with device drivers, most of which are | ||||||
|             modified Linux drivers, and for which (at least some) source code |             modified Linux drivers, and for which (at least some) source code | ||||||
|               is provided.</li> |               is provided.</li> | ||||||
|         </ul> |         </ul> | ||||||
| 
 | 
 | ||||||
|     <p>Conservancy examined the incomplete CCS alongside the |     <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 “vmkernel” do make function calls to Linux's kernel code | ||||||
|       in the usual way for a single program written in C.</p></dd> |       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>, |            called <code>vmkdrivers/src_92/vmklinux_92/vmware/linux_pci.c</code>, | ||||||
|            which can be found in the “Open Source” release for |            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 |            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> | <pre> | ||||||
| if (unlikely( | if (unlikely( | ||||||
|   /* NOTE: vmk_PCIGetDeviceName is defined in vmvisor64-vmkernel */ |   /* NOTE: vmk_PCIGetDeviceName is defined in vmvisor64-vmkernel */ | ||||||
|  | @ -222,7 +223,7 @@ VMKAPI_MODULE_CALL_VOID(pciDevExt->moduleID, | ||||||
|                         linuxDev->driver->remove, |                         linuxDev->driver->remove, | ||||||
|                         linuxDev); |                         linuxDev); | ||||||
| </pre>         | </pre>         | ||||||
| </p> | 
 | ||||||
| <p>The function, <code>vmk_PCIGetDeviceName()</code> must be defined, with an | <p>The function, <code>vmk_PCIGetDeviceName()</code> must be defined, with an | ||||||
|       implementation, for this code above to work, or even compile. |       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>, |       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 | <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 |   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 |   <code>vmklinux_9</code> module.  Note the following output in the “SYMBOL | ||||||
|   TABLE” section: |   TABLE” section:</p> | ||||||
|  | 
 | ||||||
| <pre> | <pre> | ||||||
| 0000000000000000         *UND*  0000000000000000 vmk_PCIGetDeviceName | 0000000000000000         *UND*  0000000000000000 vmk_PCIGetDeviceName | ||||||
| </pre> | </pre> | ||||||
| 
 | 
 | ||||||
|  | <p> | ||||||
| …and the following lines found in the  “RELOCATION RECORDS FOR | …and the following lines found in the  “RELOCATION RECORDS FOR | ||||||
| [.text]” section: | [.text]” section: | ||||||
|  | </p> | ||||||
| 
 | 
 | ||||||
| <pre> | <pre> | ||||||
| 00000000000327ff R_X86_64_PC32     vmk_PCIGetDeviceName+0xfffffffffffffffc | 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 | 00000000000387e1 R_X86_64_PC32     vmk_PCIGetDeviceName+0xfffffffffffffffc | ||||||
| 000000000003cf40 R_X86_64_PC32     vmk_PCIGetDeviceName+0xfffffffffffffffc | 000000000003cf40 R_X86_64_PC32     vmk_PCIGetDeviceName+0xfffffffffffffffc | ||||||
| </pre> | </pre> | ||||||
| </p> |  | ||||||
| 
 | 
 | ||||||
| <p>The above two properties both suggest that the <code>vmklinux_9</code> | <p>The above two properties both suggest that the <code>vmklinux_9</code> | ||||||
|  module requires: (a) a definition of the <code>vmk_PCIGetDeviceName()</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’”. |   compressed data, was ‘vmvisor64-vmkernel.stripped’”. | ||||||
|   These findings strongly suggests this is an image of the |   These findings strongly suggests this is an image of the | ||||||
|   “vmkernel” component.  An <code>objdump -x</code> yields this |   “vmkernel” component.  An <code>objdump -x</code> yields this | ||||||
|   “SYMBOL TABLE” section: |   “SYMBOL TABLE” section:</p> | ||||||
|  | 
 | ||||||
| <pre> | <pre> | ||||||
| 000041800036a408 g     F .text  0000000000000137 vmk_PCIGetDeviceName | 000041800036a408 g     F .text  0000000000000137 vmk_PCIGetDeviceName | ||||||
| </pre> | </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> | for  <code>vmk_PCIGetDeviceName</code>.</p> | ||||||
| 
 | 
 | ||||||
| <p>Finally, after detailed searching, Conservancy found no evidence that any | <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> |   yields similar results as above.</p> | ||||||
| 
 | 
 | ||||||
| <p>Given this evidence and related contextual clues, the only logical | <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 |     <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 |  with <code>k.b00</code>, another binary object, to form a single running | ||||||
|  binary.</li> |  binary.</li> | ||||||
|  | @ -300,7 +304,6 @@ for  <code>vmk_PCIGetDeviceName</code>.</p> | ||||||
|       compliance requires source code (or an offer therefor) for the material |       compliance requires source code (or an offer therefor) for the material | ||||||
|         in <code>k.b00</code>.</li> |         in <code>k.b00</code>.</li> | ||||||
|     </ul> |     </ul> | ||||||
|     </p> |  | ||||||
| <p>The above is but one piece of evidence among many, but hopefully it helps | <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 |   to explain the types of “combined work” violations found in | ||||||
|   VMware's ESXi product.</p> |   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>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> |     <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> | <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> | <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> |   f679e81ffb2f92729917bbc64c2d541cf75b5b94.</li> | ||||||
| 
 | 
 | ||||||
| </ol> | </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> | <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> | <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> | <code>sb.v00</code>, similar to <code>misc_dri.v00</code> above.</li> | ||||||
| 
 | 
 | ||||||
| </ol> | </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 |   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 |   terms in great detail with the assistance of your own legal counsel before | ||||||
|   downloading the software and/or engaging in the process that Conservancy |   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