Build Information
Failed to build UPnPCast, reference main (a91355), with Swift 6.1 for Android on 3 Oct 2026 06:33:32 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344845-2":/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.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/CreatureSurvive/UPnPCast.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/CreatureSurvive/UPnPCast
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at a91355a README: minimum toolchain is Swift 6.1 (Xcode 16.4), as tested in CI
Cloned https://github.com/CreatureSurvive/UPnPCast.git
Revision (git rev-parse @):
a91355ad69975496e7e86518c63664351bee4986
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/CreatureSurvive/UPnPCast.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.1
Building package at path: $PWD
https://github.com/CreatureSurvive/UPnPCast.git
https://github.com/CreatureSurvive/UPnPCast.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344845-2":/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.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:a7f4f752e160f6cbd9e0c26490aa43ccd5312d524c4c6d77f8b144559b526afa
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/8] Compiling UPnPCast UPnPDevice.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:53: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:67: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:220:45: error: cannot find type 'XMLParserDelegate' in scope
218 | }
219 |
220 | private final class Delegate: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
221 | var root: Element?
222 | var stack: [Element] = []
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:224:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
222 | var stack: [Element] = []
223 |
224 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName: String?, attributes: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | let local = elementName.split(separator: ":").last.map(String.init) ?? elementName
226 | let element = Element(name: local, attributes: attributes)
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:231:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
229 | }
230 |
231 | func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName: String?) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
232 | _ = stack.popLast()
233 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:235:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
233 | }
234 |
235 | func parser(_ parser: XMLParser, foundCharacters string: String) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
236 | stack.last?.textParts.append(string)
237 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:239:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
237 | }
238 |
239 | func parser(_ parser: XMLParser, foundCDATA CDATABlock: Data) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
240 | stack.last?.textParts.append(String(decoding: CDATABlock, as: UTF8.self))
241 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:95:23: error: cannot find 'URLRequest' in scope
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
95 | var request = URLRequest(url: url, timeoutInterval: 10)
| `- error: cannot find 'URLRequest' in scope
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
97 | let (data, response) = try await session.data(for: request)
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:97:50: error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
97 | let (data, response) = try await session.data(for: request)
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
98 | if let http = response as? HTTPURLResponse, !(200...299).contains(http.statusCode) {
99 | throw UPnPError.httpStatus(http.statusCode)
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:210:22: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
208 | static func parse(_ data: Data) throws -> Element {
209 | let delegate = Delegate()
210 | let parser = XMLParser(data: data)
| `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
211 | parser.shouldProcessNamespaces = false
212 | parser.shouldResolveExternalEntities = false
[4/8] Compiling UPnPCast SOAP.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:25: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
9 | self.session = session
10 | self.timeout = timeout
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
9 | self.session = session
10 | self.timeout = timeout
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:16: error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
6 | public var timeout: TimeInterval
7 |
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:20:23: error: cannot find 'URLRequest' in scope
18 |
19 | public func invoke(_ action: String, on service: UPnPService, orderedArguments: [(String, String)]) async throws -> [String: String] {
20 | var request = URLRequest(url: service.controlURL, timeoutInterval: timeout)
| `- error: cannot find 'URLRequest' in scope
21 | request.httpMethod = "POST"
22 | request.setValue("text/xml; charset=\"utf-8\"", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:28:23: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
26 |
27 | let data: Data
28 | let response: URLResponse
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
29 | do {
30 | (data, response) = try await session.data(for: request)
Foundation.URLResponse:2:18: note: 'URLResponse' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLResponse = AnyObject
| `- note: 'URLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:30:50: error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
28 | let response: URLResponse
29 | do {
30 | (data, response) = try await session.data(for: request)
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
31 | } catch {
32 | throw UPnPError.network(error.localizedDescription)
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:34:32: warning: conditional cast from 'URLResponse' (aka 'AnyObject') to 'HTTPURLResponse' (aka 'AnyObject') always succeeds
32 | throw UPnPError.network(error.localizedDescription)
33 | }
34 | let status = (response as? HTTPURLResponse)?.statusCode ?? 200
| `- warning: conditional cast from 'URLResponse' (aka 'AnyObject') to 'HTTPURLResponse' (aka 'AnyObject') always succeeds
35 | if status == 500, let fault = Self.fault(in: data) { throw fault }
36 | guard (200...299).contains(status) else { throw UPnPError.httpStatus(status) }
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:34:54: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
32 | throw UPnPError.network(error.localizedDescription)
33 | }
34 | let status = (response as? HTTPURLResponse)?.statusCode ?? 200
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
35 | if status == 500, let fault = Self.fault(in: data) { throw fault }
36 | guard (200...299).contains(status) else { throw UPnPError.httpStatus(status) }
[5/8] Compiling UPnPCast SSDP.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:18: error: cannot find 'socket' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'socket' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:25: error: cannot find 'AF_INET' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'AF_INET' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:34: error: cannot find 'SOCK_DGRAM' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'SOCK_DGRAM' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:46: error: cannot find 'IPPROTO_UDP' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'IPPROTO_UDP' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:106:17: error: cannot find 'close' in scope
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
| `- error: cannot find 'close' in scope
107 |
108 | var ttl: UInt8 = 2
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:109:9: error: cannot find 'setsockopt' in scope
107 |
108 | var ttl: UInt8 = 2
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
| `- error: cannot find 'setsockopt' in scope
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:109:24: error: cannot find 'IPPROTO_IP' in scope
107 |
108 | var ttl: UInt8 = 2
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
| `- error: cannot find 'IPPROTO_IP' in scope
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:109:36: error: cannot find 'IP_MULTICAST_TTL' in scope
107 |
108 | var ttl: UInt8 = 2
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
| `- error: cannot find 'IP_MULTICAST_TTL' in scope
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:111:9: error: cannot find 'setsockopt' in scope
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
| `- error: cannot find 'setsockopt' in scope
112 |
113 | var destination = sockaddr_in()
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:111:24: error: cannot find 'SOL_SOCKET' in scope
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
| `- error: cannot find 'SOL_SOCKET' in scope
112 |
113 | var destination = sockaddr_in()
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:111:36: error: cannot find 'SO_REUSEADDR' in scope
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
| `- error: cannot find 'SO_REUSEADDR' in scope
112 |
113 | var destination = sockaddr_in()
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:113:27: error: cannot find 'sockaddr_in' in scope
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
112 |
113 | var destination = sockaddr_in()
| `- error: cannot find 'sockaddr_in' in scope
114 | destination.sin_family = sa_family_t(AF_INET)
115 | destination.sin_port = UInt16(1900).bigEndian
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:114:34: error: cannot find 'sa_family_t' in scope
112 |
113 | var destination = sockaddr_in()
114 | destination.sin_family = sa_family_t(AF_INET)
| `- error: cannot find 'sa_family_t' in scope
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:114:46: error: cannot find 'AF_INET' in scope
112 |
113 | var destination = sockaddr_in()
114 | destination.sin_family = sa_family_t(AF_INET)
| `- error: cannot find 'AF_INET' in scope
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:116:9: error: cannot find 'inet_pton' in scope
114 | destination.sin_family = sa_family_t(AF_INET)
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
| `- error: cannot find 'inet_pton' in scope
117 |
118 | let message = Array(searchMessage(target: target, maxWait: Int(max(1, min(5, duration - 0.5)))).utf8)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:116:19: error: cannot find 'AF_INET' in scope
114 | destination.sin_family = sa_family_t(AF_INET)
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
| `- error: cannot find 'AF_INET' in scope
117 |
118 | let message = Array(searchMessage(target: target, maxWait: Int(max(1, min(5, duration - 0.5)))).utf8)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:122:51: error: cannot find 'sockaddr' in scope
120 | let sent = message.withUnsafeBytes { buffer in
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: cannot find 'sockaddr' in scope
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
124 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:123:25: error: cannot find 'sendto' in scope
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
| `- error: cannot find 'sendto' in scope
124 | }
125 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:123:100: error: cannot find type 'sockaddr_in' in scope
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
| `- error: cannot find type 'sockaddr_in' in scope
124 | }
125 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:122:29: error: generic parameter 'T' could not be inferred
120 | let sent = message.withUnsafeBytes { buffer in
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: generic parameter 'T' could not be inferred
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
124 | }
Swift.UnsafePointer.withMemoryRebound:2:13: note: in call to function 'withMemoryRebound(to:capacity:_:)'
1 | generic struct UnsafePointer {
2 | public func withMemoryRebound<T, E, Result>(to type: T.Type, capacity count: Int, _ body: (_ pointer: UnsafePointer<T>) throws(E) -> Result) throws(E) -> Result where E : Error, T : ~Copyable, Result : ~Copyable}
| `- note: in call to function 'withMemoryRebound(to:capacity:_:)'
3 |
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:142:34: error: cannot find 'pollfd' in scope
140 | try sendSearch()
141 | }
142 | var pollDescriptor = pollfd(fd: fd, events: Int16(POLLIN), revents: 0)
| `- error: cannot find 'pollfd' in scope
143 | let waitMilliseconds = Int32(min(100, max(1, (duration - elapsed) * 1000)))
144 | let ready = poll(&pollDescriptor, 1, waitMilliseconds)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:142:63: error: cannot find 'POLLIN' in scope
140 | try sendSearch()
141 | }
142 | var pollDescriptor = pollfd(fd: fd, events: Int16(POLLIN), revents: 0)
| `- error: cannot find 'POLLIN' in scope
143 | let waitMilliseconds = Int32(min(100, max(1, (duration - elapsed) * 1000)))
144 | let ready = poll(&pollDescriptor, 1, waitMilliseconds)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:144:25: error: cannot find 'poll' in scope
142 | var pollDescriptor = pollfd(fd: fd, events: Int16(POLLIN), revents: 0)
143 | let waitMilliseconds = Int32(min(100, max(1, (duration - elapsed) * 1000)))
144 | let ready = poll(&pollDescriptor, 1, waitMilliseconds)
| `- error: cannot find 'poll' in scope
145 | guard ready > 0 else { continue }
146 |
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:147:26: error: cannot find 'sockaddr_in' in scope
145 | guard ready > 0 else { continue }
146 |
147 | var source = sockaddr_in()
| `- error: cannot find 'sockaddr_in' in scope
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:148:55: error: cannot find type 'sockaddr_in' in scope
146 |
147 | var source = sockaddr_in()
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
| `- error: cannot find type 'sockaddr_in' in scope
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:150:47: error: cannot find 'sockaddr' in scope
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: cannot find 'sockaddr' in scope
151 | recvfrom(fd, &buffer, buffer.count, 0, $0, &sourceLength)
152 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:151:21: error: cannot find 'recvfrom' in scope
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
151 | recvfrom(fd, &buffer, buffer.count, 0, $0, &sourceLength)
| `- error: cannot find 'recvfrom' in scope
152 | }
153 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:150:25: error: generic parameter 'T' could not be inferred
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: generic parameter 'T' could not be inferred
151 | recvfrom(fd, &buffer, buffer.count, 0, $0, &sourceLength)
152 | }
Swift.UnsafeMutablePointer.withMemoryRebound:2:13: note: in call to function 'withMemoryRebound(to:capacity:_:)'
1 | generic struct UnsafeMutablePointer {
2 | public func withMemoryRebound<T, E, Result>(to type: T.Type, capacity count: Int, _ body: (_ pointer: UnsafeMutablePointer<T>) throws(E) -> Result) throws(E) -> Result where E : Error, T : ~Copyable, Result : ~Copyable}
| `- note: in call to function 'withMemoryRebound(to:capacity:_:)'
3 |
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:155:66: error: cannot find 'INET_ADDRSTRLEN' in scope
153 | }
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
| `- error: cannot find 'INET_ADDRSTRLEN' in scope
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:156:13: error: cannot find 'inet_ntop' in scope
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
| `- error: cannot find 'inet_ntop' in scope
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
158 | let text = String(decoding: buffer[0..<count], as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:156:23: error: cannot find 'AF_INET' in scope
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
| `- error: cannot find 'AF_INET' in scope
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
158 | let text = String(decoding: buffer[0..<count], as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:156:76: error: cannot find 'INET_ADDRSTRLEN' in scope
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
| `- error: cannot find 'INET_ADDRSTRLEN' in scope
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
158 | let text = String(decoding: buffer[0..<count], as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:169:66: error: cannot find 'errno' in scope
167 |
168 | private func errnoDescription() -> String {
169 | String(decoding: [CChar](UnsafeBufferPointer(start: strerror(errno), count: strlen(strerror(errno)))).map { UInt8(bitPattern: $0) }, as: UTF8.self)
| `- error: cannot find 'errno' in scope
170 | }
171 |
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-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/UPnPCast/SSDP.swift:169:97: error: cannot find 'errno' in scope
167 |
168 | private func errnoDescription() -> String {
169 | String(decoding: [CChar](UnsafeBufferPointer(start: strerror(errno), count: strlen(strerror(errno)))).map { UInt8(bitPattern: $0) }, as: UTF8.self)
| `- error: cannot find 'errno' in scope
170 | }
171 |
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-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
[6/8] Compiling UPnPCast DIDL.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
[7/8] Compiling UPnPCast MediaRenderer.swift
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
9 | self.session = session
10 | self.timeout = timeout
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:76: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:90: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:62: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:76: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[8/8] Emitting module UPnPCast
<unknown>:0: warning: upcoming feature 'InferSendableFromCaptures' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'GlobalActorIsolatedTypesUsability' is already enabled as of Swift version 6
<unknown>:0: warning: upcoming feature 'DisableOutwardActorInference' is already enabled as of Swift version 6
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
9 | self.session = session
10 | self.timeout = timeout
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:76: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:90: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:62: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:76: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:25: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
9 | self.session = session
10 | self.timeout = timeout
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:16: error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
6 | public var timeout: TimeInterval
7 |
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:53: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:67: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:220:45: error: cannot find type 'XMLParserDelegate' in scope
218 | }
219 |
220 | private final class Delegate: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
221 | var root: Element?
222 | var stack: [Element] = []
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:224:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
222 | var stack: [Element] = []
223 |
224 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName: String?, attributes: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | let local = elementName.split(separator: ":").last.map(String.init) ?? elementName
226 | let element = Element(name: local, attributes: attributes)
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:231:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
229 | }
230 |
231 | func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName: String?) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
232 | _ = stack.popLast()
233 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:235:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
233 | }
234 |
235 | func parser(_ parser: XMLParser, foundCharacters string: String) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
236 | stack.last?.textParts.append(string)
237 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:239:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
237 | }
238 |
239 | func parser(_ parser: XMLParser, foundCDATA CDATABlock: Data) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
240 | stack.last?.textParts.append(String(decoding: CDATABlock, as: UTF8.self))
241 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344845-2":/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.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:a7f4f752e160f6cbd9e0c26490aa43ccd5312d524c4c6d77f8b144559b526afa
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
[0/1] Planning build
Building for debugging...
[0/1] Write swift-version-24593BA9C3E375BF.txt
[2/7] Compiling UPnPCast UPnPDevice.swift
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:53: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:67: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:220:45: error: cannot find type 'XMLParserDelegate' in scope
218 | }
219 |
220 | private final class Delegate: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
221 | var root: Element?
222 | var stack: [Element] = []
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:224:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
222 | var stack: [Element] = []
223 |
224 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName: String?, attributes: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | let local = elementName.split(separator: ":").last.map(String.init) ?? elementName
226 | let element = Element(name: local, attributes: attributes)
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:231:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
229 | }
230 |
231 | func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName: String?) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
232 | _ = stack.popLast()
233 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:235:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
233 | }
234 |
235 | func parser(_ parser: XMLParser, foundCharacters string: String) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
236 | stack.last?.textParts.append(string)
237 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:239:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
237 | }
238 |
239 | func parser(_ parser: XMLParser, foundCDATA CDATABlock: Data) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
240 | stack.last?.textParts.append(String(decoding: CDATABlock, as: UTF8.self))
241 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:95:23: error: cannot find 'URLRequest' in scope
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
95 | var request = URLRequest(url: url, timeoutInterval: 10)
| `- error: cannot find 'URLRequest' in scope
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
97 | let (data, response) = try await session.data(for: request)
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:97:50: error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
97 | let (data, response) = try await session.data(for: request)
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
98 | if let http = response as? HTTPURLResponse, !(200...299).contains(http.statusCode) {
99 | throw UPnPError.httpStatus(http.statusCode)
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:210:22: error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
208 | static func parse(_ data: Data) throws -> Element {
209 | let delegate = Delegate()
210 | let parser = XMLParser(data: data)
| `- error: 'XMLParser' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
211 | parser.shouldProcessNamespaces = false
212 | parser.shouldResolveExternalEntities = false
error: emit-module command failed with exit code 1 (use -v to see invocation)
[3/7] Compiling UPnPCast DIDL.swift
[4/7] Emitting module UPnPCast
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
9 | self.session = session
10 | self.timeout = timeout
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:76: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:90: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:62: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:76: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:25: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
9 | self.session = session
10 | self.timeout = timeout
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:16: error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
6 | public var timeout: TimeInterval
7 |
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:53: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:94:67: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
92 |
93 | /// Downloads and parses a device description.
94 | public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
95 | var request = URLRequest(url: url, timeoutInterval: 10)
96 | request.setValue("UPnPCast/1.0 UPnP/1.1", forHTTPHeaderField: "User-Agent")
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:220:45: error: cannot find type 'XMLParserDelegate' in scope
218 | }
219 |
220 | private final class Delegate: NSObject, XMLParserDelegate {
| `- error: cannot find type 'XMLParserDelegate' in scope
221 | var root: Element?
222 | var stack: [Element] = []
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:224:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
222 | var stack: [Element] = []
223 |
224 | func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName: String?, attributes: [String: String] = [:]) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
225 | let local = elementName.split(separator: ":").last.map(String.init) ?? elementName
226 | let element = Element(name: local, attributes: attributes)
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:231:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
229 | }
230 |
231 | func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName: String?) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
232 | _ = stack.popLast()
233 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:235:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
233 | }
234 |
235 | func parser(_ parser: XMLParser, foundCharacters string: String) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
236 | stack.last?.textParts.append(string)
237 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/UPnPDevice.swift:239:31: error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
237 | }
238 |
239 | func parser(_ parser: XMLParser, foundCDATA CDATABlock: Data) {
| `- error: 'XMLParser' is unavailable: This type has moved to the FoundationXML module. Import that module to use it.
240 | stack.last?.textParts.append(String(decoding: CDATABlock, as: UTF8.self))
241 | }
Foundation.XMLParser:2:18: note: 'XMLParser' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationXML module. Import that module to use it.")
2 | public typealias XMLParser = AnyObject
| `- note: 'XMLParser' has been explicitly marked unavailable here
[5/7] Compiling UPnPCast SOAP.swift
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:25: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
9 | self.session = session
10 | self.timeout = timeout
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
9 | self.session = session
10 | self.timeout = timeout
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:5:16: error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
3 | /// Invokes UPnP actions over SOAP.
4 | public struct SOAPClient: Sendable {
5 | public var session: URLSession
| `- error: stored property 'session' of 'Sendable'-conforming struct 'SOAPClient' has non-sendable type 'URLSession' (aka 'AnyObject')
6 | public var timeout: TimeInterval
7 |
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:20:23: error: cannot find 'URLRequest' in scope
18 |
19 | public func invoke(_ action: String, on service: UPnPService, orderedArguments: [(String, String)]) async throws -> [String: String] {
20 | var request = URLRequest(url: service.controlURL, timeoutInterval: timeout)
| `- error: cannot find 'URLRequest' in scope
21 | request.httpMethod = "POST"
22 | request.setValue("text/xml; charset=\"utf-8\"", forHTTPHeaderField: "Content-Type")
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:28:23: error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
26 |
27 | let data: Data
28 | let response: URLResponse
| `- error: 'URLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
29 | do {
30 | (data, response) = try await session.data(for: request)
Foundation.URLResponse:2:18: note: 'URLResponse' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLResponse = AnyObject
| `- note: 'URLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:30:50: error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
28 | let response: URLResponse
29 | do {
30 | (data, response) = try await session.data(for: request)
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
31 | } catch {
32 | throw UPnPError.network(error.localizedDescription)
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:34:32: warning: conditional cast from 'URLResponse' (aka 'AnyObject') to 'HTTPURLResponse' (aka 'AnyObject') always succeeds
32 | throw UPnPError.network(error.localizedDescription)
33 | }
34 | let status = (response as? HTTPURLResponse)?.statusCode ?? 200
| `- warning: conditional cast from 'URLResponse' (aka 'AnyObject') to 'HTTPURLResponse' (aka 'AnyObject') always succeeds
35 | if status == 500, let fault = Self.fault(in: data) { throw fault }
36 | guard (200...299).contains(status) else { throw UPnPError.httpStatus(status) }
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:34:54: error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
32 | throw UPnPError.network(error.localizedDescription)
33 | }
34 | let status = (response as? HTTPURLResponse)?.statusCode ?? 200
| `- error: value of type 'HTTPURLResponse' (aka 'AnyObject') has no member 'statusCode'
35 | if status == 500, let fault = Self.fault(in: data) { throw fault }
36 | guard (200...299).contains(status) else { throw UPnPError.httpStatus(status) }
[6/7] Compiling UPnPCast MediaRenderer.swift
/host/spi-builder-workspace/Sources/UPnPCast/SOAP.swift:8:40: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
6 | public var timeout: TimeInterval
7 |
8 | public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
9 | self.session = session
10 | self.timeout = timeout
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:76: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:81:90: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
79 |
80 | /// Discovers media renderers on the local network.
81 | public static func discover(duration: Duration = .seconds(3), session: URLSession = .shared) async throws -> [MediaRenderer] {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
82 | let responses = try await SSDP.discover(target: SSDP.SearchTarget.mediaRenderer, duration: duration)
83 | let locations = Set(responses.map(\.location))
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:62: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
Foundation.URLSession:2:18: note: 'URLSession' has been explicitly marked unavailable here
1 | @available(*, unavailable, message: "This type has moved to the FoundationNetworking module. Import that module to use it.")
2 | public typealias URLSession = AnyObject
| `- note: 'URLSession' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/UPnPCast/MediaRenderer.swift:100:76: error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
98 |
99 | /// Connects to a renderer whose description URL is known.
100 | public static func connect(descriptionURL: URL, session: URLSession = .shared) async throws -> MediaRenderer {
| `- error: type 'URLSession' (aka 'AnyObject') has no member 'shared'
101 | try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 | }
[7/7] Compiling UPnPCast SSDP.swift
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:18: error: cannot find 'socket' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'socket' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:25: error: cannot find 'AF_INET' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'AF_INET' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:34: error: cannot find 'SOCK_DGRAM' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'SOCK_DGRAM' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:104:46: error: cannot find 'IPPROTO_UDP' in scope
102 |
103 | private static func runSearch(target: String, duration: TimeInterval, cancelled: CancellationFlag, continuation: AsyncThrowingStream<SSDPResponse, any Error>.Continuation) throws {
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
| `- error: cannot find 'IPPROTO_UDP' in scope
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:106:17: error: cannot find 'close' in scope
104 | let fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
105 | guard fd >= 0 else { throw UPnPError.network("socket() failed: \(errnoDescription())") }
106 | defer { close(fd) }
| `- error: cannot find 'close' in scope
107 |
108 | var ttl: UInt8 = 2
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:109:9: error: cannot find 'setsockopt' in scope
107 |
108 | var ttl: UInt8 = 2
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
| `- error: cannot find 'setsockopt' in scope
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:109:24: error: cannot find 'IPPROTO_IP' in scope
107 |
108 | var ttl: UInt8 = 2
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
| `- error: cannot find 'IPPROTO_IP' in scope
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:109:36: error: cannot find 'IP_MULTICAST_TTL' in scope
107 |
108 | var ttl: UInt8 = 2
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
| `- error: cannot find 'IP_MULTICAST_TTL' in scope
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:111:9: error: cannot find 'setsockopt' in scope
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
| `- error: cannot find 'setsockopt' in scope
112 |
113 | var destination = sockaddr_in()
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:111:24: error: cannot find 'SOL_SOCKET' in scope
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
| `- error: cannot find 'SOL_SOCKET' in scope
112 |
113 | var destination = sockaddr_in()
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:111:36: error: cannot find 'SO_REUSEADDR' in scope
109 | setsockopt(fd, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, socklen_t(MemoryLayout<UInt8>.size))
110 | var reuse: Int32 = 1
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
| `- error: cannot find 'SO_REUSEADDR' in scope
112 |
113 | var destination = sockaddr_in()
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:113:27: error: cannot find 'sockaddr_in' in scope
111 | setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, socklen_t(MemoryLayout<Int32>.size))
112 |
113 | var destination = sockaddr_in()
| `- error: cannot find 'sockaddr_in' in scope
114 | destination.sin_family = sa_family_t(AF_INET)
115 | destination.sin_port = UInt16(1900).bigEndian
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:114:34: error: cannot find 'sa_family_t' in scope
112 |
113 | var destination = sockaddr_in()
114 | destination.sin_family = sa_family_t(AF_INET)
| `- error: cannot find 'sa_family_t' in scope
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:114:46: error: cannot find 'AF_INET' in scope
112 |
113 | var destination = sockaddr_in()
114 | destination.sin_family = sa_family_t(AF_INET)
| `- error: cannot find 'AF_INET' in scope
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:116:9: error: cannot find 'inet_pton' in scope
114 | destination.sin_family = sa_family_t(AF_INET)
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
| `- error: cannot find 'inet_pton' in scope
117 |
118 | let message = Array(searchMessage(target: target, maxWait: Int(max(1, min(5, duration - 0.5)))).utf8)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:116:19: error: cannot find 'AF_INET' in scope
114 | destination.sin_family = sa_family_t(AF_INET)
115 | destination.sin_port = UInt16(1900).bigEndian
116 | inet_pton(AF_INET, "239.255.255.250", &destination.sin_addr)
| `- error: cannot find 'AF_INET' in scope
117 |
118 | let message = Array(searchMessage(target: target, maxWait: Int(max(1, min(5, duration - 0.5)))).utf8)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:122:51: error: cannot find 'sockaddr' in scope
120 | let sent = message.withUnsafeBytes { buffer in
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: cannot find 'sockaddr' in scope
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
124 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:123:25: error: cannot find 'sendto' in scope
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
| `- error: cannot find 'sendto' in scope
124 | }
125 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:123:100: error: cannot find type 'sockaddr_in' in scope
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
| `- error: cannot find type 'sockaddr_in' in scope
124 | }
125 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:122:29: error: generic parameter 'T' could not be inferred
120 | let sent = message.withUnsafeBytes { buffer in
121 | withUnsafePointer(to: &destination) { pointer in
122 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: generic parameter 'T' could not be inferred
123 | sendto(fd, buffer.baseAddress, buffer.count, 0, $0, socklen_t(MemoryLayout<sockaddr_in>.size))
124 | }
Swift.UnsafePointer.withMemoryRebound:2:13: note: in call to function 'withMemoryRebound(to:capacity:_:)'
1 | generic struct UnsafePointer {
2 | public func withMemoryRebound<T, E, Result>(to type: T.Type, capacity count: Int, _ body: (_ pointer: UnsafePointer<T>) throws(E) -> Result) throws(E) -> Result where E : Error, T : ~Copyable, Result : ~Copyable}
| `- note: in call to function 'withMemoryRebound(to:capacity:_:)'
3 |
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:142:34: error: cannot find 'pollfd' in scope
140 | try sendSearch()
141 | }
142 | var pollDescriptor = pollfd(fd: fd, events: Int16(POLLIN), revents: 0)
| `- error: cannot find 'pollfd' in scope
143 | let waitMilliseconds = Int32(min(100, max(1, (duration - elapsed) * 1000)))
144 | let ready = poll(&pollDescriptor, 1, waitMilliseconds)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:142:63: error: cannot find 'POLLIN' in scope
140 | try sendSearch()
141 | }
142 | var pollDescriptor = pollfd(fd: fd, events: Int16(POLLIN), revents: 0)
| `- error: cannot find 'POLLIN' in scope
143 | let waitMilliseconds = Int32(min(100, max(1, (duration - elapsed) * 1000)))
144 | let ready = poll(&pollDescriptor, 1, waitMilliseconds)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:144:25: error: cannot find 'poll' in scope
142 | var pollDescriptor = pollfd(fd: fd, events: Int16(POLLIN), revents: 0)
143 | let waitMilliseconds = Int32(min(100, max(1, (duration - elapsed) * 1000)))
144 | let ready = poll(&pollDescriptor, 1, waitMilliseconds)
| `- error: cannot find 'poll' in scope
145 | guard ready > 0 else { continue }
146 |
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:147:26: error: cannot find 'sockaddr_in' in scope
145 | guard ready > 0 else { continue }
146 |
147 | var source = sockaddr_in()
| `- error: cannot find 'sockaddr_in' in scope
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:148:55: error: cannot find type 'sockaddr_in' in scope
146 |
147 | var source = sockaddr_in()
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
| `- error: cannot find type 'sockaddr_in' in scope
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:150:47: error: cannot find 'sockaddr' in scope
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: cannot find 'sockaddr' in scope
151 | recvfrom(fd, &buffer, buffer.count, 0, $0, &sourceLength)
152 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:151:21: error: cannot find 'recvfrom' in scope
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
151 | recvfrom(fd, &buffer, buffer.count, 0, $0, &sourceLength)
| `- error: cannot find 'recvfrom' in scope
152 | }
153 | }
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:150:25: error: generic parameter 'T' could not be inferred
148 | var sourceLength = socklen_t(MemoryLayout<sockaddr_in>.size)
149 | let count = withUnsafeMutablePointer(to: &source) { pointer in
150 | pointer.withMemoryRebound(to: sockaddr.self, capacity: 1) {
| `- error: generic parameter 'T' could not be inferred
151 | recvfrom(fd, &buffer, buffer.count, 0, $0, &sourceLength)
152 | }
Swift.UnsafeMutablePointer.withMemoryRebound:2:13: note: in call to function 'withMemoryRebound(to:capacity:_:)'
1 | generic struct UnsafeMutablePointer {
2 | public func withMemoryRebound<T, E, Result>(to type: T.Type, capacity count: Int, _ body: (_ pointer: UnsafeMutablePointer<T>) throws(E) -> Result) throws(E) -> Result where E : Error, T : ~Copyable, Result : ~Copyable}
| `- note: in call to function 'withMemoryRebound(to:capacity:_:)'
3 |
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:155:66: error: cannot find 'INET_ADDRSTRLEN' in scope
153 | }
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
| `- error: cannot find 'INET_ADDRSTRLEN' in scope
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:156:13: error: cannot find 'inet_ntop' in scope
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
| `- error: cannot find 'inet_ntop' in scope
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
158 | let text = String(decoding: buffer[0..<count], as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:156:23: error: cannot find 'AF_INET' in scope
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
| `- error: cannot find 'AF_INET' in scope
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
158 | let text = String(decoding: buffer[0..<count], as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:156:76: error: cannot find 'INET_ADDRSTRLEN' in scope
154 | guard count > 0 else { continue }
155 | var addressBuffer = [CChar](repeating: 0, count: Int(INET_ADDRSTRLEN))
156 | inet_ntop(AF_INET, &source.sin_addr, &addressBuffer, socklen_t(INET_ADDRSTRLEN))
| `- error: cannot find 'INET_ADDRSTRLEN' in scope
157 | let address = String(decoding: addressBuffer.prefix { $0 != 0 }.map { UInt8(bitPattern: $0) }, as: UTF8.self)
158 | let text = String(decoding: buffer[0..<count], as: UTF8.self)
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:169:66: error: cannot find 'errno' in scope
167 |
168 | private func errnoDescription() -> String {
169 | String(decoding: [CChar](UnsafeBufferPointer(start: strerror(errno), count: strlen(strerror(errno)))).map { UInt8(bitPattern: $0) }, as: UTF8.self)
| `- error: cannot find 'errno' in scope
170 | }
171 |
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-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/UPnPCast/SSDP.swift:169:97: error: cannot find 'errno' in scope
167 |
168 | private func errnoDescription() -> String {
169 | String(decoding: [CChar](UnsafeBufferPointer(start: strerror(errno), count: strlen(strerror(errno)))).map { UInt8(bitPattern: $0) }, as: UTF8.self)
| `- error: cannot find 'errno' in scope
170 | }
171 |
/root/.swiftpm/swift-sdks/swift-6.1-RELEASE-android-24-0.1.artifactbundle/swift-6.1-release-android-24-sdk/android-27c-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
BUILD FAILURE 6.1 android