Open chenrui333 opened 16 hours ago
Hi. xcinfo is a command line tool for macOS only. It uses Apple internal APIs which are not available on Linux. And for the Swift 6 compatibility: I'm aware of this but don't have the time to work on it at the moment.
👋 trying to build 1.0.3 release with swift 6 on linux, but run into some build issue. The error log is as below:
error build log
``` ==> swift build --static-swift-stdlib --configuration release Fetching https://github.com/xcodereleases/data.git [1/914] Fetching data Fetched https://github.com/xcodereleases/data.git from cache (0.27s) Fetching https://github.com/trispo/CLISpinner [1/245] Fetching clispinner Fetched https://github.com/trispo/CLISpinner from cache (0.28s) Fetching https://github.com/Quick/Quick.git Fetching https://github.com/getGuaka/Prompt.git Fetching https://github.com/pointfreeco/swift-custom-dump [1/44] Fetching prompt [45/4555] Fetching prompt, swift-custom-dump [4241/19295] Fetching prompt, swift-custom-dump, quick Fetched https://github.com/pointfreeco/swift-custom-dump from cache (0.41s) [1371/14784] Fetching prompt, quick Fetching https://github.com/pointfreeco/xctest-dynamic-overlay Fetched https://github.com/getGuaka/Prompt.git from cache (0.71s) Fetched https://github.com/Quick/Quick.git from cache (0.71s) Fetching https://github.com/getGuaka/Args.git Fetching https://github.com/Quick/Nimble.git [1/5010] Fetching xctest-dynamic-overlay [4911/5044] Fetching xctest-dynamic-overlay, args Fetched https://github.com/getGuaka/Args.git from cache (0.23s) Fetching https://github.com/onevcat/Rainbow [4960/5010] Fetching xctest-dynamic-overlay Fetched https://github.com/pointfreeco/xctest-dynamic-overlay from cache (0.71s) Fetching https://github.com/apple/swift-argument-parser [1/1126] Fetching rainbow Fetched https://github.com/onevcat/Rainbow from cache (0.33s) [1/12395] Fetching swift-argument-parser [12396/31670] Fetching swift-argument-parser, nimble Fetched https://github.com/apple/swift-argument-parser from cache (1.06s) Computing version for https://github.com/onevcat/Rainbow [12915/19275] Fetching nimble Fetched https://github.com/Quick/Nimble.git from cache (2.47s) Computed https://github.com/onevcat/Rainbow at 4.0.1 (1.69s) Computing version for https://github.com/pointfreeco/swift-custom-dump Computed https://github.com/pointfreeco/swift-custom-dump at 0.9.1 (0.41s) Computing version for https://github.com/getGuaka/Prompt.git Computed https://github.com/getGuaka/Prompt.git at 0.1.1 (0.41s) Computing version for https://github.com/apple/swift-argument-parser Computed https://github.com/apple/swift-argument-parser at 1.2.2 (0.44s) Computing version for https://github.com/pointfreeco/xctest-dynamic-overlay Computed https://github.com/pointfreeco/xctest-dynamic-overlay at 0.8.4 (0.42s) Computing version for https://github.com/Quick/Nimble.git Computed https://github.com/Quick/Nimble.git at 7.3.4 (0.43s) Computing version for https://github.com/Quick/Quick.git Computed https://github.com/Quick/Quick.git at 1.3.4 (0.44s) Computing version for https://github.com/getGuaka/Args.git Computed https://github.com/getGuaka/Args.git at 0.1.1 (0.41s) Creating working copy for https://github.com/trispo/CLISpinner Working copy of https://github.com/trispo/CLISpinner resolved at main (ffd547a) Creating working copy for https://github.com/getGuaka/Prompt.git Working copy of https://github.com/getGuaka/Prompt.git resolved at 0.1.1 Creating working copy for https://github.com/onevcat/Rainbow Working copy of https://github.com/onevcat/Rainbow resolved at 4.0.1 Creating working copy for https://github.com/xcodereleases/data.git Working copy of https://github.com/xcodereleases/data.git resolved at master (500ee36) Creating working copy for https://github.com/Quick/Nimble.git Working copy of https://github.com/Quick/Nimble.git resolved at 7.3.4 Creating working copy for https://github.com/getGuaka/Args.git Working copy of https://github.com/getGuaka/Args.git resolved at 0.1.1 Creating working copy for https://github.com/pointfreeco/xctest-dynamic-overlay Working copy of https://github.com/pointfreeco/xctest-dynamic-overlay resolved at 0.8.4 Creating working copy for https://github.com/apple/swift-argument-parser Working copy of https://github.com/apple/swift-argument-parser resolved at 1.2.2 Creating working copy for https://github.com/pointfreeco/swift-custom-dump Working copy of https://github.com/pointfreeco/swift-custom-dump resolved at 0.9.1 Creating working copy for https://github.com/Quick/Quick.git Working copy of https://github.com/Quick/Quick.git resolved at 1.3.4 [1/1] Compiling plugin GenerateManual Building for production... [1/16] Write sources [12/16] Compiling XCUnxip Unxip.m [13/16] Write swift-version-62980525507B152C.txt [15/20] Compiling ArgumentParserToolInfo ToolInfo.swift [16/21] Compiling XCModel Checksums.swift [17/21] Compiling Args ArgConvertible.swift [18/22] Compiling Rainbow BackgroundColor.swift [19/24] Compiling Prompt Agree.swift [20/24] Compiling XCIFoundation FileManager+Extensions.swift /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:15:37: error: cannot find type 'OSStatus' in scope 13 | case unexpectedPasswordData 14 | case unexpectedItemData 15 | case unhandledError(status: OSStatus) | `- error: cannot find type 'OSStatus' in scope 16 | case passwordAlreadySet 17 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:56:15: error: cannot find 'kSecMatchLimit' in scope 54 | */ 55 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 56 | query[kSecMatchLimit as String] = kSecMatchLimitOne | `- error: cannot find 'kSecMatchLimit' in scope 57 | query[kSecReturnAttributes as String] = kCFBooleanTrue 58 | query[kSecReturnData as String] = kCFBooleanTrue /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:56:43: error: cannot find 'kSecMatchLimitOne' in scope 54 | */ 55 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 56 | query[kSecMatchLimit as String] = kSecMatchLimitOne | `- error: cannot find 'kSecMatchLimitOne' in scope 57 | query[kSecReturnAttributes as String] = kCFBooleanTrue 58 | query[kSecReturnData as String] = kCFBooleanTrue /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:57:15: error: cannot find 'kSecReturnAttributes' in scope 55 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 56 | query[kSecMatchLimit as String] = kSecMatchLimitOne 57 | query[kSecReturnAttributes as String] = kCFBooleanTrue | `- error: cannot find 'kSecReturnAttributes' in scope 58 | query[kSecReturnData as String] = kCFBooleanTrue 59 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:57:49: error: cannot find 'kCFBooleanTrue' in scope 55 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 56 | query[kSecMatchLimit as String] = kSecMatchLimitOne 57 | query[kSecReturnAttributes as String] = kCFBooleanTrue | `- error: cannot find 'kCFBooleanTrue' in scope 58 | query[kSecReturnData as String] = kCFBooleanTrue 59 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:58:15: error: cannot find 'kSecReturnData' in scope 56 | query[kSecMatchLimit as String] = kSecMatchLimitOne 57 | query[kSecReturnAttributes as String] = kCFBooleanTrue 58 | query[kSecReturnData as String] = kCFBooleanTrue | `- error: cannot find 'kSecReturnData' in scope 59 | 60 | // Try to fetch the existing keychain item that matches the query. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:58:43: error: cannot find 'kCFBooleanTrue' in scope 56 | query[kSecMatchLimit as String] = kSecMatchLimitOne 57 | query[kSecReturnAttributes as String] = kCFBooleanTrue 58 | query[kSecReturnData as String] = kCFBooleanTrue | `- error: cannot find 'kCFBooleanTrue' in scope 59 | 60 | // Try to fetch the existing keychain item that matches the query. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:63:13: error: cannot find 'SecItemCopyMatching' in scope 61 | var queryResult: AnyObject? 62 | let status = withUnsafeMutablePointer(to: &queryResult) { 63 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0)) | `- error: cannot find 'SecItemCopyMatching' in scope 64 | } 65 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:63:42: error: cannot find type 'CFDictionary' in scope 61 | var queryResult: AnyObject? 62 | let status = withUnsafeMutablePointer(to: &queryResult) { 63 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0)) | `- error: cannot find type 'CFDictionary' in scope 64 | } 65 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:67:25: error: cannot find 'errSecItemNotFound' in scope 65 | 66 | // Check the return status and throw an error if appropriate. 67 | guard status != errSecItemNotFound else { throw KeychainError.noPassword } | `- error: cannot find 'errSecItemNotFound' in scope 68 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } 69 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:68:25: error: cannot find 'noErr' in scope 66 | // Check the return status and throw an error if appropriate. 67 | guard status != errSecItemNotFound else { throw KeychainError.noPassword } 68 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } | `- error: cannot find 'noErr' in scope 69 | 70 | // Parse the password string from the query result. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:72:47: error: cannot find 'kSecValueData' in scope 70 | // Parse the password string from the query result. 71 | guard let existingItem = queryResult as? [String: AnyObject], 72 | let passwordData = existingItem[kSecValueData as String] as? Data, | `- error: cannot find 'kSecValueData' in scope 73 | let password = String(data: passwordData, encoding: .utf8) 74 | else { /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:87:15: error: cannot find 'kSecMatchLimit' in scope 85 | */ 86 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 87 | query[kSecMatchLimit as String] = kSecMatchLimitOne | `- error: cannot find 'kSecMatchLimit' in scope 88 | query[kSecReturnAttributes as String] = kCFBooleanTrue 89 | query[kSecReturnData as String] = kCFBooleanTrue /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:87:43: error: cannot find 'kSecMatchLimitOne' in scope 85 | */ 86 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 87 | query[kSecMatchLimit as String] = kSecMatchLimitOne | `- error: cannot find 'kSecMatchLimitOne' in scope 88 | query[kSecReturnAttributes as String] = kCFBooleanTrue 89 | query[kSecReturnData as String] = kCFBooleanTrue /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:88:15: error: cannot find 'kSecReturnAttributes' in scope 86 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 87 | query[kSecMatchLimit as String] = kSecMatchLimitOne 88 | query[kSecReturnAttributes as String] = kCFBooleanTrue | `- error: cannot find 'kSecReturnAttributes' in scope 89 | query[kSecReturnData as String] = kCFBooleanTrue 90 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:88:49: error: cannot find 'kCFBooleanTrue' in scope 86 | var query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 87 | query[kSecMatchLimit as String] = kSecMatchLimitOne 88 | query[kSecReturnAttributes as String] = kCFBooleanTrue | `- error: cannot find 'kCFBooleanTrue' in scope 89 | query[kSecReturnData as String] = kCFBooleanTrue 90 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:89:15: error: cannot find 'kSecReturnData' in scope 87 | query[kSecMatchLimit as String] = kSecMatchLimitOne 88 | query[kSecReturnAttributes as String] = kCFBooleanTrue 89 | query[kSecReturnData as String] = kCFBooleanTrue | `- error: cannot find 'kSecReturnData' in scope 90 | 91 | // Try to fetch the existing keychain item that matches the query. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:89:43: error: cannot find 'kCFBooleanTrue' in scope 87 | query[kSecMatchLimit as String] = kSecMatchLimitOne 88 | query[kSecReturnAttributes as String] = kCFBooleanTrue 89 | query[kSecReturnData as String] = kCFBooleanTrue | `- error: cannot find 'kCFBooleanTrue' in scope 90 | 91 | // Try to fetch the existing keychain item that matches the query. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:94:13: error: cannot find 'SecItemCopyMatching' in scope 92 | var queryResult: AnyObject? 93 | let status = withUnsafeMutablePointer(to: &queryResult) { 94 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0)) | `- error: cannot find 'SecItemCopyMatching' in scope 95 | } 96 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:94:42: error: cannot find type 'CFDictionary' in scope 92 | var queryResult: AnyObject? 93 | let status = withUnsafeMutablePointer(to: &queryResult) { 94 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0)) | `- error: cannot find type 'CFDictionary' in scope 95 | } 96 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:98:25: error: cannot find 'errSecItemNotFound' in scope 96 | 97 | // Check the return status and throw an error if appropriate. 98 | guard status != errSecItemNotFound else { throw KeychainError.noPassword } | `- error: cannot find 'errSecItemNotFound' in scope 99 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } 100 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:99:25: error: cannot find 'noErr' in scope 97 | // Check the return status and throw an error if appropriate. 98 | guard status != errSecItemNotFound else { throw KeychainError.noPassword } 99 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } | `- error: cannot find 'noErr' in scope 100 | 101 | // Parse the password string from the query result. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:103:47: error: cannot find 'kSecValueData' in scope 101 | // Parse the password string from the query result. 102 | guard let existingItem = queryResult as? [String: AnyObject], 103 | let passwordData = existingItem[kSecValueData as String] as? Data | `- error: cannot find 'kSecValueData' in scope 104 | else { 105 | throw KeychainError.unexpectedPasswordData /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:123:32: error: cannot find 'kSecValueData' in scope 121 | // Update the existing item with the new password. 122 | var attributesToUpdate = [String: AnyObject]() 123 | attributesToUpdate[kSecValueData as String] = encodedPassword as AnyObject? | `- error: cannot find 'kSecValueData' in scope 124 | 125 | let query = KeychainPasswordItem.keychainQuery( /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:130:26: error: cannot find 'SecItemUpdate' in scope 128 | accessGroup: accessGroup 129 | ) 130 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find 'SecItemUpdate' in scope 131 | 132 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:130:49: error: cannot find type 'CFDictionary' in scope 128 | accessGroup: accessGroup 129 | ) 130 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find type 'CFDictionary' in scope 131 | 132 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:130:85: error: cannot find type 'CFDictionary' in scope 128 | accessGroup: accessGroup 129 | ) 130 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find type 'CFDictionary' in scope 131 | 132 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:133:29: error: cannot find 'noErr' in scope 131 | 132 | // Throw an error if an unexpected status was returned. 133 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } | `- error: cannot find 'noErr' in scope 134 | } catch KeychainError.noPassword { 135 | /* /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:144:21: error: cannot find 'kSecValueData' in scope 142 | accessGroup: accessGroup 143 | ) 144 | newItem[kSecValueData as String] = encodedPassword as AnyObject? | `- error: cannot find 'kSecValueData' in scope 145 | 146 | // Add a the new item to the keychain. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:147:26: error: cannot find 'SecItemAdd' in scope 145 | 146 | // Add a the new item to the keychain. 147 | let status = SecItemAdd(newItem as CFDictionary, nil) | `- error: cannot find 'SecItemAdd' in scope 148 | 149 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:147:48: error: cannot find type 'CFDictionary' in scope 145 | 146 | // Add a the new item to the keychain. 147 | let status = SecItemAdd(newItem as CFDictionary, nil) | `- error: cannot find type 'CFDictionary' in scope 148 | 149 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:147:62: error: 'nil' requires a contextual type 145 | 146 | // Add a the new item to the keychain. 147 | let status = SecItemAdd(newItem as CFDictionary, nil) | `- error: 'nil' requires a contextual type 148 | 149 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:150:29: 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 | } /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:164:32: error: cannot find 'kSecValueData' in scope 162 | // Update the existing item with the new password. 163 | var attributesToUpdate = [String: AnyObject]() 164 | attributesToUpdate[kSecValueData as String] = data as AnyObject? | `- error: cannot find 'kSecValueData' in scope 165 | 166 | let query = KeychainPasswordItem.keychainQuery( /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:171:26: error: cannot find 'SecItemUpdate' in scope 169 | accessGroup: accessGroup 170 | ) 171 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find 'SecItemUpdate' in scope 172 | 173 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:171:49: error: cannot find type 'CFDictionary' in scope 169 | accessGroup: accessGroup 170 | ) 171 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find type 'CFDictionary' in scope 172 | 173 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:171:85: error: cannot find type 'CFDictionary' in scope 169 | accessGroup: accessGroup 170 | ) 171 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find type 'CFDictionary' in scope 172 | 173 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:174:29: error: cannot find 'noErr' in scope 172 | 173 | // Throw an error if an unexpected status was returned. 174 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } | `- error: cannot find 'noErr' in scope 175 | } catch KeychainError.noPassword { 176 | /* /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:185:21: error: cannot find 'kSecValueData' in scope 183 | accessGroup: accessGroup 184 | ) 185 | newItem[kSecValueData as String] = data as AnyObject? | `- error: cannot find 'kSecValueData' in scope 186 | 187 | // Add a the new item to the keychain. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:188:26: error: cannot find 'SecItemAdd' in scope 186 | 187 | // Add a the new item to the keychain. 188 | let status = SecItemAdd(newItem as CFDictionary, nil) | `- error: cannot find 'SecItemAdd' in scope 189 | 190 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:188:48: error: cannot find type 'CFDictionary' in scope 186 | 187 | // Add a the new item to the keychain. 188 | let status = SecItemAdd(newItem as CFDictionary, nil) | `- error: cannot find type 'CFDictionary' in scope 189 | 190 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:188:62: error: 'nil' requires a contextual type 186 | 187 | // Add a the new item to the keychain. 188 | let status = SecItemAdd(newItem as CFDictionary, nil) | `- error: 'nil' requires a contextual type 189 | 190 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:191:29: error: cannot find 'noErr' in scope 189 | 190 | // Throw an error if an unexpected status was returned. 191 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } | `- error: cannot find 'noErr' in scope 192 | } 193 | } /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:198:28: error: cannot find 'kSecAttrAccount' in scope 196 | // Try to update an existing item with the new account name. 197 | var attributesToUpdate = [String: AnyObject]() 198 | attributesToUpdate[kSecAttrAccount as String] = newAccountName as AnyObject? | `- error: cannot find 'kSecAttrAccount' in scope 199 | 200 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:201:22: error: cannot find 'SecItemUpdate' in scope 199 | 200 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 201 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find 'SecItemUpdate' in scope 202 | 203 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:201:45: error: cannot find type 'CFDictionary' in scope 199 | 200 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 201 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find type 'CFDictionary' in scope 202 | 203 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:201:81: error: cannot find type 'CFDictionary' in scope 199 | 200 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 201 | let status = SecItemUpdate(query as CFDictionary, attributesToUpdate as CFDictionary) | `- error: cannot find type 'CFDictionary' in scope 202 | 203 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:204:25: error: cannot find 'noErr' in scope 202 | 203 | // Throw an error if an unexpected status was returned. 204 | guard status == noErr || status == errSecItemNotFound | `- error: cannot find 'noErr' in scope 205 | else { throw KeychainError.unhandledError(status: status) } 206 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:204:44: error: cannot find 'errSecItemNotFound' in scope 202 | 203 | // Throw an error if an unexpected status was returned. 204 | guard status == noErr || status == errSecItemNotFound | `- error: cannot find 'errSecItemNotFound' in scope 205 | else { throw KeychainError.unhandledError(status: status) } 206 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:213:22: error: cannot find 'SecItemDelete' in scope 211 | // Delete the existing item from the keychain. 212 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 213 | let status = SecItemDelete(query as CFDictionary) | `- error: cannot find 'SecItemDelete' in scope 214 | 215 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:213:45: error: cannot find type 'CFDictionary' in scope 211 | // Delete the existing item from the keychain. 212 | let query = KeychainPasswordItem.keychainQuery(withService: service, account: account, accessGroup: accessGroup) 213 | let status = SecItemDelete(query as CFDictionary) | `- error: cannot find type 'CFDictionary' in scope 214 | 215 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:216:25: error: cannot find 'noErr' in scope 214 | 215 | // Throw an error if an unexpected status was returned. 216 | guard status == noErr || status == errSecItemNotFound | `- error: cannot find 'noErr' in scope 217 | else { throw KeychainError.unhandledError(status: status) } 218 | } /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:216:44: error: cannot find 'errSecItemNotFound' in scope 214 | 215 | // Throw an error if an unexpected status was returned. 216 | guard status == noErr || status == errSecItemNotFound | `- error: cannot find 'errSecItemNotFound' in scope 217 | else { throw KeychainError.unhandledError(status: status) } 218 | } /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:226:15: error: cannot find 'kSecMatchLimit' in scope 224 | // Build a query for all items that match the service and access group. 225 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup) 226 | query[kSecMatchLimit as String] = kSecMatchLimitAll | `- error: cannot find 'kSecMatchLimit' in scope 227 | query[kSecReturnAttributes as String] = kCFBooleanTrue 228 | query[kSecReturnData as String] = kCFBooleanFalse /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:226:43: error: cannot find 'kSecMatchLimitAll' in scope 224 | // Build a query for all items that match the service and access group. 225 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup) 226 | query[kSecMatchLimit as String] = kSecMatchLimitAll | `- error: cannot find 'kSecMatchLimitAll' in scope 227 | query[kSecReturnAttributes as String] = kCFBooleanTrue 228 | query[kSecReturnData as String] = kCFBooleanFalse /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:227:15: error: cannot find 'kSecReturnAttributes' in scope 225 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup) 226 | query[kSecMatchLimit as String] = kSecMatchLimitAll 227 | query[kSecReturnAttributes as String] = kCFBooleanTrue | `- error: cannot find 'kSecReturnAttributes' in scope 228 | query[kSecReturnData as String] = kCFBooleanFalse 229 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:227:49: error: cannot find 'kCFBooleanTrue' in scope 225 | var query = KeychainPasswordItem.keychainQuery(withService: service, accessGroup: accessGroup) 226 | query[kSecMatchLimit as String] = kSecMatchLimitAll 227 | query[kSecReturnAttributes as String] = kCFBooleanTrue | `- error: cannot find 'kCFBooleanTrue' in scope 228 | query[kSecReturnData as String] = kCFBooleanFalse 229 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:228:15: error: cannot find 'kSecReturnData' in scope 226 | query[kSecMatchLimit as String] = kSecMatchLimitAll 227 | query[kSecReturnAttributes as String] = kCFBooleanTrue 228 | query[kSecReturnData as String] = kCFBooleanFalse | `- error: cannot find 'kSecReturnData' in scope 229 | 230 | // Fetch matching items from the keychain. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:228:43: error: cannot find 'kCFBooleanFalse' in scope 226 | query[kSecMatchLimit as String] = kSecMatchLimitAll 227 | query[kSecReturnAttributes as String] = kCFBooleanTrue 228 | query[kSecReturnData as String] = kCFBooleanFalse | `- error: cannot find 'kCFBooleanFalse' in scope 229 | 230 | // Fetch matching items from the keychain. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:233:13: error: cannot find 'SecItemCopyMatching' in scope 231 | var queryResult: AnyObject? 232 | let status = withUnsafeMutablePointer(to: &queryResult) { 233 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0)) | `- error: cannot find 'SecItemCopyMatching' in scope 234 | } 235 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:233:42: error: cannot find type 'CFDictionary' in scope 231 | var queryResult: AnyObject? 232 | let status = withUnsafeMutablePointer(to: &queryResult) { 233 | SecItemCopyMatching(query as CFDictionary, UnsafeMutablePointer($0)) | `- error: cannot find type 'CFDictionary' in scope 234 | } 235 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:237:25: error: cannot find 'errSecItemNotFound' in scope 235 | 236 | // If no items were found, return an empty array. 237 | guard status != errSecItemNotFound else { return [] } | `- error: cannot find 'errSecItemNotFound' in scope 238 | 239 | // Throw an error if an unexpected status was returned. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:240:25: error: cannot find 'noErr' in scope 238 | 239 | // Throw an error if an unexpected status was returned. 240 | guard status == noErr else { throw KeychainError.unhandledError(status: status) } | `- error: cannot find 'noErr' in scope 241 | 242 | // Cast the query result to an array of dictionaries. /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:248:40: error: cannot find 'kSecAttrAccount' in scope 246 | var passwordItems = [KeychainPasswordItem]() 247 | for result in resultData { 248 | guard let account = result[kSecAttrAccount as String] as? String | `- error: cannot find 'kSecAttrAccount' in scope 249 | else { throw KeychainError.unexpectedItemData } 250 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:266:15: error: cannot find 'kSecClass' in scope 264 | ) -> [String: AnyObject] { 265 | var query = [String: AnyObject]() 266 | query[kSecClass as String] = kSecClassGenericPassword | `- error: cannot find 'kSecClass' in scope 267 | query[kSecAttrService as String] = service as AnyObject? 268 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:266:38: error: cannot find 'kSecClassGenericPassword' in scope 264 | ) -> [String: AnyObject] { 265 | var query = [String: AnyObject]() 266 | query[kSecClass as String] = kSecClassGenericPassword | `- error: cannot find 'kSecClassGenericPassword' in scope 267 | query[kSecAttrService as String] = service as AnyObject? 268 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:267:15: error: cannot find 'kSecAttrService' in scope 265 | var query = [String: AnyObject]() 266 | query[kSecClass as String] = kSecClassGenericPassword 267 | query[kSecAttrService as String] = service as AnyObject? | `- error: cannot find 'kSecAttrService' in scope 268 | 269 | if let account = account { /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:270:19: error: cannot find 'kSecAttrAccount' in scope 268 | 269 | if let account = account { 270 | query[kSecAttrAccount as String] = account as AnyObject? | `- error: cannot find 'kSecAttrAccount' in scope 271 | } 272 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/KeychainPasswordItem.swift:274:19: error: cannot find 'kSecAttrAccessGroup' in scope 272 | 273 | if let accessGroup = accessGroup { 274 | query[kSecAttrAccessGroup as String] = accessGroup as AnyObject? | `- error: cannot find 'kSecAttrAccessGroup' in scope 275 | } 276 | /tmp/xcinfo-20241124-6670-70eel6/xcinfo-1.0.3/Sources/XCIFoundation/Logger.swift:58:20: error: cannot find '__stdoutp' in scope 56 | print(msg) 57 | if onSameLine { 58 | fflush(__stdoutp) | `- error: cannot find '__stdoutp' in scope 59 | } 60 | } /usr/bin/env /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/shims/shared/curl --version /usr/bin/env /usr/bin/ruby -e puts\ RUBY_VERSION /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromNameLoader): loading glibc /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromNameLoader): loading gcc@11 /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::FromNameLoader): loading gcc /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/build.rb (Formulary::NullLoader): loading xorg /home/linuxbrew/.linuxbrew/Homebrew/Library/Homebrew/ignorable.rb:27:in `block in raise' BuildError: Failed executing: swift build --static-swift-stdlib --configuration release ```