open-vm-tools_11.0.1.bb 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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. SUMMARY = "Tools to enhance VMWare guest integration and performance"
  12. HOMEPAGE = "https://github.com/vmware/open-vm-tools"
  13. SECTION = "vmware-tools"
  14. LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
  15. LIC_FILES_CHKSUM = "file://LICENSE;md5=559317809c5444fb39ceaf6ac45c43ac"
  16. LICENSE_modules/freebsd/vmblock = "BSD"
  17. LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
  18. LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
  19. LICENSE_modules/linux = "GPL-2.0"
  20. LICENSE_modules/solaris = "CDDL-1.0"
  21. SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
  22. file://tools.conf \
  23. file://vmtoolsd.service \
  24. file://vmtoolsd.init \
  25. file://0001-configure.ac-don-t-use-dnet-config.patch;patchdir=.. \
  26. file://0002-add-include-sys-sysmacros.h.patch;patchdir=.. \
  27. file://0003-Use-configure-test-for-struct-timespec.patch;patchdir=.. \
  28. file://0004-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch;patchdir=.. \
  29. file://0005-Use-configure-to-test-for-feature-instead-of-platfor.patch;patchdir=.. \
  30. file://0006-Use-configure-test-for-sys-stat.h-include.patch;patchdir=.. \
  31. file://0007-Fix-subdir-objects-configure-error.patch;patchdir=.. \
  32. file://0008-include-poll.h-instead-of-sys-poll.h.patch;patchdir=.. \
  33. file://0009-Rename-poll.h-to-vm_poll.h.patch;patchdir=.. \
  34. file://0010-use-posix-strerror_r-unless-on-gnu-libc-system.patch;patchdir=.. \
  35. file://0011-Use-uintmax_t-for-handling-rlim_t.patch;patchdir=.. \
  36. file://0012-Use-off64_t-instead-of-__off64_t.patch;patchdir=.. \
  37. file://0013-misc-Do-not-print-NULL-string-into-logs.patch;patchdir=.. \
  38. file://0001-GitHub-Issue-367.-Remove-references-to-deprecated-G_.patch;patchdir=.. \
  39. file://0001-Make-HgfsConvertFromNtTimeNsec-aware-of-64-bit-time_.patch;patchdir=.. \
  40. file://0002-hgfsServerLinux-Consider-64bit-time_t-possibility.patch;patchdir=.. \
  41. file://0001-utilBacktrace-Ignore-Warray-bounds.patch;patchdir=.. \
  42. file://0001-hgfsmounter-Makefile.am-support-usrmerge.patch;patchdir=.. \
  43. "
  44. SRCREV = "d3edfd142a81096f9f58aff17d84219b457f4987"
  45. S = "${WORKDIR}/git/open-vm-tools"
  46. DEPENDS = "glib-2.0 glib-2.0-native util-linux libdnet procps libtirpc"
  47. # open-vm-tools is supported only on x86.
  48. COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
  49. inherit autotools pkgconfig systemd update-rc.d
  50. SYSTEMD_SERVICE_${PN} = "vmtoolsd.service"
  51. EXTRA_OECONF = "--without-icu --disable-multimon --disable-docs \
  52. --disable-tests --without-gtkmm --without-xerces --without-pam \
  53. --disable-vgauth --disable-deploypkg \
  54. --without-root-privileges --without-kernel-modules --with-tirpc \
  55. --with-udev-rules-dir=${nonarch_base_libdir}/udev/rules.d"
  56. NO_X11_FLAGS = "--without-x --without-gtk2 --without-gtk3"
  57. X11_DEPENDS = "libxext libxi libxrender libxrandr libxtst gtk+ gdk-pixbuf"
  58. PACKAGECONFIG[x11] = ",${NO_X11_FLAGS},${X11_DEPENDS}"
  59. # fuse gets implicitly detected; there is no --without-fuse option.
  60. PACKAGECONFIG[fuse] = ",,fuse"
  61. CFLAGS_append_toolchain-clang = " -Wno-address-of-packed-member"
  62. FILES_${PN} += "\
  63. ${libdir}/open-vm-tools/plugins/vmsvc/lib*.so \
  64. ${libdir}/open-vm-tools/plugins/common/lib*.so \
  65. ${sysconfdir}/vmware-tools/tools.conf \
  66. "
  67. FILES_${PN}-locale += "${datadir}/open-vm-tools/messages"
  68. FILES_${PN}-dev += "${libdir}/open-vm-tools/plugins/common/lib*.la"
  69. CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
  70. RDEPENDS_${PN} = "util-linux libdnet fuse"
  71. do_install_append() {
  72. if ! ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
  73. install -d ${D}/sbin
  74. ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
  75. fi
  76. install -d ${D}${sysconfdir}/vmware-tools
  77. if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
  78. install -d ${D}${systemd_unitdir}/system
  79. install -m 644 ${WORKDIR}/*.service ${D}${systemd_unitdir}/system
  80. else
  81. install -d ${D}${sysconfdir}/init.d
  82. install -m 0755 ${WORKDIR}/vmtoolsd.init ${D}${sysconfdir}/init.d/vmtoolsd
  83. fi
  84. install -m 0644 ${WORKDIR}/tools.conf ${D}${sysconfdir}/vmware-tools/tools.conf
  85. }
  86. do_configure_prepend() {
  87. export CUSTOM_DNET_NAME=dnet
  88. export CUSTOM_DNET_LIBS=-L${STAGING_LIBDIR}/libdnet.so
  89. }
  90. INITSCRIPT_PACKAGES = "${PN}"
  91. INITSCRIPT_NAME_${PN} = "vmtoolsd"
  92. INITSCRIPT_PARAMS_${PN} = "start 90 2 3 4 5 . stop 60 0 1 6 ."
  93. python() {
  94. if 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
  95. 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
  96. raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
  97. }