Build Information
Failed to build Aoxiang, reference 1.1.0 (8ead0b), with Swift 6.3 for Android on 29 Oct 2026 02:47:59 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.4
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/isaced/Aoxiang.git
Reference: 1.1.0
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/isaced/Aoxiang
* tag 1.1.0 -> FETCH_HEAD
HEAD is now at 8ead0b7 test: keep the shared fetch helper out of the connection pool
Cloned https://github.com/isaced/Aoxiang.git
Revision (git rev-parse @):
8ead0b7ad5c5a64527373fd2c33da047d8555375
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/isaced/Aoxiang.git at 1.1.0
========================================
Build
========================================
Selected platform: android
Swift version: 6.3
Building package at path: $PWD
https://github.com/isaced/Aoxiang.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:1259d966e40d034d138a282ea8b980b108763342a7ff8ac7ef483c73e99068f3
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.3-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-272D24FF697CF451.txt
[3/9] Compiling Aoxiang Socket.swift
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:51:16: error: cannot find type 'in_port_t' in scope
49 | ///
50 | /// - Note: This method will throw an error if the port is already in use.
51 | init(port: in_port_t) throws {
| `- error: cannot find type 'in_port_t' in scope
52 | let zero = Int8(0)
53 | let transportLayerType = SOCK_STREAM // TCP
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:53:34: error: cannot find 'SOCK_STREAM' in scope
51 | init(port: in_port_t) throws {
52 | let zero = Int8(0)
53 | let transportLayerType = SOCK_STREAM // TCP
| `- error: cannot find 'SOCK_STREAM' in scope
54 | let internetLayerProtocol = AF_INET // IPv4
55 | let socklen = UInt8(socklen_t(MemoryLayout<sockaddr_in>.size))
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:54:37: error: cannot find 'AF_INET' in scope
52 | let zero = Int8(0)
53 | let transportLayerType = SOCK_STREAM // TCP
54 | let internetLayerProtocol = AF_INET // IPv4
| `- error: cannot find 'AF_INET' in scope
55 | let socklen = UInt8(socklen_t(MemoryLayout<sockaddr_in>.size))
56 | var serveraddr = sockaddr_in()
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:55:52: error: cannot find type 'sockaddr_in' in scope
53 | let transportLayerType = SOCK_STREAM // TCP
54 | let internetLayerProtocol = AF_INET // IPv4
55 | let socklen = UInt8(socklen_t(MemoryLayout<sockaddr_in>.size))
| `- error: cannot find type 'sockaddr_in' in scope
56 | var serveraddr = sockaddr_in()
57 | serveraddr.sin_family = sa_family_t(internetLayerProtocol)
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:56:26: error: cannot find 'sockaddr_in' in scope
54 | let internetLayerProtocol = AF_INET // IPv4
55 | let socklen = UInt8(socklen_t(MemoryLayout<sockaddr_in>.size))
56 | var serveraddr = sockaddr_in()
| `- error: cannot find 'sockaddr_in' in scope
57 | serveraddr.sin_family = sa_family_t(internetLayerProtocol)
58 | serveraddr.sin_port = port.bigEndian
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:57:33: error: cannot find 'sa_family_t' in scope
55 | let socklen = UInt8(socklen_t(MemoryLayout<sockaddr_in>.size))
56 | var serveraddr = sockaddr_in()
57 | serveraddr.sin_family = sa_family_t(internetLayerProtocol)
| `- error: cannot find 'sa_family_t' in scope
58 | serveraddr.sin_port = port.bigEndian
59 | serveraddr.sin_addr = in_addr(s_addr: in_addr_t(0))
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:59:31: error: cannot find 'in_addr' in scope
57 | serveraddr.sin_family = sa_family_t(internetLayerProtocol)
58 | serveraddr.sin_port = port.bigEndian
59 | serveraddr.sin_addr = in_addr(s_addr: in_addr_t(0))
| `- error: cannot find 'in_addr' in scope
60 | serveraddr.sin_zero = (zero, zero, zero, zero, zero, zero, zero, zero)
61 | self.sock = socket(internetLayerProtocol, Int32(transportLayerType), 0)
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:59:47: error: cannot find 'in_addr_t' in scope
57 | serveraddr.sin_family = sa_family_t(internetLayerProtocol)
58 | serveraddr.sin_port = port.bigEndian
59 | serveraddr.sin_addr = in_addr(s_addr: in_addr_t(0))
| `- error: cannot find 'in_addr_t' in scope
60 | serveraddr.sin_zero = (zero, zero, zero, zero, zero, zero, zero, zero)
61 | self.sock = socket(internetLayerProtocol, Int32(transportLayerType), 0)
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:61:21: error: cannot find 'socket' in scope
59 | serveraddr.sin_addr = in_addr(s_addr: in_addr_t(0))
60 | serveraddr.sin_zero = (zero, zero, zero, zero, zero, zero, zero, zero)
61 | self.sock = socket(internetLayerProtocol, Int32(transportLayerType), 0)
| `- error: cannot find 'socket' in scope
62 |
63 | // reuse socket address (for fix "Address already in use")
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:64:9: error: cannot find 'setsockopt' in scope
62 |
63 | // reuse socket address (for fix "Address already in use")
64 | setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &serveraddr, socklen_t(socklen))
| `- error: cannot find 'setsockopt' in scope
65 |
66 | // bind
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:64:26: error: cannot find 'SOL_SOCKET' in scope
62 |
63 | // reuse socket address (for fix "Address already in use")
64 | setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &serveraddr, socklen_t(socklen))
| `- error: cannot find 'SOL_SOCKET' in scope
65 |
66 | // bind
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:64:38: error: cannot find 'SO_REUSEADDR' in scope
62 |
63 | // reuse socket address (for fix "Address already in use")
64 | setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &serveraddr, socklen_t(socklen))
| `- error: cannot find 'SO_REUSEADDR' in scope
65 |
66 | // bind
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:68:13: error: cannot find 'bind' in scope
66 | // bind
67 | let bindResult = withUnsafePointer(to: &serveraddr) {
68 | bind(sock, UnsafePointer<sockaddr>(OpaquePointer($0)), socklen_t(socklen))
| `- error: cannot find 'bind' in scope
69 | }
70 | if bindResult == -1 {
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:68:38: error: cannot find type 'sockaddr' in scope
66 | // bind
67 | let bindResult = withUnsafePointer(to: &serveraddr) {
68 | bind(sock, UnsafePointer<sockaddr>(OpaquePointer($0)), socklen_t(socklen))
| `- error: cannot find type 'sockaddr' in scope
69 | }
70 | if bindResult == -1 {
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:75:12: error: cannot find 'listen' in scope
73 |
74 | // listen
75 | if listen(sock, SOMAXCONN) == -1 {
| `- error: cannot find 'listen' in scope
76 | throw SocketError.listenFailed(errorDescription())
77 | }
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:75:25: error: cannot find 'SOMAXCONN' in scope
73 |
74 | // listen
75 | if listen(sock, SOMAXCONN) == -1 {
| `- error: cannot find 'SOMAXCONN' in scope
76 | throw SocketError.listenFailed(errorDescription())
77 | }
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:91:28: error: cannot find 'Darwin' in scope
89 |
90 | public func accept() throws -> Socket {
91 | let clientSocket = Darwin.accept(sock, nil, nil)
| `- error: cannot find 'Darwin' in scope
92 | if clientSocket == -1 {
93 | throw SocketError.acceptFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:91:48: error: 'nil' requires a contextual type
89 |
90 | public func accept() throws -> Socket {
91 | let clientSocket = Darwin.accept(sock, nil, nil)
| `- error: 'nil' requires a contextual type
92 | if clientSocket == -1 {
93 | throw SocketError.acceptFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:91:53: error: 'nil' requires a contextual type
89 |
90 | public func accept() throws -> Socket {
91 | let clientSocket = Darwin.accept(sock, nil, nil)
| `- error: 'nil' requires a contextual type
92 | if clientSocket == -1 {
93 | throw SocketError.acceptFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:103:22: error: cannot convert value of type 'Int32' to expected argument type '__kernel_suseconds_t' (aka 'Int')
101 | var timeout = timeval(
102 | tv_sec: Int(seconds),
103 | tv_usec: Int32((seconds - seconds.rounded(.down)) * 1_000_000)
| `- error: cannot convert value of type 'Int32' to expected argument type '__kernel_suseconds_t' (aka 'Int')
104 | )
105 | setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, socklen_t(MemoryLayout<timeval>.size))
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:105:9: error: cannot find 'setsockopt' in scope
103 | tv_usec: Int32((seconds - seconds.rounded(.down)) * 1_000_000)
104 | )
105 | setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, socklen_t(MemoryLayout<timeval>.size))
| `- error: cannot find 'setsockopt' in scope
106 | }
107 |
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:105:26: error: cannot find 'SOL_SOCKET' in scope
103 | tv_usec: Int32((seconds - seconds.rounded(.down)) * 1_000_000)
104 | )
105 | setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, socklen_t(MemoryLayout<timeval>.size))
| `- error: cannot find 'SOL_SOCKET' in scope
106 | }
107 |
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:105:38: error: cannot find 'SO_RCVTIMEO' in scope
103 | tv_usec: Int32((seconds - seconds.rounded(.down)) * 1_000_000)
104 | )
105 | setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &timeout, socklen_t(MemoryLayout<timeval>.size))
| `- error: cannot find 'SO_RCVTIMEO' in scope
106 | }
107 |
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:113:9: error: cannot find 'Darwin' in scope
111 | guard !closed else { return }
112 | closed = true
113 | Darwin.close(sock)
| `- error: cannot find 'Darwin' in scope
114 | }
115 |
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:140:26: error: cannot find 'Darwin' in scope
138 | var sent = 0
139 | while sent < length {
140 | let result = Darwin.write(sock, pointer + sent, Int(length - sent))
| `- error: cannot find 'Darwin' in scope
141 | if result <= 0 {
142 | throw SocketError.writeFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:156:21: error: cannot find 'Darwin' in scope
154 | open func read() throws -> UInt8 {
155 | var byte: UInt8 = 0
156 | let count = Darwin.read(sock, &byte, 1)
| `- error: cannot find 'Darwin' in scope
157 | if count == 0 {
158 | throw SocketError.connectionClosed
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:192:29: error: cannot find 'Darwin' in scope
190 | // Compute next read length in bytes. The bytes read is never more than kBufferLength at once.
191 | let readLength = offset + Socket.kBufferLength < length ? Socket.kBufferLength : length - offset
192 | let bytesRead = Darwin.read(sock, baseAddress + offset, readLength)
| `- error: cannot find 'Darwin' in scope
193 | guard bytesRead > 0 else {
194 | throw SocketError.recvFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:221:20: error: cannot find 'sockaddr' in scope
219 |
220 | public func peername() throws -> String {
221 | var addr = sockaddr(), len = socklen_t(MemoryLayout<sockaddr>.size)
| `- error: cannot find 'sockaddr' in scope
222 | if getpeername(sock, &addr, &len) != 0 {
223 | throw SocketError.getPeerNameFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:221:61: error: cannot find type 'sockaddr' in scope
219 |
220 | public func peername() throws -> String {
221 | var addr = sockaddr(), len = socklen_t(MemoryLayout<sockaddr>.size)
| `- error: cannot find type 'sockaddr' in scope
222 | if getpeername(sock, &addr, &len) != 0 {
223 | throw SocketError.getPeerNameFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:222:12: error: cannot find 'getpeername' in scope
220 | public func peername() throws -> String {
221 | var addr = sockaddr(), len = socklen_t(MemoryLayout<sockaddr>.size)
222 | if getpeername(sock, &addr, &len) != 0 {
| `- error: cannot find 'getpeername' in scope
223 | throw SocketError.getPeerNameFailed(errorDescription())
224 | }
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:225:59: error: cannot find 'NI_MAXHOST' in scope
223 | throw SocketError.getPeerNameFailed(errorDescription())
224 | }
225 | var hostBuffer = [CChar](repeating: 0, count: Int(NI_MAXHOST))
| `- error: cannot find 'NI_MAXHOST' in scope
226 | if getnameinfo(&addr, len, &hostBuffer, socklen_t(hostBuffer.count), nil, 0, NI_NUMERICHOST) != 0 {
227 | throw SocketError.getNameInfoFailed(errorDescription())
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:226:12: error: cannot find 'getnameinfo' in scope
224 | }
225 | var hostBuffer = [CChar](repeating: 0, count: Int(NI_MAXHOST))
226 | if getnameinfo(&addr, len, &hostBuffer, socklen_t(hostBuffer.count), nil, 0, NI_NUMERICHOST) != 0 {
| `- error: cannot find 'getnameinfo' in scope
227 | throw SocketError.getNameInfoFailed(errorDescription())
228 | }
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:226:86: error: cannot find 'NI_NUMERICHOST' in scope
224 | }
225 | var hostBuffer = [CChar](repeating: 0, count: Int(NI_MAXHOST))
226 | if getnameinfo(&addr, len, &hostBuffer, socklen_t(hostBuffer.count), nil, 0, NI_NUMERICHOST) != 0 {
| `- error: cannot find 'NI_NUMERICHOST' in scope
227 | throw SocketError.getNameInfoFailed(errorDescription())
228 | }
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:226:78: error: 'nil' requires a contextual type
224 | }
225 | var hostBuffer = [CChar](repeating: 0, count: Int(NI_MAXHOST))
226 | if getnameinfo(&addr, len, &hostBuffer, socklen_t(hostBuffer.count), nil, 0, NI_NUMERICHOST) != 0 {
| `- error: 'nil' requires a contextual type
227 | throw SocketError.getNameInfoFailed(errorDescription())
228 | }
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:234:41: error: cannot find 'errno' in scope
232 | /// A utility function to get a human-readable description of the last error.
233 | func errorDescription() -> String {
234 | return String(cString: strerror(errno))
| `- error: cannot find 'errno' in scope
235 | }
236 | }
/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
[4/9] Compiling Aoxiang HTTPServer.swift
/host/spi-builder-workspace/Sources/Aoxiang/HTTPServer.swift:80:23: error: cannot find type 'in_port_t' in scope
78 | public var readTimeout: TimeInterval = 0
79 |
80 | private var port: in_port_t = 8080
| `- error: cannot find type 'in_port_t' in scope
81 |
82 | #if os(iOS)
/host/spi-builder-workspace/Sources/Aoxiang/HTTPServer.swift:121:31: error: cannot find type 'in_port_t' in scope
119 | /// - Throws: Socket error
120 | /// - Returns: Void
121 | public func start(_ port: in_port_t = 8080) throws {
| `- error: cannot find type 'in_port_t' in scope
122 | self.port = port
123 |
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:51:16: error: cannot find type 'in_port_t' in scope
49 | ///
50 | /// - Note: This method will throw an error if the port is already in use.
51 | init(port: in_port_t) throws {
| `- error: cannot find type 'in_port_t' in scope
52 | let zero = Int8(0)
53 | let transportLayerType = SOCK_STREAM // TCP
/host/spi-builder-workspace/Sources/Aoxiang/HTTPServer.swift:131:41: error: incorrect argument label in call (have 'port:', expected 'sock:')
129 | // start server
130 | self.stop()
131 | let listeningSocket = try Socket(port: port)
| `- error: incorrect argument label in call (have 'port:', expected 'sock:')
132 | self.socket = listeningSocket
133 |
/host/spi-builder-workspace/Sources/Aoxiang/HTTPServer.swift:275:29: warning: result of call to 'wait(timeout:)' is unused [#no-usage]
273 | // loop could still accept on it.
274 | if waitForAcceptLoop {
275 | acceptLoopDone?.wait(timeout: .now() + 2)
| `- warning: result of call to 'wait(timeout:)' is unused [#no-usage]
276 | }
277 | }
[5/9] Compiling Aoxiang HTTPRouter.swift
[6/9] Compiling Aoxiang HTTPResponse.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[7/9] Compiling Aoxiang HTTPRequest.swift
[8/9] Compiling Aoxiang HTTPParser.swift
[9/9] Emitting module Aoxiang
/host/spi-builder-workspace/Sources/Aoxiang/HTTPServer.swift:80:23: error: cannot find type 'in_port_t' in scope
78 | public var readTimeout: TimeInterval = 0
79 |
80 | private var port: in_port_t = 8080
| `- error: cannot find type 'in_port_t' in scope
81 |
82 | #if os(iOS)
/host/spi-builder-workspace/Sources/Aoxiang/HTTPServer.swift:121:31: error: cannot find type 'in_port_t' in scope
119 | /// - Throws: Socket error
120 | /// - Returns: Void
121 | public func start(_ port: in_port_t = 8080) throws {
| `- error: cannot find type 'in_port_t' in scope
122 | self.port = port
123 |
/host/spi-builder-workspace/Sources/Aoxiang/Socket.swift:51:16: error: cannot find type 'in_port_t' in scope
49 | ///
50 | /// - Note: This method will throw an error if the port is already in use.
51 | init(port: in_port_t) throws {
| `- error: cannot find type 'in_port_t' in scope
52 | let zero = Int8(0)
53 | let transportLayerType = SOCK_STREAM // TCP
BUILD FAILURE 6.3 android