The Swift Package Index logo.Swift Package Index

Build Information

Failed to build PerfectLogger, reference main (733b69), with Swift 6.2 for Android on 17 Oct 2026 18:19:55 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-53886770-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.2-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.2
Building package at path:  $PWD
https://github.com/perfectlysoft/perfect-logger.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886770-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.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from saguaro1/spi-images
Digest: sha256:d84c435a77e30f1b4b40344b42d2ce7e8dc33d04eebdaebfb0e2bc42b4ff2af5
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.2-latest
Fetching https://github.com/apple/swift-log.git
[1/8305] Fetching swift-log
Fetched https://github.com/apple/swift-log.git from cache (0.49s)
Computing version for https://github.com/apple/swift-log.git
Computed https://github.com/apple/swift-log.git at 1.16.1 (0.65s)
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...
[0/3] Write sources
[2/3] Write swift-version--11D90AFD9DD3AB2.txt
[4/14] Compiling Logging LogEvent.swift
[5/14] Compiling Logging LogHandler.swift
[6/15] Compiling Logging Logger+With.swift
[7/15] Compiling Logging Logger+Attributes.swift
[8/15] Compiling Logging LoggingSystem.swift
[9/15] Compiling Logging Logger.swift
[10/15] Compiling Logging MetadataProvider.swift
[11/15] Emitting module Logging
[12/15] Compiling Logging SwiftLogNoOpLogHandler.swift
[13/15] Compiling Logging Locks.swift
[14/15] Compiling Logging MultiplexLogHandler.swift
[15/15] Compiling Logging StreamLogHandler.swift
[17/23] Compiling PerfectLogger LogOptions.swift
[18/23] Emitting module PerfectLogger
[19/23] Compiling PerfectLogger Bootstrap.swift
[20/23] Compiling PerfectLogger 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 {
/root/.swiftpm/swift-sdks/swift-6.2-RELEASE-android-0.1.artifactbundle/swift-android/ndk-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.
/root/.swiftpm/swift-sdks/swift-6.2-RELEASE-android-0.1.artifactbundle/swift-android/ndk-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 | }
[21/23] Compiling PerfectLogger LogFile.swift
[22/23] Compiling PerfectLogger LogPriority.swift
[23/23] Compiling PerfectLogger RemoteLogHandler.swift
BUILD FAILURE 6.2 android