Build Information
Failed to build terminal-ansi, reference 0.3.0 (4a56c0), with Swift 6.3 for Android on 17 Apr 2026 08:35:14 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/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.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/juri/terminal-ansi.git
Reference: 0.3.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-ansi
* tag 0.3.0 -> FETCH_HEAD
HEAD is now at 4a56c05 Backtick string literals in a doc comment
Cloned https://github.com/juri/terminal-ansi.git
Revision (git rev-parse @):
4a56c05d18cd7cb0ad85fcc0bd1b616f45c8a067
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/juri/terminal-ansi.git at 0.3.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.3
Building package at path: $PWD
https://github.com/juri/terminal-ansi.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/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.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:9008270ea37a55e78725e6225015adb5eff8582da520c5232bf0499f32c36dc4
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest
Fetching https://github.com/apple/swift-numerics
[1/6416] Fetching swift-numerics
Fetched https://github.com/apple/swift-numerics from cache (0.79s)
Computing version for https://github.com/apple/swift-numerics
Computed https://github.com/apple/swift-numerics at 1.1.1 (1.46s)
Creating working copy for https://github.com/apple/swift-numerics
Working copy of https://github.com/apple/swift-numerics resolved at 1.1.1
Building for debugging...
[0/8] Write sources
[2/8] Write swift-version--4F562202D5529B1.txt
[3/8] Compiling CSelect select.c
[5/16] Compiling TerminalANSI ANSIControlCode.swift
[6/16] Compiling TerminalANSI Terminal.swift
/host/spi-builder-workspace/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/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/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 | }
[7/16] Compiling TerminalANSI Size.swift
/host/spi-builder-workspace/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/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/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/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.3-RELEASE_android.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
[8/16] Compiling TerminalANSI Color.swift
[9/16] Emitting module TerminalANSI
[10/16] Compiling TerminalANSI ColorMode.swift
/host/spi-builder-workspace/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 | }
[11/16] Compiling TerminalANSI EnvironmentColorMode.swift
/host/spi-builder-workspace/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/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 | }
[12/16] Compiling TerminalANSI Inspect.swift
/host/spi-builder-workspace/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/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/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.3-RELEASE_android.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/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/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/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/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/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/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/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/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/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.3-RELEASE_android.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/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/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/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 |
BUILD FAILURE 6.3 android