Build Information
Failed to build SwiftTerm, reference v1.99.0 (2dad6a), with Swift 6.3 for Android on 12 Oct 2026 05:29:31 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/migueldeicaza/SwiftTerm.git
Reference: v1.99.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/migueldeicaza/SwiftTerm
* tag v1.99.0 -> FETCH_HEAD
HEAD is now at 2dad6a1 Osc 7501 (#746)
Cloned https://github.com/migueldeicaza/SwiftTerm.git
Revision (git rev-parse @):
2dad6a1e516f755bed77cf9bbd09455062f54758
SUCCESS checkout https://github.com/migueldeicaza/SwiftTerm.git at v1.99.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.3
Building package at path: $PWD
https://github.com/migueldeicaza/SwiftTerm.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344847-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from saguaro1/spi-images
Digest: sha256:a57e63703100e13e1ecb61b565870501ccb169d7515bc7af7f0994f211e1b1f6
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.3-latest
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/tayloraswift/swift-png
Fetching https://github.com/apple/swift-argument-parser
[1/7577] Fetching swift-png
[2047/9922] Fetching swift-png, swift-docc-plugin
[2124/29034] Fetching swift-png, swift-docc-plugin, swift-argument-parser
Fetched https://github.com/apple/swift-docc-plugin from cache (0.78s)
[22219/26689] Fetching swift-png, swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser from cache (0.95s)
[3259/7577] Fetching swift-png
Fetched https://github.com/tayloraswift/swift-png from cache (2.90s)
Computing version for https://github.com/tayloraswift/swift-png
Computed https://github.com/tayloraswift/swift-png at 4.5.1 (3.07s)
Fetching https://github.com/rarestype/h
[1/1340] Fetching h
Fetched https://github.com/rarestype/h from cache (0.50s)
Computing version for https://github.com/rarestype/h
Computed https://github.com/rarestype/h at 1.0.1 (0.66s)
Computing version for https://github.com/apple/swift-docc-plugin
Computed https://github.com/apple/swift-docc-plugin at 1.5.0 (0.86s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3837] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.62s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.83s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.15s)
Creating working copy for https://github.com/tayloraswift/swift-png
Working copy of https://github.com/tayloraswift/swift-png resolved at 4.5.1
Creating working copy for https://github.com/rarestype/h
Working copy of https://github.com/rarestype/h resolved at 1.0.1
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.8.2
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/apple/swift-docc-plugin
Working copy of https://github.com/apple/swift-docc-plugin resolved at 1.5.0
[0/5] Write sources
[1/5] Write swift-version-272D24FF697CF451.txt
[3/9] Compiling SwiftTermBuildInfoGenerator TerminfoSource.swift
[4/9] Compiling SwiftTermBuildInfoGenerator XtgettcapTableGenerator.swift
[5/9] Compiling SwiftTermBuildInfoGenerator BuildInfoGenerator.swift
[6/9] Emitting module SwiftTermBuildInfoGenerator
[7/10] Wrapping AST for SwiftTermBuildInfoGenerator for debugging
[8/10] Write Objects.LinkFileList
[9/10] Linking SwiftTermBuildInfoGenerator-tool
[1/1] Compiling plugin SwiftTermBuildInfoPlugin
[2/2] Compiling plugin Swift-DocC Preview
[3/3] Compiling plugin Swift-DocC
[4/4] Compiling plugin GenerateManual
[5/5] Compiling plugin GenerateDoccReference
Building for debugging...
[5/39] Write sources
[16/39] Write swift-version-272D24FF697CF451.txt
[17/47] Wrapping AST for SwiftTermBuildInfoGenerator for debugging
[18/47] Write Objects.LinkFileList
[19/47] Linking SwiftTermBuildInfoGenerator-tool
[20/47] Generate SwiftTerm build information
[21/47] Write sources
[23/47] Emitting module BaseDigits
[24/47] Compiling BaseDigits BaseDigits.swift
[25/48] Wrapping AST for BaseDigits for debugging
[27/53] Compiling Base16 Base16.Values.swift
[28/53] Compiling Base16 Base16.LowercaseDigits.swift
[29/53] Emitting module Base16
[30/53] Compiling ArgumentParserToolInfo ToolInfo.swift
[31/53] Emitting module ArgumentParserToolInfo
[32/54] Compiling Base16 Base16.swift
[33/54] Compiling Base16 Base16.UppercaseDigits.swift
[35/55] Wrapping AST for ArgumentParserToolInfo for debugging
[36/55] Wrapping AST for Base16 for debugging
[38/104] Emitting module CRC
[39/104] Compiling CRC CRC32.swift
[40/105] Wrapping AST for CRC for debugging
[42/158] Compiling LZ77 LZ77.DeflatorMatches.Depths.swift
[43/158] Compiling LZ77 LZ77.InflatorIn.swift
[44/158] Compiling LZ77 LZ77.InflatorOut.swift
[45/158] Compiling LZ77 LZ77.InflatorState.swift
[46/158] Compiling LZ77 LZ77.InflatorTables.swift
[47/158] Compiling LZ77 LZ77.StreamHeader.swift
[48/158] Compiling LZ77 LZ77.StreamHeaderError.swift
[49/164] Emitting module LZ77
[50/171] Compiling LZ77 Gzip.Format.swift
[51/171] Compiling LZ77 Gzip.Inflator.swift
[52/171] Compiling LZ77 Gzip.InflatorState.swift
[53/171] Compiling LZ77 Gzip.StreamHeader.swift
[54/171] Compiling LZ77 Gzip.StreamHeaderError.swift
[55/171] Compiling LZ77 Gzip.swift
[56/171] Compiling LZ77 LZ77.Codeword.swift
[58/171] Compiling LZ77 F14.District.Index.swift
[59/171] Compiling LZ77 F14.District.swift
[60/171] Compiling LZ77 F14.Hash.swift
[61/171] Compiling LZ77 F14.HashTable.swift
[62/171] Compiling LZ77 F14.swift
[68/171] Compiling LZ77 FixedWidthInteger (ext).swift
[69/171] Compiling LZ77 Gzip.Deflator.swift
[70/171] Compiling LZ77 Gzip.Format.Integral.swift
[71/171] Compiling LZ77 LZ77.BlockShape.swift
[72/171] Compiling ArgumentParser AsyncCompletionsValidator.swift
[73/171] Compiling ArgumentParser CodingKeyValidator.swift
[74/171] Compiling ArgumentParser NonsenseFlagsValidator.swift
[75/171] Compiling ArgumentParser ParsableArgumentsValidation.swift
[76/171] Compiling ArgumentParser PositionalArgumentsValidator.swift
[77/171] Compiling ArgumentParser UniqueNamesValidator.swift
[78/171] Compiling LZ77 LZ77.Composites.swift
[85/171] Emitting module ArgumentParser
[86/171] Compiling LZ77 LZ77.Reversed.swift
[87/171] Compiling LZ77 LZ77.swift
[88/171] Compiling LZ77 SIMD16 (ext).swift
[89/171] Compiling LZ77 LZ77.Format.swift
[90/171] Compiling LZ77 LZ77.FormatType.swift
[91/171] Compiling LZ77 LZ77.MRC32.swift
[92/171] Compiling LZ77 LZ77.StreamIntegral.swift
[99/171] Compiling LZ77 LZ77.Decades.swift
[100/171] Compiling LZ77 LZ77.Deflator.swift
[101/171] Compiling LZ77 LZ77.DeflatorBuffers.Stream.swift
[102/171] Compiling LZ77 LZ77.DeflatorBuffers.swift
[103/171] Compiling LZ77 LZ77.DeflatorDicing.Node.swift
[104/171] Compiling LZ77 LZ77.DeflatorDicing.swift
[105/171] Compiling LZ77 LZ77.DeflatorIn.swift
[113/171] Compiling LZ77 LZ77.DeflatorTerm.Meta.swift
[114/171] Compiling LZ77 LZ77.DeflatorTerm.swift
[115/171] Compiling LZ77 LZ77.DeflatorWindow.Element.swift
[116/171] Compiling LZ77 LZ77.DeflatorWindow.swift
[117/171] Compiling LZ77 LZ77.Distance.swift
[118/171] Compiling LZ77 LZ77.Heap.swift
[127/171] Compiling LZ77 LZ77.DeflatorMatches.swift
[128/171] Compiling LZ77 LZ77.DeflatorOut.swift
[129/171] Compiling LZ77 LZ77.DeflatorSearch.swift
[130/171] Compiling LZ77 LZ77.DeflatorTables.swift
[137/171] Compiling LZ77 LZ77.HuffmanPattern.swift
[138/171] Compiling LZ77 LZ77.HuffmanTree.swift
[139/171] Compiling LZ77 LZ77.Metaword.swift
[140/171] Compiling LZ77 LZ77.RunLiteral.swift
[141/171] Compiling LZ77 LZ77.BlockMetadata.swift
[148/172] Wrapping AST for LZ77 for debugging
[150/216] Compiling PNG PNG.Background.swift
[151/216] Compiling PNG PNG.Chromaticity.swift
[152/216] Compiling PNG PNG.ColorProfile.swift
[153/216] Compiling PNG PNG.ColorRendering.swift
[154/216] Compiling PNG PNG.BytestreamDestination.swift
[155/216] Compiling PNG PNG.BytestreamSource.swift
[156/216] Compiling PNG PNG.Chunk.swift
[158/217] Compiling SwiftTermBuildInfoGenerator BuildInfoGenerator.swift
[159/217] Emitting module SwiftTermBuildInfoGenerator
[160/217] Compiling SwiftTermBuildInfoGenerator TerminfoSource.swift
[161/217] Compiling SwiftTermBuildInfoGenerator XtgettcapTableGenerator.swift
[162/218] Wrapping AST for ArgumentParser for debugging
[163/218] Wrapping AST for SwiftTermBuildInfoGenerator for debugging
[164/218] Write Objects.LinkFileList
[165/218] Linking SwiftTermBuildInfoGenerator
[167/218] Compiling PNG PNG.Gamma.swift
[168/218] Compiling PNG PNG.Header.swift
[169/218] Compiling PNG PNG.Histogram.swift
[170/218] Compiling PNG PNG.Palette.swift
[171/218] Compiling PNG PNG.ParsingError.swift
[172/218] Compiling PNG PNG.Percentmille.swift
[173/224] Emitting module PNG
[174/224] Compiling PNG PNG.Format.Pixel.swift
[175/224] Compiling PNG PNG.Format.swift
[176/224] Compiling PNG PNG.Layout.swift
[177/224] Compiling PNG General.swift
[178/224] Compiling PNG LZ77.DecompressionError (ext).swift
[179/224] Compiling PNG LZ77.DeflateHeaderError (ext).swift
[180/224] Compiling PNG PNG.PhysicalDimensions.swift
[181/224] Compiling PNG PNG.SignificantBits.Case.swift
[182/224] Compiling PNG PNG.SignificantBits.swift
[183/224] Compiling PNG PNG.SuggestedPalette.Entries.swift
[184/224] Compiling PNG PNG.SuggestedPalette.swift
[185/224] Compiling PNG PNG.Text.swift
[186/224] Compiling PNG Array (ext).swift
[187/224] Compiling PNG ArraySlice (ext).swift
[188/224] Compiling PNG PNG.Color.swift
[189/224] Compiling PNG PNG.RGBA.swift
[190/224] Compiling PNG PNG.VA.swift
[191/224] Compiling PNG PNG.Context.swift
[192/224] Compiling PNG PNG.Decoder.swift
[193/224] Compiling PNG PNG.DecodingError.swift
[194/224] Compiling PNG PNG.Metadata.swift
[195/224] Compiling PNG PNG.Standard.swift
[196/224] Compiling PNG PNG.Encoder.Pass.swift
[197/224] Compiling PNG PNG.Encoder.swift
[198/224] Compiling PNG PNG.FormattingError.swift
[199/224] Compiling PNG PNG.TimeModified.swift
[200/224] Compiling PNG PNG.Transparency.Case.swift
[201/224] Compiling PNG PNG.Transparency.swift
[202/224] Compiling PNG System.swift
[203/224] Compiling PNG UnsafeMutableBufferPointer (ext).swift
[204/224] Compiling PNG __Entrypoint.swift
[205/224] Compiling PNG PNG.swift
[206/224] Compiling PNG PNG.Background.Case.swift
[214/224] Compiling PNG PNG.LexingError.swift
[215/224] Compiling PNG PNG.Error.swift
[216/224] Compiling PNG PNG.Image.swift
[217/225] Wrapping AST for PNG for debugging
[219/227] Compiling SwiftTerm Bidi.swift
[220/227] Emitting module SwiftTerm
[221/228] Wrapping AST for SwiftTerm for debugging
[223/235] Emitting module SwiftTermFuzz
[224/235] Compiling SwiftTermFuzz main.swift
[225/236] Wrapping AST for SwiftTermFuzz for debugging
[226/236] Write Objects.LinkFileList
[227/236] Linking SwiftTermFuzz
[229/236] Compiling Termcast main.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[230/236] Compiling Termcast AsciicastFormat.swift
[231/236] Emitting module Termcast
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:19:26: error: cannot find type 'LocalProcess' in scope
17 | @MainActor
18 | private final class TermcastInputHandler {
19 | private let process: LocalProcess
| `- error: cannot find type 'LocalProcess' in scope
20 | private let startTime: TimeInterval
21 | private let fileHandle: FileHandle?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:24:19: error: cannot find type 'LocalProcess' in scope
22 | private let encoder = JSONEncoder()
23 |
24 | init(process: LocalProcess, startTime: TimeInterval, fileHandle: FileHandle?) {
| `- error: cannot find type 'LocalProcess' in scope
25 | self.process = process
26 | self.startTime = startTime
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:53:26: error: cannot find type 'LocalProcess' in scope
51 | private var fileHandle: FileHandle?
52 | private var startTime: TimeInterval = 0
53 | private var process: LocalProcess?
| `- error: cannot find type 'LocalProcess' in scope
54 | private var initialWindowSize: winsize = winsize()
55 | private let encoder = JSONEncoder()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:54:36: error: cannot find type 'winsize' in scope
52 | private var startTime: TimeInterval = 0
53 | private var process: LocalProcess?
54 | private var initialWindowSize: winsize = winsize()
| `- error: cannot find type 'winsize' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:57:34: error: cannot find type 'termios' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
| `- error: cannot find type 'termios' in scope
58 | private var originalStdoutTermios: termios = termios()
59 | private var terminalModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:58:40: error: cannot find type 'termios' in scope
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
58 | private var originalStdoutTermios: termios = termios()
| `- error: cannot find type 'termios' in scope
59 | private var terminalModeSet = false
60 | private var stdoutModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:54:46: error: cannot find 'winsize' in scope
52 | private var startTime: TimeInterval = 0
53 | private var process: LocalProcess?
54 | private var initialWindowSize: winsize = winsize()
| `- error: cannot find 'winsize' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:57:44: error: cannot find 'termios' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
| `- error: cannot find 'termios' in scope
58 | private var originalStdoutTermios: termios = termios()
59 | private var terminalModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:58:50: error: cannot find 'termios' in scope
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
58 | private var originalStdoutTermios: termios = termios()
| `- error: cannot find 'termios' in scope
59 | private var terminalModeSet = false
60 | private var stdoutModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:381:29: error: cannot find type 'LocalProcessDelegate' in scope
379 | }
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
| `- error: cannot find type 'LocalProcessDelegate' in scope
382 | func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
383 | debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:382:38: error: cannot find type 'LocalProcess' in scope
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
382 | func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
| `- error: cannot find type 'LocalProcess' in scope
383 | debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
384 | restoreTerminalMode()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:403:29: error: cannot find type 'winsize' in scope
401 | }
402 |
403 | func getWindowSize() -> winsize {
| `- error: cannot find type 'winsize' in scope
404 | return initialWindowSize
405 | }
[232/236] Compiling Termcast TermcastRecorder.swift
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:19:26: error: cannot find type 'LocalProcess' in scope
17 | @MainActor
18 | private final class TermcastInputHandler {
19 | private let process: LocalProcess
| `- error: cannot find type 'LocalProcess' in scope
20 | private let startTime: TimeInterval
21 | private let fileHandle: FileHandle?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:24:19: error: cannot find type 'LocalProcess' in scope
22 | private let encoder = JSONEncoder()
23 |
24 | init(process: LocalProcess, startTime: TimeInterval, fileHandle: FileHandle?) {
| `- error: cannot find type 'LocalProcess' in scope
25 | self.process = process
26 | self.startTime = startTime
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:53:26: error: cannot find type 'LocalProcess' in scope
51 | private var fileHandle: FileHandle?
52 | private var startTime: TimeInterval = 0
53 | private var process: LocalProcess?
| `- error: cannot find type 'LocalProcess' in scope
54 | private var initialWindowSize: winsize = winsize()
55 | private let encoder = JSONEncoder()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:54:36: error: cannot find type 'winsize' in scope
52 | private var startTime: TimeInterval = 0
53 | private var process: LocalProcess?
54 | private var initialWindowSize: winsize = winsize()
| `- error: cannot find type 'winsize' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:57:34: error: cannot find type 'termios' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
| `- error: cannot find type 'termios' in scope
58 | private var originalStdoutTermios: termios = termios()
59 | private var terminalModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:58:40: error: cannot find type 'termios' in scope
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
58 | private var originalStdoutTermios: termios = termios()
| `- error: cannot find type 'termios' in scope
59 | private var terminalModeSet = false
60 | private var stdoutModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:54:46: error: cannot find 'winsize' in scope
52 | private var startTime: TimeInterval = 0
53 | private var process: LocalProcess?
54 | private var initialWindowSize: winsize = winsize()
| `- error: cannot find 'winsize' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:57:44: error: cannot find 'termios' in scope
55 | private let encoder = JSONEncoder()
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
| `- error: cannot find 'termios' in scope
58 | private var originalStdoutTermios: termios = termios()
59 | private var terminalModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:58:50: error: cannot find 'termios' in scope
56 | private var timeoutTimer: DispatchSourceTimer?
57 | private var originalTermios: termios = termios()
58 | private var originalStdoutTermios: termios = termios()
| `- error: cannot find 'termios' in scope
59 | private var terminalModeSet = false
60 | private var stdoutModeSet = false
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:381:29: error: cannot find type 'LocalProcessDelegate' in scope
379 | }
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
| `- error: cannot find type 'LocalProcessDelegate' in scope
382 | func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
383 | debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:382:38: error: cannot find type 'LocalProcess' in scope
380 |
381 | extension TermcastRecorder: LocalProcessDelegate {
382 | func processTerminated(_ source: LocalProcess, exitCode: Int32?) {
| `- error: cannot find type 'LocalProcess' in scope
383 | debugMessage("[DEBUG] Process terminated with exit code: \(exitCode ?? -1)\n")
384 | restoreTerminalMode()
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:403:29: error: cannot find type 'winsize' in scope
401 | }
402 |
403 | func getWindowSize() -> winsize {
| `- error: cannot find type 'winsize' in scope
404 | return initialWindowSize
405 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:69:29: warning: result of call to 'createFile(atPath:contents:attributes:)' is unused [#no-usage]
67 |
68 | // Create the file and get handle
69 | FileManager.default.createFile(atPath: filePath, contents: nil)
| `- warning: result of call to 'createFile(atPath:contents:attributes:)' is unused [#no-usage]
70 | fileHandle = try FileHandle(forWritingTo: url)
71 | debugMessage("[DEBUG] File handle created\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:92:19: error: cannot find 'LocalProcess' in scope
90 | // Create and start the local process
91 | let recorder = self
92 | process = LocalProcess(delegate: recorder)
| `- error: cannot find 'LocalProcess' in scope
93 | debugMessage("[DEBUG] LocalProcess created\n")
94 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:140:51: error: cannot infer contextual base in reference to member 'utf8'
138 | let headerData = try encoder.encode(header)
139 | let headerLine = String(data: headerData, encoding: .utf8)! + "\n"
140 | fileHandle?.write(headerLine.data(using: .utf8)!)
| `- error: cannot infer contextual base in reference to member 'utf8'
141 | }
142 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:154:17: error: cannot find 'winsize' in scope
152 |
153 | private func getTerminalSize() -> (width: Int, height: Int) {
154 | var w = winsize()
| `- error: cannot find 'winsize' in scope
155 | #if os(macOS)
156 | if ioctl(STDOUT_FILENO, TIOCGWINSZ, &w) == 0 {
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:160:12: error: cannot find 'ioctl' in scope
158 | }
159 | #else
160 | if ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &w) == 0 {
| `- error: cannot find 'ioctl' in scope
161 | return (width: Int(w.ws_col), height: Int(w.ws_row))
162 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:160:18: error: cannot find 'STDOUT_FILENO' in scope
158 | }
159 | #else
160 | if ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &w) == 0 {
| `- error: cannot find 'STDOUT_FILENO' in scope
161 | return (width: Int(w.ws_col), height: Int(w.ws_row))
162 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:160:38: error: cannot find 'TIOCGWINSZ' in scope
158 | }
159 | #else
160 | if ioctl(STDOUT_FILENO, UInt(TIOCGWINSZ), &w) == 0 {
| `- error: cannot find 'TIOCGWINSZ' in scope
161 | return (width: Int(w.ws_col), height: Int(w.ws_row))
162 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:177:30: error: cannot find 'winsize' in scope
175 |
176 | // Update the process window size
177 | var newWinsize = winsize()
| `- error: cannot find 'winsize' in scope
178 | newWinsize.ws_col = UInt16(newSize.width)
179 | newWinsize.ws_row = UInt16(newSize.height)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:181:21: error: cannot find 'PseudoTerminalHelpers' in scope
179 | newWinsize.ws_row = UInt16(newSize.height)
180 | if let masterFd = self?.process?.childfd {
181 | _ = PseudoTerminalHelpers.setWinSize(masterPtyDescriptor: masterFd, windowSize: &newWinsize)
| `- error: cannot find 'PseudoTerminalHelpers' in scope
182 | }
183 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:184:26: error: cannot find 'SIG_IGN' in scope
182 | }
183 | }
184 | signal(SIGWINCH, SIG_IGN)
| `- error: cannot find 'SIG_IGN' in scope
185 | source.activate()
186 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:192:48: error: cannot find 'STDIN_FILENO' in scope
190 |
191 | // Debug stdin state
192 | debugMessage("[DEBUG] STDIN_FILENO = \(STDIN_FILENO)\n")
| `- error: cannot find 'STDIN_FILENO' in scope
193 | debugMessage("[DEBUG] isatty(STDIN_FILENO) = \(isatty(STDIN_FILENO))\n")
194 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:193:56: error: cannot find 'isatty' in scope
191 | // Debug stdin state
192 | debugMessage("[DEBUG] STDIN_FILENO = \(STDIN_FILENO)\n")
193 | debugMessage("[DEBUG] isatty(STDIN_FILENO) = \(isatty(STDIN_FILENO))\n")
| `- error: cannot find 'isatty' in scope
194 |
195 | let flags = fcntl(STDIN_FILENO, F_GETFL)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:193:63: error: cannot find 'STDIN_FILENO' in scope
191 | // Debug stdin state
192 | debugMessage("[DEBUG] STDIN_FILENO = \(STDIN_FILENO)\n")
193 | debugMessage("[DEBUG] isatty(STDIN_FILENO) = \(isatty(STDIN_FILENO))\n")
| `- error: cannot find 'STDIN_FILENO' in scope
194 |
195 | let flags = fcntl(STDIN_FILENO, F_GETFL)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:195:21: error: cannot find 'fcntl' in scope
193 | debugMessage("[DEBUG] isatty(STDIN_FILENO) = \(isatty(STDIN_FILENO))\n")
194 |
195 | let flags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'fcntl' in scope
196 | debugMessage("[DEBUG] stdin fcntl flags = \(flags)\n")
197 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:195:27: error: cannot find 'STDIN_FILENO' in scope
193 | debugMessage("[DEBUG] isatty(STDIN_FILENO) = \(isatty(STDIN_FILENO))\n")
194 |
195 | let flags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'STDIN_FILENO' in scope
196 | debugMessage("[DEBUG] stdin fcntl flags = \(flags)\n")
197 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:195:41: error: cannot find 'F_GETFL' in scope
193 | debugMessage("[DEBUG] isatty(STDIN_FILENO) = \(isatty(STDIN_FILENO))\n")
194 |
195 | let flags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'F_GETFL' in scope
196 | debugMessage("[DEBUG] stdin fcntl flags = \(flags)\n")
197 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:199:12: error: cannot find 'tcgetattr' in scope
197 |
198 | // Save original terminal settings
199 | if tcgetattr(STDIN_FILENO, &originalTermios) != 0 {
| `- error: cannot find 'tcgetattr' in scope
200 | let error = errno
201 | debugMessage("[DEBUG] tcgetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:199:22: error: cannot find 'STDIN_FILENO' in scope
197 |
198 | // Save original terminal settings
199 | if tcgetattr(STDIN_FILENO, &originalTermios) != 0 {
| `- error: cannot find 'STDIN_FILENO' in scope
200 | let error = errno
201 | debugMessage("[DEBUG] tcgetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:200:25: error: cannot find 'errno' in scope
198 | // Save original terminal settings
199 | if tcgetattr(STDIN_FILENO, &originalTermios) != 0 {
200 | let error = errno
| `- error: cannot find 'errno' in scope
201 | debugMessage("[DEBUG] tcgetattr failed with errno: \(error)\n")
202 | throw NSError(domain: "TermcastError", code: 1, userInfo: [NSLocalizedDescriptionKey: "Failed to get terminal attributes"])
/root/.swiftpm/swift-sdks/swift-6.3.2-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/Termcast/TermcastRecorder.swift:214:40: error: cannot find 'ECHO' in scope
212 | rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
| `- error: cannot find 'ECHO' in scope
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:214:47: error: cannot find 'ICANON' in scope
212 | rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
| `- error: cannot find 'ICANON' in scope
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:214:56: error: cannot find 'ISIG' in scope
212 | rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
| `- error: cannot find 'ISIG' in scope
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:214:63: error: cannot find 'IEXTEN' in scope
212 | rawTermios.c_cflag |= UInt(CS8)
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
| `- error: cannot find 'IEXTEN' in scope
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:40: error: cannot find 'IXON' in scope
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
| `- error: cannot find 'IXON' in scope
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
217 | rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:47: error: cannot find 'ICRNL' in scope
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
| `- error: cannot find 'ICRNL' in scope
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
217 | rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:55: error: cannot find 'BRKINT' in scope
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
| `- error: cannot find 'BRKINT' in scope
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
217 | rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:64: error: cannot find 'INPCK' in scope
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
| `- error: cannot find 'INPCK' in scope
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
217 | rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:215:72: error: cannot find 'ISTRIP' in scope
213 | #else
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
| `- error: cannot find 'ISTRIP' in scope
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
217 | rawTermios.c_cflag |= UInt32(CS8)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:216:40: error: cannot find 'OPOST' in scope
214 | rawTermios.c_lflag &= ~(UInt32(ECHO | ICANON | ISIG | IEXTEN))
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
| `- error: cannot find 'OPOST' in scope
217 | rawTermios.c_cflag |= UInt32(CS8)
218 | #endif
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:217:38: error: cannot find 'CS8' in scope
215 | rawTermios.c_iflag &= ~(UInt32(IXON | ICRNL | BRKINT | INPCK | ISTRIP))
216 | rawTermios.c_oflag &= ~(UInt32(OPOST))
217 | rawTermios.c_cflag |= UInt32(CS8)
| `- error: cannot find 'CS8' in scope
218 | #endif
219 | rawTermios.c_cc.16 = 1 // VMIN
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:223:12: error: cannot find 'tcsetattr' in scope
221 |
222 | // Apply raw mode settings
223 | if tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawTermios) != 0 {
| `- error: cannot find 'tcsetattr' in scope
224 | let error = errno
225 | debugMessage("[DEBUG] tcsetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:223:22: error: cannot find 'STDIN_FILENO' in scope
221 |
222 | // Apply raw mode settings
223 | if tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawTermios) != 0 {
| `- error: cannot find 'STDIN_FILENO' in scope
224 | let error = errno
225 | debugMessage("[DEBUG] tcsetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:223:36: error: cannot find 'TCSAFLUSH' in scope
221 |
222 | // Apply raw mode settings
223 | if tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawTermios) != 0 {
| `- error: cannot find 'TCSAFLUSH' in scope
224 | let error = errno
225 | debugMessage("[DEBUG] tcsetattr failed with errno: \(error)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:224:25: error: cannot find 'errno' in scope
222 | // Apply raw mode settings
223 | if tcsetattr(STDIN_FILENO, TCSAFLUSH, &rawTermios) != 0 {
224 | let error = errno
| `- error: cannot find 'errno' in scope
225 | debugMessage("[DEBUG] tcsetattr failed with errno: \(error)\n")
226 | throw NSError(domain: "TermcastError", code: 2, userInfo: [NSLocalizedDescriptionKey: "Failed to set raw mode"])
/root/.swiftpm/swift-sdks/swift-6.3.2-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/Termcast/TermcastRecorder.swift:230:29: error: cannot find 'termios' in scope
228 |
229 | // Verify raw mode was set
230 | var verifyTermios = termios()
| `- error: cannot find 'termios' in scope
231 | if tcgetattr(STDIN_FILENO, &verifyTermios) == 0 {
232 | debugMessage("[DEBUG] Verified c_lflag after raw mode: \(verifyTermios.c_lflag)\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:231:12: error: cannot find 'tcgetattr' in scope
229 | // Verify raw mode was set
230 | var verifyTermios = termios()
231 | if tcgetattr(STDIN_FILENO, &verifyTermios) == 0 {
| `- error: cannot find 'tcgetattr' in scope
232 | debugMessage("[DEBUG] Verified c_lflag after raw mode: \(verifyTermios.c_lflag)\n")
233 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:231:22: error: cannot find 'STDIN_FILENO' in scope
229 | // Verify raw mode was set
230 | var verifyTermios = termios()
231 | if tcgetattr(STDIN_FILENO, &verifyTermios) == 0 {
| `- error: cannot find 'STDIN_FILENO' in scope
232 | debugMessage("[DEBUG] Verified c_lflag after raw mode: \(verifyTermios.c_lflag)\n")
233 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:243:12: error: cannot find 'tcgetattr' in scope
241 |
242 | // Save original stdout settings
243 | if tcgetattr(STDOUT_FILENO, &originalStdoutTermios) != 0 {
| `- error: cannot find 'tcgetattr' in scope
244 | debugMessage("[DEBUG] Warning: Failed to get stdout terminal attributes\n")
245 | return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:243:22: error: cannot find 'STDOUT_FILENO' in scope
241 |
242 | // Save original stdout settings
243 | if tcgetattr(STDOUT_FILENO, &originalStdoutTermios) != 0 {
| `- error: cannot find 'STDOUT_FILENO' in scope
244 | debugMessage("[DEBUG] Warning: Failed to get stdout terminal attributes\n")
245 | return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:249:9: error: cannot find 'usleep' in scope
247 |
248 | // Wait a moment for the process to be fully started
249 | usleep(100000) // 100ms
| `- error: cannot find 'usleep' in scope
250 |
251 | // Get the pty file descriptor from the process
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:258:26: error: cannot find 'termios' in scope
256 |
257 | // Get terminal settings from the pty
258 | var ptyTermios = termios()
| `- error: cannot find 'termios' in scope
259 | if tcgetattr(masterFd, &ptyTermios) != 0 {
260 | debugMessage("[DEBUG] Warning: Failed to get pty terminal attributes\n")
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:259:12: error: cannot find 'tcgetattr' in scope
257 | // Get terminal settings from the pty
258 | var ptyTermios = termios()
259 | if tcgetattr(masterFd, &ptyTermios) != 0 {
| `- error: cannot find 'tcgetattr' in scope
260 | debugMessage("[DEBUG] Warning: Failed to get pty terminal attributes\n")
261 | return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:270:12: error: cannot find 'tcsetattr' in scope
268 | newStdoutTermios.c_oflag = ptyTermios.c_oflag // Copy output processing flags
269 |
270 | if tcsetattr(STDOUT_FILENO, TCSANOW, &newStdoutTermios) != 0 {
| `- error: cannot find 'tcsetattr' in scope
271 | debugMessage("[DEBUG] Warning: Failed to set stdout terminal attributes\n")
272 | return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:270:22: error: cannot find 'STDOUT_FILENO' in scope
268 | newStdoutTermios.c_oflag = ptyTermios.c_oflag // Copy output processing flags
269 |
270 | if tcsetattr(STDOUT_FILENO, TCSANOW, &newStdoutTermios) != 0 {
| `- error: cannot find 'STDOUT_FILENO' in scope
271 | debugMessage("[DEBUG] Warning: Failed to set stdout terminal attributes\n")
272 | return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:270:37: error: cannot find 'TCSANOW' in scope
268 | newStdoutTermios.c_oflag = ptyTermios.c_oflag // Copy output processing flags
269 |
270 | if tcsetattr(STDOUT_FILENO, TCSANOW, &newStdoutTermios) != 0 {
| `- error: cannot find 'TCSANOW' in scope
271 | debugMessage("[DEBUG] Warning: Failed to set stdout terminal attributes\n")
272 | return
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:285:25: error: cannot find 'fcntl' in scope
283 | debugMessage("[DEBUG] Testing stdin readability...\n")
284 |
285 | let testFlags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'fcntl' in scope
286 | debugMessage("[DEBUG] Initial stdin flags: \(testFlags)\n")
287 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:285:31: error: cannot find 'STDIN_FILENO' in scope
283 | debugMessage("[DEBUG] Testing stdin readability...\n")
284 |
285 | let testFlags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'STDIN_FILENO' in scope
286 | debugMessage("[DEBUG] Initial stdin flags: \(testFlags)\n")
287 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:285:45: error: cannot find 'F_GETFL' in scope
283 | debugMessage("[DEBUG] Testing stdin readability...\n")
284 |
285 | let testFlags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'F_GETFL' in scope
286 | debugMessage("[DEBUG] Initial stdin flags: \(testFlags)\n")
287 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:308:37: error: cannot find 'fcntl' in scope
306 |
307 | // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 | let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'fcntl' in scope
309 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
310 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:308:43: error: cannot find 'STDIN_FILENO' in scope
306 |
307 | // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 | let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'STDIN_FILENO' in scope
309 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
310 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:308:57: error: cannot find 'F_GETFL' in scope
306 |
307 | // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 | let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
| `- error: cannot find 'F_GETFL' in scope
309 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
310 |
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:309:21: error: cannot find 'fcntl' in scope
307 | // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 | let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
309 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
| `- error: cannot find 'fcntl' in scope
310 |
311 | var buffer = [UInt8](repeating: 0, count: 1)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:309:27: error: cannot find 'STDIN_FILENO' in scope
307 | // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 | let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
309 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
| `- error: cannot find 'STDIN_FILENO' in scope
310 |
311 | var buffer = [UInt8](repeating: 0, count: 1)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:309:41: error: cannot find 'F_SETFL' in scope
307 | // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 | let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
309 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
| `- error: cannot find 'F_SETFL' in scope
310 |
311 | var buffer = [UInt8](repeating: 0, count: 1)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:309:66: error: cannot find 'O_NONBLOCK' in scope
307 | // Use blocking read with a timeout by setting stdin to non-blocking temporarily
308 | let originalFlags = fcntl(STDIN_FILENO, F_GETFL)
309 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags | O_NONBLOCK)
| `- error: cannot find 'O_NONBLOCK' in scope
310 |
311 | var buffer = [UInt8](repeating: 0, count: 1)
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:312:33: error: cannot find 'read' in scope
310 |
311 | var buffer = [UInt8](repeating: 0, count: 1)
312 | let bytesRead = read(STDIN_FILENO, &buffer, buffer.count)
| `- error: cannot find 'read' in scope
313 |
314 | // Restore blocking mode
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:312:38: error: cannot find 'STDIN_FILENO' in scope
310 |
311 | var buffer = [UInt8](repeating: 0, count: 1)
312 | let bytesRead = read(STDIN_FILENO, &buffer, buffer.count)
| `- error: cannot find 'STDIN_FILENO' in scope
313 |
314 | // Restore blocking mode
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:315:21: error: cannot find 'fcntl' in scope
313 |
314 | // Restore blocking mode
315 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags)
| `- error: cannot find 'fcntl' in scope
316 |
317 | if bytesRead > 0 {
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:315:27: error: cannot find 'STDIN_FILENO' in scope
313 |
314 | // Restore blocking mode
315 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags)
| `- error: cannot find 'STDIN_FILENO' in scope
316 |
317 | if bytesRead > 0 {
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:315:41: error: cannot find 'F_SETFL' in scope
313 |
314 | // Restore blocking mode
315 | _ = fcntl(STDIN_FILENO, F_SETFL, originalFlags)
| `- error: cannot find 'F_SETFL' in scope
316 |
317 | if bytesRead > 0 {
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:329:33: error: cannot find 'errno' in scope
327 | }
328 | } else if bytesRead == -1 {
329 | let error = errno
| `- error: cannot find 'errno' in scope
330 | if error == EAGAIN || error == EWOULDBLOCK {
331 | // No data available, sleep briefly
/root/.swiftpm/swift-sdks/swift-6.3.2-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/Termcast/TermcastRecorder.swift:332:25: error: cannot find 'usleep' in scope
330 | if error == EAGAIN || error == EWOULDBLOCK {
331 | // No data available, sleep briefly
332 | usleep(10000) // 10ms
| `- error: cannot find 'usleep' in scope
333 | continue
334 | } else {
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:370:13: error: cannot find 'tcsetattr' in scope
368 | if terminalModeSet {
369 | debugMessage("[DEBUG] Restoring original stdin terminal mode\n")
370 | tcsetattr(STDIN_FILENO, TCSAFLUSH, &originalTermios)
| `- error: cannot find 'tcsetattr' in scope
371 | terminalModeSet = false
372 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:370:23: error: cannot find 'STDIN_FILENO' in scope
368 | if terminalModeSet {
369 | debugMessage("[DEBUG] Restoring original stdin terminal mode\n")
370 | tcsetattr(STDIN_FILENO, TCSAFLUSH, &originalTermios)
| `- error: cannot find 'STDIN_FILENO' in scope
371 | terminalModeSet = false
372 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:370:37: error: cannot find 'TCSAFLUSH' in scope
368 | if terminalModeSet {
369 | debugMessage("[DEBUG] Restoring original stdin terminal mode\n")
370 | tcsetattr(STDIN_FILENO, TCSAFLUSH, &originalTermios)
| `- error: cannot find 'TCSAFLUSH' in scope
371 | terminalModeSet = false
372 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:375:13: error: cannot find 'tcsetattr' in scope
373 | if stdoutModeSet {
374 | debugMessage("[DEBUG] Restoring original stdout terminal mode\n")
375 | tcsetattr(STDOUT_FILENO, TCSAFLUSH, &originalStdoutTermios)
| `- error: cannot find 'tcsetattr' in scope
376 | stdoutModeSet = false
377 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:375:23: error: cannot find 'STDOUT_FILENO' in scope
373 | if stdoutModeSet {
374 | debugMessage("[DEBUG] Restoring original stdout terminal mode\n")
375 | tcsetattr(STDOUT_FILENO, TCSAFLUSH, &originalStdoutTermios)
| `- error: cannot find 'STDOUT_FILENO' in scope
376 | stdoutModeSet = false
377 | }
/host/spi-builder-workspace/Sources/Termcast/TermcastRecorder.swift:375:38: error: cannot find 'TCSAFLUSH' in scope
373 | if stdoutModeSet {
374 | debugMessage("[DEBUG] Restoring original stdout terminal mode\n")
375 | tcsetattr(STDOUT_FILENO, TCSAFLUSH, &originalStdoutTermios)
| `- error: cannot find 'TCSAFLUSH' in scope
376 | stdoutModeSet = false
377 | }
[233/236] Compiling Termcast TermcastPlayer.swift
/host/spi-builder-workspace/Sources/Termcast/TermcastPlayer.swift:32:17: error: cannot find 'usleep' in scope
30 | let delay = event.time - lastTime
31 | if delay > 0 {
32 | usleep(UInt32(delay * 1_000_000)) // Convert to microseconds
| `- error: cannot find 'usleep' in scope
33 | }
34 |
BUILD FAILURE 6.3 android