Build Information
Failed to build terminal-input, reference 0.1.0 (2e3c9e), with Swift 6.2 for Wasm on 3 Nov 2025 07:12:55 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/finestructure/spi-images:wasm-6.2-latest swift build --swift-sdk wasm32-unknown-wasip1 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/juri/terminal-input.git
Reference: 0.1.0
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
* tag 0.1.0 -> FETCH_HEAD
HEAD is now at 2e3c9e7 Amend README
Cloned https://github.com/juri/terminal-input.git
Revision (git rev-parse @):
2e3c9e78af1ce7c3c3ffe72caf5ed9e1c41c2c70
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/juri/terminal-input.git at 0.1.0
========================================
Build
========================================
Selected platform: wasm
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-4609320-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:wasm-6.2-latest swift build --swift-sdk wasm32-unknown-wasip1 2>&1
wasm-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:f6b6b9bdb5d5605d727da337418fc455cd8a0394d3a815b70631008c48829755
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:wasm-6.2-latest
warning: multiple Swift SDKs match target triple `wasm32-unknown-wasip1` and host triple x86_64-unknown-linux-gnu, selected one at /root/.swiftpm/swift-sdks/swift-6.2-RELEASE_wasm.artifactbundle/swift-6.2-RELEASE_wasm/wasm32-unknown-wasip1/swift-sdk.json
Building for debugging...
[0/7] Write sources
[2/7] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/10] Compiling TerminalInput TerminalKey.swift
[5/10] Emitting module TerminalInput
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:186:78: error: cannot find type 'termios' in scope
184 |
185 | /// Set the terminal represented by `fileHandle` into raw mode.
186 | public static func setRaw(fileHandle: FileHandle) throws(CallFailure) -> termios {
| `- error: cannot find type 'termios' in scope
187 | var originalTermios = termios()
188 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:214:26: error: cannot find type 'termios' in scope
212 | public static func unsetRaw(
213 | fileHandle: FileHandle,
214 | originalTermios: termios,
| `- error: cannot find type 'termios' in scope
215 | ) throws(CallFailure) {
216 | var originalTermios = originalTermios
[6/10] Compiling TerminalInput TerminalInput.swift
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:186:78: error: cannot find type 'termios' in scope
184 |
185 | /// Set the terminal represented by `fileHandle` into raw mode.
186 | public static func setRaw(fileHandle: FileHandle) throws(CallFailure) -> termios {
| `- error: cannot find type 'termios' in scope
187 | var originalTermios = termios()
188 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:214:26: error: cannot find type 'termios' in scope
212 | public static func unsetRaw(
213 | fileHandle: FileHandle,
214 | originalTermios: termios,
| `- error: cannot find type 'termios' in scope
215 | ) throws(CallFailure) {
216 | var originalTermios = originalTermios
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:164:30: error: cannot find type 'termios' in scope
162 | closure: (RawKeyReader) async throws(E) -> T
163 | ) async throws(FailureInRawMode<E>) -> T {
164 | let originalTermios: termios
| `- error: cannot find type 'termios' in scope
165 | do {
166 | originalTermios = try self.setRaw(fileHandle: fileHandle)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:168:32: error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
166 | originalTermios = try self.setRaw(fileHandle: fileHandle)
167 | } catch {
168 | throw .callFailure(error)
| `- error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
169 | }
170 | let rawReader = RawKeyReader(fileHandle: fileHandle)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:180:32: error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
178 | try self.unsetRaw(fileHandle: fileHandle, originalTermios: originalTermios)
179 | } catch {
180 | throw .callFailure(error)
| `- error: cannot convert value of type 'any Error' to expected argument type 'KeyReader.CallFailure'
181 | }
182 | return value
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:187:31: error: cannot find 'termios' in scope
185 | /// Set the terminal represented by `fileHandle` into raw mode.
186 | public static func setRaw(fileHandle: FileHandle) throws(CallFailure) -> termios {
187 | var originalTermios = termios()
| `- error: cannot find 'termios' in scope
188 |
189 | if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:189:12: error: cannot find 'tcgetattr' in scope
187 | var originalTermios = termios()
188 |
189 | if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
| `- error: cannot find 'tcgetattr' in scope
190 | throw CallFailure(call: .tcgetattr, errno: errno)
191 | }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:195:25: error: cannot find 'tcflag_t' in scope
193 | var raw = originalTermios
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
| `- error: cannot find 'tcflag_t' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:195:34: error: cannot find 'BRKINT' in scope
193 | var raw = originalTermios
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
| `- error: cannot find 'BRKINT' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:195:43: error: cannot find 'ICRNL' in scope
193 | var raw = originalTermios
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
| `- error: cannot find 'ICRNL' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:195:51: error: cannot find 'INPCK' in scope
193 | var raw = originalTermios
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
| `- error: cannot find 'INPCK' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:195:59: error: cannot find 'ISTRIP' in scope
193 | var raw = originalTermios
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
| `- error: cannot find 'ISTRIP' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:195:68: error: cannot find 'IXON' in scope
193 | var raw = originalTermios
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
| `- error: cannot find 'IXON' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:196:25: error: cannot find 'tcflag_t' in scope
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
196 | raw.c_oflag &= ~tcflag_t(OPOST)
| `- error: cannot find 'tcflag_t' in scope
197 | raw.c_cflag |= tcflag_t(CS8)
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:196:34: error: cannot find 'OPOST' in scope
194 |
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
196 | raw.c_oflag &= ~tcflag_t(OPOST)
| `- error: cannot find 'OPOST' in scope
197 | raw.c_cflag |= tcflag_t(CS8)
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:197:24: error: cannot find 'tcflag_t' in scope
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
| `- error: cannot find 'tcflag_t' in scope
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
199 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:197:33: error: cannot find 'CS8' in scope
195 | raw.c_iflag &= ~tcflag_t(BRKINT | ICRNL | INPCK | ISTRIP | IXON)
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
| `- error: cannot find 'CS8' in scope
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
199 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:198:25: error: cannot find 'tcflag_t' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
| `- error: cannot find 'tcflag_t' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:198:34: error: cannot find 'ECHO' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
| `- error: cannot find 'ECHO' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:198:41: error: cannot find 'ICANON' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
| `- error: cannot find 'ICANON' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:198:50: error: cannot find 'IEXTEN' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
| `- error: cannot find 'IEXTEN' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:198:59: error: cannot find 'ISIG' in scope
196 | raw.c_oflag &= ~tcflag_t(OPOST)
197 | raw.c_cflag |= tcflag_t(CS8)
198 | raw.c_lflag &= ~tcflag_t(ECHO | ICANON | IEXTEN | ISIG)
| `- error: cannot find 'ISIG' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:201:38: error: cannot find 'cc_t' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
201 | $0.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { $0[Int(VMIN)] = 1 }
| `- error: cannot find 'cc_t' in scope
202 | }
203 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:201:63: error: cannot find 'NCCS' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
201 | $0.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { $0[Int(VMIN)] = 1 }
| `- error: cannot find 'NCCS' in scope
202 | }
203 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:201:79: error: cannot find 'VMIN' in scope
199 |
200 | withUnsafeMutablePointer(to: &raw.c_cc) {
201 | $0.withMemoryRebound(to: cc_t.self, capacity: Int(NCCS)) { $0[Int(VMIN)] = 1 }
| `- error: cannot find 'VMIN' in scope
202 | }
203 |
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:204:12: error: cannot find 'tcsetattr' in scope
202 | }
203 |
204 | if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &raw) < 0 {
| `- error: cannot find 'tcsetattr' in scope
205 | throw CallFailure(call: .tcsetattr, errno: errno)
206 | }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:204:49: error: cannot find 'TCSAFLUSH' in scope
202 | }
203 |
204 | if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &raw) < 0 {
| `- error: cannot find 'TCSAFLUSH' in scope
205 | throw CallFailure(call: .tcsetattr, errno: errno)
206 | }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:217:12: error: cannot find 'tcsetattr' in scope
215 | ) throws(CallFailure) {
216 | var originalTermios = originalTermios
217 | if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &originalTermios) < 0 {
| `- error: cannot find 'tcsetattr' in scope
218 | throw CallFailure(call: .tcsetattr, errno: errno)
219 | }
/host/spi-builder-workspace/Sources/TerminalInput/TerminalInput.swift:217:49: error: cannot find 'TCSAFLUSH' in scope
215 | ) throws(CallFailure) {
216 | var originalTermios = originalTermios
217 | if tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &originalTermios) < 0 {
| `- error: cannot find 'TCSAFLUSH' in scope
218 | throw CallFailure(call: .tcsetattr, errno: errno)
219 | }
BUILD FAILURE 6.2 wasm