Build Information
Failed to build UPnPCast, reference 1.0.0 (3550fd), with Swift 6.3 for Wasm on 3 Oct 2026 06:17:17 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344844-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:wasm-6.3-latest swift build --swift-sdk swift-6.3.2-RELEASE_wasm 2>&1Build 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: wasm
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-54344844-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:wasm-6.3-latest swift build --swift-sdk swift-6.3.2-RELEASE_wasm 2>&1
wasm-6.3-latest: Pulling from saguaro1/spi-images
Digest: sha256:253aad7f5b11d25cf9eaef34120b94cd8a325782929c57fb304a7711494a3f9a
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.3-latest
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version-24593BA9C3E375BF.txt
[3/8] Compiling UPnPCast SSDP.swift
/host/spi-builder-workspace/Sources/UPnPCast/SSDP.swift:80:26: error: cannot find 'Thread' in scope
78 | AsyncThrowingStream { continuation in
79 | let cancelled = CancellationFlag()
80 | let thread = Thread {
| `- error: cannot find 'Thread' in scope
81 | do {
82 | try runSearch(target: target, duration: duration.seconds, cancelled: cancelled, continuation: continuation)
/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: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: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: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: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: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: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 | }
[4/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: 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: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
[5/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) }
error: emit-module command failed with exit code 1 (use -v to see invocation)
[6/8] Compiling UPnPCast DIDL.swift
[7/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: 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: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/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 | }
[8/8] Emitting module UPnPCast
/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/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: 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/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/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: 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: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
BUILD FAILURE 6.3 wasm