Build Information
Failed to build terminal-widgets, reference main (8c6b49), with Swift 6.2 for Android on 30 Oct 2025 23:54:01 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/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>&1Build Log
========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/juri/terminal-widgets.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-widgets
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 8c6b49e Add SPI links to README
Cloned https://github.com/juri/terminal-widgets.git
Revision (git rev-parse @):
8c6b49eb2c0920f5c62a20d288d7e70c07c18ebe
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/juri/terminal-widgets.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.2
Building package at path: $PWD
https://github.com/juri/terminal-widgets.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4606859-1":/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
Fetching https://github.com/juri/terminal-ansi.git
Fetching https://github.com/juri/terminal-styles.git
[1/307] Fetching terminal-styles
[41/891] Fetching terminal-styles, terminal-ansi
Fetched https://github.com/juri/terminal-ansi.git from cache (0.29s)
Fetched https://github.com/juri/terminal-styles.git from cache (0.29s)
Computing version for https://github.com/juri/terminal-styles.git
Computed https://github.com/juri/terminal-styles.git at 0.3.0 (0.67s)
Computing version for https://github.com/juri/terminal-ansi.git
Computed https://github.com/juri/terminal-ansi.git at 0.3.0 (0.39s)
Creating working copy for https://github.com/juri/terminal-styles.git
Working copy of https://github.com/juri/terminal-styles.git resolved at 0.3.0
Creating working copy for https://github.com/juri/terminal-ansi.git
Working copy of https://github.com/juri/terminal-ansi.git resolved at 0.3.0
Building for debugging...
[0/12] Write sources
[4/12] Write swift-version--11D90AFD9DD3AB2.txt
[4/12] Compiling CSelect select.c
[7/20] Emitting module TerminalANSI
[8/20] Compiling TerminalANSI ANSIControlCode.swift
[9/20] Compiling TerminalANSI Inspect.swift
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:159:27: error: cannot find 'termios' in scope
157 | }
158 |
159 | var originalTermios = termios()
| `- error: cannot find 'termios' in scope
160 | if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
161 | throw .callFailure(.tcgetattr, errno: errno)
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:160:8: error: cannot find 'tcgetattr' in scope
158 |
159 | var originalTermios = termios()
160 | if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
| `- error: cannot find 'tcgetattr' in scope
161 | throw .callFailure(.tcgetattr, errno: errno)
162 | }
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:161:47: error: cannot find 'errno' in scope
159 | var originalTermios = termios()
160 | if tcgetattr(fileHandle.fileDescriptor, &originalTermios) == -1 {
161 | throw .callFailure(.tcgetattr, errno: errno)
| `- error: cannot find 'errno' in scope
162 | }
163 |
/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/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:165:9: error: cannot find 'tcsetattr' in scope
163 |
164 | defer {
165 | tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
166 | }
167 |
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:165:46: error: cannot find 'TCSAFLUSH' in scope
163 |
164 | defer {
165 | tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &originalTermios)
| `- error: cannot find 'TCSAFLUSH' in scope
166 | }
167 |
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:169:23: error: cannot find 'tcflag_t' in scope
167 |
168 | var noEcho = originalTermios
169 | noEcho.c_lflag ^= tcflag_t(ECHO)
| `- error: cannot find 'tcflag_t' in scope
170 | noEcho.c_lflag ^= tcflag_t(ICANON)
171 |
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:169:32: error: cannot find 'ECHO' in scope
167 |
168 | var noEcho = originalTermios
169 | noEcho.c_lflag ^= tcflag_t(ECHO)
| `- error: cannot find 'ECHO' in scope
170 | noEcho.c_lflag ^= tcflag_t(ICANON)
171 |
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:170:23: error: cannot find 'tcflag_t' in scope
168 | var noEcho = originalTermios
169 | noEcho.c_lflag ^= tcflag_t(ECHO)
170 | noEcho.c_lflag ^= tcflag_t(ICANON)
| `- error: cannot find 'tcflag_t' in scope
171 |
172 | tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &noEcho)
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:170:32: error: cannot find 'ICANON' in scope
168 | var noEcho = originalTermios
169 | noEcho.c_lflag ^= tcflag_t(ECHO)
170 | noEcho.c_lflag ^= tcflag_t(ICANON)
| `- error: cannot find 'ICANON' in scope
171 |
172 | tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &noEcho)
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:172:5: error: cannot find 'tcsetattr' in scope
170 | noEcho.c_lflag ^= tcflag_t(ICANON)
171 |
172 | tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &noEcho)
| `- error: cannot find 'tcsetattr' in scope
173 |
174 | // first, send OSC query, which is ignored by terminal which do not support it
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:172:42: error: cannot find 'TCSAFLUSH' in scope
170 | noEcho.c_lflag ^= tcflag_t(ICANON)
171 |
172 | tcsetattr(fileHandle.fileDescriptor, TCSAFLUSH, &noEcho)
| `- error: cannot find 'TCSAFLUSH' in scope
173 |
174 | // first, send OSC query, which is ignored by terminal which do not support it
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:209:25: error: cannot find 'errno' in scope
207 |
208 | if result == -1 {
209 | let error = errno
| `- error: cannot find 'errno' in scope
210 | if error == EINTR {
211 | continue // Interrupted by signal, retry
/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/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:293:11: error: cannot find 'ioctl' in scope
291 | func isForeground(fileHandle: FileHandle) -> Bool {
292 | var pgrp = pid_t()
293 | guard ioctl(fileHandle.fileDescriptor, UInt(TIOCGPGRP), &pgrp) > -1 else { return false }
| `- error: cannot find 'ioctl' in scope
294 | return pgrp == getpgrp()
295 | }
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:293:49: error: cannot find 'TIOCGPGRP' in scope
291 | func isForeground(fileHandle: FileHandle) -> Bool {
292 | var pgrp = pid_t()
293 | guard ioctl(fileHandle.fileDescriptor, UInt(TIOCGPGRP), &pgrp) > -1 else { return false }
| `- error: cannot find 'TIOCGPGRP' in scope
294 | return pgrp == getpgrp()
295 | }
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Inspect.swift:294:20: error: cannot find 'getpgrp' in scope
292 | var pgrp = pid_t()
293 | guard ioctl(fileHandle.fileDescriptor, UInt(TIOCGPGRP), &pgrp) > -1 else { return false }
294 | return pgrp == getpgrp()
| `- error: cannot find 'getpgrp' in scope
295 | }
296 |
[10/20] Compiling TerminalANSI Size.swift
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Size.swift:19:17: error: cannot find 'winsize' in scope
17 | @MainActor
18 | public static func current(fileHandle: FileHandle) throws(TerminalReadFailure) -> Self {
19 | var w = winsize()
| `- error: cannot find 'winsize' in scope
20 | guard ioctl(fileHandle.fileDescriptor, UInt(TIOCGWINSZ), &w) >= 0 else {
21 | throw .callFailure(.ioctl, errno: errno)
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Size.swift:20:15: error: cannot find 'ioctl' in scope
18 | public static func current(fileHandle: FileHandle) throws(TerminalReadFailure) -> Self {
19 | var w = winsize()
20 | guard ioctl(fileHandle.fileDescriptor, UInt(TIOCGWINSZ), &w) >= 0 else {
| `- error: cannot find 'ioctl' in scope
21 | throw .callFailure(.ioctl, errno: errno)
22 | }
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Size.swift:20:53: error: cannot find 'TIOCGWINSZ' in scope
18 | public static func current(fileHandle: FileHandle) throws(TerminalReadFailure) -> Self {
19 | var w = winsize()
20 | guard ioctl(fileHandle.fileDescriptor, UInt(TIOCGWINSZ), &w) >= 0 else {
| `- error: cannot find 'TIOCGWINSZ' in scope
21 | throw .callFailure(.ioctl, errno: errno)
22 | }
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Size.swift:21:47: error: cannot find 'errno' in scope
19 | var w = winsize()
20 | guard ioctl(fileHandle.fileDescriptor, UInt(TIOCGWINSZ), &w) >= 0 else {
21 | throw .callFailure(.ioctl, errno: errno)
| `- error: cannot find 'errno' in scope
22 | }
23 | return TerminalSize(height: Int(w.ws_row), width: Int(w.ws_col))
/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
[11/20] Compiling TerminalANSI Terminal.swift
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Terminal.swift:34:15: error: cannot find 'isatty' in scope
32 | fileHandle: FileHandle
33 | ) {
34 | guard isatty(fileHandle.fileDescriptor) == 1 else { return nil }
| `- error: cannot find 'isatty' in scope
35 | self.environment = environment ?? ProcessInfo.processInfo.environment
36 | self.fileHandle = fileHandle
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Terminal.swift:41:9: error: cannot find 'tcflush' in scope
39 | public func close() throws {
40 | try self.fileHandle.synchronize()
41 | tcflush(self.fileHandle.fileDescriptor, TCOFLUSH)
| `- error: cannot find 'tcflush' in scope
42 | try self.fileHandle.close()
43 | }
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/Terminal.swift:41:49: error: cannot find 'TCOFLUSH' in scope
39 | public func close() throws {
40 | try self.fileHandle.synchronize()
41 | tcflush(self.fileHandle.fileDescriptor, TCOFLUSH)
| `- error: cannot find 'TCOFLUSH' in scope
42 | try self.fileHandle.close()
43 | }
[12/20] Compiling TerminalANSI Color.swift
[13/20] Compiling TerminalANSI EnvironmentColorMode.swift
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/EnvironmentColorMode.swift:56:13: error: cannot find 'isatty' in scope
54 | false
55 | case .enable:
56 | isatty(fileHandle.fileDescriptor) == 1
| `- error: cannot find 'isatty' in scope
57 | case .force:
58 | true
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/EnvironmentColorMode.swift:60:13: error: cannot find 'isatty' in scope
58 | true
59 | case .none:
60 | isatty(fileHandle.fileDescriptor) == 1
| `- error: cannot find 'isatty' in scope
61 | }
62 | }
[14/20] Compiling TerminalANSI ColorMode.swift
/host/spi-builder-workspace/.build/checkouts/terminal-ansi/Sources/TerminalANSI/ColorMode.swift:25:15: error: cannot find 'isatty' in scope
23 | fileHandle: FileHandle,
24 | ) -> ColorMode {
25 | guard isatty(fileHandle.fileDescriptor) == 1 else { return .noColor }
| `- error: cannot find 'isatty' in scope
26 | return self.current(environment: environment ?? ProcessInfo.processInfo.environment)
27 | }
BUILD FAILURE 6.2 android