Browse code

Updating open-vm-tools to 10.1.10 with necessary patches, bug# 1930096

Change-Id: Iba93941c4eb2d6ada1e9ad7dc99c12766b41e8bb
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/3610
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Kumar Kaushik <kaushikk@vmware.com>

Kumar Kaushik authored on 2017/08/23 04:57:12
Showing 4 changed files
... ...
@@ -1,8 +1,9 @@
1
-+++ open-vm-tools-10.1.5-5055683-modified/libDeployPkg/linuxDeployment.c        2017-04-06 19:14:38.000403000 -0700
2
-@@ -580,13 +580,17 @@
1
+diff -ru open-vm-tools-stable-10.1.10/open-vm-tools/libDeployPkg/linuxDeployment.c open-vm-tools-stable-10.1.10-modified/open-vm-tools/libDeployPkg/linuxDeployment.c
2
+--- open-vm-tools-stable-10.1.10/open-vm-tools/libDeployPkg/linuxDeployment.c	2017-07-28 14:59:15.000000000 -0700
3
+@@ -582,13 +582,17 @@
3 4
     close(fd);
4
-
5
+ 
5 6
     // Create space and copy the command
6 7
 -   *command = malloc(VMWAREDEPLOYPKG_CMD_LENGTH);
7 8
 +   *command = malloc(VMWAREDEPLOYPKG_CMD_LENGTH + 1);
... ...
@@ -10,7 +11,7 @@
10 10
        SetDeployError("Error allocating memory.");
11 11
        return FALSE;
12 12
     }
13
-
13
+ 
14 14
 -   memcpy(*command, hdr.command, VMWAREDEPLOYPKG_CMD_LENGTH);
15 15
 +   // will pad with '\0' if necessary
16 16
 +   strncpy(*command, hdr.command, VMWAREDEPLOYPKG_CMD_LENGTH);
... ...
@@ -19,11 +20,11 @@
19 19
 +
20 20
     *archiveType = hdr.payloadType;
21 21
     *flags = hdr.reserved;
22
-
23
-@@ -1074,6 +1078,20 @@
24
-       free(command);
25
-       deployStatus =  CloudInitSetup(tmpDirPath);
22
+ 
23
+@@ -1094,6 +1098,20 @@
26 24
     } else {
25
+       sLog(log_info, "cloud-init is either not installed or the flag to enable \
26
+            cloud-init is not set.\n Executing traditional GOSC workflow");
27 27
 +      if ((strstr(command, "scripts/Customize.pl") != NULL) || (strstr(command, "scripts/customize.sh") != NULL)) {
28 28
 +          free (command);
29 29
 +          const char* PHOTON_OS_LAUNCH_COMMAND = "/bin/bash /usr/share/open-vm-tools/GOSC/gosc-scripts/imc-shell/imgcust-scripts/customize.sh /tmp/.vmware/linux/deploy/cust.cfg";
... ...
@@ -40,3 +41,4 @@
40 40
 +      sLog(log_info, "Launching deployment %s.  \n", command);
41 41
        deploymentResult = ForkExecAndWaitCommand(command);
42 42
        free(command);
43
+ 
43 44
deleted file mode 100644
... ...
@@ -1,11 +0,0 @@
1
-diff -Naur open-vm-tools.orig/lib/wiper/wiperPosix.c open-vm-tools/lib/wiper/wiperPosix.c
2
-+++ open-vm-tools/lib/wiper/wiperPosix.c	2017-03-24 13:13:29.118630435 -0700
3
-@@ -29,6 +29,7 @@
4
- 
5
- #include <stdio.h>
6
- #include <sys/stat.h>
7
-+#include <sys/sysmacros.h>
8
- #if defined(__linux__) || defined(sun)
9
- # include <sys/vfs.h>
10
- #elif defined(__FreeBSD__) || defined(__APPLE__)
11 1
deleted file mode 100755
... ...
@@ -1,267 +0,0 @@
1
-+++ libDeployPkg/linuxDeployment.c.ORIG	2016-10-11 14:08:49.000097000 -0400
2
-@@ -43,6 +43,8 @@
3
- #include "mspackWrapper.h"
4
- #include "rpcout.h"
5
- #include "toolsDeployPkg.h"
6
-+#include <strutil.h>
7
-+#include <util.h>
8
- 
9
- /*
10
-  * These are covered by #ifndef to give the ability to change these
11
-@@ -52,12 +54,17 @@
12
- 
13
- #define CLEANUPCMD  "/bin/rm -r -f "
14
- 
15
--#ifndef EXTRACTPATH
16
--#define EXTRACTPATH "/tmp/.vmware/linux/deploy"
17
-+#ifndef TMP_PATH_VAR
18
-+#define TMP_PATH_VAR "/tmp/.vmware/linux/deploy"
19
- #endif
20
- 
21
--#ifndef CLEANUPPATH
22
--#define CLEANUPPATH "/tmp/.vmware"
23
-+#ifndef IMC_TMP_PATH_VAR
24
-+#define IMC_TMP_PATH_VAR "@@IMC_TMP_PATH_VAR@@"
25
-+#endif
26
-+
27
-+// '/tmp' below will be addressed by PR 1601405.
28
-+#ifndef TMP_DIR_PATH_PATTERN
29
-+#define TMP_DIR_PATH_PATTERN "/tmp/.vmware-imgcust-dXXXXXX"
30
- #endif
31
- 
32
- #ifndef BASEFILENAME
33
-@@ -115,7 +122,6 @@
34
- // Private functions
35
- static Bool GetPackageInfo(const char* pkgName, char** cmd, uint8* type, uint8* flags);
36
- static Bool ExtractZipPackage(const char* pkg, const char* dest);
37
--static Bool CreateDir(const char *path);
38
- static void Init(void);
39
- static struct List* AddToList(struct List* head, const char* token);
40
- static int ListSize(struct List* head);
41
-@@ -151,8 +157,17 @@
42
- NORETURN void
43
- Panic(const char *fmtstr, ...)
44
- {
45
--   /* Ignored */
46
--   sLog(log_warning, "Panic callback invoked. \n");
47
-+   va_list args;
48
-+
49
-+   char *tmp = Util_SafeMalloc(MAXSTRING);
50
-+
51
-+   va_start(args, fmtstr);
52
-+   vsprintf(tmp, fmtstr, args);
53
-+
54
-+   sLog(log_error, "Panic callback invoked: %s\n", tmp);
55
-+
56
-+   free(tmp);
57
-+
58
-    exit(1);
59
- }
60
- 
61
-@@ -169,12 +184,19 @@
62
-  *
63
-  **/
64
- void
65
--Debug(const char *fmtstr,
66
--      va_list args)
67
-+Debug(const char *fmtstr, ...)
68
- {
69
--   /* Ignored */
70
- #ifdef VMX86_DEBUG
71
--   sLog(log_warning, "Debug callback invoked. \n");
72
-+   va_list args;
73
-+
74
-+   char *tmp = Util_SafeMalloc(MAXSTRING);
75
-+
76
-+   va_start(args, fmtstr);
77
-+   vsprintf(tmp, fmtstr, args);
78
-+
79
-+   sLog(log_debug, "Debug callback invoked: %s\n", tmp);
80
-+
81
-+   free(tmp);
82
- #endif
83
- }
84
- 
85
-@@ -979,6 +1001,7 @@
86
- Deploy(const char* packageName)
87
- {
88
-    int deployStatus = DEPLOY_SUCCESS;
89
-+   char* pkgCommand = NULL;
90
-    char* command = NULL;
91
-    int deploymentResult = 0;
92
-    char *nics;
93
-@@ -986,6 +1009,7 @@
94
-    uint8 archiveType;
95
-    uint8 flags;
96
-    bool forceSkipReboot = false;
97
-+   char *tmpDirPath;
98
-    Bool cloudInitEnabled = FALSE;
99
-    const char *cloudInitConfigFilePath = "/etc/cloud/cloud.cfg";
100
-    char cloudCommand[1024];
101
-@@ -998,33 +1022,41 @@
102
-                                TOOLSDEPLOYPKG_ERROR_SUCCESS,
103
-                                NULL);
104
- 
105
-+   tmpDirPath = mkdtemp((char *)Util_SafeStrdup(TMP_DIR_PATH_PATTERN));
106
-+   if (tmpDirPath == NULL) {
107
-+      SetDeployError("Error creating tmp dir: %s", strerror(errno));
108
-+      return DEPLOY_ERROR;
109
-+   }
110
-+
111
-    sLog(log_info, "Reading cabinet file %s. \n", packageName);
112
- 
113
-    // Get the command to execute
114
--   if (!GetPackageInfo(packageName, &command, &archiveType, &flags)) {
115
-+   if (!GetPackageInfo(packageName, &pkgCommand, &archiveType, &flags)) {
116
-       SetDeployError("Error extracting package header information. (%s)",
117
-                      GetDeployError());
118
-+      free(tmpDirPath);
119
-       return DEPLOY_ERROR;
120
-    }
121
- 
122
--   // Print the header command
123
--#ifdef VMX86_DEBUG
124
--   sLog(log_debug, "Header command: %s \n ", command);
125
--#endif
126
--
127
--   // create the destination directory
128
--   if (!CreateDir(EXTRACTPATH "/")) {
129
--      free(command);
130
--      return DEPLOY_ERROR;
131
-+   sLog(log_info, "Original deployment command: %s\n", pkgCommand);
132
-+   if (strstr(pkgCommand, IMC_TMP_PATH_VAR) != NULL) {
133
-+      command = StrUtil_ReplaceAll(pkgCommand, IMC_TMP_PATH_VAR, tmpDirPath);
134
-+   } else {
135
-+      command = StrUtil_ReplaceAll(pkgCommand, TMP_PATH_VAR, tmpDirPath);
136
-    }
137
-+   free(pkgCommand);
138
-+
139
-+   sLog(log_info, "Actual deployment command: %s\n", command);
140
- 
141
-    if (archiveType == VMWAREDEPLOYPKG_PAYLOAD_TYPE_CAB) {
142
--      if (!ExtractCabPackage(packageName, EXTRACTPATH)) {
143
-+      if (!ExtractCabPackage(packageName, tmpDirPath)) {
144
-+         free(tmpDirPath);
145
-          free(command);
146
-          return DEPLOY_ERROR;
147
-       }
148
-    } else if (archiveType == VMWAREDEPLOYPKG_PAYLOAD_TYPE_ZIP) {
149
--      if (!ExtractZipPackage(packageName, EXTRACTPATH)) {
150
-+      if (!ExtractZipPackage(packageName, tmpDirPath)) {
151
-+         free(tmpDirPath);
152
-          free(command);
153
-          return DEPLOY_ERROR;
154
-       }
155
-@@ -1040,10 +1072,8 @@
156
-       cloudInitEnabled = TRUE;
157
-       sSkipReboot = TRUE;
158
-       free(command);
159
--      deployStatus =  CloudInitSetup(EXTRACTPATH);
160
-+      deployStatus =  CloudInitSetup(tmpDirPath);
161
-    } else {
162
--      // Run the deployment command
163
--      sLog(log_info, "Launching deployment %s.  \n", command);
164
-       deploymentResult = ForkExecAndWaitCommand(command);
165
-       free(command);
166
- 
167
-@@ -1089,7 +1119,7 @@
168
-        * of the sucess/failure of the customization so that at the end of it we
169
-        * always have nics enabled.
170
-        */
171
--      nics = GetNicsToEnable(EXTRACTPATH);
172
-+      nics = GetNicsToEnable(tmpDirPath);
173
-       if (nics) {
174
-          // XXX: Sleep before the last SetCustomizationStatusInVmx
175
-          //      This is a temporary-hack for PR 422790
176
-@@ -1104,22 +1134,23 @@
177
-       }
178
-    }
179
- 
180
--   cleanupCommand = malloc(strlen(CLEANUPCMD) + strlen(CLEANUPPATH) + 1);
181
-+   cleanupCommand = malloc(strlen(CLEANUPCMD) + strlen(tmpDirPath) + 1);
182
-    if (!cleanupCommand) {
183
-       SetDeployError("Error allocating memory.");
184
-+      free(tmpDirPath);
185
-       return DEPLOY_ERROR;
186
-    }
187
- 
188
-    strcpy(cleanupCommand, CLEANUPCMD);
189
--   strcat(cleanupCommand, CLEANUPPATH);
190
-+   strcat(cleanupCommand, tmpDirPath);
191
- 
192
-    sLog(log_info, "Launching cleanup. \n");
193
-    if (ForkExecAndWaitCommand(cleanupCommand) != 0) {
194
--      sLog(log_warning, "Error while clean up. Error removing directory %s. (%s)",
195
--           EXTRACTPATH, strerror (errno));
196
--      //TODO: What should be done if cleanup fails ??
197
-+      sLog(log_warning, "Error while clean up tmp directory %s: (%s)",
198
-+           tmpDirPath, strerror (errno));
199
-    }
200
-    free (cleanupCommand);
201
-+   free(tmpDirPath);
202
- 
203
-    if (flags & VMWAREDEPLOYPKG_HEADER_FLAGS_SKIP_REBOOT) {
204
-       forceSkipReboot = true;
205
-@@ -1388,61 +1419,6 @@
206
-    return retval;
207
- }
208
- 
209
--/**
210
-- * Sets up the path for exracting file. For e.g. if the file is /a/b/c/d.abc
211
-- * then it creates /a/b/c (skips if any of the directories along the path
212
-- * exists). If the the path ends in '/', then the the entire input is assumed
213
-- * to be a directory and is created as such.
214
-- *
215
-- * @param path  IN: Complete path of the file
216
-- * @return TRUE on success
217
-- */
218
--
219
--Bool
220
--CreateDir(const char* path)
221
--{
222
--   struct stat stats;
223
--   char* token;
224
--   char* copy;
225
--
226
--   // make a copy we can modify
227
--   copy = strdup(path);
228
--
229
--   // walk through the path (it employs in string replacement)
230
--   for (token = copy + 1; *token; ++token) {
231
--
232
--      // find
233
--      if (*token != '/') {
234
--         continue;
235
--      }
236
--
237
--      /*
238
--       * cut it off here for e.g. on first iteration /a/b/c/d.abc will have
239
--       * token /a, on second /a/b etc
240
--       */
241
--      *token = 0;
242
--
243
--      sLog(log_debug, "Creating directory %s", copy);
244
--
245
--      // ignore if the directory exists
246
--      if (!((stat(copy, &stats) == 0) && S_ISDIR(stats.st_mode))) {
247
--         // make directory and check error (accessible only by owner)
248
--         if (mkdir(copy, 0700) == -1) {
249
--            sLog(log_error, "Unable to create directory %s (%s)", copy,
250
--                 strerror(errno));
251
--            free(copy);
252
--            return FALSE;
253
--         }
254
--      }
255
--
256
--      // restore the token
257
--      *token = '/';
258
--   }
259
--
260
--   free(copy);
261
--   return TRUE;
262
--}
263
--
264
- //......................................................................................
265
- 
266
- /**
... ...
@@ -1,25 +1,23 @@
1 1
 Summary:        Usermode tools for VmWare virts
2 2
 Name:           open-vm-tools
3
-Version:        10.1.5
4
-Release:        6%{?dist}
3
+Version:        10.1.10
4
+Release:        1%{?dist}
5 5
 License:        LGPLv2+
6 6
 URL:            https://github.com/vmware/open-vm-tools
7 7
 Group:          Applications/System
8 8
 Vendor:         VMware, Inc.
9 9
 Distribution:   Photon
10 10
 Source0:        https://github.com/vmware/open-vm-tools/archive/%{name}-stable-%{version}.tar.gz
11
-%define sha1 open-vm-tools=9672874e8b785de27d7fda57bf791f900546c18f
11
+%define sha1 open-vm-tools=26ac84e86b4c862006b8de7973802e45dfd77464
12 12
 Source1:        gosc-scripts-1.0.tar.gz
13 13
 %define sha1 gosc-scripts-1.0=5031dd9b3b0569a40d2ee0caaa55a1cbf782345e
14 14
 Source2:        vmtoolsd.service
15 15
 Source3:        vgauthd.service
16
-Patch0:         open-vm-tools-tmp-race.patch
17
-Patch1:         IPv6Support.patch
18
-Patch2:         hostnameReCustomizationFix.patch
19
-Patch3:         PureIPv6-hosts.patch
20
-Patch4:         open-vm-tools-sysmacros.patch
21
-Patch5:         GOSC-libDeploy.patch
22
-Patch6:         timezoneCust.patch
16
+Patch0:         IPv6Support.patch
17
+Patch1:         hostnameReCustomizationFix.patch
18
+Patch2:         PureIPv6-hosts.patch
19
+Patch3:         GOSC-libDeploy.patch
20
+Patch4:         timezoneCust.patch
23 21
 BuildRequires:  glib-devel
24 22
 BuildRequires:  xerces-c-devel
25 23
 BuildRequires:  xml-security-c-devel
... ...
@@ -54,10 +52,8 @@ It contains the libraries and header files to create applications.
54 54
 %patch0 -p0
55 55
 %patch1 -p0
56 56
 %patch2 -p0
57
-%patch3 -p0
58
-%patch4 -p1
59
-%patch5 -p1
60
-%patch6 -p0
57
+%patch3 -p2
58
+%patch4 -p0
61 59
 %build
62 60
 touch ChangeLog
63 61
 autoreconf -i
... ...
@@ -117,6 +113,8 @@ fi
117 117
 %{_libdir}/*.so
118 118
 
119 119
 %changelog
120
+*   Tue Aug 22 2017 Kumar Kaushik <kaushikk@vmware.com> 10.1.10-1
121
+-   Updating version to 10.1.10, removing upstream patches.
120 122
 *   Fri Jun 23 2017 Xiaolin Li <xiaolinl@vmware.com> 10.1.5-6
121 123
 -   Add libdnet-devel and libmspack-devel to BuildRequires, add devel package.
122 124
 *   Mon Jun 05 2017 Bo Gan <ganb@vmware.com> 10.1.5-5