The Swift Package Index logo.Swift Package Index

Build Information

Failed to build SwiftTerm, reference v1.99.0 (2dad6a), with Swift 6.2 for Android on 12 Oct 2026 05:31:01 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-54344847-1":/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.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build 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.2
Building package at path:  $PWD
https://github.com/migueldeicaza/SwiftTerm.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344847-1":/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.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from saguaro1/spi-images
Digest: sha256:a839c9ce201f1dacc8eb056626ec7ab0a1c6d53d7b77c83feda395f4507c51be
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.2-latest
Fetching https://github.com/apple/swift-docc-plugin
Fetching https://github.com/apple/swift-argument-parser
Fetching https://github.com/tayloraswift/swift-png
[1/7577] Fetching swift-png
[1517/9922] Fetching swift-png, swift-docc-plugin
[4468/29034] Fetching swift-png, swift-docc-plugin, swift-argument-parser
Fetched https://github.com/apple/swift-docc-plugin from cache (2.85s)
Fetched https://github.com/apple/swift-argument-parser from cache (2.85s)
Fetched https://github.com/tayloraswift/swift-png from cache (2.94s)
Computing version for https://github.com/tayloraswift/swift-png
Computed https://github.com/tayloraswift/swift-png at 4.5.1 (3.11s)
Fetching https://github.com/rarestype/h
[1/1340] Fetching h
Fetched https://github.com/rarestype/h from cache (0.40s)
Computing version for https://github.com/rarestype/h
Computed https://github.com/rarestype/h at 1.0.1 (0.56s)
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.52s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.72s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.14s)
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
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/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
[0/5] Write sources
[1/5] Write swift-version--11D90AFD9DD3AB2.txt
[3/9] Emitting module SwiftTermBuildInfoGenerator
[4/9] Compiling SwiftTermBuildInfoGenerator TerminfoSource.swift
[5/9] Compiling SwiftTermBuildInfoGenerator XtgettcapTableGenerator.swift
[6/9] Compiling SwiftTermBuildInfoGenerator BuildInfoGenerator.swift
[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--11D90AFD9DD3AB2.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.swift
[29/53] Emitting module Base16
[30/53] Compiling Base16 Base16.UppercaseDigits.swift
[31/53] Compiling Base16 Base16.LowercaseDigits.swift
[32/54] Wrapping AST for Base16 for debugging
[34/56] Compiling CRC CRC32.swift
[35/56] Emitting module CRC
[37/57] Compiling ArgumentParserToolInfo ToolInfo.swift
[38/57] Emitting module ArgumentParserToolInfo
[38/58] Wrapping AST for CRC for debugging
[40/58] Wrapping AST for ArgumentParserToolInfo for debugging
[42/158] Compiling ArgumentParser ParentCommand.swift
[43/158] Compiling ArgumentParser AsyncParsableCommand.swift
[44/158] Compiling ArgumentParser CommandConfiguration.swift
[45/158] Compiling ArgumentParser CommandGroup.swift
[46/158] Compiling ArgumentParser EnumerableFlag.swift
[47/158] Compiling ArgumentParser ExpressibleByArgument.swift
[48/158] Compiling ArgumentParser ParsableArguments.swift
[49/164] Compiling ArgumentParser Tree.swift
[50/164] Compiling ArgumentParser AsyncCompletionsValidator.swift
[51/164] Compiling ArgumentParser CodingKeyValidator.swift
[52/164] Compiling ArgumentParser NonsenseFlagsValidator.swift
[53/164] Compiling ArgumentParser ParsableArgumentsValidation.swift
[54/164] Compiling ArgumentParser PositionalArgumentsValidator.swift
[55/164] Compiling ArgumentParser UniqueNamesValidator.swift
[56/171] Emitting module LZ77
[57/171] Compiling ArgumentParser BashCompletionsGenerator.swift
[58/171] Compiling ArgumentParser CompletionsGenerator.swift
[59/171] Compiling ArgumentParser FishCompletionsGenerator.swift
[60/171] Compiling ArgumentParser ZshCompletionsGenerator.swift
[61/171] Compiling ArgumentParser Argument.swift
[62/171] Compiling ArgumentParser ArgumentDiscussion.swift
[63/171] Compiling ArgumentParser ArgumentHelp.swift
[64/171] Compiling ArgumentParser Name.swift
[65/171] Compiling ArgumentParser ArgumentDefinition.swift
[66/171] Compiling ArgumentParser ArgumentSet.swift
[67/171] Compiling ArgumentParser CommandParser.swift
[68/171] Compiling ArgumentParser InputKey.swift
[69/171] Compiling ArgumentParser InputOrigin.swift
[72/171] Compiling ArgumentParser Parsed.swift
[73/171] Compiling ArgumentParser ParsedValues.swift
[74/171] Compiling ArgumentParser ParserError.swift
[75/171] Compiling ArgumentParser SplitArguments.swift
[76/171] Compiling ArgumentParser DumpHelpGenerator.swift
[77/171] Compiling ArgumentParser ParsableCommand.swift
[78/171] Compiling ArgumentParser ArgumentDecoder.swift
[79/171] Compiling LZ77 LZ77.Reversed.swift
[80/171] Compiling LZ77 LZ77.swift
[81/171] Compiling LZ77 SIMD16 (ext).swift
[82/171] Compiling LZ77 LZ77.Format.swift
[83/171] Compiling LZ77 LZ77.FormatType.swift
[84/171] Compiling LZ77 LZ77.MRC32.swift
[85/171] Compiling LZ77 LZ77.StreamIntegral.swift
[91/171] Compiling ArgumentParser ArgumentVisibility.swift
[92/171] Compiling ArgumentParser CompletionKind.swift
[93/171] Compiling ArgumentParser Errors.swift
[94/171] Compiling ArgumentParser Flag.swift
[95/171] Compiling ArgumentParser NameSpecification.swift
[96/171] Compiling ArgumentParser Option.swift
[97/171] Compiling ArgumentParser OptionGroup.swift
[98/171] Compiling ArgumentParser HelpCommand.swift
[99/171] Compiling ArgumentParser HelpGenerator.swift
[100/171] Compiling ArgumentParser MessageInfo.swift
[101/171] Compiling ArgumentParser UsageGenerator.swift
[102/171] Compiling ArgumentParser CollectionExtensions.swift
[103/171] Compiling ArgumentParser Foundation.swift
[104/171] Compiling ArgumentParser Mutex.swift
[105/171] Compiling ArgumentParser Platform.swift
[106/171] Compiling ArgumentParser SequenceExtensions.swift
[107/171] Compiling ArgumentParser StringExtensions.swift
[108/171] Compiling ArgumentParser SwiftExtensions.swift
[109/172] Emitting module ArgumentParser
[130/172] Compiling SwiftTermBuildInfoGenerator BuildInfoGenerator.swift
[131/172] Compiling SwiftTermBuildInfoGenerator XtgettcapTableGenerator.swift
[132/172] Compiling SwiftTermBuildInfoGenerator TerminfoSource.swift
[133/172] Emitting module SwiftTermBuildInfoGenerator
[133/173] Wrapping AST for LZ77 for debugging
[141/217] Wrapping AST for SwiftTermBuildInfoGenerator for debugging
[142/217] Write Objects.LinkFileList
[144/217] Compiling PNG PNG.Layout.swift
[145/217] Compiling PNG General.swift
[146/217] Compiling PNG LZ77.DecompressionError (ext).swift
[147/217] Compiling PNG LZ77.DeflateHeaderError (ext).swift
[148/217] Compiling PNG PNG.PhysicalDimensions.swift
[149/217] Compiling PNG PNG.SignificantBits.Case.swift
[150/217] Compiling PNG PNG.SignificantBits.swift
[151/217] Compiling PNG PNG.swift
[152/217] Compiling PNG PNG.Background.Case.swift
[153/217] Compiling PNG PNG.Background.swift
[154/217] Compiling PNG PNG.Chromaticity.swift
[155/217] Compiling PNG PNG.ColorProfile.swift
[156/217] Compiling PNG PNG.ColorRendering.swift
[157/217] Compiling PNG PNG.DecodingError.swift
[158/217] Compiling PNG PNG.BytestreamDestination.swift
[159/217] Compiling PNG PNG.BytestreamSource.swift
[160/217] Compiling PNG PNG.Chunk.swift
[161/217] Compiling PNG PNG.LexingError.swift
[162/217] Compiling PNG PNG.Error.swift
[163/217] Compiling PNG PNG.Image.swift
[164/218] Wrapping AST for ArgumentParser for debugging
[165/218] Linking SwiftTermBuildInfoGenerator
[167/218] Compiling PNG PNG.Format.Pixel.swift
[168/218] Compiling PNG PNG.Format.swift
[173/224] Compiling PNG PNG.Gamma.swift
[174/224] Compiling PNG PNG.Header.swift
[175/224] Compiling PNG PNG.Histogram.swift
[176/224] Compiling PNG PNG.Palette.swift
[177/224] Compiling PNG PNG.ParsingError.swift
[178/224] Compiling PNG PNG.Percentmille.swift
[182/224] Compiling PNG PNG.SuggestedPalette.Entries.swift
[183/224] Compiling PNG PNG.SuggestedPalette.swift
[184/224] Compiling PNG PNG.Text.swift
[185/224] Emitting module PNG
[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.TimeModified.swift
[194/224] Compiling PNG PNG.Transparency.Case.swift
[195/224] Compiling PNG PNG.Transparency.swift
[196/224] Compiling PNG System.swift
[197/224] Compiling PNG UnsafeMutableBufferPointer (ext).swift
[198/224] Compiling PNG __Entrypoint.swift
[206/224] Compiling PNG PNG.Metadata.swift
[207/224] Compiling PNG PNG.Standard.swift
[208/224] Compiling PNG PNG.Encoder.Pass.swift
[209/224] Compiling PNG PNG.Encoder.swift
[210/224] Compiling PNG PNG.FormattingError.swift
[217/225] Wrapping AST for PNG for debugging
[219/281] Compiling SwiftTerm TerminalRenderSnapshot.swift
[220/281] Compiling SwiftTerm TerminalViewport.swift
[221/281] Compiling SwiftTerm WASIHostEvents.swift
[222/281] Compiling SwiftTerm Position.swift
[223/281] Compiling SwiftTerm Profiling.swift
[224/281] Compiling SwiftTerm ProgramStatus.swift
[225/281] Compiling SwiftTerm Pty.swift
[226/281] Compiling SwiftTerm SearchEngine.swift
[227/281] Compiling SwiftTerm CircularList.swift
[228/281] Compiling SwiftTerm Colors.swift
[229/281] Compiling SwiftTerm CsiParameters.swift
[230/281] Compiling SwiftTerm DECPrivateModes.swift
[231/281] Compiling SwiftTerm EmbeddedSupport.swift
[232/281] Compiling SwiftTerm EscapeSequenceParser.swift
[233/281] Compiling SwiftTerm EscapeSequences.swift
[234/281] Compiling SwiftTerm ExtensionsTerminal.swift
[235/288] Compiling SwiftTerm KittyKeyboardEncoder.swift
[236/288] Compiling SwiftTerm KittyKeyboardProtocol.swift
[237/288] Compiling SwiftTerm KittyPlaceholder.swift
[238/288] Compiling SwiftTerm Line.swift
[239/288] Compiling SwiftTerm LocalProcess.swift
[240/288] Compiling SwiftTerm Locked.swift
[241/288] Compiling SwiftTerm TerminalKittyPlaceholders.swift
[242/288] Compiling SwiftTerm TerminalRasterImage.swift
[243/288] Emitting module SwiftTerm
[244/288] Compiling SwiftTerm Bidi.swift
[245/288] Compiling SwiftTerm Buffer.swift
[246/288] Compiling SwiftTerm BufferLine.swift
[247/288] Compiling SwiftTerm BufferSet.swift
[248/288] Compiling SwiftTerm ByteRunScanner.swift
[249/288] Compiling SwiftTerm CellStorage.swift
[250/288] Compiling SwiftTerm CharData.swift
[251/288] Compiling SwiftTerm CharSets.swift
[252/288] Compiling SwiftTerm SearchLineCache.swift
[253/288] Compiling SwiftTerm SearchOptions.swift
[254/288] Compiling SwiftTerm SearchService.swift
[255/288] Compiling SwiftTerm SearchState.swift
[256/288] Compiling SwiftTerm SelectionService.swift
[257/288] Compiling SwiftTerm SemanticPrompt.swift
[258/288] Compiling SwiftTerm SixelDcsHandler.swift
[259/288] Compiling SwiftTerm SyncDebug.swift
[260/288] Compiling SwiftTerm File.swift
[261/288] Compiling SwiftTerm HangulInput.swift
[262/288] Compiling SwiftTerm HeadlessTerminal.swift
[263/288] Compiling SwiftTerm IOTimerQueue.swift
[264/288] Compiling SwiftTerm KittyClipboardGrants.swift
[265/288] Compiling SwiftTerm KittyClipboardProtocol.swift
[266/288] Compiling SwiftTerm KittyGraphics.swift
[267/288] Compiling SwiftTerm KittyGraphicsSnapshot.swift
[268/288] Compiling SwiftTerm Terminal.swift
[269/288] Compiling SwiftTerm TerminalIOPipeline.swift
[270/288] Compiling SwiftTerm TerminalLock.swift
[271/288] Compiling SwiftTerm TerminalMouseInput.swift
[272/288] Compiling SwiftTerm TerminalOptions.swift
[273/288] Compiling SwiftTerm TerminalPaste.swift
[274/288] Compiling SwiftTerm TerminalTapPolicy.swift
[275/288] Compiling SwiftTerm TerminalViewSearch.swift
[276/288] Compiling SwiftTerm TerminalWebInput.swift
[277/288] Compiling SwiftTerm TextInputUTF16.swift
[278/288] Compiling SwiftTerm UnicodeWidthData.swift
[279/288] Compiling SwiftTerm Utilities.swift
[280/288] Compiling SwiftTerm SwiftTermBuildInfo.swift
[281/288] Compiling SwiftTerm SwiftTermTerminfo.swift
[282/289] Wrapping AST for SwiftTerm for debugging
[284/296] Compiling SwiftTermFuzz main.swift
[285/296] Emitting module SwiftTermFuzz
[286/297] Wrapping AST for SwiftTermFuzz for debugging
[287/297] Write Objects.LinkFileList
[288/297] Linking SwiftTermFuzz
error: emit-module command failed with exit code 1 (use -v to see invocation)
[290/297] Compiling Termcast AsciicastFormat.swift
[291/297] Compiling Termcast main.swift
[292/297] 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: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 |     }
[293/297] 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: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.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/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.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/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.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/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 |         }
[294/297] 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.2 android