Build Information
Failed to build Fortify, reference main (0d5e16), with Swift 6.4 for Wasm on 25 Sep 2026 19:15:10 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344845-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.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/johnno1962/Fortify.git
Reference: main
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/johnno1962/Fortify
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 0d5e161 Catch-up.
Cloned https://github.com/johnno1962/Fortify.git
Revision (git rev-parse @):
0d5e161040a4de780fc7821af8e4ec9f8a9854e3
SUCCESS checkout https://github.com/johnno1962/Fortify.git at main
========================================
Build
========================================
Selected platform: wasm
Swift version: 6.4
Building package at path: $PWD
https://github.com/johnno1962/Fortify.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344845-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.4-latest swift build --swift-sdk swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm 2>&1
wasm-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:4328fdb43c680d205c1d6761b1e3267aa38277eefdda9ddfb17b6a0f1a77857a
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:wasm-6.4-latest
Fetching https://github.com/johnno1962/DLKit
Fetching https://github.com/johnno1962/StringIndex
Fetching https://github.com/johnno1962/SwiftRegex5.git
Fetching https://github.com/johnno1962/Popen.git
[1/186] Fetching popen
[187/729] Fetching popen, dlkit
[730/958] Fetching popen, dlkit, swiftregex5
Fetched https://github.com/johnno1962/DLKit (0.52s)
[255/415] Fetching popen, swiftregex5
[416/569] Fetching popen, swiftregex5, stringindex
Fetched https://github.com/johnno1962/StringIndex (1.47s)
Fetched https://github.com/johnno1962/Popen.git (1.47s)
Fetched https://github.com/johnno1962/SwiftRegex5.git (1.47s)
Computing version for https://github.com/johnno1962/DLKit
Computed https://github.com/johnno1962/DLKit at 3.6.0 (1.69s)
Fetching https://github.com/johnno1962/fishhook
[1/173] Fetching fishhook
Fetched https://github.com/johnno1962/fishhook (0.45s)
Computing version for https://github.com/johnno1962/Popen.git
Computed https://github.com/johnno1962/Popen.git at 2.2.2 (0.65s)
Computing version for https://github.com/johnno1962/SwiftRegex5.git
Computed https://github.com/johnno1962/SwiftRegex5.git at 6.3.0 (0.19s)
Computing version for https://github.com/johnno1962/StringIndex
Computed https://github.com/johnno1962/StringIndex at 2.2.4 (0.19s)
Computing version for https://github.com/johnno1962/fishhook
Computed https://github.com/johnno1962/fishhook at 1.2.2 (0.19s)
Creating working copy for https://github.com/johnno1962/fishhook
Working copy of https://github.com/johnno1962/fishhook resolved at 1.2.2
Creating working copy for https://github.com/johnno1962/SwiftRegex5.git
Working copy of https://github.com/johnno1962/SwiftRegex5.git resolved at 6.3.0
Creating working copy for https://github.com/johnno1962/DLKit
Working copy of https://github.com/johnno1962/DLKit resolved at 3.6.0
Creating working copy for https://github.com/johnno1962/StringIndex
Working copy of https://github.com/johnno1962/StringIndex resolved at 2.2.4
Creating working copy for https://github.com/johnno1962/Popen.git
Working copy of https://github.com/johnno1962/Popen.git resolved at 2.2.2
Building for debugging...
[Computing dependencies]
[Pre-planning 1 / 248]
error: SwiftCompile normal wasm32 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Fopen.swift:60:47: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m58 |[0;0m open var fileStream: UnsafeMutablePointer<FILE>
[0;36m59 |[0;0m
[0;36m60 |[0;0m public init?(stream: UnsafeMutablePointer<[4;39mFILE[0;0m>?) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m61 |[0;0m guard let stream = stream else { return nil }
[0;36m62 |[0;0m fileStream = stream
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Fopen.swift:54:24: [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m52 |[0;0m }
[0;36m53 |[0;0m
[0;36m54 |[0;0m static let STDIN = Fopen(stream: stdin)!
[0;36m|[0;0m `- [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m55 |[0;0m static let STDOUT = Fopen(stream: stdout)!
[0;36m56 |[0;0m static let STDERR = Fopen(stream: stderr)!
[0;36m:[0;0m
[0;36m64 |[0;0m }
[0;36m65 |[0;0m
[0;36m66 |[0;0m public convenience init?(path: String, mode: FILEMode = .read) {
[0;36m|[0;0m `- [1;39mnote: [1;39mcandidate has partially matching parameter list (path: String, mode: Fopen.FILEMode)[0;0m
[0;36m67 |[0;0m self.init(stream: fopen(path, mode.mode))
[0;36m68 |[0;0m }
[0;36m69 |[0;0m
[0;36m70 |[0;0m public convenience init?(fd: CInt, mode: FILEMode = .read) {
[0;36m|[0;0m `- [1;39mnote: [1;39mcandidate has partially matching parameter list (fd: CInt, mode: Fopen.FILEMode)[0;0m
[0;36m71 |[0;0m self.init(stream: fdopen(fd, mode.mode))
[0;36m72 |[0;0m }
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Fopen.swift:55:25: [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m53 |[0;0m
[0;36m54 |[0;0m static let STDIN = Fopen(stream: stdin)!
[0;36m55 |[0;0m static let STDOUT = Fopen(stream: stdout)!
[0;36m|[0;0m `- [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m56 |[0;0m static let STDERR = Fopen(stream: stderr)!
[0;36m57 |[0;0m
[0;36m:[0;0m
[0;36m64 |[0;0m }
[0;36m65 |[0;0m
[0;36m66 |[0;0m public convenience init?(path: String, mode: FILEMode = .read) {
[0;36m|[0;0m `- [1;39mnote: [1;39mcandidate has partially matching parameter list (path: String, mode: Fopen.FILEMode)[0;0m
[0;36m67 |[0;0m self.init(stream: fopen(path, mode.mode))
[0;36m68 |[0;0m }
[0;36m69 |[0;0m
[0;36m70 |[0;0m public convenience init?(fd: CInt, mode: FILEMode = .read) {
[0;36m|[0;0m `- [1;39mnote: [1;39mcandidate has partially matching parameter list (fd: CInt, mode: Fopen.FILEMode)[0;0m
[0;36m71 |[0;0m self.init(stream: fdopen(fd, mode.mode))
[0;36m72 |[0;0m }
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Fopen.swift:56:25: [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m54 |[0;0m static let STDIN = Fopen(stream: stdin)!
[0;36m55 |[0;0m static let STDOUT = Fopen(stream: stdout)!
[0;36m56 |[0;0m static let STDERR = Fopen(stream: stderr)!
[0;36m|[0;0m `- [1;31merror: [1;39mno exact matches in call to initializer [0;0m
[0;36m57 |[0;0m
[0;36m58 |[0;0m open var fileStream: UnsafeMutablePointer<FILE>
[0;36m:[0;0m
[0;36m64 |[0;0m }
[0;36m65 |[0;0m
[0;36m66 |[0;0m public convenience init?(path: String, mode: FILEMode = .read) {
[0;36m|[0;0m `- [1;39mnote: [1;39mcandidate has partially matching parameter list (path: String, mode: Fopen.FILEMode)[0;0m
[0;36m67 |[0;0m self.init(stream: fopen(path, mode.mode))
[0;36m68 |[0;0m }
[0;36m69 |[0;0m
[0;36m70 |[0;0m public convenience init?(fd: CInt, mode: FILEMode = .read) {
[0;36m|[0;0m `- [1;39mnote: [1;39mcandidate has partially matching parameter list (fd: CInt, mode: Fopen.FILEMode)[0;0m
[0;36m71 |[0;0m self.init(stream: fdopen(fd, mode.mode))
[0;36m72 |[0;0m }
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Fopen.swift:58:47: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m56 |[0;0m static let STDERR = Fopen(stream: stderr)!
[0;36m57 |[0;0m
[0;36m58 |[0;0m open var fileStream: UnsafeMutablePointer<[4;39mFILE[0;0m>
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m59 |[0;0m
[0;36m60 |[0;0m public init?(stream: UnsafeMutablePointer<FILE>?) {
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Stream.swift:15:42: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m13 |[0;0m
[0;36m14 |[0;0m public protocol FILEStream {
[0;36m15 |[0;0m var fileStream: UnsafeMutablePointer<[4;39mFILE[0;0m> { get }
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m16 |[0;0m }
[0;36m17 |[0;0m
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:27:54: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m25 |[0;0m @_silgen_name("popen")
[0;36m26 |[0;0m public func popen(_: UnsafePointer<CChar>,
[0;36m27 |[0;0m _: UnsafePointer<CChar>) -> UnsafeMutablePointer<[4;39mFILE[0;0m>!
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m28 |[0;0m @_silgen_name("pclose")
[0;36m29 |[0;0m public func pclose(_: UnsafeMutablePointer<FILE>?) -> CInt
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:29:44: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m27 |[0;0m _: UnsafePointer<CChar>) -> UnsafeMutablePointer<FILE>!
[0;36m28 |[0;0m @_silgen_name("pclose")
[0;36m29 |[0;0m public func pclose(_: UnsafeMutablePointer<[4;39mFILE[0;0m>?) -> CInt
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m30 |[0;0m
[0;36m31 |[0;0m open class Popen: FILEStream, Sequence, IteratorProtocol {
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:131:47: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m129 |[0;0m #endif
[0;36m130 |[0;0m
[0;36m131 |[0;0m open var fileStream: UnsafeMutablePointer<[4;39mFILE[0;0m>
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m132 |[0;0m open var exitStatus: CInt?
[0;36m133 |[0;0m
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:134:46: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m132 |[0;0m open var exitStatus: CInt?
[0;36m133 |[0;0m
[0;36m134 |[0;0m public init(stream: UnsafeMutablePointer<[4;39mFILE[0;0m>) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m135 |[0;0m Self.openedFILEStreams += 1
[0;36m136 |[0;0m fileStream = stream
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:96:19: [1;31merror: [1;39mcannot find 'DispatchGroup' in scope[0;0m
[0;36m94 |[0;0m }
[0;36m95 |[0;0m let box = DataBox()
[0;36m96 |[0;0m let group = [4;39mDispatchGroup[0;0m()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchGroup' in scope[0;0m
[0;36m97 |[0;0m
[0;36m98 |[0;0m group.enter()
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:99:33: [1;31merror: [1;39mvalue of type 'FileHandle' has no member 'readabilityHandler'[0;0m
[0;36m97 |[0;0m
[0;36m98 |[0;0m group.enter()
[0;36m99 |[0;0m [4;39mpipe.fileHandleForReading[0;0m.[4;39mreadabilityHandler[0;0m = { handle in
[0;36m|[0;0m `- [1;31merror: [1;39mvalue of type 'FileHandle' has no member 'readabilityHandler'[0;0m
[0;36m100 |[0;0m let chunk = handle.availableData
[0;36m101 |[0;0m if chunk.isEmpty { // EOF on the pipe
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:99:56: [1;31merror: [1;39mcannot infer type of closure parameter 'handle' without a type annotation[0;0m
[0;36m97 |[0;0m
[0;36m98 |[0;0m group.enter()
[0;36m99 |[0;0m pipe.fileHandleForReading.readabilityHandler = { handle in
[0;36m|[0;0m `- [1;31merror: [1;39mcannot infer type of closure parameter 'handle' without a type annotation[0;0m
[0;36m100 |[0;0m let chunk = handle.availableData
[0;36m101 |[0;0m if chunk.isEmpty { // EOF on the pipe
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift:102:37: [1;31merror: [1;39mvalue of type 'FileHandle' has no member 'readabilityHandler'[0;0m
[0;36m100 |[0;0m let chunk = handle.availableData
[0;36m101 |[0;0m if chunk.isEmpty { // EOF on the pipe
[0;36m102 |[0;0m [4;39mpipe.fileHandleForReading[0;0m.[4;39mreadabilityHandler[0;0m = nil
[0;36m|[0;0m `- [1;31merror: [1;39mvalue of type 'FileHandle' has no member 'readabilityHandler'[0;0m
[0;36m103 |[0;0m group.leave()
[0;36m104 |[0;0m } else {
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Qopen.swift:37:40: [1;31merror: [1;39mcannot find 'SIGKILL' in scope[0;0m
[0;36m35 |[0;0m }
[0;36m36 |[0;0m
[0;36m37 |[0;0m open func terminate(signal: CInt = [4;39mSIGKILL[0;0m) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'SIGKILL' in scope[0;0m
[0;36m38 |[0;0m guard let pid = processID,
[0;36m39 |[0;0m kill(pid, signal) == KERN_SUCCESS else {
/host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Stream.swift:18:61: [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m16 |[0;0m }
[0;36m17 |[0;0m
[0;36m18 |[0;0m extension UnsafeMutablePointer: FILEStream where Pointee == [4;39mFILE[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FILE' in scope[0;0m
[0;36m19 |[0;0m public typealias Element = String
[0;36m20 |[0;0m public var fileStream: Self { return self }
Failed frontend command:
/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Fopen.swift /host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Fstat.swift /host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Glob.swift /host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Popen.swift /host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Qopen.swift /host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Stream.swift /host/spi-builder-workspace/.build/checkouts/Popen/Sources/Popen/Topen.swift -target wasm32-unknown-wasip1 -disable-objc-interop -sdk /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/WASI.sdk -sysroot /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/WASI.sdk -I /host/spi-builder-workspace/.build/out/Products/Debug-webassembly-wasm32 -module-cache-path /host/spi-builder-workspace/.build/out/ModuleCache.noindex -color-diagnostics -Xcc -fcolor-diagnostics -enable-testing -g -debug-info-format\=dwarf -dwarf-version\=4 -suppress-warnings -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -D SWIFT_MODULE_RESOURCE_BUNDLE_UNAVAILABLE -D Xcode -serialize-debugging-options -enable-experimental-feature DebugDescriptionMacro -empty-abi-descriptor -external-plugin-path /usr/lib/swift/host/plugins/testing\#/usr/bin/swift-plugin-server -validate-clang-modules-once -clang-build-session-file /host/spi-builder-workspace/.build/out/ModuleCache.noindex/Session.modulevalidation -Xcc -working-directory -Xcc /host -resource-dir /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static -use-static-resource-dir -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -resource-dir -Xcc /root/.swiftpm/swift-sdks/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm.artifactbundle/swift-6.4.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_wasm/wasm32-unknown-wasip1/swift.xctoolchain/usr/lib/swift_static/clang -Xcc -D_LIBCPP_HARDENING_MODE\=_LIBCPP_HARDENING_MODE_DEBUG -Xcc -fmodules-prune-interval\=86400 -Xcc -fmodules-prune-after\=345600 -Xcc -I/host/spi-builder-workspace/.build/out/Products/Debug-webassembly-wasm32/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/DerivedSources-normal/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/DerivedSources/wasm32 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Popen -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/Objects-normal/wasm32/Popen_const_extract_protocols.json -in-process-plugin-server-path /usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /usr/lib/swift/host/plugins -plugin-path /usr/local/lib/swift/host/plugins -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/Objects-normal/wasm32/Modules/Popen.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/Objects-normal/wasm32/Modules/Popen.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/Objects-normal/wasm32/Popen-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/Objects-normal/wasm32/Popen-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/Objects-normal/wasm32/Popen-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/Popen.build/Debug-webassembly-wasm32/Popen-t.build/Objects-normal/wasm32/Modules/Popen.swiftmodule
error: Build failed
BUILD FAILURE 6.4 wasm