I'm working on a virtual appliance that requires some small client app (daemon type - no GUI), which we will develop and distribute along with this virt app, to be running on host machine. This client app makes sense only when user is running Linux as host OS. For Windows users that part of VApp functionality (which requires this client) doesn't make sense, so it doesn't 'restrict' user to Linux platform.
Is is OK w.r.t to this competition to require user to run this small client app on (Linux only) host for part of functionality within virtual app that depends on it ?
I don't speak for the official rules, but I'm pretty sure this is not allowed. Your submission has to be in the form of a VM, and indeed the main point of virtual appliances is that they are self-contained in a single VM (just like a physical compute appliance is self-contained in a single physical box).
As an analogy, imagine you are assembling a physical mail server appliance. The idea is you can plug it in and give it an IP address, and it will serve your mail with minimal to no configuration. The idea of needing to run a separate daemon process on a different physical machine kind of undermines the whole "appliance" concept.
In the case of a virtual appliance in a VM, the host machine is effectively an entirely separate computer from the guest (the fact that the host and guest share hardware is kind of an implementation detail).
Bottom line: your virtual appliance should run properly without needing to know anything at all about the host. I don't know what functionality your "client app" adds, but can you run whatever it is inside the appliance VM instead?
If it's not several of us are out in the cold, part
of our package system uses and updater for client
Can you explain in any more detail what your constraint is here? The idea is for all the packages and everything to be pre-installed inside the appliance VM. It's fine to have an updater, but the updater should be installed inside the VM so that the appliance VM is self-contained. Can you explain why this will be a problem for you?
Yes, virtual appliance needs to be self contained. But, this "client app" is required to know what packages are currently installed on host system. This way I can prevent unnecessary downloads. Does there exist an alternative? -- can you determince what packages are installed on host system from within virtual app?
Bottom line: your virtual appliance should run
properly without needing to know anything at all
about the host. I don't know what functionality your
"client app" adds, but can you run whatever it is
inside the appliance VM instead?
Well - maybe - but isn't this a little bit contraproductive?
You want VMs that are easy to use - very likely they will be used by Windows-users. What's wrong with having a one-time-configuration tool for the VM that is running on the host?