Skip to content

Commit 62536f1

Browse files
pin sha for macos packages (#9001)
1 parent eed37c2 commit 62536f1

File tree

5 files changed

+37
-4
lines changed

5 files changed

+37
-4
lines changed

images/macos/scripts/build/install-mono.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,27 @@ source ~/utils/utils.sh
99

1010
# Install Mono Framework
1111
MONO_VERSION_FULL=$(get_toolset_value '.mono.framework.version')
12+
MONO_PKG_SHA256=$(get_toolset_value '.mono.framework.sha256')
1213
MONO_VERSION=$(echo "$MONO_VERSION_FULL" | cut -d. -f 1,2,3)
1314
MONO_VERSION_SHORT=$(echo $MONO_VERSION_FULL | cut -d. -f 1,2)
1415
MONO_PKG_URL="https://download.mono-project.com/archive/${MONO_VERSION}/macos-10-universal/MonoFramework-MDK-${MONO_VERSION_FULL}.macos10.xamarin.universal.pkg"
1516
MONO_VERSIONS_PATH='/Library/Frameworks/Mono.framework/Versions'
1617

1718
MONO_PKG_PATH=$(download_with_retry "$MONO_PKG_URL")
19+
use_checksum_comparison "$MONO_PKG_PATH" "$MONO_PKG_SHA256"
20+
1821
echo "Installing Mono Framework ${MONO_VERSION_FULL}..."
1922
sudo installer -pkg "$MONO_PKG_PATH" -target /
2023

2124
# Download and install NUnit console
2225
NUNIT_VERSION=$(get_toolset_value '.mono.nunit.version')
2326
NUNIT_ARCHIVE_URL="https://github.com/nunit/nunit-console/releases/download/${NUNIT_VERSION}/NUnit.Console-${NUNIT_VERSION}.zip"
27+
NUNIT_ARCHIVE_SHA256=$(get_toolset_value '.mono.nunit.sha256')
2428
NUNIT_PATH="/Library/Developer/nunit"
2529
NUNIT_VERSION_PATH="$NUNIT_PATH/$NUNIT_VERSION"
2630

2731
NUNIT_ARCHIVE_PATH=$(download_with_retry "$NUNIT_ARCHIVE_URL")
32+
use_checksum_comparison "$NUNIT_ARCHIVE_PATH" "$NUNIT_ARCHIVE_SHA256"
2833
echo "Installing NUnit ${NUNIT_VERSION}..."
2934
sudo mkdir -p "$NUNIT_VERSION_PATH"
3035
sudo unzip -q "$NUNIT_ARCHIVE_PATH" -d "$NUNIT_VERSION_PATH"

images/macos/scripts/build/install-python.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ echo "Installing Python Tooling"
1111
if is_Monterey || is_BigSur; then
1212
echo "Install latest Python 2"
1313
python2_pkg=$(download_with_retry "https://www.python.org/ftp/python/2.7.18/python-2.7.18-macosx10.9.pkg")
14+
python2_pkg_sha256="c570f38b05dd8b112ad21b418cdf51a9816d62f9f44746452739d421be24d50c"
15+
use_checksum_comparison "$python2_pkg" "$python2_pkg_sha256"
1416

1517
choice_changes_xml=$(mktemp /tmp/python2_choice_changes.xml.XXXXXX)
1618
sudo installer -showChoiceChangesXML -pkg "$python2_pkg" -target / | tee "$choice_changes_xml" > /dev/null

images/macos/scripts/helpers/utils.sh

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,25 @@ get_arch() {
235235
echo "x64"
236236
fi
237237
}
238+
239+
use_checksum_comparison() {
240+
local file_path=$1
241+
local checksum=$2
242+
local sha_type=${3:-"256"}
243+
244+
echo "Performing checksum verification"
245+
246+
if [[ ! -f "$file_path" ]]; then
247+
echo "File not found: $file_path"
248+
exit 1
249+
fi
250+
251+
local_file_hash=$(shasum --algorithm "$sha_type" "$file_path" | awk '{print $1}')
252+
253+
if [[ "$local_file_hash" != "$checksum" ]]; then
254+
echo "Checksum verification failed. Expected hash: $checksum; Actual hash: $local_file_hash."
255+
exit 1
256+
else
257+
echo "Checksum verification passed"
258+
fi
259+
}

images/macos/toolsets/toolset-13.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,10 +222,12 @@
222222
},
223223
"mono": {
224224
"framework":{
225-
"version": "6.12.0.188"
225+
"version": "6.12.0.188",
226+
"sha256": "07cdd4e5e72b562892960b7fc73af470db7a4ffc2f68bb834eb3d0a874bbd12c"
226227
},
227228
"nunit": {
228-
"version": "3.15.4"
229+
"version": "3.15.4",
230+
"sha256": "356dab61433b5be76b76fd0e2e979bda56d164f6d85a900e55c3a4a5fffa28de"
229231
}
230232
}
231233
}

images/macos/toolsets/toolset-14.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,12 @@
124124
},
125125
"mono": {
126126
"framework":{
127-
"version": "6.12.0.188"
127+
"version": "6.12.0.188",
128+
"sha256": "07cdd4e5e72b562892960b7fc73af470db7a4ffc2f68bb834eb3d0a874bbd12c"
128129
},
129130
"nunit": {
130-
"version": "3.15.4"
131+
"version": "3.15.4",
132+
"sha256": "356dab61433b5be76b76fd0e2e979bda56d164f6d85a900e55c3a4a5fffa28de"
131133
}
132134
}
133135
}

0 commit comments

Comments
 (0)