openvmtools: new package
New package: openvmtools [Peter: add patch to fix compilation against modern glib versions] Signed-off-by: Karoly Kasza <kaszak@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
parent
1c102abb56
commit
4288da4bb0
|
@ -1172,6 +1172,7 @@ endif
|
|||
source "package/ncdu/Config.in"
|
||||
source "package/numactl/Config.in"
|
||||
source "package/nut/Config.in"
|
||||
source "package/openvmtools/Config.in"
|
||||
source "package/powerpc-utils/Config.in"
|
||||
source "package/polkit/Config.in"
|
||||
if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
|
||||
|
|
61
package/openvmtools/Config.in
Normal file
61
package/openvmtools/Config.in
Normal file
|
@ -0,0 +1,61 @@
|
|||
config BR2_PACKAGE_OPENVMTOOLS
|
||||
bool "openvmtools"
|
||||
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_LARGEFILE
|
||||
depends on BR2_ENABLE_LOCALE
|
||||
select BR2_PACKAGE_LIBGLIB2
|
||||
help
|
||||
Open Virtual Machine Tools for VMware guest OS
|
||||
|
||||
http://open-vm-tools.sourceforge.net/
|
||||
|
||||
ICU locales 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_OPENVMTOOLS
|
||||
|
||||
config BR2_PACKAGE_OPENVMTOOLS_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_OPENVMTOOLS_DNET
|
||||
bool "dnet support"
|
||||
depends on BR2_INET_IPV6
|
||||
select BR2_PACKAGE_LIBDNET
|
||||
help
|
||||
Enable support for libdnet / nicinfo
|
||||
|
||||
comment "dnet support needs a toolchain w/ IPv6"
|
||||
depends on !BR2_INET_IPV6
|
||||
|
||||
config BR2_PACKAGE_OPENVMTOOLS_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_PREFER_STATIC_LIB
|
||||
help
|
||||
Support for PAM in openvmtools
|
||||
|
||||
comment "PAM support needs a toolchain w/ dynamic library"
|
||||
depends on BR2_PREFER_STATIC_LIB
|
||||
|
||||
endif
|
||||
|
||||
comment "openvmtools needs a toolchain w/ wchar, threads, RPC, largefile, 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_LARGEFILE || !BR2_ENABLE_LOCALE
|
33
package/openvmtools/S10vmtoolsd
Normal file
33
package/openvmtools/S10vmtoolsd
Normal file
|
@ -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)
|
||||
echo -n "Starting vmtoolsd: "
|
||||
start-stop-daemon -S -q -x $EXEC -- $ARGS $PID
|
||||
if [ $? != 0 ]; then
|
||||
echo "FAILED"
|
||||
exit 1
|
||||
else
|
||||
echo "OK"
|
||||
fi
|
||||
;;
|
||||
stop)
|
||||
echo -n "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
|
26
package/openvmtools/openvmtools-01-has_bsd_printf.patch
Normal file
26
package/openvmtools/openvmtools-01-has_bsd_printf.patch
Normal file
|
@ -0,0 +1,26 @@
|
|||
lib/misc/msgList.c: missing #ifdef
|
||||
|
||||
This macro checks for BSD style printf(), which is not present
|
||||
when compiling for uClibc. The linked functions are unnecessary in
|
||||
this case, and they break compilation.
|
||||
|
||||
Signed-off-by: Karoly Kasza <kaszak@gmail.com>
|
||||
|
||||
--- open-vm-tools-9.4.6-1770165.orig/lib/misc/msgList.c 2014-07-02 00:21:14.000000000 +0200
|
||||
+++ open-vm-tools-9.4.6-1770165/lib/misc/msgList.c 2014-07-29 13:40:40.000000000 +0200
|
||||
@@ -487,6 +487,7 @@
|
||||
return messages->id;
|
||||
}
|
||||
|
||||
+#ifdef HAS_BSD_PRINTF
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
||||
@@ -566,6 +567,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#endif
|
||||
|
||||
/*
|
||||
*----------------------------------------------------------------------
|
21
package/openvmtools/openvmtools-02-network_script.patch
Normal file
21
package/openvmtools/openvmtools-02-network_script.patch
Normal file
|
@ -0,0 +1,21 @@
|
|||
scripts/linux/network: exit normally if no network control script
|
||||
|
||||
When using suspend/resume from the hypervisor, openvmtools checks for the
|
||||
networking script, and exists with an error if not found, making the hypervisor
|
||||
raise a warning message. This workaround silences that error message.
|
||||
|
||||
Signed-off-by: Karoly Kasza <kaszak@gmail.com>
|
||||
|
||||
--- open-vm-tools-9.4.6-1770165.orig/scripts/linux/network 2014-07-02 00:21:14.000000000 +0200
|
||||
+++ open-vm-tools-9.4.6-1770165/scripts/linux/network 2014-08-07 16:34:21.963514273 +0200
|
||||
@@ -88,7 +88,9 @@
|
||||
run_network_script()
|
||||
{
|
||||
script=`find_networking_script`
|
||||
- [ "$script" != "error" ] || Panic "Cannot find system networking script."
|
||||
+# [ "$script" != "error" ] || Panic "Cannot find system networking script."
|
||||
+# Modified for buildroot
|
||||
+ [ "$script" != "error" ] || exit 0
|
||||
|
||||
# Using SysV "service" if it exists, otherwise fall back to run the script directly
|
||||
service=`which service 2>/dev/null`
|
|
@ -0,0 +1,28 @@
|
|||
conditionally define g_info
|
||||
|
||||
glib also defines a g_info macro since 2.39.2, conflicting with the one in
|
||||
openvmtools:
|
||||
|
||||
https://git.gnome.org/browse/glib/commit/?h=glib-2-40&id=36f1a4ce7ed6df6aa8
|
||||
|
||||
Patch from Fedora:
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1063847
|
||||
http://pkgs.fedoraproject.org/cgit/open-vm-tools.git/tree/g_info_redefine.patch
|
||||
|
||||
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
|
||||
|
||||
diff -uNr open-vm-tools-9.4.0-1280544.orig/lib/include/vmware/tools/log.h open-vm-tools-9.4.0-1280544/lib/include/vmware/tools/log.h
|
||||
--- open-vm-tools-9.4.0-1280544.orig/lib/include/vmware/tools/log.h 2013-09-23 19:51:10.000000000 +0400
|
||||
+++ open-vm-tools-9.4.0-1280544/lib/include/vmware/tools/log.h 2014-02-18 10:56:50.368604176 +0400
|
||||
@@ -134,7 +134,9 @@
|
||||
*******************************************************************************
|
||||
*/
|
||||
|
||||
-#define g_info(fmt, ...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
|
||||
+#if !defined(g_info)
|
||||
+# define g_info(fmt, ...) g_log(G_LOG_DOMAIN, G_LOG_LEVEL_INFO, fmt, ## __VA_ARGS__)
|
||||
+#endif
|
||||
|
||||
|
||||
/*
|
79
package/openvmtools/openvmtools.mk
Normal file
79
package/openvmtools/openvmtools.mk
Normal file
|
@ -0,0 +1,79 @@
|
|||
################################################################################
|
||||
#
|
||||
# openvmtools
|
||||
#
|
||||
################################################################################
|
||||
|
||||
OPENVMTOOLS_VERSION = 9.4.6-1770165
|
||||
OPENVMTOOLS_SOURCE = open-vm-tools-$(OPENVMTOOLS_VERSION).tar.gz
|
||||
OPENVMTOOLS_SITE = http://downloads.sourceforge.net/project/open-vm-tools/open-vm-tools/stable-9.4.x
|
||||
OPENVMTOOLS_LICENSE = LGPLv2.1
|
||||
OPENVMTOOLS_LICENSE_FILES = COPYING
|
||||
# Autoreconf needed because package is distributed without a configure script
|
||||
# See http://sourceforge.net/p/open-vm-tools/mailman/message/32550385/
|
||||
OPENVMTOOLS_AUTORECONF = YES
|
||||
OPENVMTOOLS_CONF_OPT = --without-icu --without-x --without-gtk2 --without-gtkmm --without-kernel-modules
|
||||
# -Wno-deprecated-declarations is a workaround for a bug in open-vm-tools
|
||||
# See http://sourceforge.net/p/open-vm-tools/mailman/message/31473171/
|
||||
OPENVMTOOLS_CONF_ENV = CFLAGS="$(TARGET_CFLAGS) -Wno-deprecated-declarations"
|
||||
|
||||
OPENVMTOOLS_DEPENDENCIES = libglib2
|
||||
|
||||
# When libfuse is available, openvmtools can build vmblock-fuse, so
|
||||
# make sure that libfuse gets built first
|
||||
ifeq ($(BR2_PACKAGE_LIBFUSE),y)
|
||||
OPENVMTOOLS_DEPENDENCIES += libfuse
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENVMTOOLS_PROCPS),y)
|
||||
OPENVMTOOLS_CONF_ENV += CUSTOM_PROCPS_NAME=procps
|
||||
OPENVMTOOLS_CONF_OPT += --with-procps
|
||||
OPENVMTOOLS_DEPENDENCIES += procps-ng
|
||||
else
|
||||
OPENVMTOOLS_CONF_OPT += --without-procps
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENVMTOOLS_DNET),y)
|
||||
# Needed because if it is defined configure will
|
||||
# use a different method to check for dnet
|
||||
OPENVMTOOLS_CONF_ENV += CUSTOM_DNET_CPPFLAGS=" "
|
||||
OPENVMTOOLS_CONF_OPT += --with-dnet
|
||||
OPENVMTOOLS_DEPENDENCIES += libdnet
|
||||
else
|
||||
OPENVMTOOLS_CONF_OPT += --without-dnet
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENVMTOOLS_PAM),y)
|
||||
OPENVMTOOLS_CONF_OPT += --with-pam
|
||||
OPENVMTOOLS_MAKE_OPT += CFLAGS+="-Wno-unused-local-typedefs"
|
||||
OPENVMTOOLS_DEPENDENCIES += linux-pam
|
||||
else
|
||||
OPENVMTOOLS_CONF_OPT += --without-pam
|
||||
endif
|
||||
|
||||
# symlink needed by lib/system/systemLinux.c (or will cry in /var/log/messages)
|
||||
# /sbin/shutdown needed for Guest OS restart/shutdown from hypervisor
|
||||
define OPENVMTOOLS_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
|
||||
endef
|
||||
|
||||
OPENVMTOOLS_POST_INSTALL_TARGET_HOOKS += OPENVMTOOLS_POST_INSTALL_TARGET_THINGIES
|
||||
|
||||
define OPENVMTOOLS_INSTALL_INIT_SYSV
|
||||
$(INSTALL) -D -m 755 package/openvmtools/S10vmtoolsd \
|
||||
$(TARGET_DIR)/etc/init.d/S10vmtoolsd
|
||||
endef
|
||||
|
||||
define OPENVMTOOLS_INSTALL_INIT_SYSTEMD
|
||||
$(INSTALL) -D -m 644 package/openvmtools/vmtoolsd.service \
|
||||
$(TARGET_DIR)/etc/systemd/system/vmtoolsd.service
|
||||
mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
|
||||
ln -fs ../vmtoolsd.service \
|
||||
$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/vmtoolsd.service
|
||||
endef
|
||||
|
||||
$(eval $(autotools-package))
|
7
package/openvmtools/shutdown
Normal file
7
package/openvmtools/shutdown
Normal file
|
@ -0,0 +1,7 @@
|
|||
#!/bin/sh
|
||||
#compatibility script for openvmtools
|
||||
if [ "$1" == "-r" ]; then
|
||||
/sbin/reboot
|
||||
else
|
||||
/sbin/poweroff
|
||||
fi
|
14
package/openvmtools/vmtoolsd.service
Normal file
14
package/openvmtools/vmtoolsd.service
Normal file
|
@ -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
|
Loading…
Reference in a new issue