Index: /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-matlab.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-matlab.sh	(revision 25873)
+++ /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-matlab.sh	(revision 25874)
@@ -89,5 +89,29 @@
 #
 export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
-AGU
+
+## Functions
+#
+validate_signed_repo_copy(){
+	# Check out copy of repository for signed binaries if it does not exist 
+	# (e.g. 'Check-out Strategy' was set to 'Use 'svn update' as much as 
+	# possible'; initial checkout failed)
+	if [ ! -d ${SIGNED_REPO_COPY} && ! -d ${SIGNED_REPO_COPY}/.svn ]; then
+		# Check out copy of SVN repository for signed packages
+		#
+		# NOTE: Get empty copy because we do not want to have to check out package from 
+		#		previous signing.
+		#
+		echo "Checking out copy of repository for signed packages"
+		svn checkout \
+			--trust-server-cert \
+			--non-interactive \
+			--depth empty \
+			--username ${USERNAME} \
+			--password ${PASSWORD} \
+			${SIGNED_REPO_URL} \
+			${SIGNED_REPO_COPY} > /dev/null 2>&1
+	fi
+}
+
 ## Parse options
 #
@@ -167,5 +191,5 @@
 		# If lock file exists, a signing build is still in process by JPL Cybersecurity
 		svn up ${SIGNED_REPO_COPY}/${SIGNING_LOCK_FILE} > /dev/null 2>&1
-		if [[ -f ${SIGNED_REPO_COPY}/${SIGNING_LOCK_FILE} ]]; then
+		if [ -f ${SIGNED_REPO_COPY}/${SIGNING_LOCK_FILE} ]; then
 			echo "Previous signing job still in process by JPL Cybersecurity. Please try again later."
 			exit 1
@@ -243,5 +267,5 @@
 			numTestsFailed=`cat matlab.log | grep -c -e "FAILED|ERROR"`
 
-			if [[ ${numTestsFailed} -ne 0 ]]; then
+			if [ ${numTestsFailed} -ne 0 ]; then
 				echo "One or more tests FAILED"
 				exit 1
@@ -269,4 +293,11 @@
 		echo "Compressing package"
 		ditto -ck --sequesterRsrc --keepParent ${PKG} ${COMPRESSED_PKG}
+	else
+		# Assume that previous build was successful, but signing/notarization 
+		# failed.
+		#
+
+		# Make sure copy of repository for signed packages exists
+		validate_signed_repo_copy
 	fi
 
@@ -360,4 +391,9 @@
 	# that transfer to ISSM Web site failed and user built this project again 
 	# with -t/--transferonly option.
+	#
+
+	# Make sure copy of repository for signed packages exists
+	validate_signed_repo_copy
+
 	SUCCESS=1
 fi
Index: /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-python.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-python.sh	(revision 25873)
+++ /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-python.sh	(revision 25874)
@@ -88,4 +88,28 @@
 #
 export PATH="${ISSM_DIR}/bin:$(getconf PATH)" # Ensure that we pick up binaries from 'bin' directory rather than 'externalpackages'
+
+## Functions
+#
+validate_signed_repo_copy(){
+	# Check out copy of repository for signed binaries if it does not exist 
+	# (e.g. 'Check-out Strategy' was set to 'Use 'svn update' as much as 
+	# possible'; initial checkout failed)
+	if [ ! -d ${SIGNED_REPO_COPY} && ! -d ${SIGNED_REPO_COPY}/.svn ]; then
+		# Check out copy of SVN repository for signed packages
+		#
+		# NOTE: Get empty copy because we do not want to have to check out package from 
+		#		previous signing.
+		#
+		echo "Checking out copy of repository for signed packages"
+		svn checkout \
+			--trust-server-cert \
+			--non-interactive \
+			--depth empty \
+			--username ${USERNAME} \
+			--password ${PASSWORD} \
+			${SIGNED_REPO_URL} \
+			${SIGNED_REPO_COPY} > /dev/null 2>&1
+	fi
+}
 
 ## Parse options
@@ -160,5 +184,5 @@
 		# If lock file exists, a signing build is still in process by JPL Cybersecurity
 		svn up ${SIGNED_REPO_COPY}/${SIGNING_LOCK_FILE} > /dev/null 2>&1
-		if [[ -f ${SIGNED_REPO_COPY}/${SIGNING_LOCK_FILE} ]]; then
+		if [ -f ${SIGNED_REPO_COPY}/${SIGNING_LOCK_FILE} ]; then
 			echo "Previous signing job still in process by JPL Cybersecurity. Please try again later."
 			exit 1
@@ -242,5 +266,5 @@
 			numTestsFailed=`cat python.log | grep -c -e "FAILED|ERROR"`
 
-			if [[ ${numTestsFailed} -ne 0 ]]; then
+			if [ ${numTestsFailed} -ne 0 ]; then
 				echo "One or more tests FAILED"
 				exit 1
@@ -270,4 +294,11 @@
 		echo "Compressing package"
 		ditto -ck --sequesterRsrc --keepParent ${PKG} ${COMPRESSED_PKG}
+	else
+		# Assume that previous build was successful, but signing/notarization 
+		# failed.
+		#
+
+		# Make sure copy of repository for signed packages exists
+		validate_signed_repo_copy
 	fi
 
@@ -361,4 +392,9 @@
 	# that transfer to ISSM Web site failed and user built this project again 
 	# with -t/--transferonly option.
+	#
+
+	# Make sure copy of repository for signed packages exists
+	validate_signed_repo_copy
+
 	SUCCESS=1
 fi
Index: /issm/trunk-jpl/packagers/mac/sign-issm-mac-binaries-matlab.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/sign-issm-mac-binaries-matlab.sh	(revision 25873)
+++ /issm/trunk-jpl/packagers/mac/sign-issm-mac-binaries-matlab.sh	(revision 25874)
@@ -167,5 +167,5 @@
 # Check if UUID exists in response
 HAS_UUID=$(grep 'RequestUUID = ' ${NOTARIZATION_LOGFILE_PATH}/${NOTARIZATION_LOGFILE}) # NOTE: Checking for "RequestUUID = " because "RequestUUID" shows up in some error messages
-if [[ -z "${HAS_UUID}" ]]; then
+if [ -z "${HAS_UUID}" ]; then
 	echo "Notarization failed!"
 	echo "----------------------- Contents of notarization logfile -----------------------"
@@ -199,5 +199,5 @@
 		# First, check if there is an error
 		ERROR_CHECK=$(grep 'Error' ${NOTARIZATION_LOGFILE_PATH}/${NOTARIZATION_LOGFILE})
-		if [[ ! -z "${ERROR_CHECK}" ]]; then
+		if [ ! -z "${ERROR_CHECK}" ]; then
 			break
 		fi
Index: /issm/trunk-jpl/packagers/mac/sign-issm-mac-binaries-python.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/sign-issm-mac-binaries-python.sh	(revision 25873)
+++ /issm/trunk-jpl/packagers/mac/sign-issm-mac-binaries-python.sh	(revision 25874)
@@ -176,5 +176,5 @@
 # Check if UUID exists in response
 HAS_UUID=$(grep 'RequestUUID = ' ${NOTARIZATION_LOGFILE_PATH}/${NOTARIZATION_LOGFILE}) # NOTE: Checking for "RequestUUID = " because "RequestUUID" shows up in some error messages
-if [[ -z "${HAS_UUID}" ]]; then
+if [ -z "${HAS_UUID}" ]; then
 	echo "Notarization failed!"
 	echo "----------------------- Contents of notarization logfile -----------------------"
@@ -208,5 +208,5 @@
 		# First, check if there is an error
 		ERROR_CHECK=$(grep 'Error' ${NOTARIZATION_LOGFILE_PATH}/${NOTARIZATION_LOGFILE})
-		if [[ ! -z "${ERROR_CHECK}" ]]; then
+		if [ ! -z "${ERROR_CHECK}" ]; then
 			break
 		fi
