Build Information
Failed to build KeyVine, reference main (f467a1
), with Swift 6.0 for Linux on 10 Oct 2024 08:19:47 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/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 2>&1
Build Log
========================================
RunAll
========================================
Builder version: 4.55.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ptsochantaris/key-vine.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/ptsochantaris/key-vine
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at f467a1f Bumping Swift tools to 6.0 and marking KeyVine as Sendable
Cloned https://github.com/ptsochantaris/key-vine.git
Revision (git rev-parse @):
f467a1f3f096ea9abc75a7f2ea3425c56184bef4
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/ptsochantaris/key-vine.git at main
========================================
Build
========================================
Selected platform: linux
Swift version: 6.0
Building package at path: $PWD
https://github.com/ptsochantaris/key-vine.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-0":/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 2>&1
basic-6.0-latest: Pulling from finestructure/spi-images
Digest: sha256:b1f5b321a5d74ef5eaf6f5f3afbfebaaa54c7954de6f859009c18a90e0e1c3b4
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
[3/6] Compiling KeyVine KeyVineStringConvertible.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/6] Compiling KeyVine KeyVineDataConvertible.swift
[5/6] Emitting module KeyVine
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:112:53: error: cannot find type 'CFString' in scope
110 | }
111 |
112 | private nonisolated(unsafe) let templateQuery: [CFString: Any]
| `- error: cannot find type 'CFString' in scope
113 |
114 | /// Initialise a key vine using a pair of identifiers. They can in theory be anything, but for sandboxed and app store apps,
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:62:26: error: cannot find type 'OSStatus' in scope
60 | /// the property and subscript syntax cannot throw errors.
61 | public enum KeyVineError: LocalizedError {
62 | case readFailure(OSStatus)
| `- error: cannot find type 'OSStatus' in scope
63 | case writeFailure(OSStatus)
64 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:63:27: error: cannot find type 'OSStatus' in scope
61 | public enum KeyVineError: LocalizedError {
62 | case readFailure(OSStatus)
63 | case writeFailure(OSStatus)
| `- error: cannot find type 'OSStatus' in scope
64 |
65 | public var errorDescription: String? {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:96:22: error: cannot find type 'CFString' in scope
94 | case afterFirstUnlock
95 |
96 | var cfValue: CFString {
| `- error: cannot find type 'CFString' in scope
97 | switch self {
98 | case .afterFirstUnlock:
[6/6] Compiling KeyVine KeyVine.swift
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:112:53: error: cannot find type 'CFString' in scope
110 | }
111 |
112 | private nonisolated(unsafe) let templateQuery: [CFString: Any]
| `- error: cannot find type 'CFString' in scope
113 |
114 | /// Initialise a key vine using a pair of identifiers. They can in theory be anything, but for sandboxed and app store apps,
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:62:26: error: cannot find type 'OSStatus' in scope
60 | /// the property and subscript syntax cannot throw errors.
61 | public enum KeyVineError: LocalizedError {
62 | case readFailure(OSStatus)
| `- error: cannot find type 'OSStatus' in scope
63 | case writeFailure(OSStatus)
64 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:63:27: error: cannot find type 'OSStatus' in scope
61 | public enum KeyVineError: LocalizedError {
62 | case readFailure(OSStatus)
63 | case writeFailure(OSStatus)
| `- error: cannot find type 'OSStatus' in scope
64 |
65 | public var errorDescription: String? {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:96:22: error: cannot find type 'CFString' in scope
94 | case afterFirstUnlock
95 |
96 | var cfValue: CFString {
| `- error: cannot find type 'CFString' in scope
97 | switch self {
98 | case .afterFirstUnlock:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:68:39: error: cannot find 'SecCopyErrorMessageString' in scope
66 | switch self {
67 | case let .readFailure(status):
68 | if let errorMessage = SecCopyErrorMessageString(status, nil) {
| `- error: cannot find 'SecCopyErrorMessageString' in scope
69 | "Keychain read failed with error \(status): \(errorMessage)"
70 | } else {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:74:39: error: cannot find 'SecCopyErrorMessageString' in scope
72 | }
73 | case let .writeFailure(status):
74 | if let errorMessage = SecCopyErrorMessageString(status, nil) {
| `- error: cannot find 'SecCopyErrorMessageString' in scope
75 | "Keychain write failed with error \(status): \(errorMessage)"
76 | } else {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:67:23: error: type '_ErrorCodeProtocol' has no member 'readFailure'
65 | public var errorDescription: String? {
66 | switch self {
67 | case let .readFailure(status):
| `- error: type '_ErrorCodeProtocol' has no member 'readFailure'
68 | if let errorMessage = SecCopyErrorMessageString(status, nil) {
69 | "Keychain read failed with error \(status): \(errorMessage)"
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:122:26: error: cannot find 'kSecClass' in scope
120 | /// ```
121 | public init(appIdentifier: String, teamId: String, accessibility: Accessibility = .afterFirstUnlock) {
122 | templateQuery = [kSecClass: kSecClassGenericPassword,
| `- error: cannot find 'kSecClass' in scope
123 | kSecAttrService: appIdentifier,
124 | kSecUseDataProtectionKeychain: kCFBooleanTrue!,
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:122:37: error: cannot find 'kSecClassGenericPassword' in scope
120 | /// ```
121 | public init(appIdentifier: String, teamId: String, accessibility: Accessibility = .afterFirstUnlock) {
122 | templateQuery = [kSecClass: kSecClassGenericPassword,
| `- error: cannot find 'kSecClassGenericPassword' in scope
123 | kSecAttrService: appIdentifier,
124 | kSecUseDataProtectionKeychain: kCFBooleanTrue!,
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:123:26: error: cannot find 'kSecAttrService' in scope
121 | public init(appIdentifier: String, teamId: String, accessibility: Accessibility = .afterFirstUnlock) {
122 | templateQuery = [kSecClass: kSecClassGenericPassword,
123 | kSecAttrService: appIdentifier,
| `- error: cannot find 'kSecAttrService' in scope
124 | kSecUseDataProtectionKeychain: kCFBooleanTrue!,
125 | kSecAttrAccessible: accessibility.cfValue,
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:124:26: error: cannot find 'kSecUseDataProtectionKeychain' in scope
122 | templateQuery = [kSecClass: kSecClassGenericPassword,
123 | kSecAttrService: appIdentifier,
124 | kSecUseDataProtectionKeychain: kCFBooleanTrue!,
| `- error: cannot find 'kSecUseDataProtectionKeychain' in scope
125 | kSecAttrAccessible: accessibility.cfValue,
126 | kSecAttrAccessGroup: "\(teamId).\(appIdentifier)"]
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:124:57: error: cannot find 'kCFBooleanTrue' in scope
122 | templateQuery = [kSecClass: kSecClassGenericPassword,
123 | kSecAttrService: appIdentifier,
124 | kSecUseDataProtectionKeychain: kCFBooleanTrue!,
| `- error: cannot find 'kCFBooleanTrue' in scope
125 | kSecAttrAccessible: accessibility.cfValue,
126 | kSecAttrAccessGroup: "\(teamId).\(appIdentifier)"]
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:125:26: error: cannot find 'kSecAttrAccessible' in scope
123 | kSecAttrService: appIdentifier,
124 | kSecUseDataProtectionKeychain: kCFBooleanTrue!,
125 | kSecAttrAccessible: accessibility.cfValue,
| `- error: cannot find 'kSecAttrAccessible' in scope
126 | kSecAttrAccessGroup: "\(teamId).\(appIdentifier)"]
127 | }
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:126:26: error: cannot find 'kSecAttrAccessGroup' in scope
124 | kSecUseDataProtectionKeychain: kCFBooleanTrue!,
125 | kSecAttrAccessible: accessibility.cfValue,
126 | kSecAttrAccessGroup: "\(teamId).\(appIdentifier)"]
| `- error: cannot find 'kSecAttrAccessGroup' in scope
127 | }
128 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:140:15: error: cannot find 'kSecAttrAccount' in scope
138 | public func read(from key: String) throws -> Data? {
139 | var query = templateQuery
140 | query[kSecAttrAccount] = key
| `- error: cannot find 'kSecAttrAccount' in scope
141 | query[kSecMatchLimit] = kSecMatchLimitOne
142 | query[kSecReturnData] = kCFBooleanTrue
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:141:15: error: cannot find 'kSecMatchLimit' in scope
139 | var query = templateQuery
140 | query[kSecAttrAccount] = key
141 | query[kSecMatchLimit] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimit' in scope
142 | query[kSecReturnData] = kCFBooleanTrue
143 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:141:33: error: cannot find 'kSecMatchLimitOne' in scope
139 | var query = templateQuery
140 | query[kSecAttrAccount] = key
141 | query[kSecMatchLimit] = kSecMatchLimitOne
| `- error: cannot find 'kSecMatchLimitOne' in scope
142 | query[kSecReturnData] = kCFBooleanTrue
143 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:142:15: error: cannot find 'kSecReturnData' in scope
140 | query[kSecAttrAccount] = key
141 | query[kSecMatchLimit] = kSecMatchLimitOne
142 | query[kSecReturnData] = kCFBooleanTrue
| `- error: cannot find 'kSecReturnData' in scope
143 |
144 | var itemCopy: AnyObject?
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:142:33: error: cannot find 'kCFBooleanTrue' in scope
140 | query[kSecAttrAccount] = key
141 | query[kSecMatchLimit] = kSecMatchLimitOne
142 | query[kSecReturnData] = kCFBooleanTrue
| `- error: cannot find 'kCFBooleanTrue' in scope
143 |
144 | var itemCopy: AnyObject?
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:145:22: error: cannot find 'SecItemCopyMatching' in scope
143 |
144 | var itemCopy: AnyObject?
145 | let status = SecItemCopyMatching(query as CFDictionary, &itemCopy)
| `- error: cannot find 'SecItemCopyMatching' in scope
146 | switch status {
147 | case errSecSuccess:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:145:51: error: cannot find type 'CFDictionary' in scope
143 |
144 | var itemCopy: AnyObject?
145 | let status = SecItemCopyMatching(query as CFDictionary, &itemCopy)
| `- error: cannot find type 'CFDictionary' in scope
146 | switch status {
147 | case errSecSuccess:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:147:14: error: cannot find 'errSecSuccess' in scope
145 | let status = SecItemCopyMatching(query as CFDictionary, &itemCopy)
146 | switch status {
147 | case errSecSuccess:
| `- error: cannot find 'errSecSuccess' in scope
148 | return itemCopy as? Data
149 | case errSecItemNotFound:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:149:14: error: cannot find 'errSecItemNotFound' in scope
147 | case errSecSuccess:
148 | return itemCopy as? Data
149 | case errSecItemNotFound:
| `- error: cannot find 'errSecItemNotFound' in scope
150 | return nil
151 | default:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:167:21: error: cannot find type 'OSStatus' in scope
165 | public func write(data: Data?, to key: String) throws {
166 | var query = templateQuery
167 | var status: OSStatus
| `- error: cannot find type 'OSStatus' in scope
168 |
169 | query[kSecAttrAccount] = key
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:169:15: error: cannot find 'kSecAttrAccount' in scope
167 | var status: OSStatus
168 |
169 | query[kSecAttrAccount] = key
| `- error: cannot find 'kSecAttrAccount' in scope
170 |
171 | if let data {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:172:19: error: cannot find 'kSecValueData' in scope
170 |
171 | if let data {
172 | query[kSecValueData] = data
| `- error: cannot find 'kSecValueData' in scope
173 | status = SecItemAdd(query as CFDictionary, nil)
174 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:173:22: error: cannot find 'SecItemAdd' in scope
171 | if let data {
172 | query[kSecValueData] = data
173 | status = SecItemAdd(query as CFDictionary, nil)
| `- error: cannot find 'SecItemAdd' in scope
174 |
175 | switch status {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:173:42: error: cannot find type 'CFDictionary' in scope
171 | if let data {
172 | query[kSecValueData] = data
173 | status = SecItemAdd(query as CFDictionary, nil)
| `- error: cannot find type 'CFDictionary' in scope
174 |
175 | switch status {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:173:56: error: 'nil' requires a contextual type
171 | if let data {
172 | query[kSecValueData] = data
173 | status = SecItemAdd(query as CFDictionary, nil)
| `- error: 'nil' requires a contextual type
174 |
175 | switch status {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:176:18: error: cannot find 'errSecDuplicateItem' in scope
174 |
175 | switch status {
176 | case errSecDuplicateItem:
| `- error: cannot find 'errSecDuplicateItem' in scope
177 | query[kSecValueData] = nil
178 | status = SecItemUpdate(query as CFDictionary, [kSecValueData: data] as CFDictionary)
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:177:23: error: cannot find 'kSecValueData' in scope
175 | switch status {
176 | case errSecDuplicateItem:
177 | query[kSecValueData] = nil
| `- error: cannot find 'kSecValueData' in scope
178 | status = SecItemUpdate(query as CFDictionary, [kSecValueData: data] as CFDictionary)
179 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:177:40: error: 'nil' requires a contextual type
175 | switch status {
176 | case errSecDuplicateItem:
177 | query[kSecValueData] = nil
| `- error: 'nil' requires a contextual type
178 | status = SecItemUpdate(query as CFDictionary, [kSecValueData: data] as CFDictionary)
179 |
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:178:26: error: cannot find 'SecItemUpdate' in scope
176 | case errSecDuplicateItem:
177 | query[kSecValueData] = nil
178 | status = SecItemUpdate(query as CFDictionary, [kSecValueData: data] as CFDictionary)
| `- error: cannot find 'SecItemUpdate' in scope
179 |
180 | default:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:178:64: error: cannot find 'kSecValueData' in scope
176 | case errSecDuplicateItem:
177 | query[kSecValueData] = nil
178 | status = SecItemUpdate(query as CFDictionary, [kSecValueData: data] as CFDictionary)
| `- error: cannot find 'kSecValueData' in scope
179 |
180 | default:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:178:49: error: cannot find type 'CFDictionary' in scope
176 | case errSecDuplicateItem:
177 | query[kSecValueData] = nil
178 | status = SecItemUpdate(query as CFDictionary, [kSecValueData: data] as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
179 |
180 | default:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:178:88: error: cannot find type 'CFDictionary' in scope
176 | case errSecDuplicateItem:
177 | query[kSecValueData] = nil
178 | status = SecItemUpdate(query as CFDictionary, [kSecValueData: data] as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
179 |
180 | default:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:185:22: error: cannot find 'SecItemDelete' in scope
183 |
184 | } else {
185 | status = SecItemDelete(query as CFDictionary)
| `- error: cannot find 'SecItemDelete' in scope
186 | switch status {
187 | case errSecItemNotFound, errSecSuccess:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:185:45: error: cannot find type 'CFDictionary' in scope
183 |
184 | } else {
185 | status = SecItemDelete(query as CFDictionary)
| `- error: cannot find type 'CFDictionary' in scope
186 | switch status {
187 | case errSecItemNotFound, errSecSuccess:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:187:18: error: cannot find 'errSecItemNotFound' in scope
185 | status = SecItemDelete(query as CFDictionary)
186 | switch status {
187 | case errSecItemNotFound, errSecSuccess:
| `- error: cannot find 'errSecItemNotFound' in scope
188 | return
189 | default:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:187:38: error: cannot find 'errSecSuccess' in scope
185 | status = SecItemDelete(query as CFDictionary)
186 | switch status {
187 | case errSecItemNotFound, errSecSuccess:
| `- error: cannot find 'errSecSuccess' in scope
188 | return
189 | default:
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:194:22: error: cannot find 'errSecSuccess' in scope
192 | }
193 |
194 | if status != errSecSuccess {
| `- error: cannot find 'errSecSuccess' in scope
195 | throw KeyVineError.writeFailure(status)
196 | }
BUILD FAILURE 6.0 linux