This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

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 MQTTKit with Swift 6.0 for Linux.

Build Command

bash -c docker run --rm -v "checkouts-4606859-1":/host -w "$workDir" 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.40.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/arnecs/mqttkit.git
Reference: master
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/arnecs/mqttkit
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at ec89464 travis script xcodebuild
Cloned https://github.com/arnecs/mqttkit.git
Revision (git rev-parse @):
ec894640f1ea27f758b3f4d22722d83159773cd0
SUCCESS checkout https://github.com/arnecs/mqttkit.git at master
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $workDir
https://github.com/arnecs/mqttkit.git
Running build ...
bash -c docker run --rm -v "checkouts-4606859-1":/host -w "$workDir" 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
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/10] Compiling MQTTKit MQTTPacket.swift
/host/spi-builder-workspace/Sources/MQTTPacket.swift:63:14: warning: function call causes an infinite recursion
 61 |
 62 |     init(header: MQTTPacket.Header) {
 63 |         self.init(header: header)
    |              `- warning: function call causes an infinite recursion
 64 |     }
 65 | }
[4/10] Compiling MQTTKit MQTTSessionDelegate.swift
[5/10] Compiling MQTTKit MQTTSession.swift
/host/spi-builder-workspace/Sources/MQTTSession.swift:137:13: warning: capture of 'self' with non-sendable type 'MQTTSession' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | final public class MQTTSession: NSObject, StreamDelegate {
    |                    `- note: class 'MQTTSession' does not conform to the 'Sendable' protocol
 12 |     private var options: MQTTOptions
 13 |     private var inputStream: InputStream?
    :
135 |
136 |         DispatchQueue.main.async {
137 |             self.keepAliveTimer = Timer.scheduledTimer(withTimeInterval: TimeInterval(self.options.keepAliveInterval / 2), repeats: true, block: { [weak self] timer in
    |             `- warning: capture of 'self' with non-sendable type 'MQTTSession' in a `@Sendable` closure; this is an error in the Swift 6 language mode
138 |                 guard self?.outputStream?.streamStatus == .open,
139 |                     -self!.lastServerResponse.timeIntervalSinceNow < Double(self!.options.keepAliveInterval) * 1.5  else {
/host/spi-builder-workspace/Sources/MQTTSession.swift:159:13: warning: capture of 'self' with non-sendable type 'MQTTSession' in a `@Sendable` closure; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | final public class MQTTSession: NSObject, StreamDelegate {
    |                    `- note: class 'MQTTSession' does not conform to the 'Sendable' protocol
 12 |     private var options: MQTTOptions
 13 |     private var inputStream: InputStream?
    :
157 |
158 |         DispatchQueue.main.async {
159 |             self.autoReconnectTimer = Timer.scheduledTimer(withTimeInterval: TimeInterval(self.options.keepAliveInterval / 2), repeats: true, block: { [lsr = self.lastServerResponse, timeout = self.options.autoReconnectTimeout] timer in
    |             `- warning: capture of 'self' with non-sendable type 'MQTTSession' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |                 guard -lsr.timeIntervalSinceNow < timeout && self.state == .disconnected else {
161 |                     timer.invalidate()
/host/spi-builder-workspace/Sources/MQTTSession.swift:160:62: warning: capture of 'self' with non-sendable type 'MQTTSession' in an isolated closure; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | final public class MQTTSession: NSObject, StreamDelegate {
    |                    `- note: class 'MQTTSession' does not conform to the 'Sendable' protocol
 12 |     private var options: MQTTOptions
 13 |     private var inputStream: InputStream?
    :
158 |         DispatchQueue.main.async {
159 |             self.autoReconnectTimer = Timer.scheduledTimer(withTimeInterval: TimeInterval(self.options.keepAliveInterval / 2), repeats: true, block: { [lsr = self.lastServerResponse, timeout = self.options.autoReconnectTimeout] timer in
160 |                 guard -lsr.timeIntervalSinceNow < timeout && self.state == .disconnected else {
    |                                                              `- warning: capture of 'self' with non-sendable type 'MQTTSession' in an isolated closure; this is an error in the Swift 6 language mode
161 |                     timer.invalidate()
162 |                     return
/host/spi-builder-workspace/Sources/MQTTSession.swift:160:62: warning: implicit capture of 'self' requires that 'MQTTSession' conforms to `Sendable`; this is an error in the Swift 6 language mode
  9 | import Foundation
 10 |
 11 | final public class MQTTSession: NSObject, StreamDelegate {
    |                    `- note: class 'MQTTSession' does not conform to the 'Sendable' protocol
 12 |     private var options: MQTTOptions
 13 |     private var inputStream: InputStream?
    :
158 |         DispatchQueue.main.async {
159 |             self.autoReconnectTimer = Timer.scheduledTimer(withTimeInterval: TimeInterval(self.options.keepAliveInterval / 2), repeats: true, block: { [lsr = self.lastServerResponse, timeout = self.options.autoReconnectTimeout] timer in
160 |                 guard -lsr.timeIntervalSinceNow < timeout && self.state == .disconnected else {
    |                                                              `- warning: implicit capture of 'self' requires that 'MQTTSession' conforms to `Sendable`; this is an error in the Swift 6 language mode
161 |                     timer.invalidate()
162 |                     return
/host/spi-builder-workspace/Sources/MQTTSession.swift:174:16: error: type 'Stream' has no member 'getStreamsToHost'
172 |         var outputStream: OutputStream?
173 |
174 |         Stream.getStreamsToHost(
    |                `- error: type 'Stream' has no member 'getStreamsToHost'
175 |             withName: options.host,
176 |             port: options.port,
/host/spi-builder-workspace/Sources/MQTTSession.swift:188:51: error: cannot find 'RunLoopMode' in scope
186 |         output.delegate = self
187 |
188 |         input.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)
    |                                                   `- error: cannot find 'RunLoopMode' in scope
189 |         output.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)
190 |
/host/spi-builder-workspace/Sources/MQTTSession.swift:189:52: error: cannot find 'RunLoopMode' in scope
187 |
188 |         input.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)
189 |         output.schedule(in: RunLoop.main, forMode: RunLoopMode.defaultRunLoopMode)
    |                                                    `- error: cannot find 'RunLoopMode' in scope
190 |
191 |         if options.useTLS {
/host/spi-builder-workspace/Sources/MQTTSession.swift:192:57: error: argument type 'StreamSocketSecurityLevel' expected to be an instance of a class or class-constrained type
190 |
191 |         if options.useTLS {
192 |             input.setProperty(StreamSocketSecurityLevel.tlSv1, forKey: .socketSecurityLevelKey)
    |                                                         `- error: argument type 'StreamSocketSecurityLevel' expected to be an instance of a class or class-constrained type
193 |             output.setProperty(StreamSocketSecurityLevel.tlSv1, forKey: .socketSecurityLevelKey)
194 |         }
/host/spi-builder-workspace/Sources/MQTTSession.swift:193:58: error: argument type 'StreamSocketSecurityLevel' expected to be an instance of a class or class-constrained type
191 |         if options.useTLS {
192 |             input.setProperty(StreamSocketSecurityLevel.tlSv1, forKey: .socketSecurityLevelKey)
193 |             output.setProperty(StreamSocketSecurityLevel.tlSv1, forKey: .socketSecurityLevelKey)
    |                                                          `- error: argument type 'StreamSocketSecurityLevel' expected to be an instance of a class or class-constrained type
194 |         }
195 |
/host/spi-builder-workspace/Sources/MQTTSession.swift:197:13: warning: capture of 'input' with non-sendable type 'InputStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
195 |
196 |         DispatchQueue.global(qos: .userInitiated).async {
197 |             input.open()
    |             `- warning: capture of 'input' with non-sendable type 'InputStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
198 |             output.open()
199 |
Foundation.InputStream:1:12: note: class 'InputStream' does not conform to the 'Sendable' protocol
 1 | open class InputStream : Stream {
   |            `- note: class 'InputStream' does not conform to the 'Sendable' protocol
 2 |     open func read(_ buffer: UnsafeMutablePointer<UInt8>, maxLength len: Int) -> Int
 3 |     open func getBuffer(_ buffer: UnsafeMutablePointer<UnsafeMutablePointer<UInt8>?>, length len: UnsafeMutablePointer<Int>) -> Bool
/host/spi-builder-workspace/Sources/MQTTSession.swift:9:1: warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
  7 | //
  8 |
  9 | import Foundation
    | `- warning: add '@preconcurrency' to suppress 'Sendable'-related warnings from module 'Foundation'
 10 |
 11 | final public class MQTTSession: NSObject, StreamDelegate {
/host/spi-builder-workspace/Sources/MQTTSession.swift:198:13: warning: capture of 'output' with non-sendable type 'OutputStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
196 |         DispatchQueue.global(qos: .userInitiated).async {
197 |             input.open()
198 |             output.open()
    |             `- warning: capture of 'output' with non-sendable type 'OutputStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
199 |
200 |             while input.streamStatus == .opening || output.streamStatus == .opening {
Foundation.OutputStream:1:12: note: class 'OutputStream' does not conform to the 'Sendable' protocol
 1 | open class OutputStream : Stream {
   |            `- note: class 'OutputStream' does not conform to the 'Sendable' protocol
 2 |     open func write(_ buffer: UnsafePointer<UInt8>, maxLength len: Int) -> Int
 3 |     open var hasSpaceAvailable: Bool { get }
/host/spi-builder-workspace/Sources/MQTTSession.swift:205:17: warning: capture of 'completion' with non-sendable type '((input: InputStream, output: OutputStream)?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
203 |
204 |             if input.streamStatus != .open || output.streamStatus != .open {
205 |                 completion(nil)
    |                 |- warning: capture of 'completion' with non-sendable type '((input: InputStream, output: OutputStream)?) -> Void' in a `@Sendable` closure; this is an error in the Swift 6 language mode
    |                 `- note: a function type must be marked '@Sendable' to conform to 'Sendable'
206 |                 return
207 |             }
/host/spi-builder-workspace/Sources/MQTTSession.swift:200:53: warning: implicit capture of 'output' requires that 'OutputStream' conforms to `Sendable`; this is an error in the Swift 6 language mode
198 |             output.open()
199 |
200 |             while input.streamStatus == .opening || output.streamStatus == .opening {
    |                                                     `- warning: implicit capture of 'output' requires that 'OutputStream' conforms to `Sendable`; this is an error in the Swift 6 language mode
201 |                 usleep(1000)
202 |             }
Foundation.OutputStream:1:12: note: class 'OutputStream' does not conform to the 'Sendable' protocol
 1 | open class OutputStream : Stream {
   |            `- note: class 'OutputStream' does not conform to the 'Sendable' protocol
 2 |     open func write(_ buffer: UnsafePointer<UInt8>, maxLength len: Int) -> Int
 3 |     open var hasSpaceAvailable: Bool { get }
/host/spi-builder-workspace/Sources/MQTTSession.swift:204:47: warning: implicit capture of 'output' requires that 'OutputStream' conforms to `Sendable`; this is an error in the Swift 6 language mode
202 |             }
203 |
204 |             if input.streamStatus != .open || output.streamStatus != .open {
    |                                               `- warning: implicit capture of 'output' requires that 'OutputStream' conforms to `Sendable`; this is an error in the Swift 6 language mode
205 |                 completion(nil)
206 |                 return
Foundation.OutputStream:1:12: note: class 'OutputStream' does not conform to the 'Sendable' protocol
 1 | open class OutputStream : Stream {
   |            `- note: class 'OutputStream' does not conform to the 'Sendable' protocol
 2 |     open func write(_ buffer: UnsafePointer<UInt8>, maxLength len: Int) -> Int
 3 |     open var hasSpaceAvailable: Bool { get }
[6/10] Compiling MQTTKit Extensions.swift
[7/10] Compiling MQTTKit MQTTOptions.swift
[8/10] Compiling MQTTKit MQTTMessage.swift
[9/10] Emitting module MQTTKit
/host/spi-builder-workspace/Sources/Constants.swift:37:16: warning: static property 'mostOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | }
 31 |
 32 | public enum MQTTQoSLevel: UInt8, Comparable {
    |             `- note: consider making enum 'MQTTQoSLevel' conform to the 'Sendable' protocol
 33 |     case qos0 = 0b0000_0000
 34 |     case qos1 = 0b0000_0010
 35 |     case qos2 = 0b0000_0100
 36 |
 37 |     static let mostOnce = MQTTQoSLevel.qos0
    |                |- warning: static property 'mostOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'mostOnce' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |     static let leastOnce = MQTTQoSLevel.qos1
 39 |     static let exactlyOnce = MQTTQoSLevel.qos2
/host/spi-builder-workspace/Sources/Constants.swift:38:16: warning: static property 'leastOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | }
 31 |
 32 | public enum MQTTQoSLevel: UInt8, Comparable {
    |             `- note: consider making enum 'MQTTQoSLevel' conform to the 'Sendable' protocol
 33 |     case qos0 = 0b0000_0000
 34 |     case qos1 = 0b0000_0010
    :
 36 |
 37 |     static let mostOnce = MQTTQoSLevel.qos0
 38 |     static let leastOnce = MQTTQoSLevel.qos1
    |                |- warning: static property 'leastOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'leastOnce' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     static let exactlyOnce = MQTTQoSLevel.qos2
 40 |
/host/spi-builder-workspace/Sources/Constants.swift:39:16: warning: static property 'exactlyOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | }
 31 |
 32 | public enum MQTTQoSLevel: UInt8, Comparable {
    |             `- note: consider making enum 'MQTTQoSLevel' conform to the 'Sendable' protocol
 33 |     case qos0 = 0b0000_0000
 34 |     case qos1 = 0b0000_0010
    :
 37 |     static let mostOnce = MQTTQoSLevel.qos0
 38 |     static let leastOnce = MQTTQoSLevel.qos1
 39 |     static let exactlyOnce = MQTTQoSLevel.qos2
    |                |- warning: static property 'exactlyOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'exactlyOnce' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     case failure = 0x80
/host/spi-builder-workspace/Sources/Constants.swift:45:5: warning: 'public' modifier is redundant for operator function declared in a public extension
 43 |
 44 | public extension MQTTQoSLevel {
 45 |     public static func < (lhs: MQTTQoSLevel, rhs: MQTTQoSLevel) -> Bool {
    |     `- warning: 'public' modifier is redundant for operator function declared in a public extension
 46 |         return lhs.rawValue < rhs.rawValue
 47 |     }
[10/10] Compiling MQTTKit Constants.swift
/host/spi-builder-workspace/Sources/Constants.swift:37:16: warning: static property 'mostOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | }
 31 |
 32 | public enum MQTTQoSLevel: UInt8, Comparable {
    |             `- note: consider making enum 'MQTTQoSLevel' conform to the 'Sendable' protocol
 33 |     case qos0 = 0b0000_0000
 34 |     case qos1 = 0b0000_0010
 35 |     case qos2 = 0b0000_0100
 36 |
 37 |     static let mostOnce = MQTTQoSLevel.qos0
    |                |- warning: static property 'mostOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'mostOnce' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 38 |     static let leastOnce = MQTTQoSLevel.qos1
 39 |     static let exactlyOnce = MQTTQoSLevel.qos2
/host/spi-builder-workspace/Sources/Constants.swift:38:16: warning: static property 'leastOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | }
 31 |
 32 | public enum MQTTQoSLevel: UInt8, Comparable {
    |             `- note: consider making enum 'MQTTQoSLevel' conform to the 'Sendable' protocol
 33 |     case qos0 = 0b0000_0000
 34 |     case qos1 = 0b0000_0010
    :
 36 |
 37 |     static let mostOnce = MQTTQoSLevel.qos0
 38 |     static let leastOnce = MQTTQoSLevel.qos1
    |                |- warning: static property 'leastOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'leastOnce' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 39 |     static let exactlyOnce = MQTTQoSLevel.qos2
 40 |
/host/spi-builder-workspace/Sources/Constants.swift:39:16: warning: static property 'exactlyOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
 30 | }
 31 |
 32 | public enum MQTTQoSLevel: UInt8, Comparable {
    |             `- note: consider making enum 'MQTTQoSLevel' conform to the 'Sendable' protocol
 33 |     case qos0 = 0b0000_0000
 34 |     case qos1 = 0b0000_0010
    :
 37 |     static let mostOnce = MQTTQoSLevel.qos0
 38 |     static let leastOnce = MQTTQoSLevel.qos1
 39 |     static let exactlyOnce = MQTTQoSLevel.qos2
    |                |- warning: static property 'exactlyOnce' is not concurrency-safe because non-'Sendable' type 'MQTTQoSLevel' may have shared mutable state; this is an error in the Swift 6 language mode
    |                |- note: annotate 'exactlyOnce' with '@MainActor' if property should only be accessed from the main actor
    |                `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
 40 |
 41 |     case failure = 0x80
/host/spi-builder-workspace/Sources/Constants.swift:45:5: warning: 'public' modifier is redundant for operator function declared in a public extension
 43 |
 44 | public extension MQTTQoSLevel {
 45 |     public static func < (lhs: MQTTQoSLevel, rhs: MQTTQoSLevel) -> Bool {
    |     `- warning: 'public' modifier is redundant for operator function declared in a public extension
 46 |         return lhs.rawValue < rhs.rawValue
 47 |     }
BUILD FAILURE 6.0 linux
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.