Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 798080b0 authored by Kousik Kumar's avatar Kousik Kumar
Browse files

Copy reclient binaries into the out directory itself

This is to avoid the problem of multiple source commands / builds run in parallel overwriting the binaries in the reclient dir.

TESTED=ran concurrent builds, ensured binaries weren't being overwritten.

Bug: b/302378775

NOTE FOR REVIEWERS - original patch and result patch are not identical.
PLEASE REVIEW CAREFULLY.
Diffs between the patches:
 fi
+  local RECLIENT_VERSION=`readlink prebuilts/remoteexecution-client/live`
+
+  local NONCOG_RECLIENT_BIN_DIR_BASE="${OUT_DIR}/.reclient"
+  local NONCOG_RECLIENT_BIN_DIR="${NONCOG_RECLIENT_BIN_DIR_BASE}/${RECLIENT_VERSION}"
+  if [ -d "${NONCOG_RECLIENT_BIN_DIR}" ]; then
+    if [ `ls ${NONCOG_RECLIENT_BIN_DIR} | wc -l` -gt 1 ] ; then
+      # binaries already exist, only update the symlink to ensure correct
+      # reclient version is set.
+      ln -sf ${RECLIENT_VERSION} ${NONCOG_RECLIENT_BIN_DIR_BASE}/live
+      return
+    fi
+  # Create the non cog directory and copy binaries into it.
+  mkdir -p ${NONCOG_RECLIENT_BIN_DIR}
-
-  # Copy the binaries out of live.
-  cp $TOP/prebuilts/remoteexecution-client/live/* $NONCOG_RECLIENT_BIN_DIR
+  cp ${TOP}/prebuilts/remoteexecution-client/live/* ${NONCOG_RECLIENT_BIN_DIR}
+  ln -sf ${RECLIENT_VERSION} ${NONCOG_RECLIENT_BIN_DIR_BASE}/live
-  export RBE_DIR=$NONCOG_RECLIENT_BIN_DIR
+  export RBE_DIR="${NONCOG_RECLIENT_BIN_DIR_BASE}/live"

Original patch:
 diff a/cogsetup.sh b/cogsetup.sh
--- a/cogsetup.sh
+++ b/cogsetup.sh
@@ -39,22 +39,30 @@
 # non-cog part of the overall filesystem.  This is to workaround the problem
 # described in b/289391270.
 function _copy_reclient_binaries_from_cog() {
-  local NONCOG_RECLIENT_BIN_DIR="${HOME}/.cog/reclient/bin"
-  if [ ! -d "$NONCOG_RECLIENT_BIN_DIR" ]; then
-    # Create the non cog directory if it doesn't exist.
-    mkdir -p ${NONCOG_RECLIENT_BIN_DIR}
-  else
-    # Clear out the non cog directory if it does exist.
-    rm -f ${NONCOG_RECLIENT_BIN_DIR}/*
+  if [[ "${OUT_DIR}" == "" ]]; then
+    OUT_DIR="out"
   fi
+  local RECLIENT_VERSION=`readlink prebuilts/remoteexecution-client/live`
 
-  local TOP=$(gettop)
+  local NONCOG_RECLIENT_BIN_DIR_BASE="${OUT_DIR}/.reclient"
+  local NONCOG_RECLIENT_BIN_DIR="${NONCOG_RECLIENT_BIN_DIR_BASE}/${RECLIENT_VERSION}"
+  if [ -d "${NONCOG_RECLIENT_BIN_DIR}" ]; then
+    if [ `ls ${NONCOG_RECLIENT_BIN_DIR} | wc -l` -gt 1 ] ; then
+      # binaries already exist, only update t

Change-Id: Ia6cb7faae6366ee7491fcf91777318b772a3ba88
parent 19cd806d
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment