Build Information
Successful build of SwiftGopher, reference v3.1.0 (a537a1), with Swift 6.4 for Linux on 13 Oct 2026 00:56:15 UTC.
Swift 6 data race errors: 0
Build Command
bash -c docker run --pull=always --rm -v "checkouts-53886768-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:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/navanchauhan/swift-gopher.git
Reference: v3.1.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/navanchauhan/swift-gopher
* tag v3.1.0 -> FETCH_HEAD
HEAD is now at a537a1a Add built-in HTTP proxy for browsing gopher in a browser (v3.1.0) [skip release]
Cloned https://github.com/navanchauhan/swift-gopher.git
Revision (git rev-parse @):
a537a1ac07de2371c222b147ffabf3b57a934fb2
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/navanchauhan/swift-gopher.git at v3.1.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.4
Building package at path: $PWD
https://github.com/navanchauhan/swift-gopher.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886768-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:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:cb09f0c0d537a8668f02529c380785d189fc75032d54572211355a09e050e122
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Fetching https://github.com/apple/swift-nio
Fetching https://github.com/apple/swift-argument-parser.git
Fetching https://github.com/apple/swift-log.git
Fetching https://github.com/apple/swift-nio-transport-services.git
[1/8281] Fetching swift-log
[84/11148] Fetching swift-log, swift-nio-transport-services
[11149/30260] Fetching swift-log, swift-nio-transport-services, swift-argument-parser
[30261/116657] Fetching swift-log, swift-nio-transport-services, swift-argument-parser, swift-nio
Fetched https://github.com/apple/swift-nio-transport-services.git (3.28s)
Fetched https://github.com/apple/swift-log.git (3.28s)
Fetched https://github.com/apple/swift-argument-parser.git (3.28s)
Fetched https://github.com/apple/swift-nio (3.31s)
Computing version for https://github.com/apple/swift-nio-transport-services.git
Computed https://github.com/apple/swift-nio-transport-services.git at 1.28.0 (3.49s)
Fetching https://github.com/apple/swift-atomics.git
[1/1889] Fetching swift-atomics
Fetched https://github.com/apple/swift-atomics.git (0.45s)
Computing version for https://github.com/apple/swift-atomics.git
Computed https://github.com/apple/swift-atomics.git at 1.3.1 (0.63s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (0.18s)
Computing version for https://github.com/apple/swift-argument-parser.git
Computed https://github.com/apple/swift-argument-parser.git at 1.8.2 (0.18s)
Computing version for https://github.com/apple/swift-nio
Computed https://github.com/apple/swift-nio at 2.104.0 (0.27s)
Fetching https://github.com/apple/swift-collections.git
Fetching https://github.com/apple/swift-system.git
[1/7287] Fetching swift-system
[74/36031] Fetching swift-system, swift-collections
Fetched https://github.com/apple/swift-system.git (1.23s)
Fetched https://github.com/apple/swift-collections.git (1.24s)
Computing version for https://github.com/apple/swift-system.git
Computed https://github.com/apple/swift-system.git at 1.8.1 (1.43s)
Computing version for https://github.com/apple/swift-collections.git
Computed https://github.com/apple/swift-collections.git at 1.7.3 (0.24s)
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 1.8.2
Creating working copy for https://github.com/apple/swift-collections.git
Working copy of https://github.com/apple/swift-collections.git resolved at 1.7.3
Creating working copy for https://github.com/apple/swift-log.git
Working copy of https://github.com/apple/swift-log.git resolved at 1.16.1
Creating working copy for https://github.com/apple/swift-atomics.git
Working copy of https://github.com/apple/swift-atomics.git resolved at 1.3.1
Creating working copy for https://github.com/apple/swift-nio-transport-services.git
Working copy of https://github.com/apple/swift-nio-transport-services.git resolved at 1.28.0
Creating working copy for https://github.com/apple/swift-system.git
Working copy of https://github.com/apple/swift-system.git resolved at 1.8.1
Creating working copy for https://github.com/apple/swift-nio
Working copy of https://github.com/apple/swift-nio resolved at 2.104.0
Building for debugging...
[Computing dependencies]
[Provisioning 38 / 39]
[Pre-planning 1 / 895]
[Planning deferred tasks]
[176 / 343] Logging
[178 / 360] _NIOBase64
[179 / 360] _NIODataStructures
[190 / 360] _AtomicsShims
[192 / 360] NIOConcurrencyHelpers
[203 / 360] GopherHelpers
[215 / 360] NIOConcurrencyHelpers
[216 / 360] NIOConcurrencyHelpers
[219 / 361] _NIOBase64
[221 / 361] Logging
[223 / 361] Logging
[224 / 361] Logging-product
[226 / 361] Logging
[229 / 362] _NIODataStructures
[234 / 363] SpanPreview
[238 / 363] GopherHelpers
[239 / 363]
[241 / 363]
[247 / 368] CNIOWindows
[258 / 371] ArgumentParserToolInfo
[264 / 383] CNIOWASI
[270 / 383] CNIOFreeBSD
[276 / 383] Logging
[283 / 383] ArgumentParserToolInfo
[288 / 383] Atomics
[289 / 383] Atomics
[291 / 384] InternalCollectionsUtilities
[296 / 385] CNIOAtomics
[300 / 387]
[303 / 396] SpanPreview
[305 / 405] ArgumentParser
[306 / 406] DequeModule
[308 / 406] DequeModule
[309 / 406] Atomics
[311 / 406] Atomics
[317 / 406] DequeModule
[320 / 406] DequeModule
[327 / 406] ArgumentParserToolInfo
[330 / 407] Atomics
[331 / 407] DequeModule
[334 / 407] ArgumentParser
[335 / 407] ArgumentParser
[336 / 407] CNIOFreeBSD
[337 / 407] ArgumentParser
[337 / 407] DequeModule
[343 / 408] NIOCore
[349 / 417] NIOCore
[350 / 418] DequeModule
[351 / 418] NIOCore
[352 / 418] NIOCore
[353 / 419] DequeModule
[354 / 419] ArgumentParser
[358 / 419] ArgumentParser
[358 / 419] NIOCore
[373 / 434] NIOPosix
[377 / 434] NIOPosix
[377 / 435] NIOEmbedded
[383 / 436] NIOPosix
[384 / 436] NIOEmbedded
[395 / 439] NIOCore
[404 / 446] NIOTLS
[406 / 447] NIOTLS
[412 / 447] NIOTLS
[416 / 447] NIOEmbedded
[417 / 449] NIOTransportServices
[420 / 457] NIOTransportServices
[422 / 458] NIOTransportServices
[427 / 458] NIOTLS
[438 / 463] SwiftGopherClient
[438 / 463] NIOTransportServices
[440 / 464] SwiftGopherClient
/host/spi-builder-workspace/Sources/SwiftGopherClient/gopherClient.swift:348:49: [1;33mwarning: [1;39mtype 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m346 |[0;0m .channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1)
[0;36m347 |[0;0m .channelInitializer { channel in
[0;36m348 |[0;0m channel.pipeline.addHandler(handler)
[0;36m|[0;0m `- [1;33mwarning: [1;39mtype 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m349 |[0;0m }
[0;36m350 |[0;0m #else
/host/spi-builder-workspace/Sources/SwiftGopherClient/GopherDataResponseHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherDataResponseHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
/host/spi-builder-workspace/Sources/SwiftGopherClient/gopherClient.swift:348:49: [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type 'GopherDataResponseHandler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m346 |[0;0m .channelOption(ChannelOptions.socketOption(.so_reuseaddr), value: 1)
[0;36m347 |[0;0m .channelInitializer { channel in
[0;36m348 |[0;0m channel.pipeline.addHandler(handler)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'handler' with non-Sendable type 'GopherDataResponseHandler' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/co[452 / 472] GopherProxy
mpiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m349 |[0;0m }
[0;36m350 |[0;0m #else
/host/spi-builder-workspace/Sources/SwiftGopherClient/GopherDataResponseHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherDataResponseHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherDataResponseHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[459 / 473] GopherProxy
[463 / 483] GopherProxy
[465 / 483] swift-gopher-product
[467 / 483] swift-gopher-product
[469 / 483] swift-gopher-product
[471 / 483] GopherProxy
[473 / 484] swift-gopher-product
/host/spi-builder-workspace/Sources/swift-gopher/gopherHandler.swift:53:13: [1;33mwarning: [1;39mcapture of 'context' with non-Sendable type 'ChannelHandlerContext' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m51 |[0;0m let outputBuffer = context.channel.allocator.buffer(bytes: response.data)
[0;36m52 |[0;0m context.writeAndFlush(wrapOutboundOut(outputBuffer)).whenComplete { _ in
[0;36m53 |[0;0m context.close(mode: .all, promise: nil)
[0;36m|[0;0m `- [1;33mwarning: [1;39mcapture of 'context' with non-Sendable type 'ChannelHandlerContext' in a '@Sendable' closure[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures\SendableClosureCaptures]8;;\]
[0;36m54 |[0;0m }
[0;36m55 |[0;0m }
/host/spi-builder-workspace/.build/checkouts/swift-nio/Sources/NIOCore/ChannelPipeline.swift:1859:20: [1;39mnote: [1;39mclass 'ChannelHandlerContext' does not conform to the 'Sendable' protocol[0;0m
[0;36m1857 |[0;0m /// at the right point in time. Often, the right behaviour is to react to an event and then forward it to the next
[0;36m1858 |[0;0m /// `ChannelHandler`.
[0;36m1859 |[0;0m public final class ChannelHandlerContext: ChannelInvoker {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'ChannelHandlerContext' does not conform to the 'Sendable' protocol[0;0m
[0;36m1860 |[0;0m // visible for ChannelPipeline to modify
[0;36m1861 |[0;0m fileprivate var next: Optional<ChannelHandlerContext>
[#SendableClosureCaptures]: <https://docs.swift.org/compiler/documentation/diagnostics/sendable-closure-captures>
[474 / 485] NIOPosix
/host/spi-builder-workspace/Sources/swift-gopher/server.swift:120:17: [1;33mwarning: [1;39mtype 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m118 |[0;0m .childChannelInitializer { channel in
[0;36m119 |[0;0m channel.pipeline.addHandlers([
[0;36m120 |[0;0m GopherHandler(
[0;36m|[0;0m `- [1;33mwarning: [1;39mtype 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m121 |[0;0m logger: logger,
[0;36m122 |[0;0m gopherdata_dir: localGopherDataDir,
/host/spi-builder-workspace/Sources/swift-gopher/gopherHandler.swift:7:13: [1;39mnote: [1;39mclass 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m5 |[0;0m import NIO
[0;36m6 |[0;0m
[0;36m7 |[0;0m final class GopherHandler: ChannelInboundHandler {
[0;36m|[0;0m `- [1;39mnote: [1;39mclass 'GopherHandler' does not conform to the 'Sendable' protocol[0;0m
[0;36m8 |[0;0m typealias InboundIn = ByteBuffer
[0;36m9 |[0;0m typealias OutboundOut = ByteBuffer
[478 / 486] NIO
[486 / 486] swift-gopher-product
Build complete! (25.46 secs)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-nio",
"requirement" : {
"range" : [
{
"lower_bound" : "2.0.0",
"upper_bound" : "3.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio"
},
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.2.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser.git"
},
{
"identity" : "swift-log",
"requirement" : {
"range" : [
{
"lower_bound" : "1.9.1",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-log.git"
},
{
"identity" : "swift-nio-transport-services",
"requirement" : {
"range" : [
{
"lower_bound" : "1.20.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-nio-transport-services.git"
}
],
"manifest_display_name" : "SwiftGopher",
"name" : "SwiftGopher",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "10.15"
},
{
"name" : "ios",
"version" : "13.0"
},
{
"name" : "tvos",
"version" : "13.0"
},
{
"name" : "watchos",
"version" : "6.0"
}
],
"products" : [
{
"name" : "SwiftGopherClient",
"targets" : [
"SwiftGopherClient"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "swift-gopher",
"targets" : [
"swift-gopher"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "swift_gopher",
"module_type" : "SwiftTarget",
"name" : "swift-gopher",
"path" : "Sources/swift-gopher",
"product_dependencies" : [
"NIO",
"ArgumentParser",
"Logging"
],
"product_memberships" : [
"swift-gopher"
],
"sources" : [
"GopherRequestProcessor.swift",
"HTTPProxyHandler.swift",
"HTTPProxySupport.swift",
"WindowsGopherServer.swift",
"WindowsHTTPProxyServer.swift",
"gopherHandler.swift",
"helpers.swift",
"server.swift"
],
"target_dependencies" : [
"GopherHelpers",
"GopherProxy"
],
"type" : "executable"
},
{
"c99name" : "SwiftGopherServerTests",
"module_type" : "SwiftTarget",
"name" : "SwiftGopherServerTests",
"path" : "Tests/SwiftGopherServerTests",
"product_dependencies" : [
"Logging"
],
"sources" : [
"ServerHelpersTests.swift",
"SwiftGopherServerTests.swift",
"WindowsGopherRequestProcessorTests.swift"
],
"target_dependencies" : [
"swift-gopher"
],
"type" : "test"
},
{
"c99name" : "SwiftGopherClientTests",
"module_type" : "SwiftTarget",
"name" : "SwiftGopherClientTests",
"path" : "Tests/SwiftGopherClientTests",
"sources" : [
"GopherHelpersTests.swift",
"GopherResponseParserTests.swift",
"SwiftGopherClientTests.swift"
],
"target_dependencies" : [
"SwiftGopherClient"
],
"type" : "test"
},
{
"c99name" : "SwiftGopherClient",
"module_type" : "SwiftTarget",
"name" : "SwiftGopherClient",
"path" : "Sources/SwiftGopherClient",
"product_dependencies" : [
"NIO",
"NIOTransportServices",
"Logging"
],
"product_memberships" : [
"SwiftGopherClient",
"swift-gopher"
],
"sources" : [
"GopherDataResponseHandler.swift",
"GopherResponseParser.swift",
"gopherClient.swift"
],
"target_dependencies" : [
"GopherHelpers"
],
"type" : "library"
},
{
"c99name" : "GopherProxyTests",
"module_type" : "SwiftTarget",
"name" : "GopherProxyTests",
"path" : "Tests/GopherProxyTests",
"sources" : [
"GopherProxyTests.swift"
],
"target_dependencies" : [
"GopherProxy"
],
"type" : "test"
},
{
"c99name" : "GopherProxy",
"module_type" : "SwiftTarget",
"name" : "GopherProxy",
"path" : "Sources/GopherProxy",
"product_dependencies" : [
"Logging"
],
"product_memberships" : [
"swift-gopher"
],
"sources" : [
"GopherFetching.swift",
"GopherHTTPProxy.swift",
"GopherLocation.swift",
"HTMLRenderer.swift",
"HTTPMessage.swift",
"ProxyPolicy.swift"
],
"target_dependencies" : [
"GopherHelpers",
"SwiftGopherClient"
],
"type" : "library"
},
{
"c99name" : "GopherHelpers",
"module_type" : "SwiftTarget",
"name" : "GopherHelpers",
"path" : "Sources/GopherHelpers",
"product_memberships" : [
"SwiftGopherClient",
"swift-gopher"
],
"sources" : [
"GopherHelpers.swift"
],
"type" : "library"
}
],
"tools_version" : "6.1"
}
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:cb09f0c0d537a8668f02529c380785d189fc75032d54572211355a09e050e122
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Done.