1# 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" 14DESCRIPTION = "\ 15open-vm-tools is a set of services and modules that enable several features in VMware products \ 16for better management of and seamless user interactions with guests.\ 17" 18SECTION = "vmware-tools" 19 20LICENSE = "LGPL-2.0-only & GPL-2.0-only & BSD-2-Clause & CDDL-1.0" 21LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac" 22LICENSE:modules/freebsd/vmblock = "BSD-2-Clause" 23LICENSE:modules/freebsd/vmmemctl = "GPL-2.0-only" 24LICENSE:modules/freebsd/vmxnet = "GPL-2.0-only" 25LICENSE:modules/linux = "GPL-2.0-only" 26LICENSE:modules/solaris = "CDDL-1.0" 27 28SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https;branch=master \ 29 file://tools.conf \ 30 file://vmtoolsd.service \ 31 file://vmtoolsd.init \ 32 file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \ 33 file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \ 34 file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \ 35 file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \ 36 file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \ 37 file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \ 38 file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \ 39 file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \ 40 file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \ 41 file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \ 42 file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \ 43 file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \ 44 file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \ 45 file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \ 46 file://0001-open-vm-tools-Correct-include-path-for-poll.h.patch;patchdir=.. \ 47 file://0001-Properly-check-authorization-on-incoming-guestOps-re.patch;patchdir=.. \ 48 " 49 50UPSTREAM_CHECK_GITTAGREGEX = "stable-(?P<pver>\d+(\.\d+)+)" 51 52SRC_URI:append:libc-musl = " file://0001-Add-resolv_compat.h-for-musl-builds.patch;patchdir=.. \ 53" 54 55SRCREV = "87abba1ce2356fc860eb9d0777d8e9de47427358" 56 57S = "${WORKDIR}/git/open-vm-tools" 58 59DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc" 60 61# open-vm-tools is supported only on x86. 62COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux' 63 64inherit autotools pkgconfig systemd update-rc.d 65 66SYSTEMD_SERVICE:${PN} = "vmtoolsd.service" 67 68EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \ 69 --disable-tests --without-gtkmm --without-xerces --without-pam \ 70 --disable-vgauth --disable-deploypkg \ 71 --without-root-privileges --without-kernel-modules --with-tirpc \ 72 --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d" 73 74NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3" 75X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf" 76PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}" 77 78# fuse gets implicitly detected; there is no --without-fuse option. 79PACKAGECONFIG[fuse] = ",,fuse" 80 81CFLAGS:append:toolchain-clang = " -Wno-address-of-packed-member" 82FILES:${PN} += "\ 83 ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \ 84 ${libdir}/open-vm-tools/plugins/common/lib*.so \ 85 ${sysconfdir}/vmware-tools/tools.conf \ 86" 87FILES:${PN}-locale += "${datadir}/open-vm-tools/messages" 88FILES:${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la" 89 90CONFFILES:${PN} += "${sysconfdir}/vmware-tools/tools.conf" 91 92RDEPENDS:${PN} = "util-linux libdnet fuse" 93 94do_install:append() { 95 if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then 96 install -d ${D}/sbin 97 ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs 98 fi 99 install -d ${D}${sysconfdir}/vmware-tools 100 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then 101 install -d ${D}${systemd_unitdir}/system 102 install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system 103 else 104 install -d ${D}${sysconfdir}/init.d 105 install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd 106 fi 107 install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf 108} 109 110do_configure:prepend() { 111 export CUSTOM_DNET_NAME=dnet 112 export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so 113} 114 115INITSCRIPT_PACKAGES = "${PN}" 116INITSCRIPT_NAME:${PN} = "vmtoolsd" 117INITSCRIPT_PARAMS:${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ." 118 119python() { 120 if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split(): 121 raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.') 122} 123