]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Make CAF consume the same version of GLIB (and dependencies) used by Tools.
authorOliver Kurth <okurth@vmware.com>
Fri, 15 Sep 2017 18:23:33 +0000 (11:23 -0700)
committerOliver Kurth <okurth@vmware.com>
Fri, 15 Sep 2017 18:23:33 +0000 (11:23 -0700)
Summary of changes-

1. Linux: Make the following libraries point to their Tools
   counterparts by updating the LD_LIBRARY path in CAF makefile:
   -libglib-2.0.so.0
   -libiconv.so.2
   -libpcre.so.1
   -libz.so.1
   -libffi.so.6
   -libgthread-2.0.so.0
   -libstdc++.so.6
   -libgcc_s.so.1

2. Linux: Add a new environmental variable INSTALL_MODE = tools/standalone
   in makefile, setting it to "tools" by default, to handle copying of the
   required GLIB (and dependencies) for CAF "standalone" installation.

3. Linux: Update setupCafConfig function to add the INSTALL_MODE property
   if not present already to handle build2build upgrade case.

open-vm-tools/common-agent/etc/config/cafenv-appconfig
open-vm-tools/common-agent/etc/install/caf-dbg.sh
open-vm-tools/common-agent/etc/install/install.sh
open-vm-tools/common-agent/etc/install/upgrade.sh
open-vm-tools/common-agent/etc/scripts/caf-common

index 91e8e2af5ef11de851c9999f4e96d6bfc13ac58c..0071c92fff0c20d705a6a43a51458aab5419ad0d 100644 (file)
@@ -37,3 +37,7 @@ providers_dir=@providersDir@
 # Substitute @toolsLibDir@ for the value passed in during install
 # Maps to 'lib' in the build output
 tools_lib_dir=@toolsLibDir@
+
+# Substitute @cafInstallMode@ for the value passed in during install
+# No mapping in the build output since it is just a reference value
+install_mode=@cafInstallMode@
index 070973f3bed861ca9a323a3829e351d09cef6291..7d98de2c1313d8bf4d3423139ec82a288e8f8eab 100644 (file)
@@ -198,20 +198,22 @@ function checkFileExistsLib() {
    checkFileExists "$CAF_LIB_DIR/libVgAuthIntegrationSubsys.so"
    checkFileExists "$CAF_LIB_DIR/libcom_err.so.3"
    checkFileExists "$CAF_LIB_DIR/libcrypto.so.1.0.2"
-   checkFileExists "$CAF_LIB_DIR/libgcc_s.so.1"
-   checkFileExists "$CAF_LIB_DIR/libglib-2.0.so.0.4800.1"
-   checkFileExists "$CAF_LIB_DIR/libgthread-2.0.so.0.4800.1"
+   if [ "$CAF_INSTALL_MODE" = "standalone" ]; then
+      checkFileExists "$CAF_LIB_DIR/libgcc_s.so.1"
+      checkFileExists "$CAF_LIB_DIR/libglib-2.0.so.0.4800.1"
+      checkFileExists "$CAF_LIB_DIR/libgthread-2.0.so.0.4800.1"
+      checkFileExists "$CAF_LIB_DIR/libstdc++.so.6.0.13"
+      checkFileExists "$CAF_LIB_DIR/libpcre.so.1.2.6"
+      checkFileExists "$CAF_LIB_DIR/libiconv.so.2.5.1"
+      checkFileExists "$CAF_LIB_DIR/libz.so.1.2.8"
+      checkFileExists "$CAF_LIB_DIR/libffi.so.6.0.4"
+   fi
    checkFileExists "$CAF_LIB_DIR/liblog4cpp.so.5.0.6"
    checkFileExists "$CAF_LIB_DIR/librabbitmq.so.4.2.1"
    checkFileExists "$CAF_LIB_DIR/libssl.so.1.0.2"
-   checkFileExists "$CAF_LIB_DIR/libstdc++.so.6.0.13"
    checkFileExists "$CAF_LIB_DIR/libvgauth.so"
    checkFileExists "$CAF_LIB_DIR/libxerces-c-3.1.so"
    checkFileExists "$CAF_LIB_DIR/libxml-security-c.so.16"
-   checkFileExists "$CAF_LIB_DIR/libpcre.so.1.2.6"
-   checkFileExists "$CAF_LIB_DIR/libiconv.so.2.5.1"
-   checkFileExists "$CAF_LIB_DIR/libz.so.1.2.8"
-   checkFileExists "$CAF_LIB_DIR/libffi.so.6.0.4"
 }
 
 function checkFileExistsConfig() {
@@ -388,8 +390,10 @@ function checkFileExistsLib() {
       checkFileExists "$CAF_LIB_DIR/libManagementAgentHost.so"
       checkFileExists "$CAF_LIB_DIR/liblog4cpp.so.5.0.6"
       checkFileExists "$CAF_LIB_DIR/librabbitmq.so.4.2.1"
-      checkFileExists "$CAF_LIB_DIR/libgthread-2.0.so.0.4800.1"
-      checkFileExists "$CAF_LIB_DIR/libglib-2.0.so.0.4800.1"
+      if [ "$CAF_INSTALL_MODE" = "standalone" ]; then
+           checkFileExists "$CAF_LIB_DIR/libgthread-2.0.so.0.4800.1"
+           checkFileExists "$CAF_LIB_DIR/libglib-2.0.so.0.4800.1"
+      fi
    fi
 }
 
index e24c701bad2cc97fcda02c3e56ec138237838f8f..41388f1c68b442e2d79d1c95f6c183e4bb165b3c 100644 (file)
@@ -26,6 +26,7 @@ baseOutputDir='/var/lib'
 brokerAddr='#brokerAddr#'
 linkSo='yes'
 toolsLibDir='/usr/lib/vmware-tools/lib' # lib is symlink to either lib64 or lib32
+cafInstallMode='standalone'
 
 #Help function
 HELP() {
@@ -49,6 +50,7 @@ setupCafConfig() {
        local pattern="$1"
        local value="$2"
        local rconfigDir="$3"
+       local key="$4" ## Add the key if not exists
 
        if [ ! -n "$pattern" ]; then
                echo 'The pattern cannot be empty!'
@@ -59,7 +61,10 @@ setupCafConfig() {
                        echo "The config file must exist! - $rconfigDir/cafenv-appconfig"
                        exit 1
                fi
-
+               if [ -n "$key" -a `grep -c -E "^$key=" "$rconfigDir/cafenv-appconfig"` -eq 0 ]; then
+                       echo >> "$rconfigDir"
+                        echo "$key=$value" >> "$rconfigDir/cafenv-appconfig"
+               fi
                sed -i "s?$pattern?$value?g" "$rconfigDir/cafenv-appconfig"
        fi
 }
@@ -86,6 +91,7 @@ while getopts ":b:i:l:B:o:t:hL" opt; do
                        ;;
                t)
                        toolsLibDir="$OPTARG"
+                        cafInstallMode='tools'
                        ;;
                L)
                        linkSo='no'
@@ -132,7 +138,8 @@ setupCafConfig '@outputDir@' "$outputDir" "$configDir"
 setupCafConfig '@providersDir@' "$providersDir" "$configDir"
 setupCafConfig '@invokersDir@' "$invokersDir" "$configDir"
 setupCafConfig '@logDir@' "$logDir" "$configDir"
-setupCafConfig '@toolsLibDir@' "$toolsLibDir" "$configDir"
+setupCafConfig '@toolsLibDir@' "$toolsLibDir" "$configDir" 'tools_lib_dir'
+setupCafConfig '@cafInstallMode@' "$cafInstallMode" "$configDir" 'install_mode'
 
 #Set default permissions
 if [ -d "$libDir" ]; then
@@ -167,25 +174,28 @@ if [ -d "$scriptDir" ]; then
        chmod 555 "$scriptDir"/*
 fi
 
-#Set up links
+
+#Set up links only in case of CAF Standalone mode
 if [ "$linkSo" != "no" ] ; then
        cd "$libDir"
-       ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so
-       ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so.0
-       ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so
-       ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so.0
+       if [ "$cafInstallMode" = "standalone" ]; then
+                ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so
+                ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so.0
+                ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so
+                ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so.0
+                ln -sf libpcre.so.1.2.6 libpcre.so
+                ln -sf libpcre.so.1.2.6 libpcre.so.1
+                ln -sf libiconv.so.2.5.1 libiconv.so
+                ln -sf libiconv.so.2.5.1 libiconv.so.2
+                ln -sf libz.so.1.2.8 libz.so
+                ln -sf libz.so.1.2.8 libz.so.1
+                ln -sf libffi.so.6.0.4 libffi.so
+                ln -sf libffi.so.6.0.4 libffi.so.6
+       fi
        ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so
        ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so.5
        ln -sf librabbitmq.so.4.2.1 librabbitmq.so
        ln -sf librabbitmq.so.4.2.1 librabbitmq.so.4
-       ln -sf libpcre.so.1.2.6 libpcre.so
-       ln -sf libpcre.so.1.2.6 libpcre.so.1
-       ln -sf libiconv.so.2.5.1 libiconv.so
-       ln -sf libiconv.so.2.5.1 libiconv.so.2
-       ln -sf libz.so.1.2.8 libz.so
-       ln -sf libz.so.1.2.8 libz.so.1
-       ln -sf libffi.so.6.0.4 libffi.so
-       ln -sf libffi.so.6.0.4 libffi.so.6
 fi
 
 #Run provider install logic
index d22783abe76358e56e983f1e634dab927d8df727..ffbee32045cca185b1a93b6497baebb06c35d607 100644 (file)
@@ -7,7 +7,7 @@ installDir=$(dirname $(readlink -f $0))
 scriptsDir=$installDir/../scripts
 configDir=$installDir/../config
 toolsLibDir='/usr/lib/vmware-tools/lib' # lib is symlink to either lib64 or lib32
-
+cafInstallMode='standalone'
 
 #Help function
 HELP() {
@@ -28,6 +28,7 @@ while getopts ":t:h" opt; do
        case $opt in
                t)
                        toolsLibDir="$OPTARG"
+                        cafInstallMode='tools'
                        ;;
                h)
                        HELP
@@ -84,19 +85,21 @@ if [ ! -d $CAF_LIB_DIR ]; then
 fi
 
 cd $CAF_LIB_DIR
-ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so
-ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so.0
-ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so
-ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so.0
+if [ "$cafInstallMode" = "standalone" ]; then
+   ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so
+   ln -sf libglib-2.0.so.0.4800.1 libglib-2.0.so.0
+   ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so
+   ln -sf libgthread-2.0.so.0.4800.1 libgthread-2.0.so.0
+   ln -sf libpcre.so.1.2.6 libpcre.so
+   ln -sf libpcre.so.1.2.6 libpcre.so.1
+   ln -sf libiconv.so.2.5.1 libiconv.so
+   ln -sf libiconv.so.2.5.1 libiconv.so.2
+   ln -sf libz.so.1.2.8 libz.so
+   ln -sf libz.so.1.2.8 libz.so.1
+   ln -sf libffi.so.6.0.4 libffi.so
+   ln -sf libffi.so.6.0.4 libffi.so.6
+fi
 ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so
 ln -sf liblog4cpp.so.5.0.6 liblog4cpp.so.5
 ln -sf librabbitmq.so.4.2.1 librabbitmq.so
 ln -sf librabbitmq.so.4.2.1 librabbitmq.so.4
-ln -sf libpcre.so.1.2.6 libpcre.so
-ln -sf libpcre.so.1.2.6 libpcre.so.1
-ln -sf libiconv.so.2.5.1 libiconv.so
-ln -sf libiconv.so.2.5.1 libiconv.so.2
-ln -sf libz.so.1.2.8 libz.so
-ln -sf libz.so.1.2.8 libz.so.1
-ln -sf libffi.so.6.0.4 libffi.so
-ln -sf libffi.so.6.0.4 libffi.so.6
index 2b18196d5eb33d359c0a5e2814837215c6a97ec2..00fd834a29323f4c4cbf4d25da554dcdadbf663d 100644 (file)
@@ -13,7 +13,11 @@ sourceCafenv() {
        cat "$cafenvAppconfig" | sed 's/^\[/#[/g' | sed 's/^\([a-z].*=\)/export CAF_\U\1/g' > "$tmpCafenv"
        sed -i 's/[ ]*=[ ]*/=/g' "$tmpCafenv"
        . "$tmpCafenv"
-        export LD_LIBRARY_PATH="$CAF_TOOLS_LIB_DIR/libvgauth.so/:$CAF_TOOLS_LIB_DIR/libcrypto.so.1.0.2/:$CAF_TOOLS_LIB_DIR/libssl.so.1.0.2/:$CAF_LIB_DIR"
+       if [ "$CAF_INSTALL_MODE" = "standalone" ]; then
+                export LD_LIBRARY_PATH=$CAF_LIB_DIR
+       else
+                export LD_LIBRARY_PATH="$CAF_TOOLS_LIB_DIR/libvgauth.so/:$CAF_TOOLS_LIB_DIR/libcrypto.so.1.0.2/:$CAF_TOOLS_LIB_DIR/libssl.so.1.0.2/:$CAF_TOOLS_LIB_DIR/libz.so.1/:$CAF_TOOLS_LIB_DIR/libffi.so.6/:$CAF_TOOLS_LIB_DIR/libiconv.so.2/:$CAF_TOOLS_LIB_DIR/libpcre.so.1/:$CAF_TOOLS_LIB_DIR/libglib-2.0.so.0/:$CAF_TOOLS_LIB_DIR/libgcc_s.so.1/:$CAF_TOOLS_LIB_DIR/libgthread-2.0.so.0/:$CAF_TOOLS_LIB_DIR/libstdc++.so.6/:$CAF_LIB_DIR"
+       fi
         export VMWARE_USE_SYSTEM_LIBS=1
 }