Build Information
Failed to build PacketCaptureBPF, reference 0.2.10 (aaa6c5), with Swift 6.3 for Android on 12 Apr 2026 15:27:07 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/OperatorFoundation/PacketCaptureBPF.git
Reference: 0.2.10
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/OperatorFoundation/PacketCaptureBPF
* tag 0.2.10 -> FETCH_HEAD
HEAD is now at aaa6c50 Update CaptureDevice.swift
Cloned https://github.com/OperatorFoundation/PacketCaptureBPF.git
Revision (git rev-parse @):
aaa6c509569cb11904e35dd682bb581b9b2f8083
SUCCESS checkout https://github.com/OperatorFoundation/PacketCaptureBPF.git at 0.2.10
========================================
Build
========================================
Selected platform: android
Swift version: 6.3
Building package at path: $PWD
https://github.com/OperatorFoundation/PacketCaptureBPF.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:9008270ea37a55e78725e6225015adb5eff8582da520c5232bf0499f32c36dc4
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest
Fetching https://github.com/OperatorFoundation/Bits.git
Fetching https://github.com/OperatorFoundation/SwiftQueue.git
Fetching https://github.com/OperatorFoundation/Datable.git
Fetching https://github.com/OperatorFoundation/InternetProtocols.git
Fetching https://github.com/OperatorFoundation/PacketStream.git
[1/70] Fetching swiftqueue
[71/115] Fetching swiftqueue, packetstream
[116/237] Fetching swiftqueue, packetstream, bits
[238/636] Fetching swiftqueue, packetstream, bits, datable
[266/1103] Fetching swiftqueue, packetstream, bits, datable, internetprotocols
Fetched https://github.com/OperatorFoundation/SwiftQueue.git from cache (0.30s)
[856/1033] Fetching packetstream, bits, datable, internetprotocols
Fetched https://github.com/OperatorFoundation/Bits.git from cache (0.47s)
Fetched https://github.com/OperatorFoundation/Datable.git from cache (0.62s)
Fetched https://github.com/OperatorFoundation/PacketStream.git from cache (0.62s)
Fetched https://github.com/OperatorFoundation/InternetProtocols.git from cache (0.76s)
Computing version for https://github.com/OperatorFoundation/PacketStream.git
Computed https://github.com/OperatorFoundation/PacketStream.git at 0.2.1 (2.59s)
Computing version for https://github.com/OperatorFoundation/SwiftQueue.git
Computed https://github.com/OperatorFoundation/SwiftQueue.git at 0.1.3 (0.65s)
Computing version for https://github.com/OperatorFoundation/Bits.git
Computed https://github.com/OperatorFoundation/Bits.git at 2.0.1 (0.43s)
Computing version for https://github.com/OperatorFoundation/Datable.git
Computed https://github.com/OperatorFoundation/Datable.git at 3.1.5 (0.43s)
Computing version for https://github.com/OperatorFoundation/InternetProtocols.git
Computed https://github.com/OperatorFoundation/InternetProtocols.git at 2.2.1 (0.41s)
Creating working copy for https://github.com/OperatorFoundation/Datable.git
Working copy of https://github.com/OperatorFoundation/Datable.git resolved at 3.1.5
Creating working copy for https://github.com/OperatorFoundation/PacketStream.git
Working copy of https://github.com/OperatorFoundation/PacketStream.git resolved at 0.2.1
Creating working copy for https://github.com/OperatorFoundation/Bits.git
Working copy of https://github.com/OperatorFoundation/Bits.git resolved at 2.0.1
Creating working copy for https://github.com/OperatorFoundation/InternetProtocols.git
Working copy of https://github.com/OperatorFoundation/InternetProtocols.git resolved at 2.2.1
Creating working copy for https://github.com/OperatorFoundation/SwiftQueue.git
Working copy of https://github.com/OperatorFoundation/SwiftQueue.git resolved at 0.1.3
Building for debugging...
[0/6] Write sources
[5/6] Write swift-version--4F562202D5529B1.txt
[7/40] Emitting module Datable
[8/44] Compiling SwiftQueue Queue.swift
[9/44] Emitting module PacketStream
[10/44] Compiling PacketStream PacketStream.swift
[11/45] Compiling Datable Arrayable.swift
[12/45] Compiling Datable CSVable.swift
[13/45] Compiling Datable Data+Arrayable.swift
[14/45] Compiling Datable Data+Datable.swift
[15/45] Compiling Datable StringableArray+CSVable.swift
[16/45] Compiling Datable UInt+Datable.swift
[17/45] Compiling Datable UInt+MaybeNetworkDatable.swift
[18/45] Compiling Datable UInt+Stringable.swift
[19/45] Compiling Datable Data+Stringable.swift
[20/45] Compiling Datable Datable.swift
[21/45] Compiling Datable DatableConfig.swift
[22/45] Compiling Datable Double+MaybeDatable.swift
[24/45] Emitting module SwiftQueue
[25/45] Compiling SwiftQueue LinkedList.swift
[26/46] Compiling Datable Data+ExpressibleByStringLiteral.swift
[27/46] Compiling Datable Data+Floatable.swift
[28/46] Compiling Datable Data+MaybeIntable.swift
[29/46] Compiling Datable Data+MaybeNetworkIntable.swift
[30/46] Compiling Datable Int+MaybeDatable.swift
[31/46] Compiling Datable Int+Stringable.swift
[32/46] Compiling Datable Intable.swift
[33/46] Compiling Datable MaybeDatable.swift
[34/46] Compiling Datable MaybeIntable.swift
[35/46] Compiling Datable MaybeNetworkIntable.swift
[36/46] Compiling Datable NetworkDatable.swift
[37/46] Compiling Datable NetworkIntable.swift
[38/46] Compiling Datable String+Arrayable.swift
[39/46] Compiling Datable String+Datable.swift
[40/46] Compiling Datable String+Intable.swift
[41/46] Compiling Datable Stringable.swift
[42/46] Compiling Datable Double+Stringable.swift
[43/46] Compiling Datable File.swift
[44/46] Compiling Datable Float+MaybeDatable.swift
[45/46] Compiling Datable Floatable.swift
[48/51] Compiling Bits SimpleBits+MaybeIntable.swift
[49/51] Compiling Bits Bits.swift
[50/51] Compiling Bits Bits+MaybeIntable.swift
[51/51] Emitting module Bits
error: emit-module command failed with exit code 1 (use -v to see invocation)
[53/54] Emitting module PacketCaptureBPF
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:53:18: error: cannot find 'ifreq' in scope
51 | let packets = Queue<(Date, Data)>()
52 |
53 | var if_req = ifreq()
| `- error: cannot find 'ifreq' in scope
54 | var capturing: Bool = false
55 |
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:160:13: error: cannot find 'ioctl' in scope
158 | var bpf_stat = bpf_stat_struct(bs_recv: 0, bs_drop: 0)
159 |
160 | _ = ioctl(self.fd_bpf, BIOCGSTATS, &bpf_stat)
| `- error: cannot find 'ioctl' in scope
161 | //print("bpf_stat: \(bpf_stat)")
162 |
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:167:19: error: cannot find 'read' in scope
165 |
166 | // read from bpf device into buffer
167 | let len = read(self.fd_bpf, &self.buffer, Int(self.buffer_size) )
| `- error: cannot find 'read' in scope
168 |
169 | guard len != -1 else
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:267:35: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
265 |
266 | //bpf is byte aligned
267 | let bytesToRead = (((UInt32(bh_hdrlen) + bh_caplen) + (UInt32(BPF_ALIGNMENT) - 1)) & (~(UInt32(BPF_ALIGNMENT) - 1))) - UInt32(bh_hdrlen)
| `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
268 | //print("bytesToRead: \(bytesToRead)")
269 |
[54/54] Compiling PacketCaptureBPF CaptureDevice.swift
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:53:18: error: cannot find 'ifreq' in scope
51 | let packets = Queue<(Date, Data)>()
52 |
53 | var if_req = ifreq()
| `- error: cannot find 'ifreq' in scope
54 | var capturing: Bool = false
55 |
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:78:18: error: cannot find 'open' in scope
76 | for i in 0...255 {
77 | let dev: String = "/dev/bpf" + i.string
78 | fd = open(dev, O_RDWR)
| `- error: cannot find 'open' in scope
79 | if fd != -1 {
80 | self.fd_bpf = fd
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:78:28: error: cannot find 'O_RDWR' in scope
76 | for i in 0...255 {
77 | let dev: String = "/dev/bpf" + i.string
78 | fd = open(dev, O_RDWR)
| `- error: cannot find 'O_RDWR' in scope
79 | if fd != -1 {
80 | self.fd_bpf = fd
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:87:35: error: cannot find 'Darwin' in scope
85 | else
86 | {
87 | print("* errno: \(Darwin.errno)")
| `- error: cannot find 'Darwin' in scope
88 | print("* \(dev)")
89 | }
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:115:19: error: cannot find 'ioctl' in scope
113 | self.capturing = true
114 | // set buffer size
115 | guard Int(ioctl(self.fd_bpf, BIOCSBLEN, &self.buffer_size)) == 0 else
| `- error: cannot find 'ioctl' in scope
116 | {
117 | throw BPFerror.couldNotSetBufferSize
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:122:19: error: cannot find 'ioctl' in scope
120 |
121 | // bind interface to the bpf device
122 | guard Int(ioctl(self.fd_bpf, BIOCSETIF, &if_req)) == 0 else
| `- error: cannot find 'ioctl' in scope
123 | {
124 | throw BPFerror.couldNotBindInterfaceToBPF
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:130:20: error: cannot find 'ioctl' in scope
128 | // enable promiscious mode
129 | // ioctl(fd, BIOCPROMISC, NULL)
130 | guard Int( ioctl(self.fd_bpf, BIOCPROMISC, 0 )) == 0 else
| `- error: cannot find 'ioctl' in scope
131 | {
132 | throw BPFerror.couldNotEnablePromiscuousMode
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:141:19: error: cannot find 'close' in scope
139 | public func stopCapture() throws {
140 | self.capturing = false
141 | guard Int(close(self.fd_bpf)) == 0 else
| `- error: cannot find 'close' in scope
142 | {
143 | throw BPFerror.couldNotCloseBPFFileHandle
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:160:13: error: cannot find 'ioctl' in scope
158 | var bpf_stat = bpf_stat_struct(bs_recv: 0, bs_drop: 0)
159 |
160 | _ = ioctl(self.fd_bpf, BIOCGSTATS, &bpf_stat)
| `- error: cannot find 'ioctl' in scope
161 | //print("bpf_stat: \(bpf_stat)")
162 |
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:167:19: error: cannot find 'read' in scope
165 |
166 | // read from bpf device into buffer
167 | let len = read(self.fd_bpf, &self.buffer, Int(self.buffer_size) )
| `- error: cannot find 'read' in scope
168 |
169 | guard len != -1 else
/host/spi-builder-workspace/Sources/PacketCaptureBPF/CaptureDevice.swift:267:35: error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
265 |
266 | //bpf is byte aligned
267 | let bytesToRead = (((UInt32(bh_hdrlen) + bh_caplen) + (UInt32(BPF_ALIGNMENT) - 1)) & (~(UInt32(BPF_ALIGNMENT) - 1))) - UInt32(bh_hdrlen)
| `- error: the compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions
268 | //print("bytesToRead: \(bytesToRead)")
269 |
BUILD FAILURE 6.3 android