The Swift Package Index logo.Swift Package Index

Build Information

Failed to build UPnPCast, reference 1.0.0 (3550fd), with Swift 6.3 for Android on 3 Oct 2026 06:10:05 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/CreatureSurvive/UPnPCast.git
Reference: 1.0.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/CreatureSurvive/UPnPCast
 * tag               1.0.0      -> FETCH_HEAD
HEAD is now at 3550fd5 Harden against hostile input
Cloned https://github.com/CreatureSurvive/UPnPCast.git
Revision (git rev-parse @):
3550fd5c940f09faebedcb0e6f63593db475265f
SUCCESS checkout https://github.com/CreatureSurvive/UPnPCast.git at 1.0.0
========================================
Build
========================================
Selected platform:         android
Swift version:             6.3
Building package at path:  $PWD
https://github.com/CreatureSurvive/UPnPCast.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886770-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.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from saguaro1/spi-images
Digest: sha256:8ca9e1e6d70fd53f5b05e4f64d92569d697563f7f457a1485802bc9eb2cd1382
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/8] 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/SOAP.swift:8:40: error: value of type '_' expected to be instance of class or class-constrained type
  6 |     public var timeout: TimeInterval
  7 |
  8 |     public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
    |                                        `- error: value of type '_' expected to be instance of class or class-constrained type
  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:81:90: error: value of type '_' expected to be instance of class or class-constrained type
 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: value of type '_' expected to be instance of class or class-constrained type
 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: value of type '_' expected to be instance of class or class-constrained type
 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: value of type '_' expected to be instance of class or class-constrained type
101 |         try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 |     }
/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 |     }
[4/8] 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: value of type '_' expected to be instance of class or class-constrained type
  6 |     public var timeout: TimeInterval
  7 |
  8 |     public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
    |                                        `- error: value of type '_' expected to be instance of class or class-constrained type
  9 |         self.session = session
 10 |         self.timeout = timeout
/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 '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 '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
/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.3.2-RELEASE_android.artifactbundle/swift-android/ndk-sysroot/usr/include/errno.h:58:9: note: macro 'errno' unavailable: structure not supported
56 |  * thread.
57 |  */
58 | #define errno (*__errno())
   |         `- note: macro 'errno' unavailable: structure not supported
59 |
60 | __END_DECLS
/host/spi-builder-workspace/Sources/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.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
[6/8] 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:94:67: error: value of type '_' expected to be instance of class or class-constrained type
 92 |
 93 |     /// Downloads and parses a device description.
 94 |     public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
    |                                                                   `- error: value of type '_' expected to be instance of class or class-constrained type
 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)
[7/8] 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/SOAP.swift:8:40: error: value of type '_' expected to be instance of class or class-constrained type
  6 |     public var timeout: TimeInterval
  7 |
  8 |     public init(session: URLSession = .shared, timeout: TimeInterval = 10) {
    |                                        `- error: value of type '_' expected to be instance of class or class-constrained type
  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:81:90: error: value of type '_' expected to be instance of class or class-constrained type
 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: value of type '_' expected to be instance of class or class-constrained type
 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: value of type '_' expected to be instance of class or class-constrained type
 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: value of type '_' expected to be instance of class or class-constrained type
101 |         try MediaRenderer(device: try await UPnPDevice.load(from: descriptionURL, session: session), soap: SOAPClient(session: session))
102 |     }
/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 '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 '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:94:67: error: value of type '_' expected to be instance of class or class-constrained type
 92 |
 93 |     /// Downloads and parses a device description.
 94 |     public static func load(from url: URL, session: URLSession = .shared) async throws -> UPnPDevice {
    |                                                                   `- error: value of type '_' expected to be instance of class or class-constrained type
 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
[8/8] Compiling UPnPCast DIDL.swift
BUILD FAILURE 6.3 android