@@ -202,7 +202,7 @@ SWIFT_API_INSTALL_ROOT="https://www.swift.org/api/v1/install"
202202# and gets the checksum for the patch version's Static Linux and/or Wasm Swift SDK.
203203#
204204# $1 (string): A minor Swift version, e.g. "6.1"
205- # Output: A string of the form "<patch-version>|<android-checksum>|<static-checksum>|<wasm-checksum>
205+ # Output: A string of the form "<patch-version>|<android-checksum>|<static-checksum>|<static-version>|< wasm-checksum>
206206find_latest_swift_version () {
207207 local minor_version=" $1 "
208208
@@ -245,6 +245,7 @@ find_latest_swift_version() {
245245 fi
246246
247247 local static_linux_sdk_checksum=" "
248+ local static_linux_sdk_version=" "
248249 if [[ " $INSTALL_STATIC_LINUX " == true ]]; then
249250 static_linux_sdk_checksum=$( echo " $releases_json " | jq -r --arg version " $latest_version " '
250251 .[]
@@ -259,6 +260,20 @@ find_latest_swift_version() {
259260 fi
260261
261262 log " Found Static Linux Swift SDK checksum: ${static_linux_sdk_checksum: 0: 12} ..."
263+
264+ static_linux_sdk_version=$( echo " $releases_json " | jq -r --arg version " $latest_version " '
265+ .[]
266+ | select(.name == $version)
267+ | .platforms[]
268+ | select(.platform == "static-sdk")
269+ | .version
270+ ' )
271+
272+ if [[ -z " $static_linux_sdk_version " ]]; then
273+ fatal " No Static Linux Swift SDK version found for Swift $latest_version "
274+ fi
275+
276+ log " Found Static Linux Swift SDK version: ${static_linux_sdk_version} "
262277 fi
263278
264279 local wasm_sdk_checksum=" "
@@ -278,7 +293,7 @@ find_latest_swift_version() {
278293 log " Found Swift SDK for Wasm checksum: ${wasm_sdk_checksum: 0: 12} ..."
279294 fi
280295
281- echo " ${latest_version} |${android_sdk_checksum} |${static_linux_sdk_checksum} |${wasm_sdk_checksum} "
296+ echo " ${latest_version} |${android_sdk_checksum} |${static_linux_sdk_checksum} |${static_linux_sdk_version} | ${ wasm_sdk_checksum}"
282297}
283298
284299# Finds the latest Android or Static Linux or Wasm
@@ -287,8 +302,8 @@ find_latest_swift_version() {
287302#
288303# $1 (string): Nightly Swift version, e.g. "6.2" or "main"
289304# $2 (string): "android" or "static" or "wasm"
290- # Output: A string of the form "<snapshot>|<sdk-checksum>",
291- # e.g. "swift-6.2-DEVELOPMENT-SNAPSHOT-2025-07-29-a|<sdk-checksum>"
305+ # Output: A string of the form "<snapshot>|<sdk-checksum>|<download-filename> ",
306+ # e.g. "swift-6.2-DEVELOPMENT-SNAPSHOT-2025-07-29-a|<sdk-checksum>|swift-6.2-DEVELOPMENT-SNAPSHOT-2025-07-29-a_static-linux-0.0.1.artifactbundle.tar.gz "
292307find_latest_sdk_snapshot () {
293308 local version=" $1 "
294309 local sdk_name=" $2 "
@@ -319,7 +334,17 @@ find_latest_sdk_snapshot() {
319334
320335 log " Found ${sdk_name} -sdk checksum: ${checksum: 0: 12} ..."
321336
322- echo " ${snapshot_tag} |${checksum} "
337+ # Extract the download filename
338+ local download
339+ download=$( echo " $sdk_json " | jq -r ' .[0].download' )
340+
341+ if [[ -z " $download " || " $download " == " null" ]]; then
342+ fatal " No download filename found for ${sdk_name} -sdk snapshot"
343+ fi
344+
345+ log " Found ${sdk_name} -sdk download filename: $download "
346+
347+ echo " ${snapshot_tag} |${checksum} |${download} "
323348}
324349
325350SWIFT_VERSION_BRANCH=" "
@@ -329,6 +354,8 @@ ANDROID_SDK_PATH_SEP="-"
329354
330355STATIC_LINUX_SDK_TAG=" "
331356STATIC_LINUX_SDK_CHECKSUM=" "
357+ STATIC_LINUX_SDK_VERSION=" "
358+ STATIC_LINUX_SDK_FILENAME=" "
332359WASM_SDK_TAG=" "
333360WASM_SDK_CHECKSUM=" "
334361
@@ -353,6 +380,7 @@ if [[ "$SWIFT_VERSION_INPUT" == nightly-* ]]; then
353380
354381 STATIC_LINUX_SDK_TAG=$( echo " $static_linux_sdk_info " | cut -d' |' -f1)
355382 STATIC_LINUX_SDK_CHECKSUM=$( echo " $static_linux_sdk_info " | cut -d' |' -f2)
383+ STATIC_LINUX_SDK_FILENAME=$( echo " $static_linux_sdk_info " | cut -d' |' -f3)
356384 fi
357385
358386 if [[ " $INSTALL_WASM " == true ]]; then
@@ -372,9 +400,11 @@ else
372400
373401 STATIC_LINUX_SDK_TAG=" swift-${latest_version} -RELEASE"
374402 STATIC_LINUX_SDK_CHECKSUM=$( echo " $latest_version_info " | cut -d' |' -f3)
403+ STATIC_LINUX_SDK_VERSION=$( echo " $latest_version_info " | cut -d' |' -f4)
404+ STATIC_LINUX_SDK_FILENAME=" ${STATIC_LINUX_SDK_TAG} _static-linux-${STATIC_LINUX_SDK_VERSION} .artifactbundle.tar.gz"
375405
376406 WASM_SDK_TAG=" swift-${latest_version} -RELEASE"
377- WASM_SDK_CHECKSUM=$( echo " $latest_version_info " | cut -d' |' -f4 )
407+ WASM_SDK_CHECKSUM=$( echo " $latest_version_info " | cut -d' |' -f5 )
378408fi
379409
380410# Validate that required Swift SDK tags are set
@@ -692,16 +722,17 @@ install_android_sdk() {
692722}
693723
694724install_static_linux_sdk () {
725+ local sdk_name=" ${STATIC_LINUX_SDK_FILENAME% .artifactbundle.tar.gz} "
726+
695727 # Check if the Static Linux Swift SDK is already installed
696- if " $SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK " sdk list 2> /dev/null | grep -q " ^${STATIC_LINUX_SDK_TAG} _static-linux-0.0.1 " ; then
728+ if " $SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK " sdk list 2> /dev/null | grep -q " ^${sdk_name} " ; then
697729 log " ✅ Static Linux Swift SDK ${STATIC_LINUX_SDK_TAG} is already installed, skipping installation"
698730 return 0
699731 fi
700732
701733 log " Installing Static Linux Swift SDK: $STATIC_LINUX_SDK_TAG "
702734
703- local static_linux_sdk_filename=" ${STATIC_LINUX_SDK_TAG} _static-linux-0.0.1.artifactbundle.tar.gz"
704- local sdk_url=" ${STATIC_LINUX_SDK_DOWNLOAD_ROOT} /${STATIC_LINUX_SDK_TAG} /${static_linux_sdk_filename} "
735+ local sdk_url=" ${STATIC_LINUX_SDK_DOWNLOAD_ROOT} /${STATIC_LINUX_SDK_TAG} /${STATIC_LINUX_SDK_FILENAME} "
705736
706737 if ! swift_sdk_install_with_retry " $SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK " " $sdk_url " " $STATIC_LINUX_SDK_CHECKSUM " " Static Linux Swift" ; then
707738 fatal " Failed to install Static Linux Swift SDK"
@@ -782,7 +813,7 @@ build() {
782813 if [[ " $INSTALL_STATIC_LINUX " == true ]]; then
783814 log " Running Swift build with Static Linux Swift SDK"
784815
785- local sdk_name=" ${STATIC_LINUX_SDK_TAG} _static-linux-0.0.1 "
816+ local sdk_name=" ${STATIC_LINUX_SDK_FILENAME % .artifactbundle.tar.gz} "
786817 alias swift=' $SWIFT_EXECUTABLE_FOR_STATIC_LINUX_SDK'
787818 local build_command=" $SWIFT_BUILD_COMMAND --swift-sdk $sdk_name "
788819 if [[ -n " $SWIFT_BUILD_FLAGS " ]]; then
0 commit comments