package/linux-tools: add hyperv integration services
authorPascal de Bruijn <p.debruijn@unilogic.nl>
Fri, 3 Jan 2020 19:57:05 +0000 (20:57 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 4 Jan 2020 15:08:34 +0000 (16:08 +0100)
commit2703383c72011d38a1e3559cb7a5a2b0071b35c6
treedc978d5aa1401b7a3b1b2a1b6a45955f89565c90
parentb02afdf32feb841c2666cbf3eab2f6d34b0474f2
package/linux-tools: add hyperv integration services

The hyperv integration services offer convenience features for guest
operating systems running on the microsoft hyperv virtualization
platform. They roughly are for HyperV what openvmtools are for VMWare.

The installed binary names are derived from what seems common in large
distros like RedHat:

  linux kernel source name -> installed binary name
             hv_vss_daemon -> hypervvssd
             hv_kvp_daemon -> hypervkvpd
           hv_fcopy_daemon -> hypervfcopyd

Each tool was introduced at different points in the kernel history, so
we need to check each of them.

We provide a single init script that is responsible for starting all
enabled programs. The global status will be the status of the last
program to fail to start, or empty (i.e. success) if they all started
successfuly.

However, we provide one systemd unit per program, because it is not easy
to use a single unit to start (and monitor) more than one executable.
Additionally, we do not provide a template that is filled at tinstall
time either, because it does not gain much (three simple units vs. a
template and some replacement code in the .mk).

Finally, the key-value daemon uses a few helper scripts to get/set the
network config. All are optional (their presence is checked before
running them), but one, hv_set_ifconfig. However, it is not strictly
speaking required either, so we just symlink it to /bin/true to avoid
any warning at runtime. Providing actual helpers is left to the end
user, to adapt to their own environment.

Signed-off-by: Pascal de Bruijn <p.debruijn@unilogic.nl>
[yann.morin.1998@free.fr:
  - aggregate all three tools in a single sub-package
  - introduce the main HV option, use a sub-option for each tool
  - aggregate the three init scripts into one
  - don't install the helpers; symlink the mandatory one
  - don't create symlinks for systemd units (systemctl preset-all does
    it for us now)
  - expand commit log
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
DEVELOPERS
package/linux-tools/Config.in
package/linux-tools/S10hyperv [new file with mode: 0644]
package/linux-tools/hypervfcopyd.service [new file with mode: 0644]
package/linux-tools/hypervkvpd.service [new file with mode: 0644]
package/linux-tools/hypervvssd.service [new file with mode: 0644]
package/linux-tools/linux-tool-hv.mk.in [new file with mode: 0644]