mirror of
				https://github.com/Ysurac/openmptcprouter-feeds.git
				synced 2025-03-09 15:40:03 +00:00 
			
		
		
		
	Add open-vm-tools for x86
This commit is contained in:
		
							parent
							
								
									41cb47aedd
								
							
						
					
					
						commit
						bf9a9aed78
					
				
					 17 changed files with 604 additions and 46 deletions
				
			
		|  | @ -1,72 +1,130 @@ | |||
| #
 | ||||
| # Copyright (C) 2015 Minho Ryang <minhoryang@gmail.com>
 | ||||
| # Initial ebuild come from https://github.com/minhoryang/open-vm-tools--openwrt
 | ||||
| # Copyright (C) 2018 Ycarus (Yannick Chabanois) <ycarus@zugaina.org>
 | ||||
| # Copyright (C) 2018 OpenWrt.org
 | ||||
| #
 | ||||
| # This is free software, licensed under the GNU General Public License v3 or later.
 | ||||
| # This is free software, licensed under the GNU General Public License v2.
 | ||||
| # See /LICENSE for more information.
 | ||||
| #
 | ||||
| # This package come from https://github.com/srchack/custom-packages
 | ||||
| 
 | ||||
| include $(TOPDIR)/rules.mk | ||||
| 
 | ||||
| PKG_NAME:=open-vm-tools | ||||
| PKG_VERSION:=stable-10.3.0 | ||||
| PKG_VERSION:=10.3.0 | ||||
| PKG_RELEASE:=1 | ||||
| PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) | ||||
| PKG_BUILD_DEPENDS:=glib2 | ||||
| PKG_SOURCE:=$(PKG_VERSION).tar.gz | ||||
| PKG_SOURCE_URL:=https://github.com/vmware/open-vm-tools/archive/ | ||||
| PKG_LICENSE:=LGPLv2.1 | ||||
| PKG_LICENSE_FILE:=COPYING | ||||
| PKG_HASH:=b3d0b5fd272a8dc35cab1ddd732f9d436f72682925212a6cdeccdab283e2f5ec | ||||
| 
 | ||||
| PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | ||||
| PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) | ||||
| PKG_SOURCE_PROTO:=git | ||||
| PKG_SOURCE_URL=https://github.com/vmware/open-vm-tools.git | ||||
| PKG_SOURCE_VERSION:=stable-$(PKG_VERSION) | ||||
| 
 | ||||
| PKG_FIXUP:=autoreconf | ||||
| PKG_LICENSE:=LGPL-2.1 | ||||
| 
 | ||||
| include $(INCLUDE_DIR)/package.mk | ||||
| 
 | ||||
| define Package/$(PKG_NAME) | ||||
|   TITLE:=open-vm-tools | ||||
|   CATEGORY:=Languages | ||||
| define Package/open-vm-tools | ||||
|   SECTION:=utils | ||||
|   CATEGORY:=Utilities | ||||
|   DEPENDS:=+glib2 +libdnet | ||||
|   DEPENDS:=@TARGET_x86 +glib2 +libpthread +libtirpc | ||||
|   TITLE:=open-vm-tools | ||||
|   URL:=https://github.com/vmware/open-vm-tools | ||||
|   MAINTAINER:= Minho Ryang <minhoryang@gmail.com> | ||||
| endef | ||||
|   # TODO: PKGARCH:=i386 x86_64 | ||||
|   # TODO: mmu | ||||
|   # TODO: depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC | ||||
|   # TODO: depends on BR2_ENABLE_LOCALE | ||||
|   # TODO: BR2_PACKAGE_OPENVMTOOLS_PROCPS | ||||
|   # TODO: BR2_PACKAGE_OPENVMTOOLS_PAM | ||||
| 
 | ||||
| define Package/$(PKG_NAME)/description | ||||
| 	  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. | ||||
| define Package/open-vm-tools-vm-tools/description | ||||
| 	Open Virtual Machine Tools for VMware guest OS | ||||
| endef | ||||
| 
 | ||||
| 
 | ||||
| CONFIGURE_PATH = open-vm-tools | ||||
| MAKE_PATH = open-vm-tools | ||||
| 
 | ||||
| CONFIGURE_ARGS+= \
 | ||||
| 	--with-dnet \
 | ||||
| 	--without-icu \
 | ||||
| 	--disable-multimon \
 | ||||
| 	--disable-docs \
 | ||||
| 	--disable-tests \
 | ||||
| 	--without-gtkmm \
 | ||||
| 	--without-gtkmm3 \
 | ||||
| 	--without-xerces \
 | ||||
| 	--without-pam \
 | ||||
| 	--disable-grabbitmqproxy \
 | ||||
| 	--disable-vgauth \
 | ||||
| 	--disable-deploypkg \
 | ||||
| 	--without-root-privileges \
 | ||||
| 	--without-kernel-modules \
 | ||||
| 	--without-dnet \
 | ||||
| 	--with-tirpc \
 | ||||
| 	--without-x \
 | ||||
| 	--without-gtk2 \
 | ||||
| 	--without-gtkmm \
 | ||||
| 	--without-kernel-modules \
 | ||||
| 	--disable-deploypkg \
 | ||||
| 	--without-xerces \
 | ||||
| 	--without-ssl \
 | ||||
| 	--without-procps \
 | ||||
| 	--without-pam | ||||
| # TODO: --without-ssl -procps -pam optionable
 | ||||
| 	--without-gtk3 \
 | ||||
| 	--without-xerces | ||||
| 
 | ||||
| CONFIGURE_VARS += \
 | ||||
| 	CUSTOM_DNET_CPPFLAGS=" " | ||||
| 
 | ||||
| MAKE_PATH := open-vm-tools | ||||
| define Package/open-vm-tools/install | ||||
| 	$(INSTALL_DIR) $(1)/etc/init.d/ | ||||
| 	$(INSTALL_BIN) ./files/vmtoolsd.init $(1)/etc/init.d/vmtoolsd | ||||
| 
 | ||||
| $(eval $(call BuildPackage,$(PKG_NAME))) | ||||
| 	$(INSTALL_DIR) $(1)/etc/vmware-tools/ | ||||
| 	$(INSTALL_DATA) ./files/tools.conf $(1)/etc/vmware-tools/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/poweroff-vm-default $(1)/etc/vmware-tools/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/poweron-vm-default $(1)/etc/vmware-tools/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/resume-vm-default $(1)/etc/vmware-tools/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/suspend-vm-default $(1)/etc/vmware-tools/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/scripts/common/statechange.subr $(1)/etc/vmware-tools/ | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/etc/vmware-tools/scripts/vmware/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/scripts/linux/network $(1)/etc/vmware-tools/scripts/vmware/ | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/bin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/checkvm/.libs/vmware-checkvm $(1)/bin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/namespacetool/.libs/vmware-namespace-cmd $(1)/bin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/xferlogs/.libs/vmware-xferlogs $(1)/bin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/hgfsclient/.libs/vmware-hgfsclient $(1)/bin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/.libs/vmtoolsd $(1)/bin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/rpctool/vmware-rpctool $(1)/bin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/.libs/vmware-toolbox-cmd $(1)/bin/ | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/sbin/ | ||||
| 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/open-vm-tools/hgfsmounter/mount.vmhgfs $(1)/sbin/ | ||||
| 	$(INSTALL_BIN) ./files/shutdown $(1)/sbin/ | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/lib/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/libhgfs/.libs/libhgfs.so.0.0.0 $(1)/lib/ | ||||
| 	$(LN) libhgfs.so.0.0.0 $(1)/lib/libhgfs.so.0 | ||||
| 	$(LN) libhgfs.so.0.0.0 $(1)/lib/libhgfs.so | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/libguestlib/.libs/libguestlib.so.0.0.0 $(1)/lib/ | ||||
| 	$(LN) libguestlib.so.0.0.0 $(1)/lib/libguestlib.so.0 | ||||
| 	$(LN) libguestlib.so.0.0.0 $(1)/lib/libguestlib.so | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/libvmtools/.libs/libvmtools.so.0.0.0 $(1)/lib/ | ||||
| 	$(LN) libvmtools.so.0.0.0 $(1)/lib/libvmtools.so.0 | ||||
| 	$(LN) libvmtools.so.0.0.0 $(1)/lib/libvmtools.so | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/usr/lib/open-vm-tools/plugins/common/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/vix/.libs/libvix.so $(1)/usr/lib/open-vm-tools/plugins/common/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/hgfsServer/.libs/libhgfsServer.so $(1)/usr/lib/open-vm-tools/plugins/common/ | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/resolutionKMS/.libs/libresolutionKMS.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/powerOps/.libs/libpowerOps.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/timeSync/.libs/libtimeSync.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/guestInfo/.libs/libguestInfo.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/plugins/vmbackup/.libs/libvmbackup.so $(1)/usr/lib/open-vm-tools/plugins/vmsvc/ | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/lib/udev/rules.d/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/udev/99-vmware-scsi-udev.rules $(1)/lib/udev/rules.d/ | ||||
| 
 | ||||
| 	$(INSTALL_DIR) $(1)/usr/share/open-vm-tools/messages/ko/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/l10n/ko.vmsg $(1)/usr/share/open-vm-tools/messages/ko/vmtoolsd.vmsg | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/ko.vmsg $(1)/usr/share/open-vm-tools/messages/ko/toolboxcmd.vmsg | ||||
| 	$(INSTALL_DIR) $(1)/usr/share/open-vm-tools/messages/de/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/l10n/de.vmsg $(1)/usr/share/open-vm-tools/messages/de/vmtoolsd.vmsg | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/de.vmsg $(1)/usr/share/open-vm-tools/messages/de/toolboxcmd.vmsg | ||||
| 	$(INSTALL_DIR) $(1)/usr/share/open-vm-tools/messages/ja/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/services/vmtoolsd/l10n/ja.vmsg $(1)/usr/share/open-vm-tools/messages/ja/vmtoolsd.vmsg | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/ja.vmsg $(1)/usr/share/open-vm-tools/messages/ja/toolboxcmd.vmsg | ||||
| 	$(INSTALL_DIR) $(1)/usr/share/open-vm-tools/messages/zh_CN/ | ||||
| 	$(INSTALL_DATA) $(PKG_BUILD_DIR)/open-vm-tools/toolbox/l10n/zh_CN.vmsg $(1)/usr/share/open-vm-tools/messages/zh_CN/toolboxcmd.vmsg | ||||
| endef | ||||
| 
 | ||||
| $(eval $(call BuildPackage,open-vm-tools)) | ||||
|  |  | |||
							
								
								
									
										8
									
								
								open-vm-tools/files/shutdown
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								open-vm-tools/files/shutdown
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| #!/bin/sh | ||||
| #compatibility script for openvmtools | ||||
| 
 | ||||
| if [ "$1" == "-r" ]; then | ||||
|   /sbin/reboot | ||||
| else | ||||
|   /sbin/poweroff | ||||
| fi | ||||
							
								
								
									
										2
									
								
								open-vm-tools/files/tools.conf
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								open-vm-tools/files/tools.conf
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,2 @@ | |||
| [guestinfo] | ||||
| disable-perf-mon=1 | ||||
							
								
								
									
										14
									
								
								open-vm-tools/files/vmtoolsd.init
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								open-vm-tools/files/vmtoolsd.init
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| #!/bin/sh /etc/rc.common | ||||
| 
 | ||||
| START=10 | ||||
| 
 | ||||
| USE_PROCD=1 | ||||
| PROG=/bin/vmtoolsd | ||||
| 
 | ||||
| start_service() { | ||||
| 	procd_open_instance | ||||
| 	procd_set_param command "$PROG" | ||||
| 	procd_set_param respawn | ||||
| 	procd_close_instance | ||||
| } | ||||
| 
 | ||||
|  | @ -0,0 +1,21 @@ | |||
| diff -urN a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
 | ||||
| --- a/open-vm-tools/configure.ac
 | ||||
| +++ b/open-vm-tools/configure.ac
 | ||||
| @@ -949,7 +949,7 @@
 | ||||
|        AC_VMW_CHECK_LIB([dnet], | ||||
|                         [DNET], | ||||
|                         [], | ||||
| -                       [dnet-config],
 | ||||
| +                       [],
 | ||||
|                         [], | ||||
|                         [dnet.h], | ||||
|                         [intf_open], | ||||
| @@ -959,7 +959,7 @@
 | ||||
|   | ||||
|     if test $have_dnet = "no"; then | ||||
|  		AC_MSG_ERROR( | ||||
| -		   [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
 | ||||
| +		   [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
 | ||||
|     fi | ||||
|  fi | ||||
|   | ||||
							
								
								
									
										13
									
								
								open-vm-tools/patches/0002-add-include-sys-sysmacros.h.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								open-vm-tools/patches/0002-add-include-sys-sysmacros.h.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,13 @@ | |||
| diff -urN a/open-vm-tools/lib/wiper/wiperPosix.c b/open-vm-tools/lib/wiper/wiperPosix.c
 | ||||
| --- a/open-vm-tools/lib/wiper/wiperPosix.c
 | ||||
| +++ b/open-vm-tools/lib/wiper/wiperPosix.c
 | ||||
| @@ -43,6 +43,9 @@
 | ||||
|  #  include <libgen.h> | ||||
|  # endif /* __FreeBSD_version >= 500000 */ | ||||
|  #endif | ||||
| +#if defined(__linux__)
 | ||||
| +#include <sys/sysmacros.h>
 | ||||
| +#endif
 | ||||
|  #include <unistd.h> | ||||
|   | ||||
|  #include "vmware.h" | ||||
|  | @ -0,0 +1,29 @@ | |||
| diff -urN a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
 | ||||
| --- a/open-vm-tools/configure.ac
 | ||||
| +++ b/open-vm-tools/configure.ac
 | ||||
| @@ -1208,6 +1208,7 @@
 | ||||
|  AC_TYPE_PID_T | ||||
|  AC_TYPE_SIZE_T | ||||
|  AC_CHECK_MEMBERS([struct stat.st_rdev]) | ||||
| +AC_CHECK_MEMBERS([struct timespec.tv_sec],[],[],[[#include <time.h>]])
 | ||||
|  AC_HEADER_TIME | ||||
|  AC_STRUCT_TM | ||||
|  AC_C_VOLATILE | ||||
| diff -urN a/open-vm-tools/lib/include/hgfsUtil.h b/open-vm-tools/lib/include/hgfsUtil.h
 | ||||
| --- a/open-vm-tools/lib/include/hgfsUtil.h
 | ||||
| +++ b/open-vm-tools/lib/include/hgfsUtil.h
 | ||||
| @@ -53,13 +53,7 @@
 | ||||
|  #      include <time.h> | ||||
|  #   endif | ||||
|  #   include "vm_basic_types.h" | ||||
| -#   if !defined _STRUCT_TIMESPEC &&   \
 | ||||
| -       !defined _TIMESPEC_DECLARED && \
 | ||||
| -       !defined __timespec_defined && \
 | ||||
| -       !defined sun && \
 | ||||
| -       !defined __FreeBSD__ && \
 | ||||
| -       !__APPLE__ && \
 | ||||
| -       !defined _WIN32
 | ||||
| +#   if !defined HAVE_STRUCT_TIMESPEC_TV_SEC
 | ||||
|  struct timespec { | ||||
|     time_t tv_sec; | ||||
|     long   tv_nsec; | ||||
|  | @ -0,0 +1,40 @@ | |||
| diff -urN a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 | ||||
| --- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 | ||||
| +++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 | ||||
| @@ -105,11 +105,13 @@
 | ||||
|  #endif | ||||
|   | ||||
|  /* | ||||
| - * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not defined in the
 | ||||
| - * Solaris version of <sys/stat.h>.
 | ||||
| + * ALLPERMS (mode 07777) and ACCESSPERMS (mode 0777) are not specified in
 | ||||
| + * POSIX.
 | ||||
|   */ | ||||
| -#ifdef sun
 | ||||
| +#ifndef ACCESSPERMS
 | ||||
|  #   define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) | ||||
| +#endif
 | ||||
| +#ifndef ALLPERMS
 | ||||
|  #   define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO) | ||||
|  #endif | ||||
|   | ||||
| diff -urN a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
 | ||||
| --- a/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
 | ||||
| +++ b/open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
 | ||||
| @@ -52,7 +52,7 @@
 | ||||
|   | ||||
|  #define DND_ROOTDIR_PERMS     (S_IRWXU | S_IRWXG | S_IRWXO) | ||||
|  #define DND_STAGINGDIR_PERMS  (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH) | ||||
| -#ifdef sun
 | ||||
| +#ifndef ACCESSPERMS
 | ||||
|  #define ACCESSPERMS           (S_IRWXU | S_IRWXG | S_IRWXO) | ||||
|  #endif | ||||
|  #ifdef __ANDROID__ | ||||
| @@ -61,7 +61,6 @@
 | ||||
|   */ | ||||
|  #define NO_SETMNTENT | ||||
|  #define NO_ENDMNTENT | ||||
| -#define ACCESSPERMS           (S_IRWXU | S_IRWXG | S_IRWXO)
 | ||||
|  #endif | ||||
|   | ||||
|   | ||||
|  | @ -0,0 +1,105 @@ | |||
| diff -urN a/open-vm-tools/configure.ac b/open-vm-tools/configure.ac
 | ||||
| --- a/open-vm-tools/configure.ac
 | ||||
| +++ b/open-vm-tools/configure.ac
 | ||||
| @@ -897,6 +897,7 @@
 | ||||
|   | ||||
|  AC_CHECK_FUNCS([ecvt]) | ||||
|  AC_CHECK_FUNCS([fcvt]) | ||||
| +AC_CHECK_FUNCS([getifaddrs getauxval issetugid __secure_getenv])
 | ||||
|   | ||||
|  AC_CHECK_FUNC([mkdtemp], [have_mkdtemp=yes]) | ||||
|   | ||||
| @@ -1145,10 +1146,13 @@
 | ||||
|  ### | ||||
|   | ||||
|  AC_CHECK_HEADERS([crypt.h]) | ||||
| +AC_CHECK_HEADERS([ifaddrs.h])
 | ||||
|  AC_CHECK_HEADERS([inttypes.h]) | ||||
|  AC_CHECK_HEADERS([stdint.h]) | ||||
|  AC_CHECK_HEADERS([stdlib.h]) | ||||
|  AC_CHECK_HEADERS([wchar.h]) | ||||
| +AC_CHECK_HEADERS([net/if.h])
 | ||||
| +AC_CHECK_HEADERS([sys/auxv.h])
 | ||||
|  AC_CHECK_HEADERS([sys/inttypes.h]) | ||||
|  AC_CHECK_HEADERS([sys/io.h]) | ||||
|  AC_CHECK_HEADERS([sys/param.h]) # Required to make the sys/user.h check work correctly on FreeBSD | ||||
| diff -urN a/open-vm-tools/lib/misc/idLinux.c b/open-vm-tools/lib/misc/idLinux.c
 | ||||
| --- a/open-vm-tools/lib/misc/idLinux.c
 | ||||
| +++ b/open-vm-tools/lib/misc/idLinux.c
 | ||||
| @@ -27,12 +27,9 @@
 | ||||
|  #include <sys/syscall.h> | ||||
|  #include <string.h> | ||||
|  #include <unistd.h> | ||||
| -#ifdef __linux__
 | ||||
| -#if defined(__GLIBC__) && \
 | ||||
| -           (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
 | ||||
| +#ifdef HAVE_SYS_AUXV_H
 | ||||
|  #include <sys/auxv.h> | ||||
|  #endif | ||||
| -#endif
 | ||||
|  #ifdef __APPLE__ | ||||
|  #include <sys/socket.h> | ||||
|  #include <TargetConditionals.h> | ||||
| @@ -997,31 +994,32 @@
 | ||||
|  static Bool | ||||
|  IdIsSetUGid(void) | ||||
|  { | ||||
| -#if defined(__ANDROID__)
 | ||||
| -   /* Android does not have a secure_getenv, so be conservative. */
 | ||||
| -   return TRUE;
 | ||||
| -#else
 | ||||
|     /* | ||||
|      * We use __secure_getenv, which returns NULL if the binary is | ||||
| -    * setuid or setgid. Alternatives include,
 | ||||
| +    * setuid or setgid, when issetugid or getauxval(AT_SECURE) is not
 | ||||
| +    * available. Alternatives include,
 | ||||
|      * | ||||
| -    *   a) getauxval(AT_SECURE); not available until glibc 2.16.
 | ||||
| -    *   b) __libc_enable_secure; may not be exported.
 | ||||
| +    *   a) issetugid(); not (yet?) available in glibc.
 | ||||
| +    *   b) getauxval(AT_SECURE); not available until glibc 2.16.
 | ||||
| +    *   c) __libc_enable_secure; may not be exported.
 | ||||
|      * | ||||
| -    * Use (a) when we are based on glibc 2.16, or newer.
 | ||||
| +    * Use (b) when we are based on glibc 2.16, or newer.
 | ||||
|      */ | ||||
|   | ||||
| -#if defined(__GLIBC__) && \
 | ||||
| -           (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16))
 | ||||
| +#if HAVE_ISSETUGID
 | ||||
| +   return issetugid();
 | ||||
| +#elif HAVE_GETAUXVAL
 | ||||
|     return getauxval(AT_SECURE) != 0; | ||||
| -#else
 | ||||
| +#elif HAVE___SECURE_GETENV
 | ||||
|     static const char envName[] = "VMW_SETUGID_TEST"; | ||||
|   | ||||
|     if (setenv(envName, "1", TRUE) == -1) { | ||||
|        return TRUE; /* Conservative */ | ||||
|     } | ||||
|     return __secure_getenv(envName) == NULL; | ||||
| -#endif
 | ||||
| +#else
 | ||||
| +   /* Android does not have a secure_getenv, so be conservative. */
 | ||||
| +   return TRUE;
 | ||||
|  #endif | ||||
|  } | ||||
|  #endif | ||||
| diff -urN a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 | ||||
| --- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 | ||||
| +++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 | ||||
| @@ -34,9 +34,13 @@
 | ||||
|  #include <sys/socket.h> | ||||
|  #include <sys/stat.h> | ||||
|  #include <errno.h> | ||||
| -#if defined(__FreeBSD__) || defined(__APPLE__)
 | ||||
| +#if HAVE_SYS_SYSCTL_H
 | ||||
|  # include <sys/sysctl.h> | ||||
| +#endif
 | ||||
| +#if HAVE_IFADDRS_H
 | ||||
|  # include <ifaddrs.h> | ||||
| +#endif
 | ||||
| +#if HAVE_NET_IF_H
 | ||||
|  # include <net/if.h> | ||||
|  #endif | ||||
|  #ifndef NO_DNET | ||||
|  | @ -0,0 +1,12 @@ | |||
| diff -urN a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
 | ||||
| --- a/open-vm-tools/services/plugins/vix/vixTools.c
 | ||||
| +++ b/open-vm-tools/services/plugins/vix/vixTools.c
 | ||||
| @@ -66,7 +66,7 @@
 | ||||
|  #include <unistd.h> | ||||
|  #endif | ||||
|   | ||||
| -#if defined(sun) || defined(__FreeBSD__) || defined(__APPLE__)
 | ||||
| +#ifdef HAVE_SYS_STAT_H
 | ||||
|  #include <sys/stat.h> | ||||
|  #endif | ||||
|   | ||||
|  | @ -0,0 +1,13 @@ | |||
| diff -urN a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
 | ||||
| --- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
 | ||||
| +++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
 | ||||
| @@ -69,8 +69,8 @@
 | ||||
|  #else | ||||
|  #include <stddef.h> | ||||
|  #include <ctype.h> | ||||
| +#include <poll.h>
 | ||||
|  #include <sys/types.h> | ||||
| -#include <sys/poll.h>
 | ||||
|  #include <sys/socket.h> | ||||
|  #include <sys/un.h> | ||||
|  #include <netdb.h> | ||||
							
								
								
									
										94
									
								
								open-vm-tools/patches/0008-Rename-poll.h-to-vm_poll.h.patch
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								open-vm-tools/patches/0008-Rename-poll.h-to-vm_poll.h.patch
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,94 @@ | |||
| diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c
 | ||||
| index e0a68e7e..b9675674 100644
 | ||||
| --- a/open-vm-tools/lib/asyncsocket/asyncsocket.c
 | ||||
| +++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c
 | ||||
| @@ -86,7 +86,7 @@
 | ||||
|  #include "random.h" | ||||
|  #include "asyncsocket.h" | ||||
|  #include "asyncSocketBase.h" | ||||
| -#include "poll.h"
 | ||||
| +#include "vm_poll.h"
 | ||||
|  #include "log.h" | ||||
|  #include "err.h" | ||||
|  #include "hostinfo.h" | ||||
| diff --git a/open-vm-tools/lib/hgfsServer/hgfsServer.c b/open-vm-tools/lib/hgfsServer/hgfsServer.c
 | ||||
| index 991a7941..ed0c09f9 100644
 | ||||
| --- a/open-vm-tools/lib/hgfsServer/hgfsServer.c
 | ||||
| +++ b/open-vm-tools/lib/hgfsServer/hgfsServer.c
 | ||||
| @@ -48,7 +48,7 @@
 | ||||
|  #include "hgfsServerOplock.h" | ||||
|  #include "hgfsDirNotify.h" | ||||
|  #include "userlock.h" | ||||
| -#include "poll.h"
 | ||||
| +#include "vm_poll.h"
 | ||||
|  #include "mutexRankLib.h" | ||||
|  #include "vm_basic_asm.h" | ||||
|  #include "unicodeOperations.h" | ||||
| diff --git a/open-vm-tools/lib/include/asyncsocket.h b/open-vm-tools/lib/include/asyncsocket.h
 | ||||
| index 524147ea..103f944f 100644
 | ||||
| --- a/open-vm-tools/lib/include/asyncsocket.h
 | ||||
| +++ b/open-vm-tools/lib/include/asyncsocket.h
 | ||||
| @@ -164,7 +164,7 @@ typedef struct AsyncSocket AsyncSocket;
 | ||||
|   * Or the client can specify its favorite poll class and locking behavior. | ||||
|   * Use of IVmdbPoll is only supported for regular sockets and for Attach. | ||||
|   */ | ||||
| -#include "poll.h"
 | ||||
| +#include "vm_poll.h"
 | ||||
|  struct IVmdbPoll; | ||||
|  typedef struct AsyncSocketPollParams { | ||||
|     int flags;               /* Default 0, only POLL_FLAG_NO_BULL is valid */ | ||||
| diff --git a/open-vm-tools/lib/include/pollImpl.h b/open-vm-tools/lib/include/pollImpl.h
 | ||||
| index 46442e55..8bc66997 100644
 | ||||
| --- a/open-vm-tools/lib/include/pollImpl.h
 | ||||
| +++ b/open-vm-tools/lib/include/pollImpl.h
 | ||||
| @@ -44,7 +44,7 @@
 | ||||
|  #define INCLUDE_ALLOW_USERLEVEL | ||||
|  #include "includeCheck.h" | ||||
|   | ||||
| -#include "poll.h"
 | ||||
| +#include "vm_poll.h"
 | ||||
|  #include "vm_basic_asm.h" | ||||
|   | ||||
|  #if defined(__cplusplus) | ||||
| diff --git a/open-vm-tools/lib/include/poll.h b/open-vm-tools/lib/include/vm_poll.h
 | ||||
| similarity index 99% | ||||
| rename from a/open-vm-tools/lib/include/poll.h | ||||
| rename to a/open-vm-tools/lib/include/vm_poll.h | ||||
| index 988fe6d0..e9e74fb5 100644
 | ||||
| --- a/open-vm-tools/lib/include/poll.h
 | ||||
| +++ b/open-vm-tools/lib/include/vm_poll.h
 | ||||
| @@ -60,7 +60,7 @@ extern "C" {
 | ||||
|  #if !defined(TARGET_OS_IPHONE) || TARGET_OS_IPHONE == 0 | ||||
|  #include <sys/kernel.h> | ||||
|  #endif | ||||
| -#include <sys/poll.h>
 | ||||
| +#include <poll.h>
 | ||||
|  #define HZ 100 | ||||
|  #endif | ||||
|  #ifdef __ANDROID__ | ||||
| diff --git a/open-vm-tools/lib/rpcIn/rpcin.c b/open-vm-tools/lib/rpcIn/rpcin.c
 | ||||
| index c2c51583..d6c62f10 100644
 | ||||
| --- a/open-vm-tools/lib/rpcIn/rpcin.c
 | ||||
| +++ b/open-vm-tools/lib/rpcIn/rpcin.c
 | ||||
| @@ -57,7 +57,7 @@
 | ||||
|   | ||||
|  #if defined(VMTOOLS_USE_VSOCKET) | ||||
|  #  include <glib.h> | ||||
| -#  include "poll.h"
 | ||||
| +#  include "vm_poll.h"
 | ||||
|  #  include "asyncsocket.h" | ||||
|  #  include "vmci_defs.h" | ||||
|  #include "dataMap.h" | ||||
| diff --git a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
 | ||||
| index 03700937..f0b49ad7 100644
 | ||||
| --- a/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
 | ||||
| +++ b/open-vm-tools/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
 | ||||
| @@ -48,7 +48,7 @@
 | ||||
|  #include "rpcout.h" | ||||
|  #include "rabbitmqProxyConst.h" | ||||
|  #include "vm_basic_types.h" | ||||
| -#include "poll.h"
 | ||||
| +#include "vm_poll.h"
 | ||||
|  #ifdef OPEN_VM_TOOLS | ||||
|  #include "vmci_sockets.h" | ||||
|  #include "sslDirect.h" | ||||
|  | @ -0,0 +1,28 @@ | |||
| diff -urN a/open-vm-tools/lib/err/errPosix.c b/open-vm-tools/lib/err/errPosix.c
 | ||||
| --- a/open-vm-tools/lib/err/errPosix.c
 | ||||
| +++ b/open-vm-tools/lib/err/errPosix.c
 | ||||
| @@ -31,6 +31,7 @@
 | ||||
|  #include <errno.h> | ||||
|  #include <string.h> | ||||
|  #include <locale.h> | ||||
| +#include <stdio.h>
 | ||||
|   | ||||
|  #include "vmware.h" | ||||
|  #include "errInt.h" | ||||
| @@ -63,11 +64,13 @@
 | ||||
|  { | ||||
|     char *p; | ||||
|   | ||||
| -#if defined(__linux__) && !defined(__ANDROID__)
 | ||||
| +#if defined(__GLIBC__) && !defined(__ANDROID__)
 | ||||
|     p = strerror_r(errorNumber, buf, bufSize); | ||||
|  #else | ||||
| -   p = strerror(errorNumber);
 | ||||
| -#endif
 | ||||
| +   if (strerror_r(errorNumber, buf, bufSize) != 0)
 | ||||
| +      snprintf(buf, bufSize, "unknown error %i", errorNumber);
 | ||||
| +   p = buf;
 | ||||
| +#endif /* defined __GLIBC__ */
 | ||||
|     ASSERT(p != NULL); | ||||
|     return p; | ||||
|  } | ||||
|  | @ -0,0 +1,14 @@ | |||
| diff -urN a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 | ||||
| --- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 | ||||
| +++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
 | ||||
| @@ -5294,8 +5294,8 @@
 | ||||
|        goto exit; | ||||
|     } | ||||
|   | ||||
| -   LOG(6, ("%s: File Size limits: 0x%"FMT64"x 0x%"FMT64"x\n",
 | ||||
| -           __FUNCTION__, fileSize.rlim_cur, fileSize.rlim_max));
 | ||||
| +   LOG(6, ("%s: File Size limits: 0x%jx 0x%jx\n",
 | ||||
| +           __FUNCTION__, (uintmax_t)fileSize.rlim_cur, (uintmax_t)fileSize.rlim_max));
 | ||||
|   | ||||
|     /* | ||||
|      * Check the offset is within the file size range. | ||||
|  | @ -0,0 +1,16 @@ | |||
| diff -urN a/open-vm-tools/lib/file/fileIOPosix.c b/open-vm-tools/lib/file/fileIOPosix.c
 | ||||
| --- a/open-vm-tools/lib/file/fileIOPosix.c
 | ||||
| +++ b/open-vm-tools/lib/file/fileIOPosix.c
 | ||||
| @@ -206,10 +206,10 @@
 | ||||
|         * the symbols (and anyone building XOPEN<700 gets nothing). | ||||
|         */ | ||||
|        extern ssize_t preadv64(int fd, const struct iovec *iov, int iovcnt, | ||||
| -                          __off64_t offset) __attribute__ ((weak));
 | ||||
| +                          off64_t offset) __attribute__ ((weak));
 | ||||
|   | ||||
|        extern ssize_t pwritev64(int fd, const struct iovec *iov, int iovcnt, | ||||
| -                          __off64_t offset) __attribute__ ((weak));
 | ||||
| +                          off64_t offset) __attribute__ ((weak));
 | ||||
|     #else | ||||
|        #error "Large file support unavailable. Aborting." | ||||
|     #endif | ||||
|  | @ -0,0 +1,90 @@ | |||
| From bfa850db67e150e8d44093a14ef6a9999c5c9968 Mon Sep 17 00:00:00 2001 | ||||
| From: Oliver Kurth <okurth@vmware.com> | ||||
| Date: Wed, 29 Aug 2018 13:29:43 -0700 | ||||
| Subject: [PATCH] Fix some bad derefs in primary NIC gathering code. | ||||
| 
 | ||||
| Found by user in https://github.com/vmware/open-vm-tools/issues/272 | ||||
| 
 | ||||
| Debug code tries to access a struct field that may not have been initialized. | ||||
|  - Pointer deref'd without a sanity check. | ||||
| ---
 | ||||
|  open-vm-tools/lib/nicInfo/nicInfoPosix.c | 39 +++++++++++++++++++++----------- | ||||
|  1 file changed, 26 insertions(+), 13 deletions(-) | ||||
| 
 | ||||
| diff --git a/open-vm-tools/lib/nicInfo/nicInfoPosix.c b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 | ||||
| index 8a063a0..31c1d1a 100644
 | ||||
| --- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 | ||||
| +++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
 | ||||
| @@ -359,7 +359,7 @@ GuestInfoGetNicInfo(unsigned int maxIPv4Routes,
 | ||||
|   | ||||
|     /* Get a handle to read the network interface configuration details. */ | ||||
|     if ((intf = intf_open()) == NULL) { | ||||
| -      g_debug("Error, failed NULL result from intf_open()\n");
 | ||||
| +      g_warning("%s: intf_open() failed\n", __FUNCTION__);
 | ||||
|        return FALSE; | ||||
|     } | ||||
|   | ||||
| @@ -466,7 +466,15 @@ GuestInfoGetPrimaryIP(void)
 | ||||
|      * the first non-loopback, internet interface in the interface list. | ||||
|      */ | ||||
|     for (curr = ifaces; curr != NULL; curr = curr->ifa_next) { | ||||
| -      int currFamily = ((struct sockaddr_storage *)curr->ifa_addr)->ss_family;
 | ||||
| +      int currFamily;
 | ||||
| +
 | ||||
| +      /*
 | ||||
| +       * Some interfaces ("tun") have no ifa_addr, so ignore them.
 | ||||
| +       */
 | ||||
| +      if (NULL == curr->ifa_addr) {
 | ||||
| +         continue;
 | ||||
| +      }
 | ||||
| +      currFamily = ((struct sockaddr_storage *)curr->ifa_addr)->ss_family;
 | ||||
|   | ||||
|        if (!(curr->ifa_flags & IFF_UP) || curr->ifa_flags & IFF_LOOPBACK) { | ||||
|           continue; | ||||
| @@ -500,6 +508,7 @@ GuestInfoGetPrimaryIP(void)
 | ||||
|  } | ||||
|   | ||||
|  #else | ||||
| +
 | ||||
|  #ifndef NO_DNET | ||||
|   | ||||
|  char * | ||||
| @@ -508,20 +517,24 @@ GuestInfoGetPrimaryIP(void)
 | ||||
|     GuestInfoIpPriority ipp; | ||||
|     intf_t *intf = intf_open(); | ||||
|   | ||||
| -   if (intf != NULL) {
 | ||||
| -      ipp.ipstr = NULL;
 | ||||
| -      for (ipp.priority = NICINFO_PRIORITY_PRIMARY;
 | ||||
| -          ipp.priority < NICINFO_PRIORITY_MAX;
 | ||||
| -          ipp.priority++){
 | ||||
| -         intf_loop(intf, GuestInfoGetIntf, &ipp);
 | ||||
| -         if (ipp.ipstr != NULL) {
 | ||||
| -            break;
 | ||||
| -         }
 | ||||
| +   if (NULL == intf) {
 | ||||
| +      g_warning("%s: intf_open() failed\n", __FUNCTION__);
 | ||||
| +      return NULL;
 | ||||
| +   }
 | ||||
| +
 | ||||
| +   ipp.ipstr = NULL;
 | ||||
| +   for (ipp.priority = NICINFO_PRIORITY_PRIMARY;
 | ||||
| +       ipp.priority < NICINFO_PRIORITY_MAX;
 | ||||
| +       ipp.priority++){
 | ||||
| +      intf_loop(intf, GuestInfoGetIntf, &ipp);
 | ||||
| +      if (ipp.ipstr != NULL) {
 | ||||
| +         break;
 | ||||
|        } | ||||
| -      intf_close(intf);
 | ||||
|     } | ||||
| +   intf_close(intf);
 | ||||
|   | ||||
| -   g_debug("%s: returning '%s'", __FUNCTION__, ipp.ipstr);
 | ||||
| +   g_debug("%s: returning '%s'",
 | ||||
| +           __FUNCTION__, ipp.ipstr ? ipp.ipstr : "<null>");
 | ||||
|   | ||||
|     return ipp.ipstr; | ||||
|  } | ||||
| -- 
 | ||||
| 2.7.4 | ||||
| 
 | ||||
|  | @ -61,7 +61,8 @@ MY_DEPENDS := \ | |||
|     kmod-rtl8192cu      \
 | ||||
|     kmod-net-rtl8192su \
 | ||||
|     wpad-basic \
 | ||||
|     luci-proto-qmi v2ray-plugin netcat | ||||
|     luci-proto-qmi v2ray-plugin netcat \
 | ||||
|     TARGET_x86:open-vm-tools | ||||
| 
 | ||||
| OMR_SUPPORTED_LANGS := ca zh-cn en fr de el he hu it ja ms no pl pt-br pt ro ru es sv uk vi | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue