Build Information
Failed to build PerfectSMTP, reference master (a051f3), with Swift 6.3 for Linux on 20 Apr 2026 17:31:10 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/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:basic-6.3-latest swift build --triple x86_64-unknown-linux-gnu 2>&1Build Log
========================================
RunAll
========================================
Builder version: 4.70.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/perfectlysoft/perfect-smtp.git
Reference: master
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/perfectlysoft/perfect-smtp
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at a051f33 version bumps
Cloned https://github.com/perfectlysoft/perfect-smtp.git
Revision (git rev-parse @):
a051f336d1c63b37ba1eea5685db1aa57a17224d
SUCCESS checkout https://github.com/perfectlysoft/perfect-smtp.git at master
========================================
Build
========================================
Selected platform: linux
Swift version: 6.3
Building package at path: $PWD
https://github.com/perfectlysoft/perfect-smtp.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/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:basic-6.3-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:5a7d791d2ead8a924b1292cb31bf3288eabcfe8880e0b005b00b45b71a5bc36a
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:basic-6.3-latest
Fetching https://github.com/PerfectlySoft/Perfect-Crypto.git
Fetching https://github.com/PerfectlySoft/Perfect-MIME.git
Fetching https://github.com/PerfectlySoft/Perfect-CURL.git
[1/27] Fetching perfect-mime
[28/639] Fetching perfect-mime, perfect-crypto
[640/1143] Fetching perfect-mime, perfect-crypto, perfect-curl
Fetched https://github.com/PerfectlySoft/Perfect-MIME.git from cache (0.27s)
Fetched https://github.com/PerfectlySoft/Perfect-Crypto.git from cache (0.27s)
Fetched https://github.com/PerfectlySoft/Perfect-CURL.git from cache (0.27s)
Computing version for https://github.com/PerfectlySoft/Perfect-Crypto.git
Computed https://github.com/PerfectlySoft/Perfect-Crypto.git at 4.0.0 (0.73s)
Fetching https://github.com/PerfectlySoft/Perfect-COpenSSL-Linux.git
Fetching https://github.com/PerfectlySoft/PerfectLib.git
Fetching https://github.com/PerfectlySoft/Perfect-Thread.git
[1/10784] Fetching perfectlib
[972/11163] Fetching perfectlib, perfect-thread
[1675/11351] Fetching perfectlib, perfect-thread, perfect-copenssl-linux
Fetched https://github.com/PerfectlySoft/Perfect-Thread.git from cache (0.30s)
[2130/10972] Fetching perfectlib, perfect-copenssl-linux
Fetched https://github.com/PerfectlySoft/Perfect-COpenSSL-Linux.git from cache (3.19s)
Fetched https://github.com/PerfectlySoft/PerfectLib.git from cache (3.30s)
Computing version for https://github.com/PerfectlySoft/Perfect-CURL.git
Computed https://github.com/PerfectlySoft/Perfect-CURL.git at 5.0.0 (4.10s)
Fetching https://github.com/PerfectlySoft/Perfect-libcurl.git
[1/77] Fetching perfect-libcurl
Fetched https://github.com/PerfectlySoft/Perfect-libcurl.git from cache (0.40s)
Computing version for https://github.com/PerfectlySoft/Perfect-MIME.git
Computed https://github.com/PerfectlySoft/Perfect-MIME.git at 1.1.0 (2.92s)
Computing version for https://github.com/PerfectlySoft/PerfectLib.git
Computed https://github.com/PerfectlySoft/PerfectLib.git at 4.0.1 (0.45s)
Fetching https://github.com/PerfectlySoft/Perfect-LinuxBridge.git
[1/65] Fetching perfect-linuxbridge
Fetched https://github.com/PerfectlySoft/Perfect-LinuxBridge.git from cache (0.56s)
Computing version for https://github.com/PerfectlySoft/Perfect-LinuxBridge.git
Computed https://github.com/PerfectlySoft/Perfect-LinuxBridge.git at 3.1.0 (2.99s)
Computing version for https://github.com/PerfectlySoft/Perfect-COpenSSL-Linux.git
Computed https://github.com/PerfectlySoft/Perfect-COpenSSL-Linux.git at 4.0.2 (0.49s)
Computing version for https://github.com/PerfectlySoft/Perfect-Thread.git
Computed https://github.com/PerfectlySoft/Perfect-Thread.git at 3.0.7 (0.83s)
Computing version for https://github.com/PerfectlySoft/Perfect-libcurl.git
Computed https://github.com/PerfectlySoft/Perfect-libcurl.git at 2.1.0 (0.54s)
Creating working copy for https://github.com/PerfectlySoft/PerfectLib.git
Working copy of https://github.com/PerfectlySoft/PerfectLib.git resolved at 4.0.1
Creating working copy for https://github.com/PerfectlySoft/Perfect-LinuxBridge.git
Working copy of https://github.com/PerfectlySoft/Perfect-LinuxBridge.git resolved at 3.1.0
Creating working copy for https://github.com/PerfectlySoft/Perfect-Thread.git
Working copy of https://github.com/PerfectlySoft/Perfect-Thread.git resolved at 3.0.7
Creating working copy for https://github.com/PerfectlySoft/Perfect-COpenSSL-Linux.git
Working copy of https://github.com/PerfectlySoft/Perfect-COpenSSL-Linux.git resolved at 4.0.2
Creating working copy for https://github.com/PerfectlySoft/Perfect-libcurl.git
Working copy of https://github.com/PerfectlySoft/Perfect-libcurl.git resolved at 2.1.0
Creating working copy for https://github.com/PerfectlySoft/Perfect-Crypto.git
Working copy of https://github.com/PerfectlySoft/Perfect-Crypto.git resolved at 4.0.0
Creating working copy for https://github.com/PerfectlySoft/Perfect-CURL.git
Working copy of https://github.com/PerfectlySoft/Perfect-CURL.git resolved at 5.0.0
Creating working copy for https://github.com/PerfectlySoft/Perfect-MIME.git
Working copy of https://github.com/PerfectlySoft/Perfect-MIME.git resolved at 1.1.0
warning: 'perfect-libcurl': ignoring declared target(s) 'cURL' in the system package
Building for debugging...
[0/8] Write sources
[6/8] Compiling LinuxBridge LinuxBridge.c
[7/8] Write swift-version-24593BA9C3E375BF.txt
[9/23] Compiling PerfectMIME MIMETypes.swift
[10/23] Emitting module PerfectMIME
[11/24] Compiling PerfectThread Threading.swift
[13/24] Compiling PerfectLib PerfectError.swift
[14/24] Compiling PerfectLib PerfectServer.swift
[15/25] Compiling PerfectLib SysProcess.swift
[16/25] Compiling PerfectLib Log.swift
[17/25] Compiling PerfectThread Promise.swift
[18/25] Compiling PerfectThread ThreadQueue.swift
[19/25] Emitting module PerfectThread
[21/26] Compiling PerfectLib JSONConvertible.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[22/26] Emitting module PerfectLib
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:130:54: error: cannot find type 'dirent' in scope
128 |
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
| `- error: cannot find type 'dirent' in scope
131 | guard let ent = readdir(d) else {
132 | return -1
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:130:114: error: cannot find type 'dirent' in scope
128 |
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
| `- error: cannot find type 'dirent' in scope
131 | guard let ent = readdir(d) else {
132 | return -1
[23/26] Compiling PerfectLib File.swift
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:66:16: error: cannot find 'access' in scope
64 | /// - returns: True if the file exists or false otherwise
65 | public var exists: Bool {
66 | return access(internalPath, F_OK) != -1
| `- error: cannot find 'access' in scope
67 | }
68 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:88:11: error: cannot find 'readlink' in scope
86 | return -1
87 | }
88 | return readlink(internalPath, p, maxPath)
| `- error: cannot find 'readlink' in scope
89 | }
90 | guard res != -1 else {
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:119:15: error: cannot find 'wordexp_t' in scope
117 | #if !os(iOS) && !os(tvOS)
118 | if !inPath.isEmpty && inPath[inPath.startIndex] == "~" {
119 | var wexp = wordexp_t()
| `- error: cannot find 'wordexp_t' in scope
120 | guard 0 == wordexp(inPath, &wexp, 0),
121 | let we_wordv = wexp.we_wordv else {
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:120:15: error: cannot find 'wordexp' in scope
118 | if !inPath.isEmpty && inPath[inPath.startIndex] == "~" {
119 | var wexp = wordexp_t()
120 | guard 0 == wordexp(inPath, &wexp, 0),
| `- error: cannot find 'wordexp' in scope
121 | let we_wordv = wexp.we_wordv else {
122 | return inPath
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:125:5: error: cannot find 'wordfree' in scope
123 | }
124 | defer {
125 | wordfree(&wexp)
| `- error: cannot find 'wordfree' in scope
126 | }
127 | if let resolved = we_wordv[0], let pth = String(validatingUTF8: resolved) {
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:151:8: error: module 'SwiftGlibc' has no member named 'close'
149 | if fd != -1 {
150 | #if os(Linux)
151 | _ = SwiftGlibc.close(CInt(fd))
| `- error: module 'SwiftGlibc' has no member named 'close'
152 | #else
153 | _ = Darwin.close(CInt(fd))
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:261:28: error: cannot find 'lseek' in scope
259 | get {
260 | if isOpen {
261 | return Int(lseek(Int32(fd), 0, SEEK_CUR))
| `- error: cannot find 'lseek' in scope
262 | }
263 | return 0
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:267:13: error: cannot find 'lseek' in scope
265 | /// Sets the file's position marker given the value as measured from the begining of the file.
266 | set {
267 | lseek(Int32(fd), off_t(newValue), SEEK_SET)
| `- error: cannot find 'lseek' in scope
268 | }
269 | }
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:277:9: error: cannot find 'unlink' in scope
275 | func delete() {
276 | close()
277 | unlink(path)
| `- error: cannot find 'unlink' in scope
278 | }
279 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:410:13: error: cannot find 'symlink' in scope
408 | destFile.delete()
409 | }
410 | let res = symlink(self.path, path)
| `- error: cannot find 'symlink' in scope
411 | if res == 0 {
412 | return File(path)
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:445:6: error: cannot find 'read' in scope
443 |
444 | let readCount = ary.withUnsafeMutableBytes {
445 | read(CInt(fd), $0.bindMemory(to: Int8.self).baseAddress, bSize)
| `- error: cannot find 'read' in scope
446 | }
447 | guard readCount >= 0 else {
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:484:4: error: module 'SwiftGlibc' has no member named 'write'
482 | #if os(Linux)
483 | let wrote = bytes.withUnsafeBytes {
484 | SwiftGlibc.write(Int32(fd), $0.bindMemory(to: Int8.self).baseAddress?.advanced(by: dataPosition), len)
| `- error: module 'SwiftGlibc' has no member named 'write'
485 | }
486 | #else
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:580:18: error: cannot find 'mkstemp' in scope
578 | name[utf8.count] = 0
579 |
580 | let fd = mkstemp(name)
| `- error: cannot find 'mkstemp' in scope
581 | let tmpFileName = String(validatingUTF8: name)!
582 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:591:45: error: cannot find 'STDIN_FILENO' in scope
589 | /// This file can be used to write to standard in
590 | public var fileStdin: File {
591 | return UnclosableFile("/dev/stdin", fd: STDIN_FILENO)
| `- error: cannot find 'STDIN_FILENO' in scope
592 | }
593 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:596:43: error: cannot find 'STDOUT_FILENO' in scope
594 | /// This file can be used to write to standard out
595 | public var fileStdout: File {
596 | return UnclosableFile("/dev/stdout", fd: STDOUT_FILENO)
| `- error: cannot find 'STDOUT_FILENO' in scope
597 | }
598 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/File.swift:601:43: error: cannot find 'STDERR_FILENO' in scope
599 | /// This file can be used to write to standard error
600 | public var fileStderr: File {
601 | return UnclosableFile("/dev/stderr", fd: STDERR_FILENO)
| `- error: cannot find 'STDERR_FILENO' in scope
602 | }
603 |
[24/26] Compiling PerfectLib Bytes.swift
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:130:54: error: cannot find type 'dirent' in scope
128 |
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
| `- error: cannot find type 'dirent' in scope
131 | guard let ent = readdir(d) else {
132 | return -1
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:130:114: error: cannot find type 'dirent' in scope
128 |
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
| `- error: cannot find type 'dirent' in scope
131 | guard let ent = readdir(d) else {
132 | return -1
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:47:13: error: cannot find 'chdir' in scope
45 | /// Set this Dir as the process' working directory.
46 | public func setAsWorkingDir() throws {
47 | let res = chdir(internalPath)
| `- error: cannot find 'chdir' in scope
48 | guard res == 0 else {
49 | try ThrowFileError()
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:57:8: error: cannot find 'getcwd' in scope
55 | var buffer = Array(repeating: 0 as UInt8, count: 2049)
56 | buffer.withUnsafeMutableBytes {
57 | _ = getcwd($0.bindMemory(to: Int8.self).baseAddress, 2048)
| `- error: cannot find 'getcwd' in scope
58 | }
59 | let path = String(cString: buffer)
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:64:10: error: cannot find 'access' in scope
62 |
63 | func exists(_ path: String) -> Bool {
64 | return access(path, F_OK) != -1
| `- error: cannot find 'access' in scope
65 | }
66 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:91:13: error: cannot find 'rmdir' in scope
89 | /// - throws: `PerfectError.FileError`
90 | public func delete() throws {
91 | let res = rmdir(realPath)
| `- error: cannot find 'rmdir' in scope
92 | guard res != -1 else {
93 | try ThrowFileError()
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:131:19: error: cannot find 'readdir' in scope
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
131 | guard let ent = readdir(d) else {
| `- error: cannot find 'readdir' in scope
132 | return -1
133 | }
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:147:19: error: cannot find 'opendir' in scope
145 | /// - throws: `PerfectError.FileError`
146 | public func forEachEntry(closure: (String) throws -> ()) throws {
147 | guard let dir = opendir(realPath) else {
| `- error: cannot find 'opendir' in scope
148 | try ThrowFileError()
149 | }
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:151:11: error: cannot find 'closedir' in scope
149 | }
150 |
151 | defer { closedir(dir) }
| `- error: cannot find 'closedir' in scope
152 |
153 | var ent = dirent()
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:153:13: error: cannot find 'dirent' in scope
151 | defer { closedir(dir) }
152 |
153 | var ent = dirent()
| `- error: cannot find 'dirent' in scope
154 | let entPtr = UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>.allocate(capacity: 1)
155 | defer { entPtr.deallocate() }
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:154:58: error: cannot find type 'dirent' in scope
152 |
153 | var ent = dirent()
154 | let entPtr = UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>.allocate(capacity: 1)
| `- error: cannot find type 'dirent' in scope
155 | defer { entPtr.deallocate() }
156 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:180:41: error: cannot find 'DT_DIR' in scope
178 | nameBuf.append(0)
179 | if let name = String(validatingUTF8: nameBuf), !(name == "." || name == "..") {
180 | if Int32(type) == Int32(DT_DIR) {
| `- error: cannot find 'DT_DIR' in scope
181 | try closure(name + "/")
182 | } else {
[25/26] Compiling PerfectLib Dir.swift
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:130:54: error: cannot find type 'dirent' in scope
128 |
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
| `- error: cannot find type 'dirent' in scope
131 | guard let ent = readdir(d) else {
132 | return -1
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:130:114: error: cannot find type 'dirent' in scope
128 |
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
| `- error: cannot find type 'dirent' in scope
131 | guard let ent = readdir(d) else {
132 | return -1
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:47:13: error: cannot find 'chdir' in scope
45 | /// Set this Dir as the process' working directory.
46 | public func setAsWorkingDir() throws {
47 | let res = chdir(internalPath)
| `- error: cannot find 'chdir' in scope
48 | guard res == 0 else {
49 | try ThrowFileError()
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:57:8: error: cannot find 'getcwd' in scope
55 | var buffer = Array(repeating: 0 as UInt8, count: 2049)
56 | buffer.withUnsafeMutableBytes {
57 | _ = getcwd($0.bindMemory(to: Int8.self).baseAddress, 2048)
| `- error: cannot find 'getcwd' in scope
58 | }
59 | let path = String(cString: buffer)
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:64:10: error: cannot find 'access' in scope
62 |
63 | func exists(_ path: String) -> Bool {
64 | return access(path, F_OK) != -1
| `- error: cannot find 'access' in scope
65 | }
66 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:91:13: error: cannot find 'rmdir' in scope
89 | /// - throws: `PerfectError.FileError`
90 | public func delete() throws {
91 | let res = rmdir(realPath)
| `- error: cannot find 'rmdir' in scope
92 | guard res != -1 else {
93 | try ThrowFileError()
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:131:19: error: cannot find 'readdir' in scope
129 | #if os(Linux)
130 | func readDir(_ d: OpaquePointer, _ dirEnt: inout dirent, _ endPtr: UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>!) -> Int32 {
131 | guard let ent = readdir(d) else {
| `- error: cannot find 'readdir' in scope
132 | return -1
133 | }
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:147:19: error: cannot find 'opendir' in scope
145 | /// - throws: `PerfectError.FileError`
146 | public func forEachEntry(closure: (String) throws -> ()) throws {
147 | guard let dir = opendir(realPath) else {
| `- error: cannot find 'opendir' in scope
148 | try ThrowFileError()
149 | }
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:151:11: error: cannot find 'closedir' in scope
149 | }
150 |
151 | defer { closedir(dir) }
| `- error: cannot find 'closedir' in scope
152 |
153 | var ent = dirent()
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:153:13: error: cannot find 'dirent' in scope
151 | defer { closedir(dir) }
152 |
153 | var ent = dirent()
| `- error: cannot find 'dirent' in scope
154 | let entPtr = UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>.allocate(capacity: 1)
155 | defer { entPtr.deallocate() }
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:154:58: error: cannot find type 'dirent' in scope
152 |
153 | var ent = dirent()
154 | let entPtr = UnsafeMutablePointer<UnsafeMutablePointer<dirent>?>.allocate(capacity: 1)
| `- error: cannot find type 'dirent' in scope
155 | defer { entPtr.deallocate() }
156 |
/host/spi-builder-workspace/.build/checkouts/PerfectLib/Sources/PerfectLib/Dir.swift:180:41: error: cannot find 'DT_DIR' in scope
178 | nameBuf.append(0)
179 | if let name = String(validatingUTF8: nameBuf), !(name == "." || name == "..") {
180 | if Int32(type) == Int32(DT_DIR) {
| `- error: cannot find 'DT_DIR' in scope
181 | try closure(name + "/")
182 | } else {
[26/26] Compiling PerfectLib Utilities.swift
BUILD FAILURE 6.3 linux