The Swift Package Index logo.Swift Package Index

Build Information

Failed to build Ligature, reference 0.1.1 (677abb), with Swift 6.4 for Android on 25 Sep 2026 04:55:59 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.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/ChimeHQ/Ligature.git
Reference: 0.1.1
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/ChimeHQ/Ligature
 * tag               0.1.1      -> FETCH_HEAD
HEAD is now at 677abb3 Support for forward/backward by word and a bunch of testing improvements
Cloned https://github.com/ChimeHQ/Ligature.git
Revision (git rev-parse @):
677abb3ad29e0979248f062dc969c16160951217
SUCCESS checkout https://github.com/ChimeHQ/Ligature.git at 0.1.1
========================================
Build
========================================
Selected platform:         android
Swift version:             6.4
Building package at path:  $PWD
https://github.com/ChimeHQ/Ligature.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.4-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:abadcff584c273feba50641b454858d377ba30b35ea7287a94f45ebd8afd0ea0
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.4-latest
Fetching https://github.com/ChimeHQ/Glyph
Fetching https://github.com/ChimeHQ/Rearrange
[1/609] Fetching rearrange
[610/903] Fetching rearrange, glyph
Fetched https://github.com/ChimeHQ/Glyph (0.50s)
Fetched https://github.com/ChimeHQ/Rearrange (0.50s)
Computing version for https://github.com/ChimeHQ/Rearrange
Computed https://github.com/ChimeHQ/Rearrange at 2.1.1 (0.71s)
Computing version for https://github.com/ChimeHQ/Glyph
Computed https://github.com/ChimeHQ/Glyph at 0.1.1 (0.15s)
Creating working copy for https://github.com/ChimeHQ/Rearrange
Working copy of https://github.com/ChimeHQ/Rearrange resolved at 2.1.1
Creating working copy for https://github.com/ChimeHQ/Glyph
Working copy of https://github.com/ChimeHQ/Glyph resolved at 0.1.1
Building for debugging...
[Pre-planning 1 / 126]
[Starting]
[41 / 70] Rearrange
[52 / 70] Rearrange-product
[56 / 70] Rearrange
[58 / 70] Glyph
[62 / 81] Ligature
[67 / 81] Ligature
error: SwiftCompile normal aarch64 /host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift failed with a nonzero exit code. Command line:     cd /host
    builtin-SwiftPerFileCompile SourceTokenizer.swift
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:14:72: error: cannot find type 'TextGranularity' in scope
12 |
13 | extension SourceTokenizer: TextTokenizer {
14 | 	public func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position? {
   |                                                                        `- error: cannot find type 'TextGranularity' in scope
15 | 		return fallbackTokenzier.position(from: position, toBoundary: granularity, inDirection: direction, alignment: alignment)
16 | 	}
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:14:112: error: cannot find type 'TextDirection' in scope
12 |
13 | extension SourceTokenizer: TextTokenizer {
14 | 	public func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position? {
   |                                                                                                                `- error: cannot find type 'TextDirection' in scope
15 | 		return fallbackTokenzier.position(from: position, toBoundary: granularity, inDirection: direction, alignment: alignment)
16 | 	}
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:18:77: error: cannot find type 'TextGranularity' in scope
16 | 	}
17 |
18 | 	public func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> FallbackTokenzier.TextRange? {
   |                                                                             `- error: cannot find type 'TextGranularity' in scope
19 | 		return fallbackTokenzier.rangeEnclosingPosition(position, with: granularity, inDirection: direction)
20 | 	}
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:18:117: error: cannot find type 'TextDirection' in scope
16 | 	}
17 |
18 | 	public func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> FallbackTokenzier.TextRange? {
   |                                                                                                                     `- error: cannot find type 'TextDirection' in scope
19 | 		return fallbackTokenzier.rangeEnclosingPosition(position, with: granularity, inDirection: direction)
20 | 	}
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:22:71: error: cannot find type 'TextGranularity' in scope
20 | 	}
21 |
22 | 	public func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool {
   |                                                                       `- error: cannot find type 'TextGranularity' in scope
23 | 		return fallbackTokenzier.isPosition(position, atBoundary: granularity, inDirection: direction)
24 | 	}
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:22:111: error: cannot find type 'TextDirection' in scope
20 | 	}
21 |
22 | 	public func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool {
   |                                                                                                               `- error: cannot find type 'TextDirection' in scope
23 | 		return fallbackTokenzier.isPosition(position, atBoundary: granularity, inDirection: direction)
24 | 	}
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:26:75: error: cannot find type 'TextGranularity' in scope
24 | 	}
25 |
26 | 	public func isPosition(_ position: Position, withinTextUnit granularity: TextGranularity, inDirection direction: TextDirection) -> Bool {
   |                                                                           `- error: cannot find type 'TextGranularity' in scope
27 | 		return fallbackTokenzier.isPosition(position, withinTextUnit: granularity, inDirection: direction)
28 | 	}
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:26:115: error: cannot find type 'TextDirection' in scope
24 | 	}
25 |
26 | 	public func isPosition(_ position: Position, withinTextUnit granularity: TextGranularity, inDirection direction: TextDirection) -> Bool {
   |                                                                                                                   `- error: cannot find type 'TextDirection' in scope
27 | 		return fallbackTokenzier.isPosition(position, withinTextUnit: granularity, inDirection: direction)
28 | 	}
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:15:65: error: cannot find type 'TextGranularity' in scope
13 | 	typealias Position = TextRange.Bound
14 |
15 | 	func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position?
   |                                                                 `- error: cannot find type 'TextGranularity' in scope
16 | 	func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> TextRange?
17 |
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:15:105: error: cannot find type 'TextDirection' in scope
13 | 	typealias Position = TextRange.Bound
14 |
15 | 	func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position?
   |                                                                                                         `- error: cannot find type 'TextDirection' in scope
16 | 	func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> TextRange?
17 |
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:15:131: error: cannot find type 'CGFloat' in scope
13 | 	typealias Position = TextRange.Bound
14 |
15 | 	func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position?
   |                                                                                                                                   `- error: cannot find type 'CGFloat' in scope
16 | 	func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> TextRange?
17 |
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:16:70: error: cannot find type 'TextGranularity' in scope
14 |
15 | 	func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position?
16 | 	func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> TextRange?
   |                                                                      `- error: cannot find type 'TextGranularity' in scope
17 |
18 | 	func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:16:110: error: cannot find type 'TextDirection' in scope
14 |
15 | 	func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position?
16 | 	func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> TextRange?
   |                                                                                                              `- error: cannot find type 'TextDirection' in scope
17 |
18 | 	func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:18:64: error: cannot find type 'TextGranularity' in scope
16 | 	func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> TextRange?
17 |
18 | 	func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
   |                                                                `- error: cannot find type 'TextGranularity' in scope
19 | 	func isPosition(_ position: Position, withinTextUnit granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
20 | }
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:18:104: error: cannot find type 'TextDirection' in scope
16 | 	func rangeEnclosingPosition(_ position: Position, with granularity: TextGranularity, inDirection direction: TextDirection) -> TextRange?
17 |
18 | 	func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
   |                                                                                                        `- error: cannot find type 'TextDirection' in scope
19 | 	func isPosition(_ position: Position, withinTextUnit granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
20 | }
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:19:68: error: cannot find type 'TextGranularity' in scope
17 |
18 | 	func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
19 | 	func isPosition(_ position: Position, withinTextUnit granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
   |                                                                    `- error: cannot find type 'TextGranularity' in scope
20 | }
21 |
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:19:108: error: cannot find type 'TextDirection' in scope
17 |
18 | 	func isPosition(_ position: Position, atBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
19 | 	func isPosition(_ position: Position, withinTextUnit granularity: TextGranularity, inDirection direction: TextDirection) -> Bool
   |                                                                                                            `- error: cannot find type 'TextDirection' in scope
20 | }
21 |
/host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift:13:1: error: type 'SourceTokenizer<FallbackTokenzier>' does not conform to protocol 'TextTokenizer'
11 | }
12 |
13 | extension SourceTokenizer: TextTokenizer {
   | |- error: type 'SourceTokenizer<FallbackTokenzier>' does not conform to protocol 'TextTokenizer'
   | `- note: add stubs for conformance
14 | 	public func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection, alignment: CGFloat?) -> Position? {
15 | 		return fallbackTokenzier.position(from: position, toBoundary: granularity, inDirection: direction, alignment: alignment)
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:11:17: note: protocol requires nested type 'TextRange'
 9 | @MainActor
10 | public protocol TextTokenizer<TextRange> {
11 | 	associatedtype TextRange: Bounded
   |                 `- note: protocol requires nested type 'TextRange'
12 |
13 | 	typealias Position = TextRange.Bound
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:23:72: error: cannot find type 'TextGranularity' in scope
21 |
22 | extension TextTokenizer {
23 | 	public func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Position? {
   |                                                                        `- error: cannot find type 'TextGranularity' in scope
24 | 		self.position(from: position, toBoundary: granularity, inDirection: direction, alignment: nil)
25 | 	}
/host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift:23:112: error: cannot find type 'TextDirection' in scope
21 |
22 | extension TextTokenizer {
23 | 	public func position(from position: Position, toBoundary granularity: TextGranularity, inDirection direction: TextDirection) -> Position? {
   |                                                                                                                `- error: cannot find type 'TextDirection' in scope
24 | 		self.position(from: position, toBoundary: granularity, inDirection: direction, alignment: nil)
25 | 	}
Failed frontend command:
/root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/bin/swift-frontend -frontend -c /host/spi-builder-workspace/Sources/Ligature/MockTextTokenizer.swift /host/spi-builder-workspace/Sources/Ligature/NSTextSelection+Extensions.swift -primary-file /host/spi-builder-workspace/Sources/Ligature/Platform.swift -primary-file /host/spi-builder-workspace/Sources/Ligature/SourceTokenizer.swift /host/spi-builder-workspace/Sources/Ligature/TextDirection+Extensions.swift /host/spi-builder-workspace/Sources/Ligature/TextInputStringTokenizer.swift /host/spi-builder-workspace/Sources/Ligature/TextRange+Bounded.swift /host/spi-builder-workspace/Sources/Ligature/TextTokenizer.swift /host/spi-builder-workspace/Sources/Ligature/TextView+TextRangeCalculating.swift /host/spi-builder-workspace/Sources/Ligature/UTF16CodePointTextViewTextTokenizer.swift -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/Platform.d -emit-const-values-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/Platform.swiftconstvalues -emit-reference-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/Platform.swiftdeps -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/Platform.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/SourceTokenizer.d -emit-const-values-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/SourceTokenizer.swiftconstvalues -emit-reference-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/SourceTokenizer.swiftdeps -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/SourceTokenizer.dia -target aarch64-unknown-linux-android28 -Xllvm -aarch64-use-tbi -disable-objc-interop -sdk /android-ndk/android-ndk-r27d/toolchains/llvm/prebuilt/linux-x86_64/sysroot -sysroot /android-ndk/android-ndk-r27d/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.x-snapshot-2026-09-04/usr/lib/swift/host/plugins/testing\#/root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/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.x-DEVELOPMENT-SNAPSHOT-2026-09-04-a_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-r27d/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/18 -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/Ligature.build/Debug-android-aarch64/Ligature-t.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name Ligature -package-name spi_builder_workspace -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/Ligature_const_extract_protocols.json -in-process-plugin-server-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/lib/swift/host/plugins -plugin-path /root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/local/lib/swift/host/plugins -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/Platform.o -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/SourceTokenizer.o -index-unit-output-path /Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/Platform.o -index-unit-output-path /Ligature.build/Debug-android-aarch64/Ligature-t.build/Objects-normal/aarch64/SourceTokenizer.o -index-store-path /host/spi-builder-workspace/.build/out -index-system-modules
error: Build failed
BUILD FAILURE 6.4 android