The Swift Package Index logo.Swift Package Index

Has it really been five years since Swift Package Index launched? Read our anniversary blog post!

Build Information

Failed to build terminal-input, reference main (82b5c5), with Swift 6.2 for Android on 7 Nov 2025 00:10:37 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/juri/terminal-input.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/juri/terminal-input
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 82b5c54 Recognize ctrl-backspace
Cloned https://github.com/juri/terminal-input.git
Revision (git rev-parse @):
82b5c543acbeb019cb2ab5947e4cf98b8f5e5c71
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/juri/terminal-input.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/juri/terminal-input.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-2":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:d70d83f328e9f1ae04a4e17e63e2d335ae10639f90ee796a5fe3bfb139eab948
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Building for debugging...
[0/7] Write sources
[2/7] Write swift-version--11D90AFD9DD3AB2.txt
[4/10] Compiling TerminalInput TerminalKey.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[5/10] Emitting module TerminalInput
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:179:78: error: cannot find type 'termios' in scope
177 |
178 |     /// Set the terminal represented by `fileHandle` into raw mode.
179 |     public static func setRaw(fileHandle: FileHandle) throws(CallFailure) -> termios {
    |                                                                              `- error: cannot find type 'termios' in scope
180 |         var originalTermios = termios()
181 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:207:26: error: cannot find type 'termios' in scope
205 |     public static func unsetRaw(
206 |         fileHandle: FileHandle,
207 |         originalTermios: termios,
    |                          `- error: cannot find type 'termios' in scope
208 |     ) throws(CallFailure) {
209 |         var originalTermios = originalTermios
[6/10] Compiling TerminalInput TerminalInput.swift
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:179:78: error: cannot find type 'termios' in scope
177 |
178 |     /// Set the terminal represented by `fileHandle` into raw mode.
179 |     public static func setRaw(fileHandle: FileHandle) throws(CallFailure) -> termios {
    |                                                                              `- error: cannot find type 'termios' in scope
180 |         var originalTermios = termios()
181 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:207:26: error: cannot find type 'termios' in scope
205 |     public static func unsetRaw(
206 |         fileHandle: FileHandle,
207 |         originalTermios: termios,
    |                          `- error: cannot find type 'termios' in scope
208 |     ) throws(CallFailure) {
209 |         var originalTermios = originalTermios
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:22:37: error: cannot find 'read' in scope
 20 |                 if bufferPoint < bufferSize {
 21 |                     var inputBuffer = [UInt8](repeating: 0, count: bufferSize - bufferPoint)
 22 |                     let bytesRead = read(fileHandle.fileDescriptor, &inputBuffer, bufferSize - bufferPoint)
    |                                     `- error: cannot find 'read' in scope
 23 |                     for byteIndex in 0..<bytesRead {
 24 |                         let byte = inputBuffer[byteIndex]
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:157:30: error: cannot find type 'termios' in scope
155 |         closure: (RawKeyReader) async throws(E) -> T
156 |     ) async throws(FailureInRawMode<E>) -> T {
157 |         let originalTermios: termios
    |                              `- error: cannot find type 'termios' in scope
158 |         do {
159 |             originalTermios = try self.setRaw(fileHandle: fileHandle)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:161:32: error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
159 |             originalTermios = try self.setRaw(fileHandle: fileHandle)
160 |         } catch {
161 |             throw .callFailure(error)
    |                                `- error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
162 |         }
163 |         let rawReader = RawKeyReader(fileHandle: fileHandle)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:173:32: error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
171 |             try self.unsetRaw(fileHandle: fileHandle, originalTermios: originalTermios)
172 |         } catch {
173 |             throw .callFailure(error)
    |                                `- error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
174 |         }
175 |         return value
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:180:31: error: cannot find 'termios' in scope
178 |     /// Set the terminal represented by `fileHandle` into raw mode.
179 |     public static func setRaw(fileHandle: FileHandle) throws(CallFailure) -> termios {
180 |         var originalTermios = termios()
    |                               `- error: cannot find 'termios' in scope
181 |
182 |         if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:182:12: error: cannot find 'tcgetattr' in scope
180 |         var originalTermios = termios()
181 |
182 |         if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
    |            `- error: cannot find 'tcgetattr' in scope
183 |             throw CallFailure(call: .tcgetattr, errno: errno)
184 |         }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:183:56: error: cannot find 'errno' in scope
181 |
182 |         if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
183 |             throw CallFailure(call: .tcgetattr, errno: errno)
    |                                                        `- error: cannot find 'errno' in scope
184 |         }
185 |
/root/.swiftpm/swift-sdks/swift-6.2-RELEASE-android-0.1.artifactbundle/swift-android/ndk-sysroot/usr/include/errno.h:58:9: note: macro 'errno' unavailable: structure not supported
56 |  * thread.
57 |  */
58 | #define errno (*__errno())
   |         `- note: macro 'errno' unavailable: structure not supported
59 |
60 | __END_DECLS
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:188:25: error: cannot find 'tcflag_t' in scope
186 |         var raw = originalTermios
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
    |                         `- error: cannot find 'tcflag_t' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:188:34: error: cannot find 'BRKINT' in scope
186 |         var raw = originalTermios
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
    |                                  `- error: cannot find 'BRKINT' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:188:43: error: cannot find 'ICRNL' in scope
186 |         var raw = originalTermios
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
    |                                           `- error: cannot find 'ICRNL' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:188:51: error: cannot find 'INPCK' in scope
186 |         var raw = originalTermios
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
    |                                                   `- error: cannot find 'INPCK' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:188:59: error: cannot find 'ISTRIP' in scope
186 |         var raw = originalTermios
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
    |                                                           `- error: cannot find 'ISTRIP' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:188:68: error: cannot find 'IXON' in scope
186 |         var raw = originalTermios
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
    |                                                                    `- error: cannot find 'IXON' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:189:25: error: cannot find 'tcflag_t' in scope
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
    |                         `- error: cannot find 'tcflag_t' in scope
190 |         raw.c_cflag |= tcflag_t(CS8)
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:189:34: error: cannot find 'OPOST' in scope
187 |
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
    |                                  `- error: cannot find 'OPOST' in scope
190 |         raw.c_cflag |= tcflag_t(CS8)
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:190:24: error: cannot find 'tcflag_t' in scope
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
    |                        `- error: cannot find 'tcflag_t' in scope
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
192 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:190:33: error: cannot find 'CS8' in scope
188 |         raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
    |                                 `- error: cannot find 'CS8' in scope
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
192 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:191:25: error: cannot find 'tcflag_t' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
    |                         `- error: cannot find 'tcflag_t' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:191:34: error: cannot find 'ECHO' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
    |                                  `- error: cannot find 'ECHO' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:191:41: error: cannot find 'ICANON' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
    |                                         `- error: cannot find 'ICANON' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:191:50: error: cannot find 'IEXTEN' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
    |                                                  `- error: cannot find 'IEXTEN' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:191:59: error: cannot find 'ISIG' in scope
189 |         raw.c_oflag &= ~tcflag_t(OPOST)
190 |         raw.c_cflag |= tcflag_t(CS8)
191 |         raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
    |                                                           `- error: cannot find 'ISIG' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:194:38: error: cannot find 'cc_t' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
194 |             $0.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { $0[Int(VMIN)] = 1 }
    |                                      `- error: cannot find 'cc_t' in scope
195 |         }
196 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:194:63: error: cannot find 'NCCS' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
194 |             $0.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { $0[Int(VMIN)] = 1 }
    |                                                               `- error: cannot find 'NCCS' in scope
195 |         }
196 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:194:79: error: cannot find 'VMIN' in scope
192 |
193 |         withUnsafeMutablePointer(to: &raw.c_cc) {
194 |             $0.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { $0[Int(VMIN)] = 1 }
    |                                                                               `- error: cannot find 'VMIN' in scope
195 |         }
196 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:197:12: error: cannot find 'tcsetattr' in scope
195 |         }
196 |
197 |         if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &raw) < 0 {
    |            `- error: cannot find 'tcsetattr' in scope
198 |             throw CallFailure(call: .tcsetattr, errno: errno)
199 |         }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:197:49: error: cannot find 'TCSAFLUSH' in scope
195 |         }
196 |
197 |         if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &raw) < 0 {
    |                                                 `- error: cannot find 'TCSAFLUSH' in scope
198 |             throw CallFailure(call: .tcsetattr, errno: errno)
199 |         }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:198:56: error: cannot find 'errno' in scope
196 |
197 |         if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &raw) < 0 {
198 |             throw CallFailure(call: .tcsetattr, errno: errno)
    |                                                        `- error: cannot find 'errno' in scope
199 |         }
200 |
/root/.swiftpm/swift-sdks/swift-6.2-RELEASE-android-0.1.artifactbundle/swift-android/ndk-sysroot/usr/include/errno.h:58:9: note: macro 'errno' unavailable: structure not supported
56 |  * thread.
57 |  */
58 | #define errno (*__errno())
   |         `- note: macro 'errno' unavailable: structure not supported
59 |
60 | __END_DECLS
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:210:12: error: cannot find 'tcsetattr' in scope
208 |     ) throws(CallFailure) {
209 |         var originalTermios = originalTermios
210 |         if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &originalTermios) < 0 {
    |            `- error: cannot find 'tcsetattr' in scope
211 |             throw CallFailure(call: .tcsetattr, errno: errno)
212 |         }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:210:49: error: cannot find 'TCSAFLUSH' in scope
208 |     ) throws(CallFailure) {
209 |         var originalTermios = originalTermios
210 |         if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &originalTermios) < 0 {
    |                                                 `- error: cannot find 'TCSAFLUSH' in scope
211 |             throw CallFailure(call: .tcsetattr, errno: errno)
212 |         }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:211:56: error: cannot find 'errno' in scope
209 |         var originalTermios = originalTermios
210 |         if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &originalTermios) < 0 {
211 |             throw CallFailure(call: .tcsetattr, errno: errno)
    |                                                        `- error: cannot find 'errno' in scope
212 |         }
213 |     }
/root/.swiftpm/swift-sdks/swift-6.2-RELEASE-android-0.1.artifactbundle/swift-android/ndk-sysroot/usr/include/errno.h:58:9: note: macro 'errno' unavailable: structure not supported
56 |  * thread.
57 |  */
58 | #define errno (*__errno())
   |         `- note: macro 'errno' unavailable: structure not supported
59 |
60 | __END_DECLS
BUILD FAILURE 6.2 android