diff --git a/gcc_size_t.patch b/gcc_size_t.patch new file mode 100644 index 0000000..5f3375a --- /dev/null +++ b/gcc_size_t.patch @@ -0,0 +1,123 @@ +commit de6d129476724668b8903e2a87654f50ba21b1b2 +Author: John Wolfe +Date: Thu Feb 17 14:51:25 2022 -0800 + + asyncsocket.c: Use size_t in place of int type for array size and indexing. + + Glibc 2.35 with GCC 11 and 12 produces additional warnings about strings + and array bounds. Switching from "int" to "size_t" type for variable + used for the array size and element indexing. + + GCC warned when an integer value is passed as the size of the + struct pollfd array to poll(). + + Fixes https://github.com/vmware/open-vm-tools/issues/570 + +diff --git a/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h b/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h +index a69b6567..c068ff50 100644 +--- a/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h ++++ b/open-vm-tools/lib/asyncsocket/asyncSocketVTable.h +@@ -1,5 +1,5 @@ + /********************************************************* +- * Copyright (C) 2011,2014-2017,2019-2021 VMware, Inc. All rights reserved. ++ * Copyright (C) 2011,2014-2017,2019-2022 VMware, Inc. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published +@@ -131,8 +131,8 @@ typedef struct AsyncSocketVTable { + int timeoutMS); + int (*doOneMsg)(AsyncSocket *s, Bool read, int timeoutMS); + int (*waitForConnection)(AsyncSocket *s, int timeoutMS); +- int (*waitForReadMultiple)(AsyncSocket **asock, int numSock, int timeoutMS, +- int *outIdx); ++ int (*waitForReadMultiple)(AsyncSocket **asock, size_t numSock, ++ int timeoutMS, int *outIdx); + int (*peek)(AsyncSocket *asock, void *buf, int len, void *cb, void *cbData); + + /* +diff --git a/open-vm-tools/lib/asyncsocket/asyncsocket.c b/open-vm-tools/lib/asyncsocket/asyncsocket.c +index ecb5a933..2bf97b54 100644 +--- a/open-vm-tools/lib/asyncsocket/asyncsocket.c ++++ b/open-vm-tools/lib/asyncsocket/asyncsocket.c +@@ -370,7 +370,7 @@ static int AsyncTCPSocketRecvPartialBlocking(AsyncSocket *s, void *buf, int len, + static int AsyncTCPSocketSendBlocking(AsyncSocket *s, void *buf, int len, + int *sent, int timeoutMS); + static int AsyncTCPSocketDoOneMsg(AsyncSocket *s, Bool read, int timeoutMS); +-static int AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock, int numSock, ++static int AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock, size_t numSock, + int timeoutMS, int *outIdx); + static int AsyncTCPSocketSetOption(AsyncSocket *asyncSocket, + AsyncSocketOpts_Layer layer, +@@ -2807,7 +2807,7 @@ AsyncTCPSocketPeek(AsyncSocket *base, // IN: + + static int + AsyncTCPSocketPollWork(AsyncTCPSocket **asock, // IN: +- int numSock, // IN: ++ size_t numSock, // IN: + void *p, // IN: + Bool read, // IN: + int timeoutMS, // IN: +@@ -2827,11 +2827,11 @@ AsyncTCPSocketPollWork(AsyncTCPSocket **asock, // IN: + struct fd_set rwfds; + struct fd_set exceptfds; + #endif +- int i; ++ size_t i; + int retval; + + ASSERT(outAsock != NULL && *outAsock == NULL && asock != NULL && +- numSock > 0); ++ numSock != 0); + + for (i = 0; i < numSock; i++) { + if (read && SSL_Pending(asock[i]->sslSock)) { +@@ -2852,7 +2852,7 @@ AsyncTCPSocketPollWork(AsyncTCPSocket **asock, // IN: + retval = poll(pfd, numSock, timeoutMS); + AsyncTCPSocketLock(parentSock); + } else { +- for (i = numSock - 1; i >= 0; i--) { ++ for (i = numSock; i-- > 0; ) { + AsyncTCPSocketUnlock(asock[i]); + } + retval = poll(pfd, numSock, timeoutMS); +@@ -2878,7 +2878,7 @@ AsyncTCPSocketPollWork(AsyncTCPSocket **asock, // IN: + &exceptfds, timeoutMS >= 0 ? &tv : NULL); + AsyncTCPSocketLock(parentSock); + } else { +- for (i = numSock - 1; i >= 0; i--) { ++ for (i = numSock; i-- > 0; ) { + AsyncTCPSocketUnlock(asock[i]); + } + retval = select(1, read ? &rwfds : NULL, read ? NULL : &rwfds, +@@ -3032,7 +3032,7 @@ AsyncTCPSocketPoll(AsyncTCPSocket *s, // IN: + #else + void *p = NULL; + #endif +- int numSock = 0; ++ size_t numSock = 0; + + if (read && s->fd == -1) { + if (!s->listenAsock4 && !s->listenAsock6) { +@@ -3078,11 +3078,11 @@ AsyncTCPSocketPoll(AsyncTCPSocket *s, // IN: + + static int + AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock, // IN: +- int numSock, // IN: ++ size_t numSock, // IN: + int timeoutMS, // IN: + int *outIdx) // OUT: + { +- int i; ++ size_t i; + int err; + AsyncTCPSocket *outAsock = NULL; + #ifndef _WIN32 +@@ -3096,7 +3096,7 @@ AsyncTCPSocketWaitForReadMultiple(AsyncSocket **asock, // IN: + } + err = AsyncTCPSocketPollWork((AsyncTCPSocket **)asock, numSock, p, TRUE, + timeoutMS, NULL, &outAsock); +- for (i = numSock - 1; i >= 0; i--) { ++ for (i = numSock; i-- > 0; ) { + AsyncTCPSocket *tcpAsock = TCPSocket(asock[i]); + if (outAsock == tcpAsock) { + *outIdx = i; diff --git a/open-vm-tools-11.3.5-18557794.tar.gz b/open-vm-tools-11.3.5-18557794.tar.gz deleted file mode 100644 index 2da507a..0000000 --- a/open-vm-tools-11.3.5-18557794.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2053daf7b224ab7ae1a9cfcd6ae12494c646e2bf9aaca998225bd082a4a43fb7 -size 4218935 diff --git a/open-vm-tools-12.0.0-19345655.tar.gz b/open-vm-tools-12.0.0-19345655.tar.gz new file mode 100644 index 0000000..0b119b8 --- /dev/null +++ b/open-vm-tools-12.0.0-19345655.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea370217a213802f91b01231e28298bbe54134822351fb5cc70255d80ba0e775 +size 4346397 diff --git a/open-vm-tools.changes b/open-vm-tools.changes index 0f64c9c..c16c391 100644 --- a/open-vm-tools.changes +++ b/open-vm-tools.changes @@ -1,3 +1,26 @@ +------------------------------------------------------------------- +Mon Mar 28 15:09:44 UTC 2022 - Kirk Allan + +- Update to 12.0.0 (build 19345655) (boo#1196803) +- jsc#SLE-24097 ECO Update open-vm-tools 12.0.0 + + New/Updated features: + - Support for managing Salt Minion through guest variables. A new + open-vm-tools-salt-minion rpm is added to handle this support. + jsc#SLE-24094 Update open-vm-tools 12.0.0 SLES15SP4 + jsc#SLE-24095 Update open-vm-tools 12.0.0 SLES15SP3 + jsc#SLE-24096 Update open-vm-tools 12.0.0 SLES12SP5 + - New ComponentMgr plugin to manage (add, remove, monitor) components on + the guest VM. + - Patch to fix potential Fail to Build from Source [FTBFS] (boo#1196804). + - Build vmhgfs with either libfuse2 or libfuse3. + + A number of Coverity and Codacy reported issues have been addressed. + + The following issues and pull requests reported on + github.com/vmware/open-vm-tools have been addressed: Issue # 128, + Issue # 314, Pull # 513, Pull # 544, Pull # 573 + +- Added patches + + gcc_size_t.patch (boo#1196804) + ------------------------------------------------------------------- Mon Oct 4 22:19:03 UTC 2021 - Kirk Allan diff --git a/open-vm-tools.spec b/open-vm-tools.spec index 4f2af8c..0d46023 100644 --- a/open-vm-tools.spec +++ b/open-vm-tools.spec @@ -1,7 +1,7 @@ # # spec file for package open-vm-tools # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # Copyright (c) 2010 Dominique Leuenberger, Amsterdam, Netherlands. # # All modifications and additions to the file contributed by third parties @@ -40,8 +40,8 @@ Name: open-vm-tools %define subname open-vm-tools %define tarname open-vm-tools -%define bldnum 18557794 -Version: 11.3.5 +%define bldnum 19345655 +Version: 12.0.0 Release: 0 Summary: Open Virtual Machine Tools License: BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-only @@ -124,7 +124,13 @@ BuildRequires: pkgconfig(xerces-c) %define arg_xerces --without-xerces %endif # vmhgfs is always built so fuse is no longer optional +%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 0150400 +BuildRequires: fuse3-devel +%define arg_with_fuse --with-fuse=3 +%else BuildRequires: fuse-devel +%define arg_with_fuse --with-fuse=2 +%endif BuildRequires: pkgconfig(udev) %if 0%( pkg-config --exists 'udev > 190' && echo '1' ) == 01 %define _udevrulesdir /usr/lib/udev/rules.d @@ -142,6 +148,7 @@ Obsoletes: open-vm-tools-deploypkg <= 10.0.5 Supplements: modalias(pci:v000015ADd*sv*sd*bc*sc*i*) ExclusiveArch: %ix86 x86_64 aarch64 #Upstream patches +Patch1: gcc_size_t.patch #SUSE specific patches Patch0: pam-vmtoolsd.patch @@ -201,6 +208,15 @@ Requires: %{name}%{?_isa} = %{version}-%{release} %description sdmp Service Discovery Plugin +%package salt-minion +Summary: Script file to install/uninstall salt-minion +Group: System Environment/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release}, systemd, curl, coreutils, gawk, grep +ExclusiveArch: x86_64 + +%description salt-minion +This package contains a script to setup Salt Minion on VMware virtual machines. + %package -n libvmtools0 Summary: Open Virtual Machine Tools - shared library Group: System/Libraries @@ -224,6 +240,7 @@ if you intend to create own plugins for vmtoolsd. # fix for an rpmlint warning regarding wrong line feeds sed -i -e "s/\r//" README #Upstream patches +%patch1 -p2 #SUSE specific patches %patch0 -p2 @@ -264,6 +281,8 @@ chmod 755 configure --with-udev-rules-dir=%{_udevrulesdir} \ --enable-resolutionkms \ --enable-servicediscovery \ + %{arg_with_fuse} \ + --enable-salt-minion \ --disable-static make @@ -418,6 +437,7 @@ systemctl try-restart vmtoolsd.service || : %{_libdir}/%{name}/plugins/vmsvc/libappInfo.so %{_libdir}/%{name}/plugins/vmsvc/libgdp.so %{_libdir}/%{name}/plugins/vmsvc/libguestStore.so +%{_libdir}/%{name}/plugins/vmsvc/libcomponentMgr.so %{_libdir}/%{name}/plugins/common/libhgfsServer.so %{_libdir}/%{name}/plugins/common/libvix.so %{_bindir}/vmhgfs-fuse @@ -483,6 +503,13 @@ systemctl try-restart vmtoolsd.service || : %endif +%ifarch x86_64 +%files salt-minion +%dir %{_libdir}/%{name}/componentMgr/ +%dir %{_libdir}/%{name}/componentMgr/saltMinion/ +%{_libdir}/%{name}/componentMgr/saltMinion/svtminion.sh +%endif + %files sdmp %dir %{_libdir}/%{name}/serviceDiscovery/ %dir %{_libdir}/%{name}/serviceDiscovery/scripts/