The Swift Package Index logo.Swift Package Index

Build Information

Failed to build PerfectLogger, reference main (733b69), with Swift 6.4 for Android on 17 Oct 2026 18:05:57 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:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 5.1.3
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/perfectlysoft/perfect-logger.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/perfectlysoft/perfect-logger
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 733b69f Merge pull request #10 from PerfectlySoft/release-4.0.0
Cloned https://github.com/perfectlysoft/perfect-logger.git
Revision (git rev-parse @):
733b69f55fb8e30256ff85f2ffd39af60a41e141
SUCCESS checkout https://github.com/perfectlysoft/perfect-logger.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.4
Building package at path:  $PWD
https://github.com/perfectlysoft/perfect-logger.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:android-6.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:d9a84d7647394b4473e054b8d8a8f0e0b43300080afc6972ec459a3a608366e4
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Fetching https://github.com/apple/swift-log.git
[1/8305] Fetching swift-log
Fetched https://github.com/apple/swift-log.git (0.51s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (0.67s)
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
Building for debugging...
[Pre-planning 1 / 96]
[6 / 39]
[34 / 49] Logging
[35 / 49] Logging
[43 / 57] PerfectLogger
[45 / 57] PerfectLogger
[46 / 57] PerfectLogger
[47 / 57] PerfectLogger
[52 / 57] PerfectLogger
[52 / 57] Logging
[55 / 58] PerfectLogger
error: SwiftCompile normal aarch64 /host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift failed with a nonzero exit code. Command line:     cd /host
    builtin-SwiftPerFileCompile FileLogHandler.swift
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:31:14: error: cannot find 'close' in scope
 29 |     }
 30 |
 31 |     deinit { close(fd) }
    |              `- error: cannot find 'close' in scope
 32 |
 33 |     func write(_ string: String) {
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:55:36: error: cannot find 'errno' in scope
 53 |                 if n > 0 {
 54 |                     offset += n
 55 |                 } else if n < 0 && errno == EINTR {
    |                                    `- error: cannot find 'errno' in scope
 56 |                     continue
 57 |                 } else {
/android-ndk/android-ndk-r30/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h:58:9: note: macro 'errno' unavailable: structure not supported
56 |  * thread.
57 |  */
58 | #define errno (*__errno())
   |         `- note: macro 'errno' unavailable: structure not supported
59 |
60 | __END_DECLS
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:95:20: error: cannot find 'stat' in scope
 93 |         }
 94 |
 95 |         var info = stat()
    |                    `- error: cannot find 'stat' in scope
 96 |         if stat(path, &info) == 0 {
 97 |             switch info.st_mode & S_IFMT {
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:96:12: error: cannot find 'stat' in scope
 94 |
 95 |         var info = stat()
 96 |         if stat(path, &info) == 0 {
    |            `- error: cannot find 'stat' in scope
 97 |             switch info.st_mode & S_IFMT {
 98 |             case S_IFREG, S_IFCHR, S_IFIFO: break
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:97:35: error: cannot find 'S_IFMT' in scope
 95 |         var info = stat()
 96 |         if stat(path, &info) == 0 {
 97 |             switch info.st_mode & S_IFMT {
    |                                   `- error: cannot find 'S_IFMT' in scope
 98 |             case S_IFREG, S_IFCHR, S_IFIFO: break
 99 |             case S_IFDIR: return refuse("is a directory")
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:98:18: error: cannot find 'S_IFREG' in scope
 96 |         if stat(path, &info) == 0 {
 97 |             switch info.st_mode & S_IFMT {
 98 |             case S_IFREG, S_IFCHR, S_IFIFO: break
    |                  `- error: cannot find 'S_IFREG' in scope
 99 |             case S_IFDIR: return refuse("is a directory")
100 |             default: return refuse("not a regular file, character device or FIFO")
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:98:27: error: cannot find 'S_IFCHR' in scope
 96 |         if stat(path, &info) == 0 {
 97 |             switch info.st_mode & S_IFMT {
 98 |             case S_IFREG, S_IFCHR, S_IFIFO: break
    |                           `- error: cannot find 'S_IFCHR' in scope
 99 |             case S_IFDIR: return refuse("is a directory")
100 |             default: return refuse("not a regular file, character device or FIFO")
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:98:36: error: cannot find 'S_IFIFO' in scope
 96 |         if stat(path, &info) == 0 {
 97 |             switch info.st_mode & S_IFMT {
 98 |             case S_IFREG, S_IFCHR, S_IFIFO: break
    |                                    `- error: cannot find 'S_IFIFO' in scope
 99 |             case S_IFDIR: return refuse("is a directory")
100 |             default: return refuse("not a regular file, character device or FIFO")
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:99:18: error: cannot find 'S_IFDIR' in scope
 97 |             switch info.st_mode & S_IFMT {
 98 |             case S_IFREG, S_IFCHR, S_IFIFO: break
 99 |             case S_IFDIR: return refuse("is a directory")
    |                  `- error: cannot find 'S_IFDIR' in scope
100 |             default: return refuse("not a regular file, character device or FIFO")
101 |             }
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:18: error: cannot find 'open' in scope
102 |         }
103 |
104 |         let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
    |                  `- error: cannot find 'open' in scope
105 |         guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:29: error: cannot find 'O_WRONLY' in scope
102 |         }
103 |
104 |         let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
    |                             `- error: cannot find 'O_WRONLY' in scope
105 |         guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:40: error: cannot find 'O_APPEND' in scope
102 |         }
103 |
104 |         let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
    |                                        `- error: cannot find 'O_APPEND' in scope
105 |         guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:51: error: cannot find 'O_CREAT' in scope
102 |         }
103 |
104 |         let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
    |                                                   `- error: cannot find 'O_CREAT' in scope
105 |         guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:61: error: cannot find 'O_CLOEXEC' in scope
102 |         }
103 |
104 |         let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
    |                                                             `- error: cannot find 'O_CLOEXEC' in scope
105 |         guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:104:73: error: cannot find 'O_NONBLOCK' in scope
102 |         }
103 |
104 |         let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
    |                                                                         `- error: cannot find 'O_NONBLOCK' in scope
105 |         guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
106 |
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:105:69: error: cannot find 'errno' in scope
103 |
104 |         let fd = open(path, O_WRONLY | O_APPEND | O_CREAT | O_CLOEXEC | O_NONBLOCK, 0o644)
105 |         guard fd >= 0 else { return refuse(String(cString: strerror(errno))) }
    |                                                                     `- error: cannot find 'errno' in scope
106 |
107 |         // Blocking writes from here on; O_NONBLOCK was only for the open.
/android-ndk/android-ndk-r30/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/errno.h:58:9: note: macro 'errno' unavailable: structure not supported
56 |  * thread.
57 |  */
58 | #define errno (*__errno())
   |         `- note: macro 'errno' unavailable: structure not supported
59 |
60 | __END_DECLS
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:108:21: error: cannot find 'fcntl' in scope
106 |
107 |         // Blocking writes from here on; O_NONBLOCK was only for the open.
108 |         let flags = fcntl(fd, F_GETFL)
    |                     `- error: cannot find 'fcntl' in scope
109 |         if flags >= 0 { _ = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) }
110 |         #if canImport(Darwin)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:108:31: error: cannot find 'F_GETFL' in scope
106 |
107 |         // Blocking writes from here on; O_NONBLOCK was only for the open.
108 |         let flags = fcntl(fd, F_GETFL)
    |                               `- error: cannot find 'F_GETFL' in scope
109 |         if flags >= 0 { _ = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) }
110 |         #if canImport(Darwin)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:109:29: error: cannot find 'fcntl' in scope
107 |         // Blocking writes from here on; O_NONBLOCK was only for the open.
108 |         let flags = fcntl(fd, F_GETFL)
109 |         if flags >= 0 { _ = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) }
    |                             `- error: cannot find 'fcntl' in scope
110 |         #if canImport(Darwin)
111 |         _ = fcntl(fd, F_SETNOSIGPIPE, 1)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:109:39: error: cannot find 'F_SETFL' in scope
107 |         // Blocking writes from here on; O_NONBLOCK was only for the open.
108 |         let flags = fcntl(fd, F_GETFL)
109 |         if flags >= 0 { _ = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) }
    |                                       `- error: cannot find 'F_SETFL' in scope
110 |         #if canImport(Darwin)
111 |         _ = fcntl(fd, F_SETNOSIGPIPE, 1)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:109:57: error: cannot find 'O_NONBLOCK' in scope
107 |         // Blocking writes from here on; O_NONBLOCK was only for the open.
108 |         let flags = fcntl(fd, F_GETFL)
109 |         if flags >= 0 { _ = fcntl(fd, F_SETFL, flags & ~O_NONBLOCK) }
    |                                                         `- error: cannot find 'O_NONBLOCK' in scope
110 |         #if canImport(Darwin)
111 |         _ = fcntl(fd, F_SETNOSIGPIPE, 1)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:114:22: error: cannot find 'stat' in scope
112 |         #endif
113 |
114 |         var opened = stat()
    |                      `- error: cannot find 'stat' in scope
115 |         let isRegular = fstat(fd, &opened) == 0 && (opened.st_mode & S_IFMT) == S_IFREG
116 |         let sink = FileSink(fd: fd, isRegularFile: isRegular)
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:115:25: error: cannot find 'fstat' in scope
113 |
114 |         var opened = stat()
115 |         let isRegular = fstat(fd, &opened) == 0 && (opened.st_mode & S_IFMT) == S_IFREG
    |                         `- error: cannot find 'fstat' in scope
116 |         let sink = FileSink(fd: fd, isRegularFile: isRegular)
117 |         registry.sinks[path] = sink
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:115:70: error: cannot find 'S_IFMT' in scope
113 |
114 |         var opened = stat()
115 |         let isRegular = fstat(fd, &opened) == 0 && (opened.st_mode & S_IFMT) == S_IFREG
    |                                                                      `- error: cannot find 'S_IFMT' in scope
116 |         let sink = FileSink(fd: fd, isRegularFile: isRegular)
117 |         registry.sinks[path] = sink
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:115:81: error: cannot find 'S_IFREG' in scope
113 |
114 |         var opened = stat()
115 |         let isRegular = fstat(fd, &opened) == 0 && (opened.st_mode & S_IFMT) == S_IFREG
    |                                                                                 `- error: cannot find 'S_IFREG' in scope
116 |         let sink = FileSink(fd: fd, isRegularFile: isRegular)
117 |         registry.sinks[path] = sink
/host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift:159:12: error: cannot find 'Musl' in scope
157 |     return Glibc.write(fd, buf, count)
158 |     #else
159 |     return Musl.write(fd, buf, count)
    |            `- error: cannot find 'Musl' in scope
160 |     #endif
161 | }
Failed frontend command:
/root/.local/share/swiftly/toolchains/6.4.0/usr/bin/swift-frontend -frontend -c /host/spi-builder-workspace/Sources/PerfectLogger/Bootstrap.swift -primary-file /host/spi-builder-workspace/Sources/PerfectLogger/FileLogHandler.swift /host/spi-builder-workspace/Sources/PerfectLogger/LogFile.swift /host/spi-builder-workspace/Sources/PerfectLogger/LogOptions.swift /host/spi-builder-workspace/Sources/PerfectLogger/LogPriority.swift /host/spi-builder-workspace/Sources/PerfectLogger/RemoteLogHandler.swift -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/Objects-normal/aarch64/FileLogHandler.d -emit-const-values-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/Objects-normal/aarch64/FileLogHandler.swiftconstvalues -emit-reference-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/Objects-normal/aarch64/FileLogHandler.swiftdeps -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/Objects-normal/aarch64/FileLogHandler.dia -target aarch64-unknown-linux-android28 -Xllvm -aarch64-use-tbi -disable-objc-interop -sdk /android-ndk/android-ndk-r30/toolchains/llvm/prebuilt/linux-x86_64/sysroot -sysroot /android-ndk/android-ndk-r30/toolchains/llvm/prebuilt/linux-x86_64/sysroot -I /host/spi-builder-workspace/.build/out/Products/Debug-android-aarch64 -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 -swift-version 6 -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 /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/plugins/testing\#/root/.local/share/swiftly/toolchains/6.4.0/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.0-RELEASE_android.artifactbundle/swift-android/swift-resources/usr/lib/swift-aarch64 -enable-anonymous-context-mangled-names -file-compilation-dir /host -Xcc -resource-dir -Xcc /android-ndk/android-ndk-r30/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/21 -Xcc -fno-omit-frame-pointer -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-android-aarch64/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name PerfectLogger -package-name spi_builder_workspace -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/Objects-normal/aarch64/PerfectLogger_const_extract_protocols.json -in-process-plugin-server-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/lib/swift/host/plugins -plugin-path /root/.local/share/swiftly/toolchains/6.4.0/usr/local/lib/swift/host/plugins -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/Objects-normal/aarch64/FileLogHandler.o -index-unit-output-path /PerfectLogger.build/Debug-android-aarch64/PerfectLogger-t.build/Objects-normal/aarch64/FileLogHandler.o -index-store-path /host/spi-builder-workspace/.build/out -index-system-modules
error: Build failed
BUILD FAILURE 6.4 android