Build Information
Successful build of jwt-kit, reference main (8bda2e), with Swift 6.4 for Android on 30 Oct 2026 21:57:48 UTC.
Swift 6 data race errors: 0
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344847-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.4
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/vapor/jwt-kit.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/vapor/jwt-kit
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 8bda2e7 Bump benchmark
Cloned https://github.com/vapor/jwt-kit.git
Revision (git rev-parse @):
8bda2e7fe7d0e48f98b9d33d5e0b360fe9a5368d
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/vapor/jwt-kit.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/vapor/jwt-kit.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344847-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:1ec638249ee9496bfd8413990a8663326bfd4883adb2b1d6b616fd753c8ff99b
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Fetching https://github.com/swift-extras/swift-extras-base64
Fetching https://github.com/apple/swift-crypto.git
Fetching https://github.com/apple/swift-certificates.git
Fetching https://github.com/apple/swift-log.git
[1/954] Fetching swift-extras-base64
[955/9340] Fetching swift-extras-base64, swift-log
[9341/28209] Fetching swift-extras-base64, swift-log, swift-crypto
[9342/35816] Fetching swift-extras-base64, swift-log, swift-crypto, swift-certificates
Fetched https://github.com/swift-extras/swift-extras-base64 (0.51s)
[13934/34862] Fetching swift-log, swift-crypto, swift-certificates
Fetched https://github.com/apple/swift-log.git (1.31s)
Fetched https://github.com/apple/swift-certificates.git (1.31s)
Fetched https://github.com/apple/swift-crypto.git (1.32s)
Computing version for https://github.com/swift-extras/swift-extras-base64
Computed https://github.com/swift-extras/swift-extras-base64 at 1.2.0 (1.47s)
Computing version for https://github.com/apple/swift-crypto.git
Computed https://github.com/apple/swift-crypto.git at 5.0.3 (0.95s)
Fetching https://github.com/apple/swift-asn1.git
[1/2051] Fetching swift-asn1
Fetched https://github.com/apple/swift-asn1.git (0.41s)
Computing version for https://github.com/apple/swift-asn1.git
Computed https://github.com/apple/swift-asn1.git at 1.7.3 (0.60s)
Computing version for https://github.com/apple/swift-certificates.git
Computed https://github.com/apple/swift-certificates.git at 1.21.1 (0.21s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.2 (0.17s)
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.16.2
Creating working copy for https://github.com/swift-extras/swift-extras-base64
Working copy of https://github.com/swift-extras/swift-extras-base64 resolved at 1.2.0
Creating working copy for https://github.com/apple/swift-asn1.git
Working copy of https://github.com/apple/swift-asn1.git resolved at 1.7.3
Creating working copy for https://github.com/apple/swift-crypto.git
Working copy of https://github.com/apple/swift-crypto.git resolved at 5.0.3
Creating working copy for https://github.com/apple/swift-certificates.git
Working copy of https://github.com/apple/swift-certificates.git resolved at 1.21.1
Building for debugging...
[Computing dependencies]
[Constructing description]
[Pre-planning 1 / 511]
[Planning deferred tasks]
[Writing build description]
[89 / 545]
[104 / 557] ExtrasBase64
[109 / 584] SwiftASN1
[110 / 584] ExtrasBase64
[121 / 584] _CertificateInternals
[123 / 584] Logging
[124 / 584] ExtrasBase64
[129 / 584] CryptoBoringWrapper
[133 / 584] CryptoBoringWrapper
[141 / 586] SwiftASN1
[142 / 586] Logging
[144 / 586] Logging
[145 / 586] Logging
[146 / 586] Logging
[147 / 586] Logging-product
[156 / 586] CryptoBoringWrapper
[158 / 586] Logging
[159 / 586] CryptoBoringWrapper
[161 / 586] CryptoBoringWrapper
[162 / 586] CryptoBoringWrapper
[163 / 586] CryptoBoringWrapper
[164 / 586] CryptoBoringWrapper
[164 / 586] Crypto
[167 / 587] _CertificateInternals
[171 / 587] CCryptoBoringSSL
[172 / 587] CCryptoBoringSSL
[173 / 587] CCryptoBoringSSL
[174 / 587] CCryptoBoringSSL
[175 / 587] CCryptoBoringSSL
[176 / 587] CryptoBoringWrapper
[179 / 587] CCryptoBoringSSL
[181 / 587] CCryptoBoringSSL
[183 / 587] CCryptoBoringSSL
[185 / 588] CCryptoBoringSSL
[188 / 588] CCryptoBoringSSL
[191 / 588] CCryptoBoringSSL
[194 / 589] CCryptoBoringSSL
[196 / 589] CCryptoBoringSSL
[198 / 589] CCryptoBoringSSL
[199 / 589] CCryptoBoringSSL
[200 / 589] CCryptoBoringSSL
[202 / 589] CCryptoBoringSSL
[205 / 589] CCryptoBoringSSL
[207 / 589] CCryptoBoringSSL
[211 / 589] CCryptoBoringSSL
[213 / 589] CCryptoBoringSSL
[219 / 589] CCryptoBoringSSL
[220 / 589] CCryptoBoringSSL
[222 / 589] CCryptoBoringSSL
[224 / 589] CCryptoBoringSSL
[226 / 589] CCryptoBoringSSL
[228 / 589] CCryptoBoringSSL
[229 / 589] CCryptoBoringSSL
[231 / 589] CCryptoBoringSSL
[233 / 589] CCryptoBoringSSL
[234 / 589] CCryptoBoringSSL
[236 / 589] CCryptoBoringSSL
[237 / 589] CCryptoBoringSSL
[238 / 589] CCryptoBoringSSL
[241 / 589] CCryptoBoringSSL
[242 / 589] CCryptoBoringSSL
[244 / 589] CCryptoBoringSSL
[246 / 589] CCryptoBoringSSL
[250 / 589] CCryptoBoringSSL
[252 / 589] CCryptoBoringSSL
[253 / 589] CCryptoBoringSSL
[256 / 589] CCryptoBoringSSL
[259 / 589] CCryptoBoringSSL
[260 / 589] CCryptoBoringSSL
[261 / 589] CCryptoBoringSSL
[264 / 589] CCryptoBoringSSL
[265 / 589] CCryptoBoringSSL
[266 / 589] CCryptoBoringSSL
[268 / 589] CCryptoBoringSSL
[273 / 589] CCryptoBoringSSL
[275 / 589] CCryptoBoringSSL
[280 / 589] CCryptoBoringSSL
[283 / 589] CCryptoBoringSSL
[291 / 589] CCryptoBoringSSL
[298 / 589] CCryptoBoringSSL
[302 / 589] CCryptoBoringSSL
[303 / 589] CCryptoBoringSSL
[304 / 589] CCryptoBoringSSL
[305 / 589] CCryptoBoringSSL
[309 / 589] CCryptoBoringSSL
[310 / 589] CCryptoBoringSSL
[311 / 589] CCryptoBoringSSL
[314 / 589] CCryptoBoringSSL
[316 / 589] CCryptoBoringSSL
[320 / 589] CCryptoBoringSSL
[324 / 589] CCryptoBoringSSL
[326 / 589] CCryptoBoringSSL
[327 / 589] CCryptoBoringSSL
[329 / 589] CCryptoBoringSSL
[331 / 589] CCryptoBoringSSL
[333 / 589] CCryptoBoringSSL
[337 / 589] CCryptoBoringSSL
[339 / 589] CCryptoBoringSSL
[341 / 589] CCryptoBoringSSL
[342 / 589] CCryptoBoringSSL
[343 / 589] CCryptoBoringSSL
[344 / 589] CCryptoBoringSSL
[346 / 589] CCryptoBoringSSL
[349 / 589] CCryptoBoringSSL
[355 / 589] CCryptoBoringSSL
[362 / 589] CCryptoBoringSSL
[365 / 589] CCryptoBoringSSL
[368 / 589] CCryptoBoringSSL
[372 / 589] CCryptoBoringSSL
[375 / 589] CCryptoBoringSSL
[377 / 589] CCryptoBoringSSL
[379 / 589] CCryptoBoringSSL
[383 / 589] CCryptoBoringSSL
[392 / 589] CCryptoBoringSSL
[400 / 589] CCryptoBoringSSL
[406 / 589] CCryptoBoringSSL
[410 / 589] CCryptoBoringSSL
[411 / 589] CCryptoBoringSSL
[412 / 589] CCryptoBoringSSL
[416 / 589] CCryptoBoringSSL
[417 / 589] CCryptoBoringSSL
[420 / 589] CCryptoBoringSSL
[422 / 589] CCryptoBoringSSL
[424 / 589] CCryptoBoringSSL
[425 / 589] CCryptoBoringSSL
[426 / 589] CCryptoBoringSSL
[428 / 589] CCryptoBoringSSL
[432 / 589] CCryptoBoringSSL
[434 / 589] CCryptoBoringSSL
[436 / 589] CCryptoBoringSSL
[437 / 589] CCryptoBoringSSL
[439 / 589] CCryptoBoringSSL
[441 / 589] CCryptoBoringSSL
[442 / 589] CCryptoBoringSSL
[443 / 589] CCryptoBoringSSL
[447 / 589] CCryptoBoringSSL
[449 / 589] CCryptoBoringSSL
[452 / 589] CCryptoBoringSSL
[454 / 589] CCryptoBoringSSL
[460 / 589] CCryptoBoringSSL
[465 / 589] CCryptoBoringSSL
[468 / 589] CCryptoBoringSSL
[472 / 589] CCryptoBoringSSL
[475 / 589] CCryptoBoringSSL
[479 / 589] CCryptoBoringSSL
[484 / 589] CCryptoBoringSSL
[486 / 589] CCryptoBoringSSL
[489 / 589] CCryptoBoringSSL
[493 / 589] CCryptoBoringSSL
[496 / 589] CCryptoBoringSSL
[498 / 589] CCryptoBoringSSL
[505 / 589] CCryptoBoringSSL
[513 / 589] CCryptoBoringSSL
[518 / 589] CCryptoBoringSSL
[522 / 589] CCryptoBoringSSL
[524 / 589] CCryptoBoringSSL
[525 / 589] CCryptoBoringSSL
[527 / 589] CCryptoBoringSSL
[529 / 589] CCryptoBoringSSL
[532 / 589] CCryptoBoringSSL
[533 / 589] CCryptoBoringSSL
[539 / 589] Logging
[544 / 590] CXKCPShims
[544 / 590] Crypto
[548 / 599] Crypto
[548 / 599] CCryptoBoringSSL
[550 / 599] Crypto
[550 / 599] CCryptoBoringSSL
[551 / 599] Crypto
[553 / 599] Crypto
[559 / 600]
[562 / 609] CryptoExtras
[563 / 609] CryptoExtras
[564 / 609] CryptoExtras
[565 / 609] CryptoExtras
[566 / 609] CryptoExtras
[567 / 609] CryptoExtras
[569 / 609] CryptoExtras
[576 / 611] _CryptoExtras
[579 / 613] _CryptoExtras
[581 / 614] _CryptoExtras
[586 / 616] X509
[590 / 624] X509
[592 / 624] X509
[593 / 624] CCryptoBoringSSL
[594 / 624] CryptoExtras
[596 / 625] X509
[597 / 625] CryptoExtras
[599 / 625] CryptoBoringWrapper
[600 / 625] Crypto
[600 / 625]
[602 / 625] _CryptoExtras
[602 / 625] X509
[608 / 626] X509
[617 / 636] JWTKit
[620 / 636] X509
[620 / 636]
[620 / 636] JWTKit
[631 / 642] JWKExamples-product
[636 / 643] JWTKitExamples-product
[639 / 644] JWTKit
[645 / 645] JWTKit-product
[645 / 645] JWTKitExamples-product
Build complete! (51.05 secs)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-crypto",
"requirement" : {
"range" : [
{
"lower_bound" : "4.1.0",
"upper_bound" : "6.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-crypto.git"
},
{
"identity" : "swift-certificates",
"requirement" : {
"range" : [
{
"lower_bound" : "1.15.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-certificates.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "swift-extras-base64",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swift-extras/swift-extras-base64"
}
],
"manifest_display_name" : "jwt-kit",
"name" : "jwt-kit",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "9.0"
}
],
"products" : [
{
"name" : "JWTKit",
"targets" : [
"JWTKit"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "JWTKitExamples",
"targets" : [
"JWTKitExamples"
],
"type" : {
"snippet" : null
}
},
{
"name" : "JWKExamples",
"targets" : [
"JWKExamples"
],
"type" : {
"snippet" : null
}
}
],
"targets" : [
{
"c99name" : "JWTKitTests",
"module_type" : "SwiftTarget",
"name" : "JWTKitTests",
"path" : "Tests/JWTKitTests",
"sources" : [
"ClaimTests.swift",
"ECDSATests.swift",
"EdDSATests.swift",
"HeaderFieldCoercionTests.swift",
"HeaderParsingRegressionTests.swift",
"Helpers/String+bytes.swift",
"IdentityTokenAudienceTests.swift",
"JWTKitTests.swift",
"MLDSATests.swift",
"PSSTests.swift",
"RSATests.swift",
"SignatureComparisonTests.swift",
"Types/AudiencePayload.swift",
"Types/BadBoolPayload.swift",
"Types/BoolPayload.swift",
"Types/ExpirationPayload.swift",
"Types/LocalePayload.swift",
"Types/TestPayload.swift",
"VendorTokenTests.swift",
"X5CTests.swift"
],
"target_dependencies" : [
"JWTKit"
],
"type" : "test"
},
{
"c99name" : "JWTKit",
"module_type" : "SwiftTarget",
"name" : "JWTKit",
"path" : "Sources/JWTKit",
"product_dependencies" : [
"Crypto",
"CryptoExtras",
"X509",
"Logging",
"ExtrasBase64"
],
"product_memberships" : [
"JWTKit",
"JWTKitExamples",
"JWKExamples"
],
"sources" : [
"Claims/AudienceClaim.swift",
"Claims/BoolClaim.swift",
"Claims/ExpirationClaim.swift",
"Claims/GoogleHostedDomainClaim.swift",
"Claims/IDClaim.swift",
"Claims/IssuedAtClaim.swift",
"Claims/IssuerClaim.swift",
"Claims/JWTClaim.swift",
"Claims/JWTMultiValueClaim.swift",
"Claims/JWTUnixEpochClaim.swift",
"Claims/LocaleClaim.swift",
"Claims/NotBeforeClaim.swift",
"Claims/SubjectClaim.swift",
"Claims/TenantIDClaim.swift",
"ECDSA/ECDSA.swift",
"ECDSA/ECDSACurve.swift",
"ECDSA/ECDSACurveType.swift",
"ECDSA/ECDSAError.swift",
"ECDSA/ECDSAKeyTypes.swift",
"ECDSA/ECDSASigner.swift",
"ECDSA/ECDSASigningAlgorithm.swift",
"ECDSA/JWTKeyCollection+ECDSA.swift",
"ECDSA/P256+CurveType.swift",
"ECDSA/P384+CurveType.swift",
"ECDSA/P521+CurveType.swift",
"EdDSA/EdDSA.swift",
"EdDSA/EdDSACurve.swift",
"EdDSA/EdDSAError.swift",
"EdDSA/EdDSASigner.swift",
"EdDSA/JWTKeyCollection+EdDSA.swift",
"HMAC/HMAC.swift",
"HMAC/HMACError.swift",
"HMAC/HMACSigner.swift",
"HMAC/JWTKeyCollection+HMAC.swift",
"Insecure/Insecure.swift",
"JWK/JWK.swift",
"JWK/JWKIdentifier.swift",
"JWK/JWKS.swift",
"JWK/JWKSigner.swift",
"JWTAlgorithm.swift",
"JWTError.swift",
"JWTHeader+CommonFields.swift",
"JWTHeader.swift",
"JWTHeaderField.swift",
"JWTKeyCollection.swift",
"JWTParser+MandatoryVerificationFields.swift",
"JWTParser.swift",
"JWTPayload.swift",
"JWTSerializer.swift",
"JWTSigner.swift",
"MLDSA/JWTKeyCollection+MLDSA.swift",
"MLDSA/MLDSA.swift",
"MLDSA/MLDSA65+MLDSAKey.swift",
"MLDSA/MLDSA87+MLDSAKey.swift",
"MLDSA/MLDSAError.swift",
"MLDSA/MLDSAKey.swift",
"MLDSA/MLDSASigner.swift",
"MLDSA/MLDSAType.swift",
"None/JWTKeyCollection+UnsecuredNone.swift",
"None/UnsecuredNoneSigner.swift",
"RSA/JWTKeyCollection+RSA.swift",
"RSA/RSA.swift",
"RSA/RSAError.swift",
"RSA/RSASigner.swift",
"TokenParts.swift",
"Utilities/Base64URL.swift",
"Utilities/CryptoSigner.swift",
"Utilities/CustomizedJSONCoders.swift",
"Utilities/Utilities.swift",
"Vendor/AppleIdentityToken.swift",
"Vendor/FirebaseAuthIdentityToken.swift",
"Vendor/GoogleIdentityToken.swift",
"Vendor/JWTIdentityToken.swift",
"Vendor/MicrosoftIdentityToken.swift",
"X5C/EmptyPolicy.swift",
"X5C/ValidationTimePayload.swift",
"X5C/X5CValidationTime.swift",
"X5C/X5CVerifier.swift"
],
"type" : "library"
},
{
"c99name" : "JWTKitExamples",
"module_type" : "SwiftTarget",
"name" : "JWTKitExamples",
"path" : "Snippets",
"product_memberships" : [
"JWTKitExamples"
],
"sources" : [
"JWTKitExamples.swift"
],
"target_dependencies" : [
"JWTKit"
],
"type" : "snippet"
},
{
"c99name" : "JWKExamples",
"module_type" : "SwiftTarget",
"name" : "JWKExamples",
"path" : "Snippets",
"product_memberships" : [
"JWKExamples"
],
"sources" : [
"JWKExamples.swift"
],
"target_dependencies" : [
"JWTKit"
],
"type" : "snippet"
}
],
"tools_version" : "6.4"
}
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:1ec638249ee9496bfd8413990a8663326bfd4883adb2b1d6b616fd753c8ff99b
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Done.