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

Build Command

bash -c docker run --rm -v "checkouts-4606859-0":/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/krad/kubrick.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/krad/kubrick
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
HEAD is now at 41b1abc Not really happy with this compromise but it will do for pre-processing on macOS.  Super frustrated with CMSampleBuffer behavior
Cloned https://github.com/krad/kubrick.git
Revision (git rev-parse @):
41b1abcb79d58c9e70379bb314187c20ebabcf0f
SUCCESS checkout https://github.com/krad/kubrick.git at master
========================================
Build
========================================
Selected platform:         linux
Swift version:             6.0
Building package at path:  $workDir
https://github.com/krad/kubrick.git
Running build ...
bash -c docker run --rm -v "checkouts-4606859-0":/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
Fetching https://github.com/krad/grip.git
[1/176] Fetching grip
Fetched https://github.com/krad/grip.git from cache (0.20s)
Computing version for https://github.com/krad/grip.git
Computed https://github.com/krad/grip.git at 1.3.5 (0.41s)
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] Emitting module grip
[5/17] Compiling grip VideoDimensionsPacket.swift
[6/17] Compiling grip VideoParamSetPacket.swift
[7/17] Compiling grip StreamType.swift
[8/17] Compiling grip Packets.swift
[9/17] Compiling grip StreamTypePacket.swift
[10/17] Compiling grip VideoSamplePacket.swift
[11/17] Compiling grip Writeable.swift
[12/17] Compiling grip CompressedSample.swift
[13/17] Compiling grip ByteHelpers.swift
[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/47] 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 | }
[20/47] Compiling kubrick Clock.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 | }
[21/47] 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 | }
[22/47] 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 | }
[23/47] Compiling kubrick SampleTransport.swift
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/host/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:21: error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |                     `- error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:46: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()
    :
 44 | }
 45 |
 46 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 47 |     open let base = Base()
 48 |
[24/47] Compiling kubrick Session.swift
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/host/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:21: error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |                     `- error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:46: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()
    :
 44 | }
 45 |
 46 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 47 |     open let base = Base()
 48 |
[25/47] Compiling kubrick AACEncoderSink.swift
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/host/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:21: error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |                     `- error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:46: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()
    :
 44 | }
 45 |
 46 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 47 |     open let base = Base()
 48 |
[26/47] Compiling kubrick EndpointSink.swift
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/host/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:21: error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |                     `- error: unsupported recursion for reference to type alias 'Base' of type 'CaptureSession'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:46: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()
    :
 44 | }
 45 |
 46 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 47 |     open let base = Base()
 48 |
[27/51] Compiling kubrick AACEncoder.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:14:9: warning: no calls to throwing functions occur within 'try' expression
 12 |     init(_ settings: H264Settings) throws {
 13 |         self.settings = settings
 14 |         try self.configure()
    |         `- warning: no calls to throwing functions occur within 'try' expression
 15 |     }
 16 |
[28/51] Compiling kubrick AudioEncoder.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:14:9: warning: no calls to throwing functions occur within 'try' expression
 12 |     init(_ settings: H264Settings) throws {
 13 |         self.settings = settings
 14 |         try self.configure()
    |         `- warning: no calls to throwing functions occur within 'try' expression
 15 |     }
 16 |
[29/51] Compiling kubrick H264Encoder.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:14:9: warning: no calls to throwing functions occur within 'try' expression
 12 |     init(_ settings: H264Settings) throws {
 13 |         self.settings = settings
 14 |         try self.configure()
    |         `- warning: no calls to throwing functions occur within 'try' expression
 15 |     }
 16 |
[30/51] Compiling kubrick H264Settings.swift
/host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift:14:9: warning: no calls to throwing functions occur within 'try' expression
 12 |     init(_ settings: H264Settings) throws {
 13 |         self.settings = settings
 14 |         try self.configure()
    |         `- warning: no calls to throwing functions occur within 'try' expression
 15 |     }
 16 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[31/51] 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: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 ident: MediaSourceIdentifier
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:35:49: error: cannot find type 'CMSampleBuffer' in scope
33 |
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
   |                                                 `- error: cannot find type 'CMSampleBuffer' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:53: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                                     `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:34: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                  `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:39:10: warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 37 |
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
    |          `- warning: associated value 'couldNotMakeConnection(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:40:10: warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 38 | public enum CaptureSessionError: Error {
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
    |          `- warning: associated value 'missingInput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:41:10: warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 39 |     case couldNotMakeConnection(device: MediaDevice)
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
    |          `- warning: associated value 'missingOutput(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:42:10: warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 40 |     case missingInput(device: MediaDevice)
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
    |          `- warning: associated value 'missingMediaType(device:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'any MediaDevice'; this is an error in the Swift 6 language mode
 43 |     case inputMissingPorts(mediaType: MediaType)
 44 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift:4:17: note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 2 | public typealias MediaDeviceOutputClosure   = (MediaDeviceOutput) -> Void
 3 |
 4 | public protocol MediaDevice {
   |                 `- note: protocol 'MediaDevice' does not conform to the 'Sendable' protocol
 5 |     var source: Source { get }
 6 |     var input: MediaDeviceInput? { get set }
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:43:10: warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 41 |     case missingOutput(device: MediaDevice)
 42 |     case missingMediaType(device: MediaDevice)
 43 |     case inputMissingPorts(mediaType: MediaType)
    |          `- warning: associated value 'inputMissingPorts(mediaType:)' of 'Sendable'-conforming enum 'CaptureSessionError' has non-sendable type 'MediaType'; this is an error in the Swift 6 language mode
 44 | }
 45 |
/host/spi-builder-workspace/Sources/kubrick/Sources/Source.swift:7:13: note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 5 | }
 6 |
 7 | public enum MediaType {
   |             `- note: consider making enum 'MediaType' conform to the 'Sendable' protocol
 8 |     case video
 9 |     case audio
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:47:14: warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 45 |
 46 | public class CaptureSession: Session {
 47 |     open let base = Base()
    |              `- warning: 'let' properties are implicitly 'final'; use 'public' instead of 'open'
 48 |
 49 |     public private(set) var inputs: [MediaDeviceInput] = []
/host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift:46: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()
    :
 44 | }
 45 |
 46 | public class CaptureSession: Session {
    |              `- error: type 'CaptureSession' does not conform to protocol 'Session'
 47 |     open let base = Base()
 48 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:35:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 33 |     public private(set) var mediaSource: MediaSource
 34 |
 35 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 36 |         self.mediaSource = mediaSource
 37 |     }
[32/51] Compiling kubrick Sink.swift
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:73:26: error: value of type 'CaptureSession' has no member 'addInput'
 71 |
 72 |         if let camera = videoDevices.first {
 73 |             self.session.addInput(camera)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 74 |             self.currentVideoDevice = camera
 75 |             _ = self.cycleDevice(with: .video) // FIXME: Priming the initial state
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:79:26: error: value of type 'CaptureSession' has no member 'addInput'
 77 |
 78 |         if let mic = audioDevices.first {
 79 |             self.session.addInput(mic)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 80 |             self.currentAudioDevice = mic
 81 |             _ = self.cycleDevice(with: .audio) // FIXME: Priming the initial state
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | public class AVStream: AVStreamProtocol {
    |              `- note: class 'AVStream' does not conform to the 'Sendable' protocol
 26 |
 27 |     public var session: CaptureSession
    :
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  `- warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           `- warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |         }
164 |     }
/host/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift:4:14: note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 2 | import Foundation
 3 |
 4 | public class EndpointSink: Sink<BinaryEncodable> {
   |              `- note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 5 |
 6 |     var endpoint: Writeable
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:191:30: error: value of type 'CaptureSession' has no member 'addInput'
189 |                 self.session.beginConfiguration()
190 |                 self.session.removeInput(oldDevice)
191 |                 self.session.addInput(nextDevice)
    |                              `- error: value of type 'CaptureSession' has no member 'addInput'
192 |                 self.session.commitConfiguration()
193 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:35:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 33 |     public private(set) var mediaSource: MediaSource
 34 |
 35 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 36 |         self.mediaSource = mediaSource
 37 |     }
[33/51] Compiling kubrick AVStream.swift
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:73:26: error: value of type 'CaptureSession' has no member 'addInput'
 71 |
 72 |         if let camera = videoDevices.first {
 73 |             self.session.addInput(camera)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 74 |             self.currentVideoDevice = camera
 75 |             _ = self.cycleDevice(with: .video) // FIXME: Priming the initial state
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:79:26: error: value of type 'CaptureSession' has no member 'addInput'
 77 |
 78 |         if let mic = audioDevices.first {
 79 |             self.session.addInput(mic)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 80 |             self.currentAudioDevice = mic
 81 |             _ = self.cycleDevice(with: .audio) // FIXME: Priming the initial state
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | public class AVStream: AVStreamProtocol {
    |              `- note: class 'AVStream' does not conform to the 'Sendable' protocol
 26 |
 27 |     public var session: CaptureSession
    :
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  `- warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           `- warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |         }
164 |     }
/host/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift:4:14: note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 2 | import Foundation
 3 |
 4 | public class EndpointSink: Sink<BinaryEncodable> {
   |              `- note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 5 |
 6 |     var endpoint: Writeable
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:191:30: error: value of type 'CaptureSession' has no member 'addInput'
189 |                 self.session.beginConfiguration()
190 |                 self.session.removeInput(oldDevice)
191 |                 self.session.addInput(nextDevice)
    |                              `- error: value of type 'CaptureSession' has no member 'addInput'
192 |                 self.session.commitConfiguration()
193 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:35:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 33 |     public private(set) var mediaSource: MediaSource
 34 |
 35 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 36 |         self.mediaSource = mediaSource
 37 |     }
[34/51] Compiling kubrick Source.swift
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:73:26: error: value of type 'CaptureSession' has no member 'addInput'
 71 |
 72 |         if let camera = videoDevices.first {
 73 |             self.session.addInput(camera)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 74 |             self.currentVideoDevice = camera
 75 |             _ = self.cycleDevice(with: .video) // FIXME: Priming the initial state
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:79:26: error: value of type 'CaptureSession' has no member 'addInput'
 77 |
 78 |         if let mic = audioDevices.first {
 79 |             self.session.addInput(mic)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 80 |             self.currentAudioDevice = mic
 81 |             _ = self.cycleDevice(with: .audio) // FIXME: Priming the initial state
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | public class AVStream: AVStreamProtocol {
    |              `- note: class 'AVStream' does not conform to the 'Sendable' protocol
 26 |
 27 |     public var session: CaptureSession
    :
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  `- warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           `- warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |         }
164 |     }
/host/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift:4:14: note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 2 | import Foundation
 3 |
 4 | public class EndpointSink: Sink<BinaryEncodable> {
   |              `- note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 5 |
 6 |     var endpoint: Writeable
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:191:30: error: value of type 'CaptureSession' has no member 'addInput'
189 |                 self.session.beginConfiguration()
190 |                 self.session.removeInput(oldDevice)
191 |                 self.session.addInput(nextDevice)
    |                              `- error: value of type 'CaptureSession' has no member 'addInput'
192 |                 self.session.commitConfiguration()
193 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:35:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 33 |     public private(set) var mediaSource: MediaSource
 34 |
 35 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 36 |         self.mediaSource = mediaSource
 37 |     }
[35/51] Compiling kubrick SourceDiscoverer.swift
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:73:26: error: value of type 'CaptureSession' has no member 'addInput'
 71 |
 72 |         if let camera = videoDevices.first {
 73 |             self.session.addInput(camera)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 74 |             self.currentVideoDevice = camera
 75 |             _ = self.cycleDevice(with: .video) // FIXME: Priming the initial state
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:79:26: error: value of type 'CaptureSession' has no member 'addInput'
 77 |
 78 |         if let mic = audioDevices.first {
 79 |             self.session.addInput(mic)
    |                          `- error: value of type 'CaptureSession' has no member 'addInput'
 80 |             self.currentAudioDevice = mic
 81 |             _ = self.cycleDevice(with: .audio) // FIXME: Priming the initial state
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:147:34: warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 23 | }
 24 |
 25 | public class AVStream: AVStreamProtocol {
    |              `- note: class 'AVStream' does not conform to the 'Sendable' protocol
 26 |
 27 |     public var session: CaptureSession
    :
145 |         DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
146 |             // If we have a video format, build the config packets and send them
147 |             if let videoFormat = self.muxSink.videoFormat {
    |                                  `- warning: capture of 'self' with non-sendable type 'AVStream' in a `@Sendable` closure; this is an error in the Swift 6 language mode
148 |                 do {
149 |                     let paramsPacket     = try VideoParamSetPacket(params: videoFormat.params)
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:162:43: warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
160 |             // Append the endpoint sink to the mux sink
161 |             // Audio / Video data should start streaming over the network from here
162 |             self.muxSink.nextSinks.append(sink)
    |                                           `- warning: capture of 'sink' with non-sendable type 'EndpointSink' in a `@Sendable` closure; this is an error in the Swift 6 language mode
163 |         }
164 |     }
/host/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift:4:14: note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 2 | import Foundation
 3 |
 4 | public class EndpointSink: Sink<BinaryEncodable> {
   |              `- note: class 'EndpointSink' does not conform to the 'Sendable' protocol
 5 |
 6 |     var endpoint: Writeable
/host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift:191:30: error: value of type 'CaptureSession' has no member 'addInput'
189 |                 self.session.beginConfiguration()
190 |                 self.session.removeInput(oldDevice)
191 |                 self.session.addInput(nextDevice)
    |                              `- error: value of type 'CaptureSession' has no member 'addInput'
192 |                 self.session.commitConfiguration()
193 |
/host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift:35:46: error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 33 |     public private(set) var mediaSource: MediaSource
 34 |
 35 |     public init(_ mediaSource: MediaSource = SystemMediaSource()) {
    |                                              `- error: default argument value of type 'SystemMediaSource' does not conform to 'MediaSource'
 36 |         self.mediaSource = mediaSource
 37 |     }
[36/51] Compiling kubrick FileEndpoint.swift
/host/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift:25:16: warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 4 |
 5 | /// Endpoint that can be set on an AVStream object that will stream a/v sample data into a file
 6 | public final class FileEndpoint: Writeable, Endable {
   |                    `- note: class 'FileEndpoint' does not conform to the 'Sendable' protocol
 7 |
 8 |     public var onEnd: EndedCallback?
   :
23 |     public func write(_ data: Data) {
24 |         self.writeQ.async {
25 |             if self.continueWriting {
   |                `- warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 self.fileHandle.write(data)
27 |             }
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
[37/51] Compiling kubrick H264EncoderSink.swift
/host/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift:25:16: warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 4 |
 5 | /// Endpoint that can be set on an AVStream object that will stream a/v sample data into a file
 6 | public final class FileEndpoint: Writeable, Endable {
   |                    `- note: class 'FileEndpoint' does not conform to the 'Sendable' protocol
 7 |
 8 |     public var onEnd: EndedCallback?
   :
23 |     public func write(_ data: Data) {
24 |         self.writeQ.async {
25 |             if self.continueWriting {
   |                `- warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 self.fileHandle.write(data)
27 |             }
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
[38/51] Compiling kubrick MuxerSink.swift
/host/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift:25:16: warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 4 |
 5 | /// Endpoint that can be set on an AVStream object that will stream a/v sample data into a file
 6 | public final class FileEndpoint: Writeable, Endable {
   |                    `- note: class 'FileEndpoint' does not conform to the 'Sendable' protocol
 7 |
 8 |     public var onEnd: EndedCallback?
   :
23 |     public func write(_ data: Data) {
24 |         self.writeQ.async {
25 |             if self.continueWriting {
   |                `- warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 self.fileHandle.write(data)
27 |             }
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
[39/51] Compiling kubrick PrettyPortraitSink.swift
/host/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift:25:16: warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
 4 |
 5 | /// Endpoint that can be set on an AVStream object that will stream a/v sample data into a file
 6 | public final class FileEndpoint: Writeable, Endable {
   |                    `- note: class 'FileEndpoint' does not conform to the 'Sendable' protocol
 7 |
 8 |     public var onEnd: EndedCallback?
   :
23 |     public func write(_ data: Data) {
24 |         self.writeQ.async {
25 |             if self.continueWriting {
   |                `- warning: capture of 'self' with non-sendable type 'FileEndpoint' in a `@Sendable` closure; this is an error in the Swift 6 language mode
26 |                 self.fileHandle.write(data)
27 |             }
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:22:23: warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
22 |     public static let audio = StreamType(rawValue: 1 << 1)
   |                       |- warning: static property 'audio' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'audio' 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
23 |
24 |     public func supported(_ sample: CompressedSample) -> Bool {
/host/spi-builder-workspace/.build/checkouts/grip/Sources/grip/StreamType.swift:21:23: warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
 1 | import Foundation
 2 |
 3 | public struct StreamType: OptionSet {
   |               `- note: consider making struct 'StreamType' conform to the 'Sendable' protocol
 4 |     public var rawValue: UInt8
 5 |
   :
19 |     }
20 |
21 |     public static let video = StreamType(rawValue: 1 << 0)
   |                       |- warning: static property 'video' is not concurrency-safe because non-'Sendable' type 'StreamType' may have shared mutable state; this is an error in the Swift 6 language mode
   |                       |- note: annotate 'video' 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
22 |     public static let audio = StreamType(rawValue: 1 << 1)
23 |
[40/51] 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:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
[41/51] 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:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
[42/51] 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:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
[43/51] 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:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
/host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift:75: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
   :
73 |     public subscript(index: Int) -> T {
74 |         set {
75 |             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
76 |         }
77 |
[44/51] Compiling kubrick AudioReader.swift
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:35:49: error: cannot find type 'CMSampleBuffer' in scope
33 |
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
   |                                                 `- error: cannot find type 'CMSampleBuffer' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:53: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                                     `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:34: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                  `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:36:22: error: cannot find type 'CFArray' in scope
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
   |                      `- error: cannot find type 'CFArray' in scope
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:36: error: cannot find 'CFArrayGetValueAtIndex' in scope
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                                    `- error: cannot find 'CFArrayGetValueAtIndex' in scope
38 |                                    to: CFMutableDictionary.self)
39 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:38:40: error: cannot find 'CFMutableDictionary' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
   |                                        `- error: cannot find 'CFMutableDictionary' in scope
39 |
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:22: error: generic parameter 'U' could not be inferred
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                      `- error: generic parameter 'U' could not be inferred
38 |                                    to: CFMutableDictionary.self)
39 |
Swift.unsafeBitCast:1:24: note: in call to function 'unsafeBitCast(_:to:)'
1 | @inlinable public func unsafeBitCast<T, U>(_ x: T, to type: U.Type) -> U
  |                        `- note: in call to function 'unsafeBitCast(_:to:)'
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:42:40: error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
   |                                        `- error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:43:42: error: cannot find 'kCFBooleanTrue' in scope
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
   |                                          `- error: cannot find 'kCFBooleanTrue' in scope
44 |     CFDictionarySetValue(dictionary, key, value)
45 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:44:5: error: cannot find 'CFDictionarySetValue' in scope
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
   |     `- error: cannot find 'CFDictionarySetValue' in scope
45 | }
46 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:49:26: error: cannot find type 'CMSampleBuffer' in scope
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
   |                          `- error: cannot find type 'CMSampleBuffer' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:22: error: cannot find 'CMSampleTimingInfo' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                      `- error: cannot find 'CMSampleTimingInfo' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:51: error: cannot find 'CMSampleBufferGetDuration' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                                                   `- error: cannot find 'CMSampleBufferGetDuration' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:51:64: error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
   |                                                                `- error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:52:58: error: cannot find 'kCMTimeInvalid' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
   |                                                          `- error: cannot find 'kCMTimeInvalid' in scope
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:18: error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                  `- error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:56: error: cannot find 'kCFAllocatorDefault' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                                                        `- error: cannot find 'kCFAllocatorDefault' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:60:18: error: cannot find 'noErr' in scope
58 |                                                        &newSampleBuffer)
59 |
60 |     if status == noErr {
   |                  `- error: cannot find 'noErr' in scope
61 |         return newSampleBuffer
62 |     }
[45/51] Compiling kubrick VideoReader.swift
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:35:49: error: cannot find type 'CMSampleBuffer' in scope
33 |
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
   |                                                 `- error: cannot find type 'CMSampleBuffer' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:53: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                                     `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:34: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                  `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:36:22: error: cannot find type 'CFArray' in scope
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
   |                      `- error: cannot find type 'CFArray' in scope
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:36: error: cannot find 'CFArrayGetValueAtIndex' in scope
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                                    `- error: cannot find 'CFArrayGetValueAtIndex' in scope
38 |                                    to: CFMutableDictionary.self)
39 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:38:40: error: cannot find 'CFMutableDictionary' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
   |                                        `- error: cannot find 'CFMutableDictionary' in scope
39 |
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:22: error: generic parameter 'U' could not be inferred
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                      `- error: generic parameter 'U' could not be inferred
38 |                                    to: CFMutableDictionary.self)
39 |
Swift.unsafeBitCast:1:24: note: in call to function 'unsafeBitCast(_:to:)'
1 | @inlinable public func unsafeBitCast<T, U>(_ x: T, to type: U.Type) -> U
  |                        `- note: in call to function 'unsafeBitCast(_:to:)'
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:42:40: error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
   |                                        `- error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:43:42: error: cannot find 'kCFBooleanTrue' in scope
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
   |                                          `- error: cannot find 'kCFBooleanTrue' in scope
44 |     CFDictionarySetValue(dictionary, key, value)
45 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:44:5: error: cannot find 'CFDictionarySetValue' in scope
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
   |     `- error: cannot find 'CFDictionarySetValue' in scope
45 | }
46 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:49:26: error: cannot find type 'CMSampleBuffer' in scope
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
   |                          `- error: cannot find type 'CMSampleBuffer' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:22: error: cannot find 'CMSampleTimingInfo' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                      `- error: cannot find 'CMSampleTimingInfo' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:51: error: cannot find 'CMSampleBufferGetDuration' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                                                   `- error: cannot find 'CMSampleBufferGetDuration' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:51:64: error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
   |                                                                `- error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:52:58: error: cannot find 'kCMTimeInvalid' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
   |                                                          `- error: cannot find 'kCMTimeInvalid' in scope
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:18: error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                  `- error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:56: error: cannot find 'kCFAllocatorDefault' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                                                        `- error: cannot find 'kCFAllocatorDefault' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:60:18: error: cannot find 'noErr' in scope
58 |                                                        &newSampleBuffer)
59 |
60 |     if status == noErr {
   |                  `- error: cannot find 'noErr' in scope
61 |         return newSampleBuffer
62 |     }
[46/51] Compiling kubrick MediaFormat.swift
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:35:49: error: cannot find type 'CMSampleBuffer' in scope
33 |
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
   |                                                 `- error: cannot find type 'CMSampleBuffer' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:53: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                                     `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:34: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                  `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:36:22: error: cannot find type 'CFArray' in scope
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
   |                      `- error: cannot find type 'CFArray' in scope
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:36: error: cannot find 'CFArrayGetValueAtIndex' in scope
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                                    `- error: cannot find 'CFArrayGetValueAtIndex' in scope
38 |                                    to: CFMutableDictionary.self)
39 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:38:40: error: cannot find 'CFMutableDictionary' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
   |                                        `- error: cannot find 'CFMutableDictionary' in scope
39 |
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:22: error: generic parameter 'U' could not be inferred
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                      `- error: generic parameter 'U' could not be inferred
38 |                                    to: CFMutableDictionary.self)
39 |
Swift.unsafeBitCast:1:24: note: in call to function 'unsafeBitCast(_:to:)'
1 | @inlinable public func unsafeBitCast<T, U>(_ x: T, to type: U.Type) -> U
  |                        `- note: in call to function 'unsafeBitCast(_:to:)'
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:42:40: error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
   |                                        `- error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:43:42: error: cannot find 'kCFBooleanTrue' in scope
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
   |                                          `- error: cannot find 'kCFBooleanTrue' in scope
44 |     CFDictionarySetValue(dictionary, key, value)
45 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:44:5: error: cannot find 'CFDictionarySetValue' in scope
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
   |     `- error: cannot find 'CFDictionarySetValue' in scope
45 | }
46 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:49:26: error: cannot find type 'CMSampleBuffer' in scope
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
   |                          `- error: cannot find type 'CMSampleBuffer' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:22: error: cannot find 'CMSampleTimingInfo' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                      `- error: cannot find 'CMSampleTimingInfo' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:51: error: cannot find 'CMSampleBufferGetDuration' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                                                   `- error: cannot find 'CMSampleBufferGetDuration' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:51:64: error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
   |                                                                `- error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:52:58: error: cannot find 'kCMTimeInvalid' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
   |                                                          `- error: cannot find 'kCMTimeInvalid' in scope
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:18: error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                  `- error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:56: error: cannot find 'kCFAllocatorDefault' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                                                        `- error: cannot find 'kCFAllocatorDefault' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:60:18: error: cannot find 'noErr' in scope
58 |                                                        &newSampleBuffer)
59 |
60 |     if status == noErr {
   |                  `- error: cannot find 'noErr' in scope
61 |         return newSampleBuffer
62 |     }
[47/51] Compiling kubrick Sample.swift
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/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 ident: MediaSourceIdentifier
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:35:49: error: cannot find type 'CMSampleBuffer' in scope
33 |
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
   |                                                 `- error: cannot find type 'CMSampleBuffer' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:53: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                                     `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:48:34: error: cannot find type 'CMSampleBuffer' in scope
46 |
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
   |                                  `- error: cannot find type 'CMSampleBuffer' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:13:29: error: cannot find 'UUID' in scope
11 |     public init(_ ident: String? = nil) {
12 |         if let i = ident { self.ident = i }
13 |         else { self.ident = UUID().uuidString }
   |                             `- error: cannot find 'UUID' in scope
14 |     }
15 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:36:22: error: cannot find type 'CFArray' in scope
34 |
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
   |                      `- error: cannot find type 'CFArray' in scope
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:36: error: cannot find 'CFArrayGetValueAtIndex' in scope
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                                    `- error: cannot find 'CFArrayGetValueAtIndex' in scope
38 |                                    to: CFMutableDictionary.self)
39 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:38:40: error: cannot find 'CFMutableDictionary' in scope
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
38 |                                    to: CFMutableDictionary.self)
   |                                        `- error: cannot find 'CFMutableDictionary' in scope
39 |
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:37:22: error: generic parameter 'U' could not be inferred
35 | func setSampleBufferAttachments(_ sampleBuffer: CMSampleBuffer, identifier: String) {
36 |     let attachments: CFArray! = CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true)
37 |     let dictionary = unsafeBitCast(CFArrayGetValueAtIndex(attachments, 0),
   |                      `- error: generic parameter 'U' could not be inferred
38 |                                    to: CFMutableDictionary.self)
39 |
Swift.unsafeBitCast:1:24: note: in call to function 'unsafeBitCast(_:to:)'
1 | @inlinable public func unsafeBitCast<T, U>(_ x: T, to type: U.Type) -> U
  |                        `- note: in call to function 'unsafeBitCast(_:to:)'
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:42:40: error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
40 | //    let key   = Unmanaged.passUnretained("MediaDeviceReader.ident" as CFString).toOpaque()
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
   |                                        `- error: cannot find 'kCMSampleAttachmentKey_DisplayImmediately' in scope
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:43:42: error: cannot find 'kCFBooleanTrue' in scope
41 | //    let value = Unmanaged.passUnretained(identifier as CFString).toOpaque()
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
   |                                          `- error: cannot find 'kCFBooleanTrue' in scope
44 |     CFDictionarySetValue(dictionary, key, value)
45 | }
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:44:5: error: cannot find 'CFDictionarySetValue' in scope
42 |     let key = Unmanaged.passUnretained(kCMSampleAttachmentKey_DisplayImmediately).toOpaque()
43 |     let value = Unmanaged.passUnretained(kCFBooleanTrue).toOpaque()
44 |     CFDictionarySetValue(dictionary, key, value)
   |     `- error: cannot find 'CFDictionarySetValue' in scope
45 | }
46 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:49:26: error: cannot find type 'CMSampleBuffer' in scope
47 |
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
   |                          `- error: cannot find type 'CMSampleBuffer' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:22: error: cannot find 'CMSampleTimingInfo' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                      `- error: cannot find 'CMSampleTimingInfo' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:50:51: error: cannot find 'CMSampleBufferGetDuration' in scope
48 | func stripDecode(_ sampleBuffer: CMSampleBuffer) -> CMSampleBuffer? {
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
   |                                                   `- error: cannot find 'CMSampleBufferGetDuration' in scope
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:51:64: error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
49 |     var newSampleBuffer: CMSampleBuffer?
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
   |                                                                `- error: cannot find 'CMSampleBufferGetPresentationTimeStamp' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:52:58: error: cannot find 'kCMTimeInvalid' in scope
50 |     var timingInfo = CMSampleTimingInfo(duration: CMSampleBufferGetDuration(sampleBuffer),
51 |                                         presentationTimeStamp: CMSampleBufferGetPresentationTimeStamp(sampleBuffer),
52 |                                         decodeTimeStamp: kCMTimeInvalid)
   |                                                          `- error: cannot find 'kCMTimeInvalid' in scope
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:18: error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                  `- error: cannot find 'CMSampleBufferCreateCopyWithNewTiming' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:54:56: error: cannot find 'kCFAllocatorDefault' in scope
52 |                                         decodeTimeStamp: kCMTimeInvalid)
53 |
54 |     let status = CMSampleBufferCreateCopyWithNewTiming(kCFAllocatorDefault,
   |                                                        `- error: cannot find 'kCFAllocatorDefault' in scope
55 |                                                        sampleBuffer,
56 |                                                        1,
/host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift:60:18: error: cannot find 'noErr' in scope
58 |                                                        &newSampleBuffer)
59 |
60 |     if status == noErr {
   |                  `- error: cannot find 'noErr' in scope
61 |         return newSampleBuffer
62 |     }
[48/51] Compiling kubrick MediaDeviceInput.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 | }
[49/51] 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 | }
[50/51] 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 | }
[51/51] 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 | }
BUILD FAILURE 6.0 linux
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.