we try to generate an OVA appliance for VMware player/Fusion as well as ESXi/vSphere. We build the OVA manually, using an OVF based on an ovftool or ESXi export, a VMDK and a manifest (.mf) file with SHA1 hashes for the other two files, then adding those three into into a gzipped tarball with OVA ending.
Our first attempt was with an OVF generated via ovftool from a VMX that we successfully used on VMware player before. This OVA could be imported into VMware player successfully, but it failed to be imported to ESXi, directly or via vSphere, throwing an error about a mismatch between manifest file and content. The manifest file looked like this:
SHA1 (<name>.ovf) = <sha1> SHA1 (<name>.vmdk) = <sha1>
We compared it with an export from ESXi and found the spaces around the filename parenthesis to be missing. Removing them from the one above, generated by ovftool, allowed the appliance to be imported in ESXi.
We then generated a new OVF with some tuned hardware settings based on an ESXi export, where the spaces were missing expectedly. It imports fine on ESXi and vSphere, but fails with the manifest mismatch error on VMware player. Interestingly, adding the spaces does not solve it. We tried to compare with another ovftool VMX conversion with newer VMX version, which then as well didn't contain those spaces anymore, but SHA256 hashes instead. Trying to use SHA256 hashes within the other appliance (of course with correct hashes for the two files, double checked), with or without spaces still failed.
This all makes me think that the exact format as well as the used hashing algorithm highly depends not only on the VMware product, but also on the used OVF and VMX version strings defined in the OVF file: The latter is defined within the OVF as well, e.g. via <vssd:VirtualSystemType>vmx-13</vssd:VirtualSystemType> which indicates hardware version 13.
Is there an overview of the exact expected/functional manifest file format and supported hashing algorithm for each project, depending on OVF version, VMX version?