Build Information
Failed to build PushPort, reference 0.0.2 (86dfed), with Swift 6.2 for Wasm on 16 Oct 2026 05:44:19 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344846-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest swift build --swift-sdk swift-6.2-RELEASE_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/IamFromUA/PushPortLibraryApple.git
Reference: 0.0.2
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/IamFromUA/PushPortLibraryApple
* tag 0.0.2 -> FETCH_HEAD
HEAD is now at 86dfed6 Complete consent gating, session diagnostics and SDK privacy declarations
Cloned https://github.com/IamFromUA/PushPortLibraryApple.git
Revision (git rev-parse @):
86dfed669f05682963923c36a7ed33df26acf18d
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/IamFromUA/PushPortLibraryApple.git at 0.0.2
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.2
Building package at path: $PWD
https://github.com/IamFromUA/PushPortLibraryApple.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344846-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest swift build --swift-sdk swift-6.2-RELEASE_wasm 2>&1
wasm-6.2-latest: Pulling from saguaro1/spi-images
Digest: sha256:0563b842faffea9ddc6fe15fbd2051d02dff3ef29dc4b5bfe0a0910a084eee81
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.2-latest
Building for debugging...
[0/6] Copying PrivacyInfo.xcprivacy
[1/6] Write sources
[2/6] Copying PrivacyInfo.xcprivacy
[5/6] Write swift-version-24593BA9C3E375BF.txt
[7/12] Compiling PushPortCore StateStore.swift
/host/spi-builder-workspace/Sources/PushPortCore/StateStore.swift:34:48: error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
32 | try data.write(to: file, options: [.atomic, .completeFileProtectionUntilFirstUserAuthentication])
33 | #else
34 | try data.write(to: file, options: .atomic)
| `- error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
35 | #endif
36 | try FileManager.default.setAttributes([.posixPermissions: 0o600], ofItemAtPath: file.path)
FoundationEssentials.Data.WritingOptions.atomic:4:23: note: 'atomic' has been explicitly marked unavailable here
2 | struct WritingOptions {
3 | @available(*, unavailable, message: "atomic writing is unavailable in WASI because temporary files are not supported")
4 | public static let atomic: Data.WritingOptions }
| `- note: 'atomic' has been explicitly marked unavailable here
5 | }
6 |
error: emit-module command failed with exit code 1 (use -v to see invocation)
[8/12] Compiling PushPortCore Models.swift
[9/12] Compiling PushPortCore InstallationEngine.swift
[10/12] Emitting module PushPortCore
/host/spi-builder-workspace/Sources/PushPortCore/Diagnostics.swift:141:146: error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
139 | // Bounded extension storage. Overflow is counted by the host when its own outbox fills.
140 | guard files.count < 1000 else { return }
141 | try JSONEncoder().encode(Envelope(appId: appId, event: event)).write(to: directory.appendingPathComponent(event.id + ".json"), options: .atomic)
| `- error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
142 | }
143 | public func read(appId: String) throws -> [(URL, NotificationEvent)] {
FoundationEssentials.Data.WritingOptions.atomic:4:23: note: 'atomic' has been explicitly marked unavailable here
2 | struct WritingOptions {
3 | @available(*, unavailable, message: "atomic writing is unavailable in WASI because temporary files are not supported")
4 | public static let atomic: Data.WritingOptions }
| `- note: 'atomic' has been explicitly marked unavailable here
5 | }
6 |
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:21:44: error: cannot find type 'URLSessionTaskDelegate' in scope
19 | }
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
| `- error: cannot find type 'URLSessionTaskDelegate' in scope
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:23:41: error: cannot find type 'URLRequest' in scope
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
24 | completionHandler(nil)
25 | }
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:23:83: error: cannot find type 'URLRequest' in scope
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
24 | completionHandler(nil)
25 | }
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:22:32: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
24 | completionHandler(nil)
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/PushPortCore/HTTPTransport.swift:22:50: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
| `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
24 | completionHandler(nil)
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' 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 URLSessionTask = AnyObject
| `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:22:103: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
24 | completionHandler(nil)
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:29:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
27 |
28 | public final class HTTPTransport: Transport, @unchecked Sendable {
29 | private let session: URLSession
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
30 | public init() {
31 | let configuration = URLSessionConfiguration.ephemeral
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
[11/12] Compiling PushPortCore HTTPTransport.swift
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:21:44: error: cannot find type 'URLSessionTaskDelegate' in scope
19 | }
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
| `- error: cannot find type 'URLSessionTaskDelegate' in scope
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:23:41: error: cannot find type 'URLRequest' in scope
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
24 | completionHandler(nil)
25 | }
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:23:83: error: cannot find type 'URLRequest' in scope
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
| `- error: cannot find type 'URLRequest' in scope
24 | completionHandler(nil)
25 | }
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:22:32: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
24 | completionHandler(nil)
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/PushPortCore/HTTPTransport.swift:22:50: error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
| `- error: 'URLSessionTask' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
24 | completionHandler(nil)
Foundation.URLSessionTask:2:18: note: 'URLSessionTask' 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 URLSessionTask = AnyObject
| `- note: 'URLSessionTask' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:22:103: error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
20 |
21 | private final class NoRedirects: NSObject, URLSessionTaskDelegate, @unchecked Sendable {
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
| `- error: 'HTTPURLResponse' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
24 | completionHandler(nil)
Foundation.HTTPURLResponse:2:18: note: 'HTTPURLResponse' 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 HTTPURLResponse = AnyObject
| `- note: 'HTTPURLResponse' has been explicitly marked unavailable here
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:29:26: error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
27 |
28 | public final class HTTPTransport: Transport, @unchecked Sendable {
29 | private let session: URLSession
| `- error: 'URLSession' is unavailable: This type has moved to the FoundationNetworking module. Import that module to use it.
30 | public init() {
31 | let configuration = URLSessionConfiguration.ephemeral
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/PushPortCore/HTTPTransport.swift:24:27: error: 'nil' requires a contextual type
22 | func urlSession(_ session: URLSession, task: URLSessionTask, willPerformHTTPRedirection response: HTTPURLResponse,
23 | newRequest request: URLRequest, completionHandler: @escaping (URLRequest?) -> Void) {
24 | completionHandler(nil)
| `- error: 'nil' requires a contextual type
25 | }
26 | }
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:31:53: error: type 'URLSessionConfiguration' (aka 'AnyObject') has no member 'ephemeral'
29 | private let session: URLSession
30 | public init() {
31 | let configuration = URLSessionConfiguration.ephemeral
| `- error: type 'URLSessionConfiguration' (aka 'AnyObject') has no member 'ephemeral'
32 | configuration.timeoutIntervalForRequest = 15
33 | configuration.timeoutIntervalForResource = 20
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:38:19: error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
36 | configuration.httpCookieStorage = nil
37 | configuration.urlCredentialStorage = nil
38 | session = URLSession(configuration: configuration, delegate: NoRedirects(), delegateQueue: nil)
| `- error: 'URLSession' (aka 'AnyObject') cannot be constructed because it has no accessible initializers
39 | }
40 | deinit { session.invalidateAndCancel() }
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:38:100: error: 'nil' requires a contextual type
36 | configuration.httpCookieStorage = nil
37 | configuration.urlCredentialStorage = nil
38 | session = URLSession(configuration: configuration, delegate: NoRedirects(), delegateQueue: nil)
| `- error: 'nil' requires a contextual type
39 | }
40 | deinit { session.invalidateAndCancel() }
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:40:22: error: value of type 'URLSession' (aka 'AnyObject') has no member 'invalidateAndCancel'
38 | session = URLSession(configuration: configuration, delegate: NoRedirects(), delegateQueue: nil)
39 | }
40 | deinit { session.invalidateAndCancel() }
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'invalidateAndCancel'
41 |
42 | public func configure(_ configuration: Configuration) async throws {
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:77:23: error: cannot find 'URLRequest' in scope
75 | throw PushPortFailure.invalidConfiguration
76 | }
77 | var request = URLRequest(url: url)
| `- error: cannot find 'URLRequest' in scope
78 | request.httpMethod = method; request.httpBody = body
79 | request.setValue("application/json", forHTTPHeaderField: "Accept")
/host/spi-builder-workspace/Sources/PushPortCore/HTTPTransport.swift:83:54: error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
81 | if let secret { request.setValue("Bearer \(secret)", forHTTPHeaderField: "Authorization") }
82 | do {
83 | let (data, response) = try await session.data(for: request)
| `- error: value of type 'URLSession' (aka 'AnyObject') has no member 'data'
84 | guard let response = response as? HTTPURLResponse else { throw PushPortFailure.invalidResponse }
85 | guard (200...299).contains(response.statusCode) else { throw PushPortFailure.http(response.statusCode) }
[12/12] Compiling PushPortCore Diagnostics.swift
/host/spi-builder-workspace/Sources/PushPortCore/Diagnostics.swift:141:146: error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
139 | // Bounded extension storage. Overflow is counted by the host when its own outbox fills.
140 | guard files.count < 1000 else { return }
141 | try JSONEncoder().encode(Envelope(appId: appId, event: event)).write(to: directory.appendingPathComponent(event.id + ".json"), options: .atomic)
| `- error: 'atomic' is unavailable: atomic writing is unavailable in WASI because temporary files are not supported
142 | }
143 | public func read(appId: String) throws -> [(URL, NotificationEvent)] {
FoundationEssentials.Data.WritingOptions.atomic:4:23: note: 'atomic' has been explicitly marked unavailable here
2 | struct WritingOptions {
3 | @available(*, unavailable, message: "atomic writing is unavailable in WASI because temporary files are not supported")
4 | public static let atomic: Data.WritingOptions }
| `- note: 'atomic' has been explicitly marked unavailable here
5 | }
6 |
BUILD FAILURE 6.2 wasm