Build Information
Failed to build Keychain, reference 0.1.1 (82276d
), with Swift 6.0 for Linux on 29 Nov 2024 09:10:09 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.58.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/tyhopp/keychain.git
Reference: 0.1.1
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/tyhopp/keychain
* tag 0.1.1 -> FETCH_HEAD
HEAD is now at 82276d8 Add public access modifier to init
Cloned https://github.com/tyhopp/keychain.git
Revision (git rev-parse @):
82276d83364cdb3cb678970849391a7036a61455
SUCCESS checkout https://github.com/tyhopp/keychain.git at 0.1.1
========================================
Build
========================================
Selected platform: linux
Swift version: 6.0
Building package at path: $PWD
https://github.com/tyhopp/keychain.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/host -w "$PWD" registry.gitlab.com/finestructure/spi-images:basic-6.0-latest swift build --triple x86_64-unknown-linux-gnu -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:47d26c99ca4f1ac0a332c85fd5b13ff4390e72115219984a57a68fe9d1063a05
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/5] Emitting module Keychain
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:22:33: error: cannot find type 'OSStatus' in scope
20 | case unexpectedPasswordData
21 | case unexpectedItemData
22 | case unhandledError(status: OSStatus)
| `- error: cannot find type 'OSStatus' in scope
23 | }
24 |
[4/5] Compiling Keychain KeychainPasswordItem.swift
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:22:33: error: cannot find type 'OSStatus' in scope
20 | case unexpectedPasswordData
21 | case unexpectedItemData
22 | case unhandledError(status: OSStatus)
| `- error: cannot find type 'OSStatus' in scope
23 | }
24 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:51:15: error: cannot find 'kSecMatchLimit' in scope
49 | */
50 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
51 | query[kSecMatchLimit as String] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimit' in scope
52 | query[kSecReturnAttributes as String] = kCFBooleanTrue
53 | query[kSecReturnData as String] = kCFBooleanTrue
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:51:43: error: cannot find 'kSecMatchLimitOne' in scope
49 | */
50 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
51 | query[kSecMatchLimit as String] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimitOne' in scope
52 | query[kSecReturnAttributes as String] = kCFBooleanTrue
53 | query[kSecReturnData as String] = kCFBooleanTrue
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:52:15: error: cannot find 'kSecReturnAttributes' in scope
50 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
51 | query[kSecMatchLimit as String] = kSecMatchLimitOne
52 | query[kSecReturnAttributes as String] = kCFBooleanTrue
| `- error: cannot find 'kSecReturnAttributes' in scope
53 | query[kSecReturnData as String] = kCFBooleanTrue
54 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:52:49: error: cannot find 'kCFBooleanTrue' in scope
50 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
51 | query[kSecMatchLimit as String] = kSecMatchLimitOne
52 | query[kSecReturnAttributes as String] = kCFBooleanTrue
| `- error: cannot find 'kCFBooleanTrue' in scope
53 | query[kSecReturnData as String] = kCFBooleanTrue
54 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:53:15: error: cannot find 'kSecReturnData' in scope
51 | query[kSecMatchLimit as String] = kSecMatchLimitOne
52 | query[kSecReturnAttributes as String] = kCFBooleanTrue
53 | query[kSecReturnData as String] = kCFBooleanTrue
| `- error: cannot find 'kSecReturnData' in scope
54 |
55 | // Try to fetch the existing keychain item that matches the query.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:53:43: error: cannot find 'kCFBooleanTrue' in scope
51 | query[kSecMatchLimit as String] = kSecMatchLimitOne
52 | query[kSecReturnAttributes as String] = kCFBooleanTrue
53 | query[kSecReturnData as String] = kCFBooleanTrue
| `- error: cannot find 'kCFBooleanTrue' in scope
54 |
55 | // Try to fetch the existing keychain item that matches the query.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:58:13: error: cannot find 'SecItemCopyMatching' in scope
56 | var queryResult: AnyObject?
57 | let status = withUnsafeMutablePointer(to: &queryResult) {
58 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
| `- error: cannot find 'SecItemCopyMatching' in scope
59 | }
60 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:58:42: error: cannot find type 'CFDictionary' in scope
56 | var queryResult: AnyObject?
57 | let status = withUnsafeMutablePointer(to: &queryResult) {
58 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
| `- error: cannot find type 'CFDictionary' in scope
59 | }
60 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:62:25: error: cannot find 'errSecItemNotFound' in scope
60 |
61 | // Check the return status and throw an error if appropriate.
62 | guard status != errSecItemNotFound else { throw KeychainError.noPassword }
| `- error: cannot find 'errSecItemNotFound' in scope
63 | guard status == noErr else { throw KeychainError.unhandledError(status: status) }
64 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:63:25: error: cannot find 'noErr' in scope
61 | // Check the return status and throw an error if appropriate.
62 | guard status != errSecItemNotFound else { throw KeychainError.noPassword }
63 | guard status == noErr else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'noErr' in scope
64 |
65 | // Parse the password string from the query result.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:67:45: error: cannot find 'kSecValueData' in scope
65 | // Parse the password string from the query result.
66 | guard let existingItem = queryResult as? [String : AnyObject],
67 | let passwordData = existingItem[kSecValueData as String] as? Data,
| `- error: cannot find 'kSecValueData' in scope
68 | let password = String(data: passwordData, encoding: String.Encoding.utf8)
69 | else {
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:86:32: error: cannot find 'kSecValueData' in scope
84 | // Update the existing item with the new password.
85 | var attributesToUpdate = [String : AnyObject]()
86 | attributesToUpdate[kSecValueData as String] = encodedPassword as AnyObject?
| `- error: cannot find 'kSecValueData' in scope
87 |
88 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:89:26: error: cannot find 'SecItemUpdate' in scope
87 |
88 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
89 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
| `- error: cannot find 'SecItemUpdate' in scope
90 |
91 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:89:49: error: cannot find type 'CFDictionary' in scope
87 |
88 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
89 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
90 |
91 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:89:85: error: cannot find type 'CFDictionary' in scope
87 |
88 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
89 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
90 |
91 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:92:29: error: cannot find 'noErr' in scope
90 |
91 | // Throw an error if an unexpected status was returned.
92 | guard status == noErr else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'noErr' in scope
93 | }
94 | catch KeychainError.noPassword {
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:100:21: error: cannot find 'kSecValueData' in scope
98 | */
99 | var newItem = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
100 | newItem[kSecValueData as String] = encodedPassword as AnyObject?
| `- error: cannot find 'kSecValueData' in scope
101 |
102 | // Add a the new item to the keychain.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:103:26: error: cannot find 'SecItemAdd' in scope
101 |
102 | // Add a the new item to the keychain.
103 | let status = SecItemAdd(newItem as CFDictionary, nil)
| `- error: cannot find 'SecItemAdd' in scope
104 |
105 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:103:48: error: cannot find type 'CFDictionary' in scope
101 |
102 | // Add a the new item to the keychain.
103 | let status = SecItemAdd(newItem as CFDictionary, nil)
| `- error: cannot find type 'CFDictionary' in scope
104 |
105 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:103:62: error: 'nil' requires a contextual type
101 |
102 | // Add a the new item to the keychain.
103 | let status = SecItemAdd(newItem as CFDictionary, nil)
| `- error: 'nil' requires a contextual type
104 |
105 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:106:29: error: cannot find 'noErr' in scope
104 |
105 | // Throw an error if an unexpected status was returned.
106 | guard status == noErr else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'noErr' in scope
107 | }
108 | }
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:113:28: error: cannot find 'kSecAttrAccount' in scope
111 | // Try to update an existing item with the new account name.
112 | var attributesToUpdate = [String : AnyObject]()
113 | attributesToUpdate[kSecAttrAccount as String] = newAccountName as AnyObject?
| `- error: cannot find 'kSecAttrAccount' in scope
114 |
115 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:116:22: error: cannot find 'SecItemUpdate' in scope
114 |
115 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
116 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
| `- error: cannot find 'SecItemUpdate' in scope
117 |
118 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:116:45: error: cannot find type 'CFDictionary' in scope
114 |
115 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
116 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
117 |
118 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:116:81: error: cannot find type 'CFDictionary' in scope
114 |
115 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: self.account, accessGroup: accessGroup)
116 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
117 |
118 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:119:25: error: cannot find 'noErr' in scope
117 |
118 | // Throw an error if an unexpected status was returned.
119 | guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'noErr' in scope
120 |
121 | self.account = newAccountName
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:119:44: error: cannot find 'errSecItemNotFound' in scope
117 |
118 | // Throw an error if an unexpected status was returned.
119 | guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'errSecItemNotFound' in scope
120 |
121 | self.account = newAccountName
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:127:22: error: cannot find 'SecItemDelete' in scope
125 | // Delete the existing item from the keychain.
126 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
127 | let status = SecItemDelete(query as CFDictionary)
| `- error: cannot find 'SecItemDelete' in scope
128 |
129 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:127:45: error: cannot find type 'CFDictionary' in scope
125 | // Delete the existing item from the keychain.
126 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup)
127 | let status = SecItemDelete(query as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
128 |
129 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:130:25: error: cannot find 'noErr' in scope
128 |
129 | // Throw an error if an unexpected status was returned.
130 | guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'noErr' in scope
131 | }
132 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:130:44: error: cannot find 'errSecItemNotFound' in scope
128 |
129 | // Throw an error if an unexpected status was returned.
130 | guard status == noErr || status == errSecItemNotFound else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'errSecItemNotFound' in scope
131 | }
132 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:136:15: error: cannot find 'kSecMatchLimit' in scope
134 | // Build a query for all items that match the service and access group.
135 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 | query[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimit' in scope
137 | query[kSecReturnAttributes as String] = kCFBooleanTrue
138 | query[kSecReturnData as String] = kCFBooleanFalse
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:136:43: error: cannot find 'kSecMatchLimitAll' in scope
134 | // Build a query for all items that match the service and access group.
135 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 | query[kSecMatchLimit as String] = kSecMatchLimitAll
| `- error: cannot find 'kSecMatchLimitAll' in scope
137 | query[kSecReturnAttributes as String] = kCFBooleanTrue
138 | query[kSecReturnData as String] = kCFBooleanFalse
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:137:15: error: cannot find 'kSecReturnAttributes' in scope
135 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 | query[kSecMatchLimit as String] = kSecMatchLimitAll
137 | query[kSecReturnAttributes as String] = kCFBooleanTrue
| `- error: cannot find 'kSecReturnAttributes' in scope
138 | query[kSecReturnData as String] = kCFBooleanFalse
139 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:137:49: error: cannot find 'kCFBooleanTrue' in scope
135 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup)
136 | query[kSecMatchLimit as String] = kSecMatchLimitAll
137 | query[kSecReturnAttributes as String] = kCFBooleanTrue
| `- error: cannot find 'kCFBooleanTrue' in scope
138 | query[kSecReturnData as String] = kCFBooleanFalse
139 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:138:15: error: cannot find 'kSecReturnData' in scope
136 | query[kSecMatchLimit as String] = kSecMatchLimitAll
137 | query[kSecReturnAttributes as String] = kCFBooleanTrue
138 | query[kSecReturnData as String] = kCFBooleanFalse
| `- error: cannot find 'kSecReturnData' in scope
139 |
140 | // Fetch matching items from the keychain.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:138:43: error: cannot find 'kCFBooleanFalse' in scope
136 | query[kSecMatchLimit as String] = kSecMatchLimitAll
137 | query[kSecReturnAttributes as String] = kCFBooleanTrue
138 | query[kSecReturnData as String] = kCFBooleanFalse
| `- error: cannot find 'kCFBooleanFalse' in scope
139 |
140 | // Fetch matching items from the keychain.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:143:13: error: cannot find 'SecItemCopyMatching' in scope
141 | var queryResult: AnyObject?
142 | let status = withUnsafeMutablePointer(to: &queryResult) {
143 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
| `- error: cannot find 'SecItemCopyMatching' in scope
144 | }
145 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:143:42: error: cannot find type 'CFDictionary' in scope
141 | var queryResult: AnyObject?
142 | let status = withUnsafeMutablePointer(to: &queryResult) {
143 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0))
| `- error: cannot find type 'CFDictionary' in scope
144 | }
145 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:147:25: error: cannot find 'errSecItemNotFound' in scope
145 |
146 | // If no items were found, return an empty array.
147 | guard status != errSecItemNotFound else { return [] }
| `- error: cannot find 'errSecItemNotFound' in scope
148 |
149 | // Throw an error if an unexpected status was returned.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:150:25: error: cannot find 'noErr' in scope
148 |
149 | // Throw an error if an unexpected status was returned.
150 | guard status == noErr else { throw KeychainError.unhandledError(status: status) }
| `- error: cannot find 'noErr' in scope
151 |
152 | // Cast the query result to an array of dictionaries.
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:158:41: error: cannot find 'kSecAttrAccount' in scope
156 | var passwordItems = [KeychainPasswordItem]()
157 | for result in resultData {
158 | guard let account = result[kSecAttrAccount as String] as? String else { throw KeychainError.unexpectedItemData }
| `- error: cannot find 'kSecAttrAccount' in scope
159 |
160 | let passwordItem = KeychainPasswordItem(service: service, account: account, accessGroup: accessGroup)
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:171:15: error: cannot find 'kSecClass' in scope
169 | private static func keychainQuery(withService service: String, account: String? = nil, accessGroup: String? = nil) -> [String : AnyObject] {
170 | var query = [String : AnyObject]()
171 | query[kSecClass as String] = kSecClassGenericPassword
| `- error: cannot find 'kSecClass' in scope
172 | query[kSecAttrService as String] = service as AnyObject?
173 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:171:38: error: cannot find 'kSecClassGenericPassword' in scope
169 | private static func keychainQuery(withService service: String, account: String? = nil, accessGroup: String? = nil) -> [String : AnyObject] {
170 | var query = [String : AnyObject]()
171 | query[kSecClass as String] = kSecClassGenericPassword
| `- error: cannot find 'kSecClassGenericPassword' in scope
172 | query[kSecAttrService as String] = service as AnyObject?
173 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:172:15: error: cannot find 'kSecAttrService' in scope
170 | var query = [String : AnyObject]()
171 | query[kSecClass as String] = kSecClassGenericPassword
172 | query[kSecAttrService as String] = service as AnyObject?
| `- error: cannot find 'kSecAttrService' in scope
173 |
174 | if let account = account {
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:175:19: error: cannot find 'kSecAttrAccount' in scope
173 |
174 | if let account = account {
175 | query[kSecAttrAccount as String] = account as AnyObject?
| `- error: cannot find 'kSecAttrAccount' in scope
176 | }
177 |
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:179:19: error: cannot find 'kSecAttrAccessGroup' in scope
177 |
178 | if let accessGroup = accessGroup {
179 | query[kSecAttrAccessGroup as String] = accessGroup as AnyObject?
| `- error: cannot find 'kSecAttrAccessGroup' in scope
180 | }
181 |
[5/5] Compiling Keychain Keychain.swift
/host/spi-builder-workspace/Sources/Keychain/KeychainPasswordItem.swift:22:33: error: cannot find type 'OSStatus' in scope
20 | case unexpectedPasswordData
21 | case unexpectedItemData
22 | case unhandledError(status: OSStatus)
| `- error: cannot find type 'OSStatus' in scope
23 | }
24 |
BUILD FAILURE 6.0 linux