The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Swiftchain, reference 1.0.5 (ab0409), with Swift 6.2 for Linux on 18 Jun 2025 22:41:29 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.64.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/sbertix/Swiftchain.git
Reference: 1.0.5
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/sbertix/Swiftchain
 * tag               1.0.5      -> FETCH_HEAD
HEAD is now at ab0409e Update to `1.0.5`
Cloned https://github.com/sbertix/Swiftchain.git
Revision (git rev-parse @):
ab0409e62f1629bc1a153f41dec5856a3c05a548
SUCCESS checkout https://github.com/sbertix/Swiftchain.git at 1.0.5
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.2
Building package at path:  $PWD
https://github.com/sbertix/Swiftchain.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-3":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.2-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:f81a7bd7aa87a0f81848d48c5bcc03f5f78deebd37fa5f9be9913077205d3687
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.2-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/9] Compiling Swiftchain KeychainError.swift
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:23:28: error: cannot find 'SecCopyErrorMessageString' in scope
21 |             case .status(let status):
22 |                 if #available(iOS 11.3, tvOS 11.3, watchOS 4.3, *) {
23 |                     return SecCopyErrorMessageString(status, nil) as String? ?? String(describing: status)
   |                            `- error: cannot find 'SecCopyErrorMessageString' in scope
24 |                 } else {
25 |                     return String(describing: status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:23:62: error: 'nil' requires a contextual type
21 |             case .status(let status):
22 |                 if #available(iOS 11.3, tvOS 11.3, watchOS 4.3, *) {
23 |                     return SecCopyErrorMessageString(status, nil) as String? ?? String(describing: status)
   |                                                              `- error: 'nil' requires a contextual type
24 |                 } else {
25 |                     return String(describing: status)
[4/9] Compiling Swiftchain KeychainAuthentication.swift
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:103:20: error: cannot find type 'SecAccessControlCreateFlags' in scope
101 |         ///
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
    |                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
104 |             var set: SecAccessControlCreateFlags = []
105 |             // Prepare set.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:104:22: error: cannot find type 'SecAccessControlCreateFlags' in scope
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
104 |             var set: SecAccessControlCreateFlags = []
    |                      `- error: cannot find type 'SecAccessControlCreateFlags' in scope
105 |             // Prepare set.
106 |             if #available(macOS 10.11, *), contains(.devicePasscode) {
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:107:29: error: cannot infer contextual base in reference to member 'devicePasscode'
105 |             // Prepare set.
106 |             if #available(macOS 10.11, *), contains(.devicePasscode) {
107 |                 set.insert(.devicePasscode)
    |                             `- error: cannot infer contextual base in reference to member 'devicePasscode'
108 |             }
109 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:111:29: error: cannot infer contextual base in reference to member 'biometryAny'
109 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
110 |                contains(.biometryAny) {
111 |                 set.insert(.biometryAny)
    |                             `- error: cannot infer contextual base in reference to member 'biometryAny'
112 |             }
113 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:115:29: error: cannot infer contextual base in reference to member 'biometryCurrentSet'
113 |             if #available(iOS 11.3, macOS 10.13.4, tvOS 11.3, watchOS 4.3, *),
114 |                contains(.biometryCurrentSet) {
115 |                 set.insert(.biometryCurrentSet)
    |                             `- error: cannot infer contextual base in reference to member 'biometryCurrentSet'
116 |             }
117 |             #if os(macOS)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:123:33: error: cannot infer contextual base in reference to member 'and'
121 |             if #available(macOS 10.12.1, *) {
122 |                 if self.operator == .and {
123 |                     set.insert(.and)
    |                                 `- error: cannot infer contextual base in reference to member 'and'
124 |                 } else {
125 |                     set.insert(.or)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:125:33: error: cannot infer contextual base in reference to member 'or'
123 |                     set.insert(.and)
124 |                 } else {
125 |                     set.insert(.or)
    |                                 `- error: cannot infer contextual base in reference to member 'or'
126 |                 }
127 |             }
[5/9] Compiling Swiftchain SecurityConstants.swift
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:56:21: error: cannot find type 'CFString' in scope
 54 |     func query() -> [CFString: Any] {
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
    |                     `- error: cannot find type 'CFString' in scope
 57 |         if contains(.one) {
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:58:19: error: cannot find 'kSecMatchLimit' in scope
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
 57 |         if contains(.one) {
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
    |                   `- error: cannot find 'kSecMatchLimit' in scope
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:58:37: error: cannot find 'kSecMatchLimitOne' in scope
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
 57 |         if contains(.one) {
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
    |                                     `- error: cannot find 'kSecMatchLimitOne' in scope
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:60:19: error: cannot find 'kSecMatchLimit' in scope
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
    |                   `- error: cannot find 'kSecMatchLimit' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:60:37: error: cannot find 'kSecMatchLimitAll' in scope
 58 |             query[kSecMatchLimit] = kSecMatchLimitOne
 59 |         } else if contains(.all) {
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
    |                                     `- error: cannot find 'kSecMatchLimitAll' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:62:42: error: cannot find 'kSecReturnAttributes' in scope
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
    |                                          `- error: cannot find 'kSecReturnAttributes' in scope
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
 64 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:62:66: error: cannot find 'kCFBooleanTrue' in scope
 60 |             query[kSecMatchLimit] = kSecMatchLimitAll
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
    |                                                                  `- error: cannot find 'kCFBooleanTrue' in scope
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
 64 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:63:36: error: cannot find 'kSecReturnData' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
    |                                    `- error: cannot find 'kSecReturnData' in scope
 64 |         // Return query.
 65 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:63:54: error: cannot find 'kCFBooleanTrue' in scope
 61 |         }
 62 |         if contains(.attributes) { query[kSecReturnAttributes] = kCFBooleanTrue! }
 63 |         if contains(.data) { query[kSecReturnData] = kCFBooleanTrue! }
    |                                                      `- error: cannot find 'kCFBooleanTrue' in scope
 64 |         // Return query.
 65 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:76:71: error: cannot find 'kSecAttrService' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
    |                                                                       `- error: cannot find 'kSecAttrService' in scope
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:76:101: error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
    |                                                                                                     `- error: cannot find type 'CFString' in scope
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:77:65: error: cannot find 'kSecAttrAccessGroup' in scope
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
    |                                                                 `- error: cannot find 'kSecAttrAccessGroup' in scope
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:77:97: error: cannot find type 'CFString' in scope
 75 |         var query = self.query()
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
    |                                                                                                 `- error: cannot find type 'CFString' in scope
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:78:78: error: cannot find 'kSecAttrAccessible' in scope
 76 |         if let service = keychain.service, contains(.service) { query[kSecAttrService] = service as CFString }
 77 |         if let group = keychain.group, contains(.group) { query[kSecAttrAccessGroup] = group as CFString }
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
    |                                                                              `- error: cannot find 'kSecAttrAccessible' in scope
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
 80 |             var error: Unmanaged<CFError>?
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:10: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |          `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:80:34: error: cannot find type 'CFError' in scope
 78 |         if keychain.authentication.isEmpty, contains(.accessibility) { query[kSecAttrAccessible] = keychain.accessibility.rawValue }
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
 80 |             var error: Unmanaged<CFError>?
    |                                  `- error: cannot find type 'CFError' in scope
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
 82 |                 SecAccessControlCreateWithFlags(nil,
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:81:19: error: cannot find 'kSecAttrAccessControl' in scope
 79 |         if !keychain.authentication.isEmpty, contains(.authentication) {
 80 |             var error: Unmanaged<CFError>?
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
    |                   `- error: cannot find 'kSecAttrAccessControl' in scope
 82 |                 SecAccessControlCreateWithFlags(nil,
 83 |                                                 keychain.accessibility.rawValue,
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:82:17: error: cannot find 'SecAccessControlCreateWithFlags' in scope
 80 |             var error: Unmanaged<CFError>?
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
 82 |                 SecAccessControlCreateWithFlags(nil,
    |                 `- error: cannot find 'SecAccessControlCreateWithFlags' in scope
 83 |                                                 keychain.accessibility.rawValue,
 84 |                                                 keychain.authentication.flags,
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:103:20: error: cannot find type 'SecAccessControlCreateFlags' in scope
101 |         ///
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
    |                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
104 |             var set: SecAccessControlCreateFlags = []
105 |             // Prepare set.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:82:49: error: 'nil' requires a contextual type
 80 |             var error: Unmanaged<CFError>?
 81 |             query[kSecAttrAccessControl] = withUnsafeMutablePointer(to: &error) {
 82 |                 SecAccessControlCreateWithFlags(nil,
    |                                                 `- error: 'nil' requires a contextual type
 83 |                                                 keychain.accessibility.rawValue,
 84 |                                                 keychain.authentication.flags,
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:90:74: error: cannot find 'kSecAttrSynchronizable' in scope
 88 |             if let error = error?.takeUnretainedValue() { throw error }
 89 |         }
 90 |         if keychain.isSynchronizable, contains(.synchronization) { query[kSecAttrSynchronizable] = kSecAttrSynchronizableAny }
    |                                                                          `- error: cannot find 'kSecAttrSynchronizable' in scope
 91 |         // Return query.
 92 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:90:100: error: cannot find 'kSecAttrSynchronizableAny' in scope
 88 |             if let error = error?.takeUnretainedValue() { throw error }
 89 |         }
 90 |         if keychain.isSynchronizable, contains(.synchronization) { query[kSecAttrSynchronizable] = kSecAttrSynchronizableAny }
    |                                                                                                    `- error: cannot find 'kSecAttrSynchronizableAny' in scope
 91 |         // Return query.
 92 |         return query
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:105:35: error: cannot find 'kSecAttrAccount' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
105 |         if contains(.key) { query[kSecAttrAccount] = container.key }
    |                                   `- error: cannot find 'kSecAttrAccount' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:107:19: error: cannot find 'kSecValueData' in scope
105 |         if contains(.key) { query[kSecAttrAccount] = container.key }
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
    |                   `- error: cannot find 'kSecValueData' in scope
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
109 |         }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:107:45: error: cannot find type 'CFData' in scope
105 |         if contains(.key) { query[kSecAttrAccount] = container.key }
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
    |                                             `- error: cannot find type 'CFData' in scope
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
109 |         }
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:108:22: error: cannot find 'kSecAttrSynchronizable' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
    |                      `- error: cannot find 'kSecAttrSynchronizable' in scope
109 |         }
110 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:108:61: error: cannot find 'kSecAttrSynchronizable' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
    |                                                             `- error: cannot find 'kSecAttrSynchronizable' in scope
109 |         }
110 |         // Return query.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:108:87: error: cannot find 'kCFBooleanTrue' in scope
106 |         if let value = value, contains(.value) {
107 |             query[kSecValueData] = value as CFData
108 |             if query[kSecAttrSynchronizable] != nil { query[kSecAttrSynchronizable] = kCFBooleanTrue! }
    |                                                                                       `- error: cannot find 'kCFBooleanTrue' in scope
109 |         }
110 |         // Return query.
[6/9] Compiling Swiftchain KeychainContainer.swift
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:56:43: error: cannot find 'SecItemAdd' in scope
 54 |                 let query = try constants.query(for: self, with: data)
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
    |                                           `- error: cannot find 'SecItemAdd' in scope
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:56:63: error: cannot find type 'CFDictionary' in scope
 54 |                 let query = try constants.query(for: self, with: data)
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
    |                                                               `- error: cannot find type 'CFDictionary' in scope
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:56:77: error: 'nil' requires a contextual type
 54 |                 let query = try constants.query(for: self, with: data)
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
    |                                                                             `- error: 'nil' requires a contextual type
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:57:22: error: cannot find 'errSecSuccess' in scope
 55 |                 // Store results.
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
 57 |                 case errSecSuccess: break
    |                      `- error: cannot find 'errSecSuccess' in scope
 58 |                 case errSecDuplicateItem:
 59 |                     // Update attributes.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:58:22: error: cannot find 'errSecDuplicateItem' in scope
 56 |                 switch Keychain.locking({ SecItemAdd(query as CFDictionary, nil) }) {
 57 |                 case errSecSuccess: break
 58 |                 case errSecDuplicateItem:
    |                      `- error: cannot find 'errSecDuplicateItem' in scope
 59 |                     // Update attributes.
 60 |                     let initialConstants: SecurityConstants = [.service, .group, .key]
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:61:84: error: 'nil' requires a contextual type
 59 |                     // Update attributes.
 60 |                     let initialConstants: SecurityConstants = [.service, .group, .key]
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
    |                                                                                    `- error: 'nil' requires a contextual type
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:63:47: error: cannot find 'SecItemUpdate' in scope
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
    |                                               `- error: cannot find 'SecItemUpdate' in scope
 64 |                     case errSecSuccess: break
 65 |                     case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:63:77: error: cannot find type 'CFDictionary' in scope
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
    |                                                                             `- error: cannot find type 'CFDictionary' in scope
 64 |                     case errSecSuccess: break
 65 |                     case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:63:106: error: cannot find type 'CFDictionary' in scope
 61 |                     let initialQuery = try initialConstants.query(for: self, with: nil)
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
    |                                                                                                          `- error: cannot find type 'CFDictionary' in scope
 64 |                     case errSecSuccess: break
 65 |                     case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:64:26: error: cannot find 'errSecSuccess' in scope
 62 |                     let updateQuery = try SecurityConstants.value.query(for: self, with: data)
 63 |                     switch Keychain.locking({ SecItemUpdate(initialQuery as CFDictionary, updateQuery as CFDictionary) }) {
 64 |                     case errSecSuccess: break
    |                          `- error: cannot find 'errSecSuccess' in scope
 65 |                     case let status: throw Error.status(status)
 66 |                     }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:124:39: error: cannot find 'SecItemDelete' in scope
122 |             let query = try constants.query(for: self)
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                       `- error: cannot find 'SecItemDelete' in scope
125 |             case errSecSuccess, errSecItemNotFound: break
126 |             case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:124:62: error: cannot find type 'CFDictionary' in scope
122 |             let query = try constants.query(for: self)
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                                              `- error: cannot find type 'CFDictionary' in scope
125 |             case errSecSuccess, errSecItemNotFound: break
126 |             case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:125:18: error: cannot find 'errSecSuccess' in scope
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
125 |             case errSecSuccess, errSecItemNotFound: break
    |                  `- error: cannot find 'errSecSuccess' in scope
126 |             case let status: throw Error.status(status)
127 |             }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:125:33: error: cannot find 'errSecItemNotFound' in scope
123 |             // Delete.
124 |             switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
125 |             case errSecSuccess, errSecItemNotFound: break
    |                                 `- error: cannot find 'errSecItemNotFound' in scope
126 |             case let status: throw Error.status(status)
127 |             }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:163:39: error: cannot find 'SecItemCopyMatching' in scope
161 |             // Fetch results.
162 |             var result: AnyObject?
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
    |                                       `- error: cannot find 'SecItemCopyMatching' in scope
164 |             case errSecItemNotFound: return nil
165 |             case noErr: break
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:163:68: error: cannot find type 'CFDictionary' in scope
161 |             // Fetch results.
162 |             var result: AnyObject?
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
    |                                                                    `- error: cannot find type 'CFDictionary' in scope
164 |             case errSecItemNotFound: return nil
165 |             case noErr: break
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:164:18: error: cannot find 'errSecItemNotFound' in scope
162 |             var result: AnyObject?
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
164 |             case errSecItemNotFound: return nil
    |                  `- error: cannot find 'errSecItemNotFound' in scope
165 |             case noErr: break
166 |             case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/KeychainContainer.swift:165:18: error: cannot find 'noErr' in scope
163 |             switch Keychain.locking({ SecItemCopyMatching(query as CFDictionary, &result) }) {
164 |             case errSecItemNotFound: return nil
165 |             case noErr: break
    |                  `- error: cannot find 'noErr' in scope
166 |             case let status: throw Error.status(status)
167 |             }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/9] Emitting module Swiftchain
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:66: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                                                  `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:42: error: no exact matches in call to initializer
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                          |- error: no exact matches in call to initializer
   |                                          `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:70: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:46: error: no exact matches in call to initializer
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                              |- error: no exact matches in call to initializer
   |                                              `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:84: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                                                    `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:60: error: no exact matches in call to initializer
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                            |- error: no exact matches in call to initializer
   |                                                            `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:83: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                                                   `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:59: error: no exact matches in call to initializer
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                           |- error: no exact matches in call to initializer
   |                                                           `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:80: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                                                `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:56: error: no exact matches in call to initializer
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                        |- error: no exact matches in call to initializer
   |                                                        `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Hashable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Hashable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            |- error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
   |            `- note: add stubs for conformance
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Equatable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
Swift.==:1:24: note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
  |                               `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
  |                               `- note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
  |                               `- note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
3 |
Foundation.__BridgedNSError.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
1 | protocol __BridgedNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
3 |
FoundationEssentials.AttributedStringProtocol.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
3 |
Swift.RawRepresentable.RawValue:2:16: note: protocol requires nested type 'RawValue'
1 | protocol RawRepresentable {
2 | associatedtype RawValue}
  |                `- note: protocol requires nested type 'RawValue'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
  |             `- note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
3 |
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAuthentication.swift:103:20: error: cannot find type 'SecAccessControlCreateFlags' in scope
101 |         ///
102 |         /// - returns: Some `SecAccessControlCreateFlags`.
103 |         var flags: SecAccessControlCreateFlags {
    |                    `- error: cannot find type 'SecAccessControlCreateFlags' in scope
104 |             var set: SecAccessControlCreateFlags = []
105 |             // Prepare set.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
[8/9] Compiling Swiftchain Keychain.swift
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:66: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                                                  `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:49:26: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 47 |     public required init(service: String? = Bundle.main.bundleIdentifier ?? "Swiftchain",
 48 |                          group: String? = nil,
 49 |                          accessibility: Accessibility = .whenUnlocked,
    |                          `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
 50 |                          authentication: Authentication = [],
 51 |                          isSynchronizable: Bool = false) {
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:42: error: no exact matches in call to initializer
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                          |- error: no exact matches in call to initializer
   |                                          `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:54:22: error: cannot find type 'CFString' in scope
 52 |     ///
 53 |     /// - returns: A dictionary.
 54 |     func query() -> [CFString: Any] {
    |                      `- error: cannot find type 'CFString' in scope
 55 |         // Prepare the query.
 56 |         var query: [CFString: Any] = [kSecClass: kSecClassGenericPassword]
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:73:51: error: cannot find type 'CFString' in scope
 71 |     /// - throws: Some `CFError`.
 72 |     /// - returns: A dictionary.
 73 |     func query(for keychain: Keychain) throws -> [CFString: Any] {
    |                                                   `- error: cannot find type 'CFString' in scope
 74 |         // Prepare the query.
 75 |         var query = self.query()
/host/spi-builder-workspace/Sources/Swiftchain/SecurityConstants.swift:102:87: error: cannot find type 'CFString' in scope
100 |     /// - throws: Some `CFError`.
101 |     /// - returns: A dictionary.
102 |     func query(for container: Keychain.Container, with value: Data? = nil) throws -> [CFString: Any] {
    |                                                                                       `- error: cannot find type 'CFString' in scope
103 |         // Prepare the query.
104 |         var query = try self.query(for: container.keychain)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:75:35: error: cannot find 'SecItemDelete' in scope
 73 |         let query = try constants.query(for: self)
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                   `- error: cannot find 'SecItemDelete' in scope
 76 |         case errSecSuccess, errSecItemNotFound: break
 77 |         case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:75:58: error: cannot find type 'CFDictionary' in scope
 73 |         let query = try constants.query(for: self)
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
    |                                                          `- error: cannot find type 'CFDictionary' in scope
 76 |         case errSecSuccess, errSecItemNotFound: break
 77 |         case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:76:14: error: cannot find 'errSecSuccess' in scope
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
 76 |         case errSecSuccess, errSecItemNotFound: break
    |              `- error: cannot find 'errSecSuccess' in scope
 77 |         case let status: throw Error.status(status)
 78 |         }
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:76:29: error: cannot find 'errSecItemNotFound' in scope
 74 |         // Remove items.
 75 |         switch Keychain.locking({ SecItemDelete(query as CFDictionary) }) {
 76 |         case errSecSuccess, errSecItemNotFound: break
    |                             `- error: cannot find 'errSecItemNotFound' in scope
 77 |         case let status: throw Error.status(status)
 78 |         }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainError.swift:14:21: error: cannot find type 'OSStatus' in scope
12 |     enum Error: LocalizedError {
13 |         /// A keychain specific error.
14 |         case status(OSStatus)
   |                     `- error: cannot find type 'OSStatus' in scope
15 |         /// Invalid downcast.
16 |         case invalidCasting
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:91:75: error: cannot find 'SecItemCopyMatching' in scope
 89 |         // Fetch results.
 90 |         var result: AnyObject?
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
    |                                                                           `- error: cannot find 'SecItemCopyMatching' in scope
 92 |         case errSecSuccess: break
 93 |         case errSecItemNotFound: return []
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:91:104: error: cannot find type 'CFDictionary' in scope
 89 |         // Fetch results.
 90 |         var result: AnyObject?
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
    |                                                                                                        `- error: cannot find type 'CFDictionary' in scope
 92 |         case errSecSuccess: break
 93 |         case errSecItemNotFound: return []
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:92:14: error: cannot find 'errSecSuccess' in scope
 90 |         var result: AnyObject?
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
 92 |         case errSecSuccess: break
    |              `- error: cannot find 'errSecSuccess' in scope
 93 |         case errSecItemNotFound: return []
 94 |         case let status: throw Error.status(status)
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:93:14: error: cannot find 'errSecItemNotFound' in scope
 91 |         switch Keychain.locking({ withUnsafeMutablePointer(to: &result) { SecItemCopyMatching(query as CFDictionary, $0) }}) {
 92 |         case errSecSuccess: break
 93 |         case errSecItemNotFound: return []
    |              `- error: cannot find 'errSecItemNotFound' in scope
 94 |         case let status: throw Error.status(status)
 95 |         }
/host/spi-builder-workspace/Sources/Swiftchain/Keychain.swift:99:40: error: cannot find 'kSecAttrAccount' in scope
 97 |         // Return results.
 98 |         return results.reduce(into: Set<String>()) { set, attributes in
 99 |             guard let key = attributes[kSecAttrAccount] as? String else { return }
    |                                        `- error: cannot find 'kSecAttrAccount' in scope
100 |             set.insert(key as String)
101 |         }
[9/9] Compiling Swiftchain KeychainAccessibility.swift
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:14:30: error: cannot find type 'CFString' in scope
12 |     struct Accessibility: Hashable, RawRepresentable {
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                              `- error: cannot find type 'CFString' in scope
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:70: error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                                                      `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlock' in scope
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:57:31: error: cannot find type 'CFString' in scope
55 |         ///
56 |         /// - parameter rawValue: A valid `CFString`.
57 |         public init(rawValue: CFString) { self.rawValue = rawValue }
   |                               `- error: cannot find type 'CFString' in scope
58 |     }
59 | }
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:21:46: error: no exact matches in call to initializer
19 |         /// This is recommended for items that need to be accessed by background applications.
20 |         /// Items with this attribute migrate to a new device when using encrypted backups.
21 |         public static let afterFirstUnlock = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlock)
   |                                              |- error: no exact matches in call to initializer
   |                                              `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
22 |
23 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:84: error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                                                    `- error: cannot find 'kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly' in scope
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:29:60: error: no exact matches in call to initializer
27 |         /// Items with this attribute do not migrate to a new device.
28 |         ///  Thus, after restoring from a backup of a different device, these items will not be present.
29 |         public static let afterFirstUnlockThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly)
   |                                                            |- error: no exact matches in call to initializer
   |                                                            `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
30 |
31 |         /// The data in the keychain can only be accessed when the device is unlocked. Only available if a passcode is set on the device.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:83: error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                                                   `- error: cannot find 'kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly' in scope
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:38:59: error: no exact matches in call to initializer
36 |         /// No items can be stored in this class on devices without a passcode.
37 |         /// Disabling the device passcode causes all items in this class to be deleted.
38 |         public static let whenPasscodeSetThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenPasscodeSetThisDeviceOnly)
   |                                                           |- error: no exact matches in call to initializer
   |                                                           `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
39 |
40 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:66: error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                                                  `- error: cannot find 'kSecAttrAccessibleWhenUnlocked' in scope
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:45:42: error: no exact matches in call to initializer
43 |         /// Items with this attribute migrate to a new device when using encrypted backups.
44 |         /// This is the default value for keychain items added without explicitly setting an accessibility constant.
45 |         public static let whenUnlocked = Accessibility(rawValue: kSecAttrAccessibleWhenUnlocked)
   |                                          |- error: no exact matches in call to initializer
   |                                          `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
46 |
47 |         /// The data in the keychain item can be accessed only while the device is unlocked by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:80: error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                                                `- error: cannot find 'kSecAttrAccessibleWhenUnlockedThisDeviceOnly' in scope
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:52:56: error: no exact matches in call to initializer
50 |         /// Items with this attribute do not migrate to a new device.
51 |         /// Thus, after restoring from a backup of a different device, these items will not be present.
52 |         public static let whenUnlockedThisDeviceOnly = Accessibility(rawValue: kSecAttrAccessibleWhenUnlockedThisDeviceOnly)
   |                                                        |- error: no exact matches in call to initializer
   |                                                        `- note: found candidate with type '(any Decoder) throws -> Keychain.Accessibility'
53 |
54 |         /// Init.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'Hashable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Hashable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Hashable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            `- error: type 'Keychain.Accessibility' does not conform to protocol 'RawRepresentable'
13 |         /// The underlying value.
14 |         public let rawValue: CFString
/host/spi-builder-workspace/Sources/Swiftchain/KeychainAccessibility.swift:12:12: error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
10 | public extension Keychain {
11 |     /// A `struct` holding reference to item accessibility.
12 |     struct Accessibility: Hashable, RawRepresentable {
   |            |- error: type 'Keychain.Accessibility' does not conform to protocol 'Equatable'
   |            `- note: add stubs for conformance
13 |         /// The underlying value.
14 |         public let rawValue: CFString
   |                    `- note: stored property type '<<error type>>' does not conform to protocol 'Equatable', preventing synthesized conformance of 'Keychain.Accessibility' to 'Equatable'
15 |
16 |         /// The data in the keychain item cannot be accessed after a restart until the device has been unlocked once by the user.
Swift.==:1:24: note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
1 | @inlinable public func == <T>(lhs: T, rhs: T) -> Bool where T : RawRepresentable, T.RawValue : Equatable
  |                        `- note: candidate would match if 'Keychain.Accessibility.RawValue' conformed to 'Equatable'
Swift.FloatingPoint.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
1 | protocol FloatingPoint {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'FloatingPoint'
3 |
Swift.BinaryInteger.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
1 | protocol BinaryInteger {
2 | public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : BinaryInteger}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'BinaryInteger'
3 |
Swift._Pointer.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
1 | protocol _Pointer {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
3 |
Swift._Pointer.==:2:31: note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
1 | protocol _Pointer {
2 | @inlinable public static func == <Other>(lhs: Self, rhs: Other) -> Bool where Other : _Pointer}
  |                               `- note: candidate would match if 'Keychain.Accessibility' conformed to '_Pointer'
3 |
Swift.Strideable.==:2:31: note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
1 | protocol Strideable {
2 | @inlinable public static func == (x: Self, y: Self) -> Bool}
  |                               `- note: candidate would match if 'Keychain.Accessibility' conformed to 'Strideable'
3 |
Swift.StringProtocol.==:2:31: note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
1 | protocol StringProtocol {
2 | @inlinable public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : StringProtocol}
  |                               `- note: candidate would match if 'Keychain.Accessibility' conformed to 'StringProtocol'
3 |
Swift.SIMD.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
1 | protocol SIMD {
2 | public static func == (a: Self, b: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'SIMD'
3 |
Foundation.__BridgedNSError.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
1 | protocol __BridgedNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to '__BridgedNSError'
3 |
Foundation._BridgedStoredNSError.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
1 | protocol _BridgedStoredNSError {
2 | public static func == (lhs: Self, rhs: Self) -> Bool}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to '_BridgedStoredNSError'
3 |
FoundationEssentials.AttributedStringProtocol.==:2:20: note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
1 | protocol AttributedStringProtocol {
2 | public static func == <RHS>(lhs: Self, rhs: RHS) -> Bool where RHS : AttributedStringProtocol}
  |                    `- note: candidate would match if 'Keychain.Accessibility' conformed to 'AttributedStringProtocol'
3 |
Swift.RawRepresentable.RawValue:2:16: note: protocol requires nested type 'RawValue'
1 | protocol RawRepresentable {
2 | associatedtype RawValue}
  |                `- note: protocol requires nested type 'RawValue'
3 |
Swift.Equatable.==:2:13: note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
1 | protocol Equatable {
2 | static func == (lhs: Self, rhs: Self) -> Bool}
  |             `- note: protocol requires function '==' with type '(Keychain.Accessibility, Keychain.Accessibility) -> Bool'
3 |
BUILD FAILURE 6.2 linux