The Swift Package Index logo.Swift Package Index

Build Information

Successful build of Haversack, reference 2.0.0 (1e7cbf), with Swift 6.4 for macOS (SPM) on 25 Sep 2026 21:31:04 UTC.

Swift 6 data race errors: 0

Build Command

env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/jamf/Haversack.git
Reference: 2.0.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/jamf/Haversack
 * tag               2.0.0      -> FETCH_HEAD
HEAD is now at 1e7cbf8 Merge pull request #16 from mlink/main
Cloned https://github.com/jamf/Haversack.git
Revision (git rev-parse @):
1e7cbf8bc697bf521ae492b9829b23e7ad7a311d
SUCCESS checkout https://github.com/jamf/Haversack.git at 2.0.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.4
Building package at path:  $PWD
https://github.com/jamf/Haversack.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-27.0.0-Release.Candidate.app xcrun swift build --arch arm64
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 299]
[Planning deferred tasks]
[60 / 113]
[70 / 113]
[71 / 114] InternalCollectionsUtilities
[84 / 127] InternalCollectionsUtilities
[91 / 128] InternalCollectionsUtilities
[102 / 139] OrderedCollections
[104 / 139] OrderedCollections
[113 / 140] Haversack
[121 / 185]
[126 / 185]
[130 / 185]
[131 / 185]
[135 / 185]
[137 / 185]
[140 / 185]
[144 / 185]
[146 / 185]
[147 / 185]
[158 / 185] Haversack
[159 / 185] Haversack
[169 / 187] Haversack-product
[169 / 187] HaversackCryptoKit
[173 / 191] HaversackCryptoKit
[179 / 191] HaversackCryptoKit
[182 / 191] HaversackMock
[194 / 224]
[200 / 224]
[203 / 224]
[205 / 224]
[207 / 224]
[208 / 224]
[211 / 224]
[212 / 224]
[215 / 224] HaversackMock
[221 / 224] HaversackMock
Build complete! (13.21 sec)
Fetching https://github.com/apple/swift-collections
Fetching https://github.com/apple/swift-docc-plugin
[1/2345] Fetching swift-docc-plugin
[213/30110] Fetching swift-docc-plugin, swift-collections
Fetched https://github.com/apple/swift-collections (2.94s)
Fetched https://github.com/apple/swift-docc-plugin (2.94s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.5.0 (5.74s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3830] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit (1.38s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (2.30s)
Computing version for https://github.com/apple/swift-collections
Computed https://github.com/apple/swift-collections at 1.7.0 (0.65s)
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.5.0
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-collections
Working copy of https://github.com/apple/swift-collections resolved at 1.7.0
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:41:13: warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
 39 |         var searchList: CFArray?
 40 |         let status = withUnsafeMutablePointer(to: &searchList) {
 41 |             SecKeychainCopyDomainSearchList(.system, UnsafeMutablePointer($0))
    |             `- warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
 42 |         }
 43 |
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:41:13: warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
 39 |         var searchList: CFArray?
 40 |         let status = withUnsafeMutablePointer(to: &searchList) {
 41 |             SecKeychainCopyDomainSearchList(.system, UnsafeMutablePointer($0))
    |             `- warning: 'SecKeychainCopyDomainSearchList' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
 42 |         }
 43 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:102:13: warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
100 |         let pathName = UnsafeMutablePointer<CChar>.allocate(capacity: Int(pathLength))
101 |         let status = withUnsafeMutablePointer(to: &pathLength) { pathLength in
102 |             SecKeychainGetPath(reference, pathLength, pathName)
    |             `- warning: 'SecKeychainGetPath' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
103 |         }
104 |
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:144:22: warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
142 |     func open() throws {
143 |         os_log("Attempting to open keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
144 |         let status = SecKeychainOpen(path, &reference)
    |                      `- warning: 'SecKeychainOpen' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
145 |         if status != errSecSuccess {
146 |             os_log("SecKeychainOpen returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:176:22: warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
174 |
175 |         os_log("Attempting to create keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
176 |         let status = SecKeychainCreate(path, UInt32(rawPassword.count), rawPassword, false, nil, &reference)
    |                      `- warning: 'SecKeychainCreate' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
177 |         if status != errSecSuccess {
178 |             os_log("SecKeychainCreate returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:187:22: warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
185 |     public func delete() throws {
186 |         os_log("Attempting to delete keychain at %{public}@", log: Logs.keychainFile, type: .default, path)
187 |         let status = SecKeychainDelete(reference)
    |                      `- warning: 'SecKeychainDelete' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
188 |         if status != errSecSuccess {
189 |             os_log("SecKeychainDelete returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:203:22: warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
201 |
202 |         var rawStatus: SecKeychainStatus = .zero
203 |         let status = SecKeychainGetStatus(keychain, &rawStatus)
    |                      `- warning: 'SecKeychainGetStatus' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
204 |         if status == errSecSuccess {
205 |             let keychainStatus = KeychainStatusOptions(rawValue: rawStatus)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:223:22: warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
221 |
222 |         os_log("Attempting to lock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
223 |         let status = SecKeychainLock(keychain)
    |                      `- warning: 'SecKeychainLock' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
224 |         if status != errSecSuccess {
225 |             os_log("SecKeychainLock returned error %{public}d", log: Logs.keychainFile, type: .error, status)
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:245:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
243 |             // We can't unlock the system keychain with our password; prompt the user if needed.
244 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
245 |             status = SecKeychainUnlock(keychain, 0, nil, false)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
246 |         } else {
247 |             guard let passwordFunc = passwordProvider else {
/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Security/KeychainFile.swift:255:22: warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
253 |             let rawPassword = passwordFunc(path)
254 |             os_log("Attempting to unlock keychain at %{public}@", log: Logs.keychainFile, type: .info, path)
255 |             status = SecKeychainUnlock(keychain, UInt32(rawPassword.count), rawPassword, true)
    |                      `- warning: 'SecKeychainUnlock' was deprecated in macOS 10.10: SecKeychain is deprecated [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
256 |         }
257 |         if status != errSecSuccess {
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
Build complete.
{
  "dependencies" : [
    {
      "identity" : "swift-collections",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.1.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-collections"
    },
    {
      "identity" : "swift-docc-plugin",
      "requirement" : {
        "range" : [
          {
            "lower_bound" : "1.3.0",
            "upper_bound" : "2.0.0"
          }
        ]
      },
      "type" : "sourceControl",
      "url" : "https://github.com/apple/swift-docc-plugin"
    }
  ],
  "manifest_display_name" : "Haversack",
  "name" : "Haversack",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
    {
      "name" : "macos",
      "version" : "10.13"
    },
    {
      "name" : "ios",
      "version" : "12.0"
    },
    {
      "name" : "tvos",
      "version" : "12.0"
    },
    {
      "name" : "visionos",
      "version" : "1.0"
    },
    {
      "name" : "watchos",
      "version" : "5.0"
    }
  ],
  "products" : [
    {
      "name" : "Haversack",
      "targets" : [
        "Haversack"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "HaversackCryptoKit",
      "targets" : [
        "HaversackCryptoKit"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    },
    {
      "name" : "HaversackMock",
      "targets" : [
        "HaversackMock"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "swift_languages_versions" : [
    "5",
    "6"
  ],
  "targets" : [
    {
      "c99name" : "HaversackTests",
      "module_type" : "SwiftTarget",
      "name" : "HaversackTests",
      "path" : "Tests/HaversackTests",
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Tests/HaversackTests/TestResources",
          "rule" : {
            "copy" : {
            }
          }
        }
      ],
      "sources" : [
        "CertificateIntegrationTests.swift",
        "Data+X501NameTests.swift",
        "EphemeralStrategyTests.swift",
        "GenericPasswordConvertibleTests.swift",
        "GenericPasswordIntegrationTests.swift",
        "HaversackAsyncAwaitTests.swift",
        "HaversackTests.swift",
        "IdentityIntegrationTests.swift",
        "InternetPasswordIntegrationTests.swift",
        "KeyGenerationConfigTests.swift",
        "KeyGenerationIntegrationTests.swift",
        "KeychainExportConfigTests.swift",
        "KeychainExportIntegrationTests.swift",
        "KeychainFileIntegrationTests.swift",
        "KeychainImportConfigTests.swift",
        "KeychainImportIntegrationTests.swift",
        "QueryCertificateTests.swift",
        "QueryIdentityTests.swift",
        "QueryKeyTests.swift",
        "QueryPasswordTests.swift",
        "SystemKeychainIntegrationTests.swift",
        "XCTestCase+TestResources.swift"
      ],
      "target_dependencies" : [
        "HaversackMock"
      ],
      "type" : "test"
    },
    {
      "c99name" : "HaversackMock",
      "module_type" : "SwiftTarget",
      "name" : "HaversackMock",
      "path" : "Sources/HaversackMock",
      "product_memberships" : [
        "HaversackMock"
      ],
      "sources" : [
        "HaversackEphemeralStrategy+mocking.swift",
        "HaversackEphemeralStrategy.swift"
      ],
      "target_dependencies" : [
        "Haversack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "HaversackCryptoKit",
      "module_type" : "SwiftTarget",
      "name" : "HaversackCryptoKit",
      "path" : "Sources/HaversackCryptoKit",
      "product_memberships" : [
        "HaversackCryptoKit"
      ],
      "sources" : [
        "GenericPasswordConvertible+CryptoKit.swift",
        "SecKeyConvertible.swift"
      ],
      "target_dependencies" : [
        "Haversack"
      ],
      "type" : "library"
    },
    {
      "c99name" : "Haversack",
      "module_type" : "SwiftTarget",
      "name" : "Haversack",
      "path" : "Sources/Haversack",
      "product_dependencies" : [
        "OrderedCollections"
      ],
      "product_memberships" : [
        "Haversack",
        "HaversackCryptoKit",
        "HaversackMock"
      ],
      "resources" : [
        {
          "path" : "/Users/admin/builder/spi-builder-workspace/Sources/Haversack/Resources/PrivacyInfo.xcprivacy",
          "rule" : {
            "process" : {
            }
          }
        }
      ],
      "sources" : [
        "Entities/CertificateEntity.swift",
        "Entities/Data+X501Name.swift",
        "Entities/GenericPasswordEntity.swift",
        "Entities/IdentityEntity.swift",
        "Entities/InternetPasswordEntity.swift",
        "Entities/KeyEntity.swift",
        "Entities/KeychainStorable.swift",
        "Entities/PasswordBaseEntity.swift",
        "GenericPasswordConvertible.swift",
        "Haversack+AsyncAwait.swift",
        "Haversack.swift",
        "HaversackConfiguration.swift",
        "HaversackError.swift",
        "HaversackStrategy.swift",
        "ImportExport/KeychainExportConfig.swift",
        "ImportExport/KeychainImportConfig.swift",
        "ImportExport/KeychainPortable.swift",
        "ImportExport/PassphraseStrategy.swift",
        "ImportExport/PrivateKeyImporting.swift",
        "KeyGenerationConfig.swift",
        "Logs.swift",
        "NSLocked.swift",
        "Queries/CertificateBaseQuerying.swift",
        "Queries/CertificateQuery.swift",
        "Queries/GenericPasswordQuery.swift",
        "Queries/IdentityQuery.swift",
        "Queries/InternetPasswordQuery.swift",
        "Queries/KeyBaseQuerying.swift",
        "Queries/KeyQuery.swift",
        "Queries/KeychainQueryOptions.swift",
        "Queries/KeychainQuerying.swift",
        "Queries/PasswordBaseQuerying.swift",
        "Security/ItemSecurity.swift",
        "Security/KeychainFile.swift",
        "Security/KeychainItemRetrievability.swift",
        "Security/RetrievabilityLevel.swift",
        "SecuritySendable.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "5.10"
}
Done.