Build Information
Failed to build MarkdownToAttributedString, reference main (1dec63), with Swift 6.4 for Android on 24 Sep 2026 22:17:24 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344847-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>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/madebywindmill/MarkdownToAttributedString.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/madebywindmill/MarkdownToAttributedString
* branch main -> FETCH_HEAD
* [new branch] main -> origin/main
HEAD is now at 1dec63a Merge pull request #4 from SkylerSea/fix/visitListItem-protocol-dispatch
Cloned https://github.com/madebywindmill/MarkdownToAttributedString.git
Revision (git rev-parse @):
1dec63a2a0b62572c94229d05eccf9dead79f077
SUCCESS checkout https://github.com/madebywindmill/MarkdownToAttributedString.git at main
========================================
Build
========================================
Selected platform: android
Swift version: 6.4
Building package at path: $PWD
https://github.com/madebywindmill/MarkdownToAttributedString.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344847-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/swiftlang/swift-markdown.git
[1/7747] Fetching swift-markdown
Fetched https://github.com/swiftlang/swift-markdown.git (0.65s)
Fetching https://github.com/swiftlang/swift-cmark.git
[1/18600] Fetching swift-cmark
Fetched https://github.com/swiftlang/swift-cmark.git (0.90s)
Creating working copy for https://github.com/swiftlang/swift-markdown.git
Working copy of https://github.com/swiftlang/swift-markdown.git resolved at main (392b73b)
Creating working copy for https://github.com/swiftlang/swift-cmark.git
Working copy of https://github.com/swiftlang/swift-cmark.git resolved at gfm (0c8947b)
Building for debugging...
[Constructing description]
[Planning deferred tasks]
[42 / 83] cmark-gfm
[56 / 83] cmark-gfm
[67 / 84] Markdown
[76 / 93] cmark-gfm
[82 / 93] Markdown
error: SwiftCompile normal aarch64 failed with a nonzero exit code. Command line: cd /host
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:19:36: [1;31merror: [1;39mcannot find 'NSMutableAttributedString' in scope[0;0m
[0;36m17 |[0;0m var markdownStyles: MarkdownStyles
[0;36m18 |[0;0m
[0;36m19 |[0;0m private var attributedString = [4;39mNSMutableAttributedString[0;0m()
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'NSMutableAttributedString' in scope[0;0m
[0;36m20 |[0;0m private var currentAttributes: StringAttrs
[0;36m21 |[0;0m private var formattingOptions: FormattingOptions?
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:30:28: [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m28 |[0;0m private var currentOrderedListLevel: Int = 0
[0;36m29 |[0;0m
[0;36m30 |[0;0m private let loggingQ = [4;39mDispatchQueue[0;0m(label: "MTAS.logging")
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find 'DispatchQueue' in scope[0;0m
[0;36m31 |[0;0m
[0;36m32 |[0;0m init(markdown: String,
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:41:32: [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m39 |[0;0m }
[0;36m40 |[0;0m
[0;36m41 |[0;0m mutating func convert() -> [4;39mNSAttributedString[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m42 |[0;0m debugLog("Raw markdown to process:\n\(markdown)\n")
[0;36m43 |[0;0m let document = Document(parsing: markdown)
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:539:90: [1;31merror: [1;39mcannot find type 'FontDescriptor' in scope[0;0m
[0;36m537 |[0;0m }
[0;36m538 |[0;0m
[0;36m539 |[0;0m private func mergeFontDescriptors(base: FontDescriptor, expected: FontDescriptor) -> [4;39mFontDescriptor[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FontDescriptor' in scope[0;0m
[0;36m540 |[0;0m var traits = base.symbolicTraits
[0;36m541 |[0;0m
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:539:45: [1;31merror: [1;39mcannot find type 'FontDescriptor' in scope[0;0m
[0;36m537 |[0;0m }
[0;36m538 |[0;0m
[0;36m539 |[0;0m private func mergeFontDescriptors(base: [4;39mFontDescriptor[0;0m, expected: FontDescriptor) -> FontDescriptor {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FontDescriptor' in scope[0;0m
[0;36m540 |[0;0m var traits = base.symbolicTraits
[0;36m541 |[0;0m
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:539:71: [1;31merror: [1;39mcannot find type 'FontDescriptor' in scope[0;0m
[0;36m537 |[0;0m }
[0;36m538 |[0;0m
[0;36m539 |[0;0m private func mergeFontDescriptors(base: FontDescriptor, expected: [4;39mFontDescriptor[0;0m) -> FontDescriptor {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'FontDescriptor' in scope[0;0m
[0;36m540 |[0;0m var traits = base.symbolicTraits
[0;36m541 |[0;0m
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift:32:36: [1;31merror: [1;39mcannot find type 'CGFloat' in scope[0;0m
[0;36m30 |[0;0m public var baseAttributes: StringAttrs
[0;36m31 |[0;0m public var styleAttributes: [MarkupType: StringAttrs]
[0;36m32 |[0;0m public var headingPointSizes: [[4;39mCGFloat[0;0m] = [22, 18, 15, 14, 13, 11]
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'CGFloat' in scope[0;0m
[0;36m33 |[0;0m public var unorderedListBullets: [String] = ["•", "◦", "▪", "▫"]
[0;36m34 |[0;0m
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift:38:42: [1;31merror: [1;39mcannot find type 'NSParagraphStyle' in scope[0;0m
[0;36m36 |[0;0m /// Paragraph styles to apply at the beginning and end of a container block. This is especially useful for (and currently only implemented for) lists. Since NSParagraphStyle spacing is applied to each line and a list typically has lines separated by a newline, you would end up with the spacing applied to each line if just using a single paragraph style in `styleAttributes` for `orderedList`/`unorderedList`.
[0;36m37 |[0;0m /// With these, you can instead have the formatter apply a pstyle with paragraph spacing only at the beginning and end (typically `paragraphSpacingBefore` for start and `paragraphSpacing` for end).
[0;36m38 |[0;0m public var blockStartParagraphStyle: [4;39mNSParagraphStyle[0;0m?
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSParagraphStyle' in scope[0;0m
[0;36m39 |[0;0m public var blockEndParagraphStyle: NSParagraphStyle?
[0;36m40 |[0;0m
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift:39:40: [1;31merror: [1;39mcannot find type 'NSParagraphStyle' in scope[0;0m
[0;36m37 |[0;0m /// With these, you can instead have the formatter apply a pstyle with paragraph spacing only at the beginning and end (typically `paragraphSpacingBefore` for start and `paragraphSpacing` for end).
[0;36m38 |[0;0m public var blockStartParagraphStyle: NSParagraphStyle?
[0;36m39 |[0;0m public var blockEndParagraphStyle: [4;39mNSParagraphStyle[0;0m?
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSParagraphStyle' in scope[0;0m
[0;36m40 |[0;0m
[0;36m41 |[0;0m public init(baseAttributes: StringAttrs, styleAttributes: [MarkupType : StringAttrs]) {
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:644:26: [1;31merror: [1;39mcannot find type 'NSRange' in scope[0;0m
[0;36m642 |[0;0m }
[0;36m643 |[0;0m
[0;36m644 |[0;0m var rangeWithinLine: [4;39mNSRange[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSRange' in scope[0;0m
[0;36m645 |[0;0m guard let range else { return NSRange(location: NSNotFound, length: 0) }
[0;36m646 |[0;0m let start = range.lowerBound.column - 1
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift:692:35: [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m690 |[0;0m }
[0;36m691 |[0;0m
[0;36m692 |[0;0m extension Dictionary where Key == [4;39mNSAttributedString[0;0m.Key, Value == Any {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m693 |[0;0m func deepCopy() -> StringAttrs {
[0;36m694 |[0;0m var copy: StringAttrs = [:]
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift:57:56: [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m55 |[0;0m }
[0;36m56 |[0;0m
[0;36m57 |[0;0m public mutating func setBaseAttribute(_ attribute: [4;39mNSAttributedString[0;0m.Key, _ value: Any) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m58 |[0;0m var attrs = baseAttributes
[0;36m59 |[0;0m attrs[attribute] = value
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift:63:57: [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m61 |[0;0m }
[0;36m62 |[0;0m
[0;36m63 |[0;0m public mutating func setStyleAttribute(_ attribute: [4;39mNSAttributedString[0;0m.Key, _ value: Any, forType type: MarkupType) {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m64 |[0;0m var attrs = styleAttributes[type] ?? [:]
[0;36m65 |[0;0m attrs[attribute] = value
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift:128:54: [1;31merror: [1;39mcannot find type 'CocoaFont' in scope[0;0m
[0;36m126 |[0;0m }
[0;36m127 |[0;0m
[0;36m128 |[0;0m func fontAttributeForType(_ type: MarkupType) -> [4;39mCocoaFont[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'CocoaFont' in scope[0;0m
[0;36m129 |[0;0m return (attributesForType(type)[.font] as? CocoaFont) ?? CocoaFont.systemFont(ofSize: 13)
[0;36m130 |[0;0m }
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift:132:44: [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m130 |[0;0m }
[0;36m131 |[0;0m
[0;36m132 |[0;0m func valueForAttribute<T>(_ attribute: [4;39mNSAttributedString[0;0m.Key, type: MarkupType) -> T? {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'NSAttributedString' in scope[0;0m
[0;36m133 |[0;0m if let styleAttributeValue = styleAttributes[type]?[attribute] as? T {
[0;36m134 |[0;0m return styleAttributeValue
/host/spi-builder-workspace/Sources/MarkdownToAttributedString/Platform.swift:80:11: [1;31merror: [1;39mcannot find type 'CocoaFont' in scope[0;0m
[0;36m78 |[0;0m #endif
[0;36m79 |[0;0m
[0;36m80 |[0;0m extension [4;39mCocoaFont[0;0m {
[0;36m|[0;0m `- [1;31merror: [1;39mcannot find type 'CocoaFont' in scope[0;0m
[0;36m81 |[0;0m
[0;36m82 |[0;0m func isMonospaced() -> Bool {
Failed frontend command:
/root/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-09-04/usr/bin/swift-frontend -frontend -emit-module -experimental-skip-non-inlinable-function-bodies-without-types /host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringFormatter.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/AttributedStringVisitor.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/Extras.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/FormattingOptions.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownElementAttribute.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownStyles.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/MarkdownUtility.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/Platform.swift /host/spi-builder-workspace/Sources/MarkdownToAttributedString/Types.swift -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 5 -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 -fmodule-map-file\=/host/spi-builder-workspace/.build/checkouts/swift-cmark/src/include/module.modulemap -Xcc -fmodule-map-file\=/host/spi-builder-workspace/.build/checkouts/swift-cmark/extensions/include/module.modulemap -Xcc -fmodule-map-file\=/host/spi-builder-workspace/.build/checkouts/swift-markdown/Sources/CAtomic/include/module.modulemap -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/checkouts/swift-cmark/src/include -Xcc -I/host/spi-builder-workspace/.build/checkouts/swift-cmark/extensions/include -Xcc -I/host/spi-builder-workspace/.build/checkouts/swift-markdown/Sources/CAtomic/include -Xcc -I/host/spi-builder-workspace/.build/out/Products/Debug-android-aarch64/include -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/DerivedSources-normal/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/DerivedSources/aarch64 -Xcc -I/host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG\=1 -no-auto-bridging-header-chaining -module-name MarkdownToAttributedString -const-gather-protocols-file /host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/Objects-normal/aarch64/MarkdownToAttributedString_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 -emit-module-doc-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/Objects-normal/aarch64/Modules/MarkdownToAttributedString.swiftdoc -emit-module-source-info-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/Objects-normal/aarch64/Modules/MarkdownToAttributedString.swiftsourceinfo -emit-objc-header-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/Objects-normal/aarch64/MarkdownToAttributedString-Swift.h -serialize-diagnostics-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/Objects-normal/aarch64/MarkdownToAttributedString-primary-emit-module.dia -emit-dependencies-path /host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/Objects-normal/aarch64/MarkdownToAttributedString-primary-emit-module.d -parse-as-library -o /host/spi-builder-workspace/.build/out/Intermediates.noindex/MarkdownToAttributedString.build/Debug-android-aarch64/MarkdownToAttributedString-t.build/Objects-normal/aarch64/Modules/MarkdownToAttributedString.swiftmodule
error: Build failed
BUILD FAILURE 6.4 android