From 768d623df9e9d9f287fa196af0707b9ff175b284 Mon Sep 17 00:00:00 2001 From: Sergiusz Urbaniak Date: Sun, 18 Sep 2016 20:11:37 +0200 Subject: [PATCH] package: add openvmtools 10.0.7 --- configs/minikube_defconfig | 4 +- package/Config.in | 1 + package/openvmtools10/Config.in | 54 +++++++++++++++ package/openvmtools10/S10vmtoolsd | 33 +++++++++ package/openvmtools10/openvmtools.hash | 2 + package/openvmtools10/openvmtools.mk | 92 ++++++++++++++++++++++++++ package/openvmtools10/shutdown | 7 ++ package/openvmtools10/vmtoolsd.service | 14 ++++ 8 files changed, 205 insertions(+), 2 deletions(-) create mode 100644 package/openvmtools10/Config.in create mode 100644 package/openvmtools10/S10vmtoolsd create mode 100644 package/openvmtools10/openvmtools.hash create mode 100644 package/openvmtools10/openvmtools.mk create mode 100644 package/openvmtools10/shutdown create mode 100644 package/openvmtools10/vmtoolsd.service diff --git a/configs/minikube_defconfig b/configs/minikube_defconfig index 5f18d4082375..dfaa70f7a0be 100644 --- a/configs/minikube_defconfig +++ b/configs/minikube_defconfig @@ -26,8 +26,6 @@ BR2_PACKAGE_OPENSSH=y BR2_PACKAGE_SOCAT=y BR2_PACKAGE_SUDO=y BR2_PACKAGE_ACL=y -BR2_PACKAGE_OPENVMTOOLS=y -BR2_PACKAGE_OPENVMTOOLS_PROCPS=y # BR2_PACKAGE_SYSTEMD_HWDB is not set BR2_PACKAGE_SYSTEMD_LOGIND=y BR2_PACKAGE_SYSTEMD_MACHINED=y @@ -36,3 +34,5 @@ BR2_PACKAGE_UTIL_LINUX_NSENTER=y BR2_TARGET_ROOTFS_CPIO_BZIP2=y BR2_TARGET_ROOTFS_ISO9660=y BR2_TARGET_SYSLINUX=y +BR2_PACKAGE_OPENVMTOOLS10=y +BR2_PACKAGE_OPENVMTOOLS10_PROCPS=y diff --git a/package/Config.in b/package/Config.in index cf3a4c791aff..e93510dd58fa 100644 --- a/package/Config.in +++ b/package/Config.in @@ -3,4 +3,5 @@ menu "System tools" source "$BR2_EXTERNAL/package/automount/Config.in" source "$BR2_EXTERNAL/package/docker-bin/Config.in" source "$BR2_EXTERNAL/package/cni-bin/Config.in" + source "$BR2_EXTERNAL/package/openvmtools10/Config.in" endmenu diff --git a/package/openvmtools10/Config.in b/package/openvmtools10/Config.in new file mode 100644 index 000000000000..684eb4e3e5cf --- /dev/null +++ b/package/openvmtools10/Config.in @@ -0,0 +1,54 @@ +config BR2_PACKAGE_OPENVMTOOLS10 + bool "openvmtools10" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_USE_MMU # libglib2 + depends on BR2_USE_WCHAR # libglib2 + depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2 + depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC + depends on BR2_ENABLE_LOCALE + depends on !BR2_TOOLCHAIN_USES_UCLIBC + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_LIBDNET + help + Open Virtual Machine Tools for VMware guest OS + + http://open-vm-tools.sourceforge.net/ + + ICU locales, Xerces, and X11 tools are currently not supported. + + NOTE: Support for vmblock-fuse will be enabled in openvmtools if the + libfuse package is selected. + +if BR2_PACKAGE_OPENVMTOOLS10 + +config BR2_PACKAGE_OPENVMTOOLS10_PROCPS + bool "procps support" + depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + select BR2_PACKAGE_PROCPS_NG + help + Enable support for procps / meminfo + +comment "procps support needs BR2_PACKAGE_BUSYBOX_SHOW_OTHERS" + depends on !BR2_PACKAGE_BUSYBOX_SHOW_OTHERS + +config BR2_PACKAGE_OPENVMTOOLS10_PAM + bool "PAM support" + select BR2_PACKAGE_LINUX_PAM + # linux-pam needs locale and wchar, but we already have this + # dependency on the main symbol, above. + depends on !BR2_STATIC_LIBS + depends on !BR2_TOOLCHAIN_USES_MUSL # linux-pam + help + Support for PAM in openvmtools + +comment "PAM support needs a glibc toolchain w/ dynamic library" + depends on BR2_STATIC_LIBS || BR2_TOOLCHAIN_USES_MUSL + +endif + +comment "openvmtools needs a glibc or musl toolchain w/ wchar, threads, RPC, locale" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_USE_MMU + depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \ + !BR2_TOOLCHAIN_HAS_NATIVE_RPC || !BR2_ENABLE_LOCALE || \ + BR2_TOOLCHAIN_USES_UCLIBC diff --git a/package/openvmtools10/S10vmtoolsd b/package/openvmtools10/S10vmtoolsd new file mode 100644 index 000000000000..6afb9ca08ac0 --- /dev/null +++ b/package/openvmtools10/S10vmtoolsd @@ -0,0 +1,33 @@ +#!/bin/sh +# +# Starts vmtoolsd for openvmtools +# + +EXEC="/usr/bin/vmtoolsd" +ARGS="-b" +PID="/var/run/vmtoolsd.pid" + +case "$1" in + start) + printf "Starting vmtoolsd: " + start-stop-daemon -S -q -x $EXEC -- $ARGS $PID + if [ $? != 0 ]; then + echo "FAILED" + exit 1 + else + echo "OK" + fi + ;; + stop) + printf "Stopping vmtoolsd: " + start-stop-daemon -K -q -p $PID + echo "OK" + ;; + restart|reload) + $0 stop + $0 start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 +esac diff --git a/package/openvmtools10/openvmtools.hash b/package/openvmtools10/openvmtools.hash new file mode 100644 index 000000000000..d5f630ed680e --- /dev/null +++ b/package/openvmtools10/openvmtools.hash @@ -0,0 +1,2 @@ +# locally computed +sha256 87d76dc3affd39dccfae80c7210ac89e8f14cb493a651709780f67b1b5a92ec8 open-vm-tools-stable-10.0.7.tar.gz diff --git a/package/openvmtools10/openvmtools.mk b/package/openvmtools10/openvmtools.mk new file mode 100644 index 000000000000..2864c6e3cd40 --- /dev/null +++ b/package/openvmtools10/openvmtools.mk @@ -0,0 +1,92 @@ +################################################################################ +# +# openvmtools +# +################################################################################ + +OPENVMTOOLS10_VERSION = stable-10.0.7 +OPENVMTOOLS10_SITE = $(call github,vmware,open-vm-tools,$(OPENVMTOOLS10_VERSION)) +OPENVMTOOLS10_SUBDIR = open-vm-tools +OPENVMTOOLS10_LICENSE = LGPLv2.1 +OPENVMTOOLS10_LICENSE_FILES = $(OPENVMTOOLS10_SUBDIR)/COPYING +# Autoreconf needed or config/missing will run configure again at buildtime + +define OPENVMTOOLS10_RUN_AUTOCONF + cd $(@D)/open-vm-tools; $(HOST_DIR)/usr/bin/autoreconf -i +endef + +OPENVMTOOLS10_PRE_PATCH_HOOKS += OPENVMTOOLS10_RUN_AUTOCONF + +OPENVMTOOLS10_CONF_OPTS = --with-dnet \ + --without-icu --without-x --without-gtk2 \ + --without-gtkmm --without-kernel-modules \ + --disable-deploypkg --without-xerces +OPENVMTOOLS10_CONF_ENV += CUSTOM_DNET_CPPFLAGS=" " +OPENVMTOOLS10_DEPENDENCIES = libglib2 libdnet + +# When libfuse is available, openvmtools can build vmblock-fuse, so +# make sure that libfuse gets built first +ifeq ($(BR2_PACKAGE_LIBFUSE),y) +OPENVMTOOLS10_DEPENDENCIES += libfuse +endif + +ifeq ($(BR2_PACKAGE_OPENSSL),y) +OPENVMTOOLS10_CONF_OPTS += --with-ssl +OPENVMTOOLS10_DEPENDENCIES += openssl +else +OPENVMTOOLS10_CONF_OPTS += --without-ssl +endif + +ifeq ($(BR2_PACKAGE_OPENVMTOOLS10_PROCPS),y) +OPENVMTOOLS10_CONF_OPTS += --with-procps +OPENVMTOOLS10_DEPENDENCIES += procps-ng +else +OPENVMTOOLS10_CONF_OPTS += --without-procps +endif + +ifeq ($(BR2_PACKAGE_OPENVMTOOLS10_PAM),y) +OPENVMTOOLS10_CONF_OPTS += --with-pam +OPENVMTOOLS10_DEPENDENCIES += linux-pam +else +OPENVMTOOLS10_CONF_OPTS += --without-pam +endif + +# configure needs execution permission +define OPENVMTOOLS10_PRE_CONFIGURE_CHMOD + chmod 0755 $(@D)/$(OPENVMTOOLS10_SUBDIR)/configure +endef + +OPENVMTOOLS10_PRE_CONFIGURE_HOOKS += OPENVMTOOLS10_PRE_CONFIGURE_CHMOD + +# symlink needed by lib/system/systemLinux.c (or will cry in /var/log/messages) +# defined in lib/misc/hostinfoPosix.c +# /sbin/shutdown needed for Guest OS restart/shutdown from hypervisor +define OPENVMTOOLS10_POST_INSTALL_TARGET_THINGIES + ln -fs os-release $(TARGET_DIR)/etc/lfs-release + if [ ! -e $(TARGET_DIR)/sbin/shutdown ]; then \ + $(INSTALL) -D -m 755 package/openvmtools/shutdown \ + $(TARGET_DIR)/sbin/shutdown; \ + fi + + mkdir -p $(TARGET_DIR)/usr/local/bin + + ln -fs ../../bin/vmhgfs-fuse \ + $(TARGET_DIR)/usr/local/bin/vmhgfs-fuse +endef + +OPENVMTOOLS10_POST_INSTALL_TARGET_HOOKS += OPENVMTOOLS10_POST_INSTALL_TARGET_THINGIES + +define OPENVMTOOLS10_INSTALL_INIT_SYSV + $(INSTALL) -D -m 755 package/openvmtools/S10vmtoolsd \ + $(TARGET_DIR)/etc/init.d/S10vmtoolsd +endef + +define OPENVMTOOLS10_INSTALL_INIT_SYSTEMD + $(INSTALL) -D -m 644 package/openvmtools/vmtoolsd.service \ + $(TARGET_DIR)/usr/lib/systemd/system/vmtoolsd.service + mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + ln -fs ../../../../usr/lib/systemd/system/vmtoolsd.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/vmtoolsd.service +endef + +$(eval $(autotools-package)) diff --git a/package/openvmtools10/shutdown b/package/openvmtools10/shutdown new file mode 100644 index 000000000000..bca9765a387e --- /dev/null +++ b/package/openvmtools10/shutdown @@ -0,0 +1,7 @@ +#!/bin/sh +#compatibility script for openvmtools +if [ "$1" == "-r" ]; then +/sbin/reboot +else +/sbin/poweroff +fi diff --git a/package/openvmtools10/vmtoolsd.service b/package/openvmtools10/vmtoolsd.service new file mode 100644 index 000000000000..17a4df44c2d1 --- /dev/null +++ b/package/openvmtools10/vmtoolsd.service @@ -0,0 +1,14 @@ +[Unit] +Description=vmtoolsd for openvmtools +After=syslog.target network.target + +[Service] +Type=forking +PIDFile=/var/run/vmtoolsd.pid +ExecStart=/usr/bin/vmtoolsd -b /var/run/vmtoolsd.pid +Restart=on-failure +KillMode=process +KillSignal=SIGKILL + +[Install] +WantedBy=multi-user.target