The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Failed to build KeyVine, reference 1.0.2 (db84dd), with Swift 6.0 for Linux on 10 Oct 2024 08:16:29 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 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: 1.0.2
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
 * tag               1.0.2      -> FETCH_HEAD
HEAD is now at db84dd1 Typo
Cloned https://github.com/ptsochantaris/key-vine.git
Revision (git rev-parse @):
db84dd107baf7c10f1a04adfc852f249a78ace51
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/ptsochantaris/key-vine.git at 1.0.2
========================================
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-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 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
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/6] Compiling KeyVine KeyVineDataConvertible.swift
[4/6] Compiling KeyVine KeyVineStringConvertible.swift
[5/6] Emitting module KeyVine
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:112:33: error: cannot find type 'CFString' in scope
110 |     }
111 |
112 |     private 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:33: error: cannot find type 'CFString' in scope
110 |     }
111 |
112 |     private 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 |                     return "Keychain read failed with error \(status): \(errorMessage)"
 70 |                 } else {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:68:73: error: 'nil' requires a contextual type
 66 |             switch self {
 67 |             case let .readFailure(status):
 68 |                 if let errorMessage = SecCopyErrorMessageString(status, nil) {
    |                                                                         `- error: 'nil' requires a contextual type
 69 |                     return "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 |                     return "Keychain write failed with error \(status): \(errorMessage)"
 76 |                 } else {
/host/spi-builder-workspace/Sources/KeyVine/KeyVine.swift:74:73: error: 'nil' requires a contextual type
 72 |                 }
 73 |             case let .writeFailure(status):
 74 |                 if let errorMessage = SecCopyErrorMessageString(status, nil) {
    |                                                                         `- error: 'nil' requires a contextual type
 75 |                     return "Keychain write failed with error \(status): \(errorMessage)"
 76 |                 } else {
/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:20: 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:6: 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:37: 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:17: 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:16: 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