The Swift Package Index logo.Swift Package Index

Build Information

Failed to build kubrick, reference master (41b1ab), with Swift 6.4 for Linux on 16 Sep 2026 10:01:24 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-53886770-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 5.1.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.4
Building package at path:  $PWD
https://github.com/krad/kubrick.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886770-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:c77fcce225e223ac0fafed844619173fc6de8d62dd560eeb28db3182af6a282b
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Fetching https://github.com/krad/grip.git
[1/176] Fetching grip
Fetched https://github.com/krad/grip.git (0.44s)
Computing version for https://github.com/krad/grip.git
Computed https://github.com/krad/grip.git at 1.3.5 (0.63s)
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...
[Pre-planning 1 / 96]
[34 / 49] grip
error: SwiftCompile normal x86_64 failed with a nonzero exit code. Command line:     cd /host

/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 [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
 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;;https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration\DeprecatedDeclaration]8;;\]
 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'
    |              `- note: add stubs for conformance
  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 '(MediaDeviceInputClosure) -> ()' (aka '((any MediaDeviceInput) -> ()) -> ()')
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '(MediaDeviceInputClosure) -> ()' (aka '((any MediaDeviceInput) -> ()) -> ()')
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '(MediaDeviceOutputClosure) -> ()' (aka '((any MediaDeviceOutput) -> ()) -> ()')
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'
   |              `- note: add stubs for conformance
 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 '(MediaDeviceInputClosure) -> ()' (aka '((any MediaDeviceInput) -> ()) -> ()')
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '(MediaDeviceInputClosure) -> ()' (aka '((any MediaDeviceInput) -> ()) -> ()')
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '(MediaDeviceOutputClosure) -> ()' (aka '((any MediaDeviceOutput) -> ()) -> ()')
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'
   |              `- note: add stubs for conformance
 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 '(MediaDeviceInputClosure) -> ()' (aka '((any MediaDeviceInput) -> ()) -> ()')
 8 |     var reader: MediaDeviceReader? { get set }
 9 |
10 |     mutating func createInput(onCreate: MediaDeviceInputClosure)
   |                   `- note: protocol requires function 'createInput(onCreate:)' with type '(MediaDeviceInputClosure) -> ()' (aka '((any MediaDeviceInput) -> ()) -> ()')
11 |     mutating func createOutput(onCreate: MediaDeviceOutputClosure)
   |                   `- note: protocol requires function 'createOutput(onCreate:)' with type '(MediaDeviceOutputClosure) -> ()' (aka '((any MediaDeviceOutput) -> ()) -> ()')
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: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'
  7 |     func startRunning()
  8 |     func stopRunning()
    :
 44 | }
 45 |
 46 | public class CaptureSession: Session {
    |              |- error: type 'CaptureSession' does not conform to protocol 'Session'
    |              `- note: add stubs for conformance
 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 |     }
[#DeprecatedDeclaration]: <https://docs.swift.org/compiler/documentation/diagnostics/deprecated-declaration>
Failed frontend command:
/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Sources/kubrick/Encoders/AACEncoder.swift /host/spi-builder-workspace/Sources/kubrick/Encoders/AudioEncoder.swift /host/spi-builder-workspace/Sources/kubrick/Encoders/H264Encoder.swift /host/spi-builder-workspace/Sources/kubrick/Encoders/H264Settings.swift /host/spi-builder-workspace/Sources/kubrick/Encoders/VideoEncoder.swift /host/spi-builder-workspace/Sources/kubrick/Helpers/Bytes.swift /host/spi-builder-workspace/Sources/kubrick/Helpers/Rational.swift /host/spi-builder-workspace/Sources/kubrick/Helpers/ThreadSafeArray.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/Camera.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/Clock.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/Display.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDevice.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceInput.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceOutput.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/MediaDeviceReader.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/Microphone.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/AudioReader.swift /host/spi-builder-workspace/Sources/kubrick/MediaDevices/Readers/VideoReader.swift /host/spi-builder-workspace/Sources/kubrick/Samples/MediaFormat.swift /host/spi-builder-workspace/Sources/kubrick/Samples/Sample.swift /host/spi-builder-workspace/Sources/kubrick/Samples/SampleTransport.swift /host/spi-builder-workspace/Sources/kubrick/Samples/Session.swift /host/spi-builder-workspace/Sources/kubrick/Sinks/AACEncoderSink.swift /host/spi-builder-workspace/Sources/kubrick/Sinks/EndpointSink.swift /host/spi-builder-workspace/Sources/kubrick/Sinks/FileEndpoint.swift /host/spi-builder-workspace/Sources/kubrick/Sinks/H264EncoderSink.swift /host/spi-builder-workspace/Sources/kubrick/Sinks/MuxerSink.swift /host/spi-builder-workspace/Sources/kubrick/Sinks/PrettyPortraitSink.swift /host/spi-builder-workspace/Sources/kubrick/Sinks/Sink.swift /host/spi-builder-workspace/Sources/kubrick/Sources/AVStream.swift /host/spi-builder-workspace/Sources/kubrick/Sources/Source.swift /host/spi-builder-workspace/Sources/kubrick/Sources/SourceDiscoverer.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -I /host/spi-builder-workspace/.build/out/Products/Debug-linux-x86_64 -module-cache-path /host/spi-builder-workspace/.build/out/ModuleCache.noindex -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -swift-version 4 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /usr/lib/swift/host/plugins/testing\#/usr/bin/swift-plugin-server -validate-clang-modules-once -clang-build-session-file /host/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /host -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -fno-omit-frame-pointer -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/host/spi-builder-workspace/.build/out/Products/Debug-linux-x86_64/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/DerivedSources-normal/x86_64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/DerivedSources/x86_64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name kubrick -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/Objects-normal/x86_64/kubrick_const_extract_protocols.json -in-process-plugin-server-path /usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /usr/lib/swift/host/plugins -plugin-path /usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/Objects-normal/x86_64/Modules/kubrick.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/Objects-normal/x86_64/Modules/kubrick.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/Objects-normal/x86_64/kubrick-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/Objects-normal/x86_64/kubrick-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/Objects-normal/x86_64/kubrick-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/kubrick.build/Debug-linux-x86_64/kubrick-t.build/Objects-normal/x86_64/Modules/kubrick.swiftmodule
error: Build failed
BUILD FAILURE 6.4 linux