The Swift Package Index logo.Swift Package Index

Build Information

Failed to build swift-midi-controlsurfaces, reference main (af4ad4), with Swift 6.2 for Android on 1 May 2026 11:02:19 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/orchetect/swift-midi-controlsurfaces.git
Reference: main
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/orchetect/swift-midi-controlsurfaces
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at af4ad4a Added GitHub CI for example projects
Cloned https://github.com/orchetect/swift-midi-controlsurfaces.git
Revision (git rev-parse @):
af4ad4a279b70b40e16555f23c9fc80c1c91af5c
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/orchetect/swift-midi-controlsurfaces.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/orchetect/swift-midi-controlsurfaces.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:cb98f9856cb1288a0028ff0e63d4de86ca92d5e7890400e3e915f7ea3943ed55
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:android-6.2-latest
Fetching https://github.com/orchetect/swift-midi-core
[1/1502] Fetching swift-midi-core
Fetched https://github.com/orchetect/swift-midi-core from cache (0.32s)
Computing version for https://github.com/orchetect/swift-midi-core
Computed https://github.com/orchetect/swift-midi-core at 1.0.0 (0.93s)
Creating working copy for https://github.com/orchetect/swift-midi-core
Working copy of https://github.com/orchetect/swift-midi-core resolved at 1.0.0
Building for debugging...
[0/4] Write sources
[3/4] Write swift-version--11D90AFD9DD3AB2.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[5/25] Emitting module SwiftMIDIInternals
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:48: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                                                `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 49 |     ) {
 50 |         self.rate = rate
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:23: error: @escaping attribute only applies to function types
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                       `- error: @escaping attribute only applies to function types
 49 |     ) {
 50 |         self.rate = rate
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:67: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                                                   `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
124 |         timer.setEventHandler(handler: handler)
125 |     }
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:42: error: @escaping attribute only applies to function types
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                          `- error: @escaping attribute only applies to function types
124 |         timer.setEventHandler(handler: handler)
125 |     }
[6/25] Compiling SwiftMIDIInternals Hex and Binary String.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Outsourced/ASCII.swift:30:27: error: cannot find 'applyingTransform' in scope
28 |     @available(OSX 10.11, iOS 9.0, *)
29 |     var asciiStringLossy: String {
30 |         let transformed = applyingTransform(
   |                           `- error: cannot find 'applyingTransform' in scope
31 |             StringTransform("Latin-ASCII"),
32 |             reverse: false
[7/25] Compiling SwiftMIDIInternals Number Formatting.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Outsourced/ASCII.swift:30:27: error: cannot find 'applyingTransform' in scope
28 |     @available(OSX 10.11, iOS 9.0, *)
29 |     var asciiStringLossy: String {
30 |         let transformed = applyingTransform(
   |                           `- error: cannot find 'applyingTransform' in scope
31 |             StringTransform("Latin-ASCII"),
32 |             reverse: false
[8/25] Compiling SwiftMIDIInternals ASCII.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Outsourced/ASCII.swift:30:27: error: cannot find 'applyingTransform' in scope
28 |     @available(OSX 10.11, iOS 9.0, *)
29 |     var asciiStringLossy: String {
30 |         let transformed = applyingTransform(
   |                           `- error: cannot find 'applyingTransform' in scope
31 |             StringTransform("Latin-ASCII"),
32 |             reverse: false
[9/27] Compiling SwiftMIDIInternals ThreadSynchronizedPThreadMutex.swift
[10/27] Compiling SwiftMIDIInternals ThreadSynchronizedPThreadMutexValue.swift
[11/27] Compiling SwiftMIDIInternals SwiftMIDIInternals.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Exception.swift:37:25: error: cannot find 'NSException' in scope
35 |         reason: String? = nil
36 |     ) {
37 |         let exception = NSException(name: exceptionName, reason: reason, userInfo: nil)
   |                         `- error: cannot find 'NSException' in scope
38 |         exception.raise()
39 |     }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Exception.swift:37:84: error: 'nil' requires a contextual type
35 |         reason: String? = nil
36 |     ) {
37 |         let exception = NSException(name: exceptionName, reason: reason, userInfo: nil)
   |                                                                                    `- error: 'nil' requires a contextual type
38 |         exception.raise()
39 |     }
[12/27] Compiling SwiftMIDIInternals ASCII String and Data.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Exception.swift:37:25: error: cannot find 'NSException' in scope
35 |         reason: String? = nil
36 |     ) {
37 |         let exception = NSException(name: exceptionName, reason: reason, userInfo: nil)
   |                         `- error: cannot find 'NSException' in scope
38 |         exception.raise()
39 |     }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Exception.swift:37:84: error: 'nil' requires a contextual type
35 |         reason: String? = nil
36 |     ) {
37 |         let exception = NSException(name: exceptionName, reason: reason, userInfo: nil)
   |                                                                                    `- error: 'nil' requires a contextual type
38 |         exception.raise()
39 |     }
[13/27] Compiling SwiftMIDIInternals Exception.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Exception.swift:37:25: error: cannot find 'NSException' in scope
35 |         reason: String? = nil
36 |     ) {
37 |         let exception = NSException(name: exceptionName, reason: reason, userInfo: nil)
   |                         `- error: cannot find 'NSException' in scope
38 |         exception.raise()
39 |     }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Exception.swift:37:84: error: 'nil' requires a contextual type
35 |         reason: String? = nil
36 |     ) {
37 |         let exception = NSException(name: exceptionName, reason: reason, userInfo: nil)
   |                                                                                    `- error: 'nil' requires a contextual type
38 |         exception.raise()
39 |     }
[14/27] Compiling SwiftMIDIInternals PThreadMutex.swift
[15/27] Compiling SwiftMIDIInternals PThreadMutexValue.swift
[16/27] Compiling SwiftMIDIInternals ThreadSynchronized.swift
[17/27] Compiling SwiftMIDIInternals Collections.swift
[18/27] Compiling SwiftMIDIInternals Integers.swift
[19/27] Compiling SwiftMIDIInternals Ranges.swift
[20/27] Compiling SwiftMIDIInternals String.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Outsourced/Timespec.swift:141:18: error: extraneous argument label 'seconds:' in call
139 |     @_disfavoredOverload
140 |     public init(_ interval: TimeInterval) {
141 |         self.init(seconds: interval)
    |                  `- error: extraneous argument label 'seconds:' in call
142 |     }
143 | }
[21/27] Compiling SwiftMIDIInternals Timespec.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Outsourced/Timespec.swift:141:18: error: extraneous argument label 'seconds:' in call
139 |     @_disfavoredOverload
140 |     public init(_ interval: TimeInterval) {
141 |         self.init(seconds: interval)
    |                  `- error: extraneous argument label 'seconds:' in call
142 |     }
143 | }
[22/27] Compiling SwiftMIDIInternals RandomAccessCollection.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/Outsourced/Timespec.swift:141:18: error: extraneous argument label 'seconds:' in call
139 |     @_disfavoredOverload
140 |     public init(_ interval: TimeInterval) {
141 |         self.init(seconds: interval)
    |                  `- error: extraneous argument label 'seconds:' in call
142 |     }
143 | }
[23/27] Compiling SwiftMIDIInternals SafeDispatchTimer.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:48: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                                                `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 49 |     ) {
 50 |         self.rate = rate
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:23: error: @escaping attribute only applies to function types
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                       `- error: @escaping attribute only applies to function types
 49 |     ) {
 50 |         self.rate = rate
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:67: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                                                   `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
124 |         timer.setEventHandler(handler: handler)
125 |     }
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:42: error: @escaping attribute only applies to function types
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                          `- error: @escaping attribute only applies to function types
124 |         timer.setEventHandler(handler: handler)
125 |     }
[24/27] Compiling SwiftMIDIInternals MainThreadSynchronizedPThreadMutex.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:48: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                                                `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 49 |     ) {
 50 |         self.rate = rate
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:23: error: @escaping attribute only applies to function types
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                       `- error: @escaping attribute only applies to function types
 49 |     ) {
 50 |         self.rate = rate
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:67: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                                                   `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
124 |         timer.setEventHandler(handler: handler)
125 |     }
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:42: error: @escaping attribute only applies to function types
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                          `- error: @escaping attribute only applies to function types
124 |         timer.setEventHandler(handler: handler)
125 |     }
[25/27] Compiling SwiftMIDIInternals MainThreadSynchronizedPThreadMutexValue.swift
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:48: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                                                `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
 49 |     ) {
 50 |         self.rate = rate
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:48:23: error: @escaping attribute only applies to function types
 46 |         leeway: DispatchTimeInterval = .nanoseconds(0),
 47 |         queue: DispatchQueue? = nil,
 48 |         eventHandler: @escaping DispatchSource.DispatchSourceHandler = { }
    |                       `- error: @escaping attribute only applies to function types
 49 |     ) {
 50 |         self.rate = rate
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:67: error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                                                   `- error: 'DispatchSourceHandler' is not a member type of class 'Dispatch.DispatchSource'
124 |         timer.setEventHandler(handler: handler)
125 |     }
Dispatch.DispatchSource:1:14: note: 'DispatchSource' declared here
1 | public class DispatchSource : DispatchObject, @unchecked Sendable, DispatchSourceProtocol, DispatchSourceRead, DispatchSourceSignal, DispatchSourceTimer, DispatchSourceUserDataAdd, DispatchSourceUserDataOr, DispatchSourceUserDataReplace, DispatchSourceWrite {
  |              `- note: 'DispatchSource' declared here
2 |     deinit
3 | }
/host/spi-builder-workspace/.build/checkouts/swift-midi-core/Sources/SwiftMIDIInternals/Utilities/SafeDispatchTimer.swift:123:42: error: @escaping attribute only applies to function types
121 |
122 |     /// Set the event handler closure that the timer executes
123 |     public func setEventHandler(handler: @escaping DispatchSource.DispatchSourceHandler) {
    |                                          `- error: @escaping attribute only applies to function types
124 |         timer.setEventHandler(handler: handler)
125 |     }
[26/27] Compiling SwiftMIDIInternals ThreadSynchronizedValue.swift
[27/27] Compiling SwiftMIDIInternals Utilities.swift
BUILD FAILURE 6.2 android