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 kubrick, reference 1.1.5 (018556), with Swift 6.0 for Linux on 11 Sep 2024 08:47:39 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.53.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/krad/kubrick.git
Reference: 1.1.5
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/krad/kubrick
 * tag               1.1.5      -> FETCH_HEAD
HEAD is now at 018556f Ok done with that.  I think this is better math
Cloned https://github.com/krad/kubrick.git
Revision (git rev-parse @):
018556f5e196ccfde895d27006a56aea3f7f5ed0
SUCCESS checkout https://github.com/krad/kubrick.git at 1.1.5
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $PWD
https://github.com/krad/kubrick.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:9d7dab235f2b0b46edadd73b1fb0c3b5323df02053420324a4a2f8ca89cb54a5
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:basic-6.0-latest
Fetching https://github.com/krad/grip.git
[1/176] Fetching grip
Fetched https://github.com/krad/grip.git from cache (0.58s)
Computing version for https://github.com/krad/grip.git
Computed https://github.com/krad/grip.git at 1.3.5 (0.52s)
Creating working copy for https://github.com/krad/grip.git
Working copy of https://github.com/krad/grip.git resolved at 1.3.5
Building for debugging...
[0/3] Write sources
[2/3] Write swift-version-24593BA9C3E375BF.txt
[4/16] Compiling grip Packets.swift
[5/16] Compiling grip StreamTypePacket.swift
[6/17] Compiling grip Writeable.swift
[7/17] Compiling grip StreamType.swift
[8/17] Compiling grip VideoDimensionsPacket.swift
[9/17] Compiling grip VideoParamSetPacket.swift
[10/17] Compiling grip VideoSamplePacket.swift
[11/17] Compiling grip CompressedSample.swift
[12/17] Compiling grip ByteHelpers.swift
[13/17] Emitting module grip
[14/17] Compiling grip BinaryEncodable.swift
[15/17] Compiling grip BinaryEncodableExtensions.swift
[16/17] Compiling grip NALU.swift
[17/17] Compiling grip AudioSamplePacket.swift
[19/45] Compiling kubrick MuxerSink.swift
/host/spi-builder-workspace/Sources/kubrick/Sinks/MuxerSink.swift:21:26: error: cannot find 'AudioSamplePacket' in scope
19 |         switch input.type {
20 |         case .audio:
21 |             let packet = AudioSamplePacket(duration: input.duration.numerator,
   |                          `- error: cannot find 'AudioSamplePacket' in scope
22 |                                            timescale: UInt32(input.duration.denominator),
23 |                                            data: input.bytes)
/host/spi-builder-workspace/Sources/kubrick/Sinks/MuxerSink.swift:26:26: error: cannot find 'VideoSamplePacket' in scope
24 |             self.send(packet)
25 |         case .video:
26 |             var packet = VideoSamplePacket(duration: input.duration.numerator,
   |                          `- error: cannot find 'VideoSamplePacket' in scope
27 |                                            timescale: UInt32(input.duration.denominator),
28 |                                            data: input.bytes)
[20/45] Compiling kubrick PrettyPortraitSink.swift
/host/spi-builder-workspace/Sources/kubrick/Sinks/MuxerSink.swift:21:26: error: cannot find 'AudioSamplePacket' in scope
19 |         switch input.type {
20 |         case .audio:
21 |             let packet = AudioSamplePacket(duration: input.duration.numerator,
   |                          `- error: cannot find 'AudioSamplePacket' in scope
22 |                                            timescale: UInt32(input.duration.denominator),
23 |                                            data: input.bytes)
/host/spi-builder-workspace/Sources/kubrick/Sinks/MuxerSink.swift:26:26: error: cannot find 'VideoSamplePacket' in scope
24 |             self.send(packet)
25 |         case .video:
26 |             var packet = VideoSamplePacket(duration: input.duration.numerator,
   |                          `- error: cannot find 'VideoSamplePacket' in scope
27 |                                            timescale: UInt32(input.duration.denominator),
28 |                                            data: input.bytes)
[21/45] Compiling kubrick Sink.swift
/host/spi-builder-workspace/Sources/kubrick/Sinks/MuxerSink.swift:21:26: error: cannot find 'AudioSamplePacket' in scope
19 |         switch input.type {
20 |         case .audio:
21 |             let packet = AudioSamplePacket(duration: input.duration.numerator,
   |                          `- error: cannot find 'AudioSamplePacket' in scope
22 |                                            timescale: UInt32(input.duration.denominator),
23 |                                            data: input.bytes)
/host/spi-builder-workspace/Sources/kubrick/Sinks/MuxerSink.swift:26:26: error: cannot find 'VideoSamplePacket' in scope
24 |             self.send(packet)
25 |         case .video:
26 |             var packet = VideoSamplePacket(duration: input.duration.numerator,
   |                          `- error: cannot find 'VideoSamplePacket' in scope
27 |                                            timescale: UInt32(input.duration.denominator),
28 |                                            data: input.bytes)
[22/45] Compiling kubrick Camera.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:9:23: error: value of type 'Camera' has no member 'update'
  7 |
  8 |     public var frameRate: Float64 {
  9 |         didSet { self.update(frameRate: self.frameRate) }
    |                       `- error: value of type 'Camera' has no member 'update'
 10 |     }
 11 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:13:23: error: value of type 'Camera' has no member 'update'
 11 |
 12 |     public var orientation: CameraOrientation = .unknown {
 13 |         didSet { self.update(orientation: self.orientation) }
    |                       `- error: value of type 'Camera' has no member 'update'
 14 |     }
 15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:1:14: error: type 'Camera' does not conform to protocol 'MediaDevice'
  1 | public class Camera: MediaDevice {
    |              `- error: type 'Camera' does not conform to protocol 'MediaDevice'
  2 |
  3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:19:14: error: value of type 'Camera' has no member 'update'
 17 |         self.source     = source
 18 |         self.frameRate  = 30
 19 |         self.update(frameRate: self.frameRate)
    |              `- error: value of type 'Camera' has no member 'update'
 20 |     }
 21 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Display.swift:1:14: error: type 'Display' does not conform to protocol 'MediaDevice'
 1 | public class Display: MediaDevice {
   |              `- error: type 'Display' does not conform to protocol 'MediaDevice'
 2 |     public var source: Source
 3 |     public var input: MediaDeviceInput?
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
[23/45] Compiling kubrick Display.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:9:23: error: value of type 'Camera' has no member 'update'
  7 |
  8 |     public var frameRate: Float64 {
  9 |         didSet { self.update(frameRate: self.frameRate) }
    |                       `- error: value of type 'Camera' has no member 'update'
 10 |     }
 11 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:13:23: error: value of type 'Camera' has no member 'update'
 11 |
 12 |     public var orientation: CameraOrientation = .unknown {
 13 |         didSet { self.update(orientation: self.orientation) }
    |                       `- error: value of type 'Camera' has no member 'update'
 14 |     }
 15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:1:14: error: type 'Camera' does not conform to protocol 'MediaDevice'
  1 | public class Camera: MediaDevice {
    |              `- error: type 'Camera' does not conform to protocol 'MediaDevice'
  2 |
  3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:19:14: error: value of type 'Camera' has no member 'update'
 17 |         self.source     = source
 18 |         self.frameRate  = 30
 19 |         self.update(frameRate: self.frameRate)
    |              `- error: value of type 'Camera' has no member 'update'
 20 |     }
 21 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Display.swift:1:14: error: type 'Display' does not conform to protocol 'MediaDevice'
 1 | public class Display: MediaDevice {
   |              `- error: type 'Display' does not conform to protocol 'MediaDevice'
 2 |     public var source: Source
 3 |     public var input: MediaDeviceInput?
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
[24/45] Compiling kubrick MediaDevice.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:9:23: error: value of type 'Camera' has no member 'update'
  7 |
  8 |     public var frameRate: Float64 {
  9 |         didSet { self.update(frameRate: self.frameRate) }
    |                       `- error: value of type 'Camera' has no member 'update'
 10 |     }
 11 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:13:23: error: value of type 'Camera' has no member 'update'
 11 |
 12 |     public var orientation: CameraOrientation = .unknown {
 13 |         didSet { self.update(orientation: self.orientation) }
    |                       `- error: value of type 'Camera' has no member 'update'
 14 |     }
 15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:1:14: error: type 'Camera' does not conform to protocol 'MediaDevice'
  1 | public class Camera: MediaDevice {
    |              `- error: type 'Camera' does not conform to protocol 'MediaDevice'
  2 |
  3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:19:14: error: value of type 'Camera' has no member 'update'
 17 |         self.source     = source
 18 |         self.frameRate  = 30
 19 |         self.update(frameRate: self.frameRate)
    |              `- error: value of type 'Camera' has no member 'update'
 20 |     }
 21 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Display.swift:1:14: error: type 'Display' does not conform to protocol 'MediaDevice'
 1 | public class Display: MediaDevice {
   |              `- error: type 'Display' does not conform to protocol 'MediaDevice'
 2 |     public var source: Source
 3 |     public var input: MediaDeviceInput?
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
[25/45] Compiling kubrick MediaDeviceInput.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:9:23: error: value of type 'Camera' has no member 'update'
  7 |
  8 |     public var frameRate: Float64 {
  9 |         didSet { self.update(frameRate: self.frameRate) }
    |                       `- error: value of type 'Camera' has no member 'update'
 10 |     }
 11 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:13:23: error: value of type 'Camera' has no member 'update'
 11 |
 12 |     public var orientation: CameraOrientation = .unknown {
 13 |         didSet { self.update(orientation: self.orientation) }
    |                       `- error: value of type 'Camera' has no member 'update'
 14 |     }
 15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:1:14: error: type 'Camera' does not conform to protocol 'MediaDevice'
  1 | public class Camera: MediaDevice {
    |              `- error: type 'Camera' does not conform to protocol 'MediaDevice'
  2 |
  3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:19:14: error: value of type 'Camera' has no member 'update'
 17 |         self.source     = source
 18 |         self.frameRate  = 30
 19 |         self.update(frameRate: self.frameRate)
    |              `- error: value of type 'Camera' has no member 'update'
 20 |     }
 21 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Display.swift:1:14: error: type 'Display' does not conform to protocol 'MediaDevice'
 1 | public class Display: MediaDevice {
   |              `- error: type 'Display' does not conform to protocol 'MediaDevice'
 2 |     public var source: Source
 3 |     public var input: MediaDeviceInput?
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
[26/45] Compiling kubrick MediaDeviceOutput.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Microphone.swift:1:14: error: type 'Microphone' does not conform to protocol 'MediaDevice'
 1 | public class Microphone: MediaDevice {
   |              `- error: type 'Microphone' does not conform to protocol 'MediaDevice'
 2 |
 3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "audio.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
[27/45] Compiling kubrick MediaDeviceReader.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Microphone.swift:1:14: error: type 'Microphone' does not conform to protocol 'MediaDevice'
 1 | public class Microphone: MediaDevice {
   |              `- error: type 'Microphone' does not conform to protocol 'MediaDevice'
 2 |
 3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "audio.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
[28/45] Compiling kubrick Microphone.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Microphone.swift:1:14: error: type 'Microphone' does not conform to protocol 'MediaDevice'
 1 | public class Microphone: MediaDevice {
   |              `- error: type 'Microphone' does not conform to protocol 'MediaDevice'
 2 |
 3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "audio.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
[29/45] Compiling kubrick AudioReader.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Microphone.swift:1:14: error: type 'Microphone' does not conform to protocol 'MediaDevice'
 1 | public class Microphone: MediaDevice {
   |              `- error: type 'Microphone' does not conform to protocol 'MediaDevice'
 2 |
 3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "audio.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
[30/48] Compiling kubrick VideoReader.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "video.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:25:14: error: type 'CaptureSession' does not conform to protocol 'Session'
  4 |
  5 | public protocol Session {
  6 |     associatedtype Base: BaseSession
    |                    `- note: protocol requires nested type 'Base'; add nested type 'Base' for conformance
  7 |     func startRunning()
  8 |     func stopRunning()
    :
 23 | }
 24 |
 25 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 26 |     public let base = Base()
 27 |
[31/48] Compiling kubrick MediaFormat.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "video.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:25:14: error: type 'CaptureSession' does not conform to protocol 'Session'
  4 |
  5 | public protocol Session {
  6 |     associatedtype Base: BaseSession
    |                    `- note: protocol requires nested type 'Base'; add nested type 'Base' for conformance
  7 |     func startRunning()
  8 |     func stopRunning()
    :
 23 | }
 24 |
 25 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 26 |     public let base = Base()
 27 |
[32/48] Compiling kubrick Sample.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "video.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:25:14: error: type 'CaptureSession' does not conform to protocol 'Session'
  4 |
  5 | public protocol Session {
  6 |     associatedtype Base: BaseSession
    |                    `- note: protocol requires nested type 'Base'; add nested type 'Base' for conformance
  7 |     func startRunning()
  8 |     func stopRunning()
    :
 23 | }
 24 |
 25 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 26 |     public let base = Base()
 27 |
[33/48] Compiling kubrick Session.swift
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "video.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:30: error: 'super' members cannot be referenced in a root class
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                              `- error: 'super' members cannot be referenced in a root class
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:25:14: error: type 'CaptureSession' does not conform to protocol 'Session'
  4 |
  5 | public protocol Session {
  6 |     associatedtype Base: BaseSession
    |                    `- note: protocol requires nested type 'Base'; add nested type 'Base' for conformance
  7 |     func startRunning()
  8 |     func stopRunning()
    :
 23 | }
 24 |
 25 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 26 |     public let base = Base()
 27 |
[34/48] Compiling kubrick AACEncoder.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:11:9: warning: no calls to throwing functions occur within 'try' expression
 9 |     init(_ settings: H264Settings) throws {
10 |         self.settings = settings
11 |         try self.configure()
   |         `- warning: no calls to throwing functions occur within 'try' expression
12 |     }
13 |
[35/48] Compiling kubrick AudioEncoder.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:11:9: warning: no calls to throwing functions occur within 'try' expression
 9 |     init(_ settings: H264Settings) throws {
10 |         self.settings = settings
11 |         try self.configure()
   |         `- warning: no calls to throwing functions occur within 'try' expression
12 |     }
13 |
[36/48] Compiling kubrick H264Encoder.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:11:9: warning: no calls to throwing functions occur within 'try' expression
 9 |     init(_ settings: H264Settings) throws {
10 |         self.settings = settings
11 |         try self.configure()
   |         `- warning: no calls to throwing functions occur within 'try' expression
12 |     }
13 |
[37/48] Compiling kubrick H264Settings.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:11:9: warning: no calls to throwing functions occur within 'try' expression
 9 |     init(_ settings: H264Settings) throws {
10 |         self.settings = settings
11 |         try self.configure()
   |         `- warning: no calls to throwing functions occur within 'try' expression
12 |     }
13 |
[38/48] Compiling kubrick VideoEncoder.swift
/host/spi-builder-workspace/Sources/kubrick/Helpers/Bytes.swift:104:11: error: cannot find type 'Data' in scope
102 | }
103 |
104 | extension Data {
    |           `- error: cannot find type 'Data' in scope
105 |
106 |     var bytes: [UInt8] {
/host/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
[39/48] Compiling kubrick Bytes.swift
/host/spi-builder-workspace/Sources/kubrick/Helpers/Bytes.swift:104:11: error: cannot find type 'Data' in scope
102 | }
103 |
104 | extension Data {
    |           `- error: cannot find type 'Data' in scope
105 |
106 |     var bytes: [UInt8] {
/host/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
[40/48] Compiling kubrick Rational.swift
/host/spi-builder-workspace/Sources/kubrick/Helpers/Bytes.swift:104:11: error: cannot find type 'Data' in scope
102 | }
103 |
104 | extension Data {
    |           `- error: cannot find type 'Data' in scope
105 |
106 |     var bytes: [UInt8] {
/host/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
[41/48] Compiling kubrick ThreadSafeArray.swift
/host/spi-builder-workspace/Sources/kubrick/Helpers/Bytes.swift:104:11: error: cannot find type 'Data' in scope
102 | }
103 |
104 | extension Data {
    |           `- error: cannot find type 'Data' in scope
105 |
106 |     var bytes: [UInt8] {
/host/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:18:54: warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
16 |
17 |     public func append(_ newElement: T) {
18 |         q.async(flags: .barrier) { self.array.append(newElement) }
   |                                                      `- warning: capture of 'newElement' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
19 |     }
20 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:22:66: warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
20 |
21 |     public func append(contentsOf: [T]) {
22 |         q.async(flags: .barrier) { self.array.append(contentsOf: contentsOf) }
   |                                                                  `- warning: capture of 'contentsOf' with non-sendable type '[T]' in a `@Sendable` closure; this is an error in the Swift 6 language mode
23 |     }
24 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:26:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
24 |
25 |     public func remove(at index: Int) {
26 |         q.async(flags: .barrier) { self.array.remove(at: index) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
27 |     }
28 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:30:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
28 |
29 |     public func removeFirst(n: Int) {
30 |         q.async(flags: .barrier) { self.array.removeFirst(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
31 |     }
32 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:34:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
32 |
33 |     public func removeLast() {
34 |         q.async(flags: .barrier) { self.array.removeLast() }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
35 |     }
36 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:38:36: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
36 |
37 |     public func removeLast(n: Int) {
38 |         q.async(flags: .barrier) { self.array.removeLast(n) }
   |                                    `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
39 |     }
40 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:40: warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |              `- note: generic class 'ThreadSafeArray' does not conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                        `- warning: capture of 'self' with non-sendable type 'ThreadSafeArray<T>' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:73:60: warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public class ThreadSafeArray<T>: Collection {
   |                              `- note: consider making generic parameter 'T' conform to the 'Sendable' protocol
 4 |
 5 |     public var startIndex: Int = 0
   :
71 |     public subscript(index: Int) -> T {
72 |         set {
73 |             q.async(flags: .barrier) { self.array[index] = newValue }
   |                                                            `- warning: capture of 'newValue' with non-sendable type 'T' in a `@Sendable` closure; this is an error in the Swift 6 language mode
74 |         }
75 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[42/48] Emitting module kubrick
/host/spi-builder-workspace/Sources/kubrick/Helpers/Bytes.swift:104:11: error: cannot find type 'Data' in scope
102 | }
103 |
104 | extension Data {
    |           `- error: cannot find type 'Data' in scope
105 |
106 |     var bytes: [UInt8] {
/host/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift:7:16: warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 5 |
 6 | extension Rational: Hashable {
 7 |     public var hashValue: Int {
   |                `- warning: 'Hashable.hashValue' is deprecated as a protocol requirement; conform type 'Rational' to 'Hashable' by implementing 'hash(into:)' instead
 8 |         return Int(self.numerator ^ Int64(self.denominator))
 9 |     }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:9:23: error: value of type 'Camera' has no member 'update'
  7 |
  8 |     public var frameRate: Float64 {
  9 |         didSet { self.update(frameRate: self.frameRate) }
    |                       `- error: value of type 'Camera' has no member 'update'
 10 |     }
 11 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:13:23: error: value of type 'Camera' has no member 'update'
 11 |
 12 |     public var orientation: CameraOrientation = .unknown {
 13 |         didSet { self.update(orientation: self.orientation) }
    |                       `- error: value of type 'Camera' has no member 'update'
 14 |     }
 15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift:1:14: error: type 'Camera' does not conform to protocol 'MediaDevice'
  1 | public class Camera: MediaDevice {
    |              `- error: type 'Camera' does not conform to protocol 'MediaDevice'
  2 |
  3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Display.swift:1:14: error: type 'Display' does not conform to protocol 'MediaDevice'
 1 | public class Display: MediaDevice {
   |              `- error: type 'Display' does not conform to protocol 'MediaDevice'
 2 |     public var source: Source
 3 |     public var input: MediaDeviceInput?
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Microphone.swift:1:14: error: type 'Microphone' does not conform to protocol 'MediaDevice'
 1 | public class Microphone: MediaDevice {
   |              `- error: type 'Microphone' does not conform to protocol 'MediaDevice'
 2 |
 3 |     public var source: Source
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:10:19: note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '((any MediaDeviceInput) -> Void) -> ()'
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '((any MediaDeviceOutput) -> Void) -> ()'
12 |     mutating func set(reader: MediaDeviceReader) throws
13 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class AudioReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "audio.reader.q")
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:9:21: error: initializer does not override a designated initializer from its superclass
 7 |     public var sinks: [Sink<Sample>] = []
 8 |
 9 |     public override init() { super.init() }
   |                     `- error: initializer does not override a designated initializer from its superclass
10 |
11 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:3:27: error: cannot find type 'NSObject' in scope
 1 | import Dispatch
 2 |
 3 | public class VideoReader: NSObject, MediaDeviceReader {
   |                           `- error: cannot find type 'NSObject' in scope
 4 |
 5 |     public var q                     = DispatchQueue(label: "video.reader.q")
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:25:14: error: type 'CaptureSession' does not conform to protocol 'Session'
  4 |
  5 | public protocol Session {
  6 |     associatedtype Base: BaseSession
    |                    `- note: protocol requires nested type 'Base'; add nested type 'Base' for conformance
  7 |     func startRunning()
  8 |     func stopRunning()
    :
 23 | }
 24 |
 25 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 26 |     public let base = Base()
 27 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:28:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 26 |     public private(set) var mediaSource: MediaSource
 27 |
 28 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 29 |         self.mediaSource = mediaSource
 30 |     }
[43/48] Compiling kubrick AACEncoderSink.swift
[44/48] Compiling kubrick EndpointSink.swift
[45/48] Compiling kubrick H264EncoderSink.swift
[46/48] Compiling kubrick AVStream.swift
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:61:57: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 59 |
 60 |         // Create readers for each of the devices
 61 |         let readers: [MediaDeviceReader] = self.devices.flatMap {
    |                                                         |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                         `- note: use 'compactMap(_:)' instead
 62 |             if $0.source.type == .audio { return AudioReader() }
 63 |             if $0.source.type == .video { return VideoReader() }
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:151:44: error: cannot find 'VideoDimensionPacket' in scope
149 |                 do {
150 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
151 |                     let dimensionsPacket = VideoDimensionPacket(width: videoFormat.dimensions.width,
    |                                            `- error: cannot find 'VideoDimensionPacket' in scope
152 |                                                                 height: videoFormat.dimensions.height)
153 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:28:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 26 |     public private(set) var mediaSource: MediaSource
 27 |
 28 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 29 |         self.mediaSource = mediaSource
 30 |     }
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:50:36: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 48 |
 49 |     public func devices(_ scope: MediaSourceScope) -> [MediaDevice] {
 50 |         return self.sources(scope).flatMap {
    |                                    |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                    `- note: use 'compactMap(_:)' instead
 51 |             switch $0.type {
 52 |             case .video?: return Camera($0)
[47/48] Compiling kubrick Source.swift
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:61:57: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 59 |
 60 |         // Create readers for each of the devices
 61 |         let readers: [MediaDeviceReader] = self.devices.flatMap {
    |                                                         |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                         `- note: use 'compactMap(_:)' instead
 62 |             if $0.source.type == .audio { return AudioReader() }
 63 |             if $0.source.type == .video { return VideoReader() }
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:151:44: error: cannot find 'VideoDimensionPacket' in scope
149 |                 do {
150 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
151 |                     let dimensionsPacket = VideoDimensionPacket(width: videoFormat.dimensions.width,
    |                                            `- error: cannot find 'VideoDimensionPacket' in scope
152 |                                                                 height: videoFormat.dimensions.height)
153 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:28:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 26 |     public private(set) var mediaSource: MediaSource
 27 |
 28 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 29 |         self.mediaSource = mediaSource
 30 |     }
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:50:36: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 48 |
 49 |     public func devices(_ scope: MediaSourceScope) -> [MediaDevice] {
 50 |         return self.sources(scope).flatMap {
    |                                    |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                    `- note: use 'compactMap(_:)' instead
 51 |             switch $0.type {
 52 |             case .video?: return Camera($0)
[48/48] Compiling kubrick SourceDiscoverer.swift
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:61:57: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 59 |
 60 |         // Create readers for each of the devices
 61 |         let readers: [MediaDeviceReader] = self.devices.flatMap {
    |                                                         |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                                         `- note: use 'compactMap(_:)' instead
 62 |             if $0.source.type == .audio { return AudioReader() }
 63 |             if $0.source.type == .video { return VideoReader() }
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:151:44: error: cannot find 'VideoDimensionPacket' in scope
149 |                 do {
150 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
151 |                     let dimensionsPacket = VideoDimensionPacket(width: videoFormat.dimensions.width,
    |                                            `- error: cannot find 'VideoDimensionPacket' in scope
152 |                                                                 height: videoFormat.dimensions.height)
153 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:28:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 26 |     public private(set) var mediaSource: MediaSource
 27 |
 28 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 29 |         self.mediaSource = mediaSource
 30 |     }
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:50:36: warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
 48 |
 49 |     public func devices(_ scope: MediaSourceScope) -> [MediaDevice] {
 50 |         return self.sources(scope).flatMap {
    |                                    |- warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional value
    |                                    `- note: use 'compactMap(_:)' instead
 51 |             switch $0.type {
 52 |             case .video?: return Camera($0)
BUILD FAILURE 6.0 linux