blob: 116ff81a3d0675b5be60eaea893435ba3d29f248 [file] [log] [blame]
Brad Bishop19323692019-04-05 15:28:33 -04001# 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"
Andrew Geisslere34f8962021-04-15 15:53:51 -050014DESCRIPTION = "\
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"
Brad Bishop19323692019-04-05 15:28:33 -040018SECTION = "vmware-tools"
19
20LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
21LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
Patrick Williams213cb262021-08-07 19:21:33 -050022LICENSE:modules/freebsd/vmblock = "BSD"
23LICENSE:modules/freebsd/vmmemctl = "GPL-2.0"
24LICENSE:modules/freebsd/vmxnet = "GPL-2.0"
25LICENSE:modules/linux = "GPL-2.0"
26LICENSE:modules/solaris = "CDDL-1.0"
Brad Bishop19323692019-04-05 15:28:33 -040027
28SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
Brad Bishop15ae2502019-06-18 21:44:24 -040029 file://tools.conf \
30 file://vmtoolsd.service \
31 file://vmtoolsd.init \
32 file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
Brad Bishop15ae2502019-06-18 21:44:24 -040033 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=.. \
Brad Bishop87b3cb82019-11-15 16:35:37 -050044 file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \
45 file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
Brad Bishop0e2770c2020-01-21 07:31:46 -050046 file://0001-hgfsmounter-Makefile.am-support-usrmerge.patch;patchdir=.. \
Andrew Geisslere34f8962021-04-15 15:53:51 -050047 file://0001-pollGtk-Fix-volatile-qualifier-exposed-incorrectly.patch;patchdir=.. \
Brad Bishop15ae2502019-06-18 21:44:24 -040048"
Brad Bishop87b3cb82019-11-15 16:35:37 -050049
Patrick Williams213cb262021-08-07 19:21:33 -050050SRC_URI:append:libc-musl = " file://0001-Add-resolv_compat.h-for-musl-builds.patch;patchdir=.. \
Andrew Geisslere34f8962021-04-15 15:53:51 -050051"
52
53SRCREV = "7ae57c3c7c1f68c74637ad009673dae94ee52570"
Brad Bishop19323692019-04-05 15:28:33 -040054
55S = "${WORKDIR}/git/open-vm-tools"
56
57DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
58
59# open-vm-tools is supported only on x86.
60COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
61
62inherit autotools pkgconfig systemd update-rc.d
63
Patrick Williams213cb262021-08-07 19:21:33 -050064SYSTEMD_SERVICE:${PN} = "vmtoolsd.service"
Brad Bishop19323692019-04-05 15:28:33 -040065
66EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
67 --disable-tests --without-gtkmm --without-xerces --without-pam \
Brad Bishop2d39a062019-10-28 08:33:36 -040068 --disable-vgauth --disable-deploypkg \
Brad Bishop0e2770c2020-01-21 07:31:46 -050069 --without-root-privileges --without-kernel-modules --with-tirpc \
70 --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
Brad Bishop19323692019-04-05 15:28:33 -040071
72NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
73X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
74PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
75
76# fuse gets implicitly detected; there is no --without-fuse option.
77PACKAGECONFIG[fuse] = ",,fuse"
78
Patrick Williams213cb262021-08-07 19:21:33 -050079CFLAGS:append:toolchain-clang = " -Wno-address-of-packed-member"
80FILES:${PN} += "\
Brad Bishop19323692019-04-05 15:28:33 -040081 ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
82 ${libdir}/open-vm-tools/plugins/common/lib*.so \
83 ${sysconfdir}/vmware-tools/tools.conf \
84"
Patrick Williams213cb262021-08-07 19:21:33 -050085FILES:${PN}-locale += "${datadir}/open-vm-tools/messages"
86FILES:${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
Brad Bishop19323692019-04-05 15:28:33 -040087
Patrick Williams213cb262021-08-07 19:21:33 -050088CONFFILES:${PN} += "${sysconfdir}/vmware-tools/tools.conf"
Brad Bishop19323692019-04-05 15:28:33 -040089
Patrick Williams213cb262021-08-07 19:21:33 -050090RDEPENDS:${PN} = "util-linux libdnet fuse"
Brad Bishop19323692019-04-05 15:28:33 -040091
Patrick Williams213cb262021-08-07 19:21:33 -050092do_install:append() {
Brad Bishop0e2770c2020-01-21 07:31:46 -050093 if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
94 install -d ${D}/sbin
95 ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
96 fi
Brad Bishop19323692019-04-05 15:28:33 -040097 install -d ${D}${sysconfdir}/vmware-tools
98 if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
99 install -d ${D}${systemd_unitdir}/system
100 install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
101 else
102 install -d ${D}${sysconfdir}/init.d
103 install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
104 fi
105 install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
106}
107
Patrick Williams213cb262021-08-07 19:21:33 -0500108do_configure:prepend() {
Brad Bishop19323692019-04-05 15:28:33 -0400109 export CUSTOM_DNET_NAME=dnet
110 export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
111}
112
113INITSCRIPT_PACKAGES = "${PN}"
Patrick Williams213cb262021-08-07 19:21:33 -0500114INITSCRIPT_NAME:${PN} = "vmtoolsd"
115INITSCRIPT_PARAMS:${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
Brad Bishop19323692019-04-05 15:28:33 -0400116
117python() {
Andrew Geissler32b11992021-03-31 13:37:05 -0500118 if 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
119 raise bb.parse.SkipRecipe('Requires meta-filesystems to be present to provide fuse.')
Brad Bishop19323692019-04-05 15:28:33 -0400120}