diff options
author | Martin Kelly <mkelly@xevo.com> | 2017-07-11 11:49:34 -0700 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2017-07-17 13:41:03 +0000 |
commit | 31716c2d8f8d07e34aa48528bc0b123b1c70d351 (patch) | |
tree | 4c9820b94e91e9d291d940a413ebaaa00c99b9ae /meta-agl-bsp/recipes-support/open-vm-tools | |
parent | 6778887bf0059ca3f9fcbdcbb96c77797aff71e0 (diff) |
backport open-vm-tools recipe
Without open-vm-tools, VMWare guests are very slow. open-vm-tools was
recently added to meta-openembedded, so we should get it when Rocko is
released. Until then, this patch backports it.
Note that open-vm-tools has an optional dependency on fuse, so we need
to include the meta-filesystems layer too.
Bug-AGL: SPEC-739
Change-Id: Icc5bf7f10b8e21778ab7043dea8d340eb41a527c
Signed-off-by: Martin Kelly <mkelly@xevo.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/10163
Reviewed-by: Changhyeok Bae <changhyeok.bae@gmail.com>
Tested-by: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-build: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
ci-image-boot-test: Jenkins Job builder account <agl-jobbuilder@automotivelinux.org>
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-bsp/recipes-support/open-vm-tools')
5 files changed, 171 insertions, 0 deletions
diff --git a/meta-agl-bsp/recipes-support/open-vm-tools/files/tools.conf b/meta-agl-bsp/recipes-support/open-vm-tools/files/tools.conf new file mode 100644 index 000000000..f6cae70cc --- /dev/null +++ b/meta-agl-bsp/recipes-support/open-vm-tools/files/tools.conf @@ -0,0 +1,2 @@ +[guestinfo] +disable-perf-mon=1 diff --git a/meta-agl-bsp/recipes-support/open-vm-tools/files/vmtoolsd.service b/meta-agl-bsp/recipes-support/open-vm-tools/files/vmtoolsd.service new file mode 100644 index 000000000..d30e38055 --- /dev/null +++ b/meta-agl-bsp/recipes-support/open-vm-tools/files/vmtoolsd.service @@ -0,0 +1,11 @@ +[Unit] +Description=Open Virtual Machine Tools (VMware Tools) +ConditionVirtualization=vmware + +[Service] +ExecStart=/usr/bin/vmtoolsd +Restart=on-failure +KillSignal=SIGKILL + +[Install] +WantedBy=multi-user.target diff --git a/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch new file mode 100644 index 000000000..e9cb873f1 --- /dev/null +++ b/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch @@ -0,0 +1,41 @@ +From 929150608c16644695f19cd2e0cc8a06a41cd497 Mon Sep 17 00:00:00 2001 +From: Martin Kelly <mkelly@xevo.com> +Date: Fri, 7 Apr 2017 15:20:30 -0700 +Subject: [PATCH] configure.ac: don't use dnet-config + +The dnet-config tool doesn't know about cross-compilation, so it injects +-I/usr/include into the path, causing compiler errors. So instead find dnet via +-ldnet. + +Upstream-Status: Inappropriate [embedded specific] + +Signed-off-by: Martin Kelly <mkelly@xevo.com> +--- + configure.ac | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 3400b86..7d6119e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -942,7 +942,7 @@ if test "$with_dnet" = "yes"; then + AC_VMW_CHECK_LIB([dnet], + [DNET], + [], +- [dnet-config], ++ [], + [], + [dnet.h], + [intf_open], +@@ -952,7 +952,7 @@ if test "$with_dnet" = "yes"; then + + if test $have_dnet = "no"; then + AC_MSG_ERROR( +- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) ++ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net]) + fi + fi + +-- +2.1.4 + diff --git a/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch b/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch new file mode 100644 index 000000000..f905601d5 --- /dev/null +++ b/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch @@ -0,0 +1,33 @@ +From 5818acc8032e3247257730376e947330340a07b3 Mon Sep 17 00:00:00 2001 +From: Martin Kelly <mkelly@xevo.com> +Date: Mon, 22 May 2017 17:00:05 -0700 +Subject: [PATCH 2/2] add #include <sys/sysmacros.h> + +In newer glibc versions, the definition for major() has been moved to +sys/sysmacros.h, and using the older version in <sys/types.h> has been +deprecated. So, add an include for <sys/sysmacros.h>. + +Upstream-Status: Pending + +Signed-off-by: Martin Kelly <mkelly@xevo.com> +--- + lib/wiper/wiperPosix.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/open-vm-tools/lib/wiper/wiperPosix.c b/open-vm-tools/lib/wiper/wiperPosix.c +index d389eee..1f221fc 100644 +--- a/lib/wiper/wiperPosix.c ++++ b/lib/wiper/wiperPosix.c +@@ -40,6 +40,9 @@ + # include <libgen.h> + # endif /* __FreeBSD_version >= 500000 */ + #endif ++#if defined(__linux__) ++#include <sys/sysmacros.h> ++#endif + #include <unistd.h> + + #include "vmware.h" +-- +2.7.4 + diff --git a/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb b/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb new file mode 100644 index 000000000..65fbfc9e9 --- /dev/null +++ b/meta-agl-bsp/recipes-support/open-vm-tools/open-vm-tools_10.1.5.bb @@ -0,0 +1,84 @@ +# This recipe is modified from the recipe originally found in the Open-Switch +# repository: +# +# https://github.com/open-switch/ops-build +# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb +# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9 +# +# The recipe packaging has been relicensed under the MIT license for inclusion +# in meta-openembedded by agreement of the author (Diego Dompe). +# + +SUMMARY = "Tools to enhance VMWare guest integration and performance" +HOMEPAGE = "https://github.com/vmware/open-vm-tools" +SECTION = "vmware-tools" + +LICENSE = "LGPLv2.1 & GPLv2 & BSD & CDDLv1" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b66ba4cb4fc017682c95efc300410e79" +LICENSE_modules/freebsd/vmblock = "BSD" +LICENSE_modules/freebsd/vmmemctl = "GPLv2" +LICENSE_modules/freebsd/vmxnet = "GPLv2" +LICENSE_modules/linux = "GPLv2" +LICENSE_modules/solaris = "CDDLv1" + +SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \ + file://tools.conf \ + file://vmtoolsd.service \ + file://0001-configure.ac-don-t-use-dnet-config.patch \ + file://0002-add-include-sys-sysmacros.h.patch \ + " + +SRCREV = "854c0bb374612f7e633b448ca273f970f154458b" + +S = "${WORKDIR}/git/open-vm-tools" + +DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps" + +# open-vm-tools is supported only on x86. +COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' + +inherit autotools pkgconfig systemd + +SYSTEMD_SERVICE_${PN} = "vmtoolsd.service" + +EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \ + --disable-tests --without-gtkmm --without-xerces --without-pam \ + --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \ + --without-root-privileges --without-kernel-modules" + +NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3" +X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf" +PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}" + +# fuse gets implicitly detected; there is no --without-fuse option. +PACKAGECONFIG[fuse] = ",,fuse" + +FILES_${PN} += "\ + ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \ + ${libdir}/open-vm-tools/plugins/common/lib*.so \ + ${sysconfdir}/vmware-tools/tools.conf \ + " +FILES_${PN}-locale += "${datadir}/open-vm-tools/messages" +FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la" +FILES_${PN}-dbg += "\ + ${libdir}/open-vm-tools/plugins/common/.debug \ + ${libdir}/open-vm-tools/plugins/vmsvc/.debug \ + " + +CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf" + +RDEPENDS_${PN} = "util-linux libdnet fuse" + +do_install_append() { + ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs + install -d ${D}${systemd_unitdir}/system ${D}${sysconfdir}/vmware-tools + install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf +} + +do_configure_prepend() { + export CUSTOM_PROCPS_NAME=procps + export CUSTOM_PROCPS_LIBS=-L${STAGING_LIBDIR}/libprocps.so + export CUSTOM_DNET_NAME=dnet + export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so +} |