blob: c32d2c5b33d6dcb8cb2afe0c6a98ffa9d91406ae [file] [log] [blame]
Brad Bishopd7bf8c12018-02-25 22:55:05 -05001# This recipe is modified from the recipe originally found in the Open-Switch
2# repository:
3#
4# https://github.com/open-switch/ops-build
5# yocto/openswitch/meta-foss-openswitch/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.0.5.bb
6# Commit 9008de2d8e100f3f868c66765742bca9fa98f3f9
7#
8# The recipe packaging has been relicensed under the MIT license for inclusion
9# in meta-openembedded by agreement of the author (Diego Dompe).
10#
11
12SUMMARY = "Tools to enhance VMWare guest integration and performance"
13HOMEPAGE = "https://github.com/vmware/open-vm-tools"
14SECTION = "vmware-tools"
15
16LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
17LIC_FILES_CHKSUM = "file://LICENSE;md5=b66ba4cb4fc017682c95efc300410e79"
18LICENSE_modules/freebsd/vmblock = "BSD"
19LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
20LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
21LICENSE_modules/linux = "GPL-2.0"
22LICENSE_modules/solaris = "CDDL-1.0"
23
24SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
25 file://tools.conf \
26 file://vmtoolsd.service \
Brad Bishop316dfdd2018-06-25 12:45:53 -040027 file://vmtoolsd.init \
Brad Bishopd7bf8c12018-02-25 22:55:05 -050028 file://0001-configure.ac-don-t-use-dnet-config.patch \
29 file://0002-add-include-sys-sysmacros.h.patch \
30 file://0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch \
31 file://0002-include-poll.h-instead-of-obsolete-sys-poll.h.patch \
32 file://0003-Rename-poll.h-to-vm_poll.h.patch \
33 file://0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch \
34 file://0005-Use-configure-test-for-struct-timespec.patch \
35 file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \
36 file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \
37 file://0008-use-posix-strerror_r-unless-gnu.patch \
38 file://0011-Use-configure-test-for-sys-stat.h-include.patch \
39 "
40SRC_URI_append_libc-musl = "\
41 file://0009-Add-support-for-building-with-system-libtirpc.patch \
42 file://0010-gnu-ucontext.patch \
43 "
44SRCREV = "854c0bb374612f7e633b448ca273f970f154458b"
45
46S = "${WORKDIR}/git/open-vm-tools"
47
48DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps"
49DEPENDS_append_libc-musl = " libtirpc"
50
51# open-vm-tools is supported only on x86.
52COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
53
Brad Bishop316dfdd2018-06-25 12:45:53 -040054inherit autotools pkgconfig systemd update-rc.d
Brad Bishopd7bf8c12018-02-25 22:55:05 -050055
56SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
57
58EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
59 --disable-tests --without-gtkmm --without-xerces --without-pam \
60 --disable-grabbitmqproxy --disable-vgauth --disable-deploypkg \
61 --without-root-privileges --without-kernel-modules"
62
63NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
64X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
65PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
66
67# fuse gets implicitly detected; there is no --without-fuse option.
68PACKAGECONFIG[fuse] = ",,fuse"
69
70CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member"
71FILES_${PN} += "\
72 ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
73 ${libdir}/open-vm-tools/plugins/common/lib*.so \
74 ${sysconfdir}/vmware-tools/tools.conf \
75 "
76FILES_${PN}-locale += "${datadir}/open-vm-tools/messages"
77FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
78FILES_${PN}-dbg += "\
79 ${libdir}/open-vm-tools/plugins/common/.debug \
80 ${libdir}/open-vm-tools/plugins/vmsvc/.debug \
81 "
82
83CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
84
85RDEPENDS_${PN} = "util-linux libdnet fuse"
86
87do_install_append() {
88 ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
Brad Bishop316dfdd2018-06-25 12:45:53 -040089 install -d ${D}${sysconfdir}/vmware-tools
90 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
91 install -d ${D}${systemd_unitdir}/system
92 install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
93 else
94 install -d ${D}${sysconfdir}/init.d
95 install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
96 fi
Brad Bishopd7bf8c12018-02-25 22:55:05 -050097 install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
98}
99
100do_configure_prepend() {
101 export CUSTOM_DNET_NAME=dnet
102 export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
103}
104
Brad Bishop316dfdd2018-06-25 12:45:53 -0400105INITSCRIPT_PACKAGES = "${PN}"
106INITSCRIPT_NAME_${PN} = "vmtoolsd"
107INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
108
Brad Bishopd7bf8c12018-02-25 22:55:05 -0500109python() {
110 if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
111 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
112 raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
113}
114