Build Information
Successful build of SwiftText, reference 2.4.0 (15e176), with Swift 6.4 for Linux on 12 Oct 2026 10:44:21 UTC.
Swift 6 data race errors: 0
Build Command
bash -c docker run --pull=always --rm -v "checkouts-54344843-1":/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:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.1
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/Cocoanetics/SwiftText.git
Reference: 2.4.0
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/Cocoanetics/SwiftText
* tag 2.4.0 -> FETCH_HEAD
HEAD is now at 15e176a Pages: keep a box's top padding when it opens a page (#117)
Cloned https://github.com/Cocoanetics/SwiftText.git
Revision (git rev-parse @):
15e176a1910ece26c87468e151714f6253a6b385
SUCCESS checkout https://github.com/Cocoanetics/SwiftText.git at 2.4.0
========================================
Build
========================================
Selected platform: linux
Swift version: 6.4
Building package at path: $PWD
https://github.com/Cocoanetics/SwiftText.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-54344843-1":/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:basic-6.4-latest swift build --triple x86_64-unknown-linux-gnu 2>&1
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:cb09f0c0d537a8668f02529c380785d189fc75032d54572211355a09e050e122
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Fetching https://github.com/marcprux/swift-archive.git
Fetching https://github.com/swiftlang/swift-markdown.git
Fetching https://github.com/apple/swift-argument-parser
[1/44937] Fetching swift-archive
[2248/52704] Fetching swift-archive, swift-markdown
[13993/71816] Fetching swift-archive, swift-markdown, swift-argument-parser
Fetched https://github.com/swiftlang/swift-markdown.git (1.12s)
Fetched https://github.com/apple/swift-argument-parser (1.12s)
[22918/44937] Fetching swift-archive
Fetching https://github.com/Cocoanetics/XMLKit.git
[44938/45097] Fetching swift-archive, xmlkit
Fetched https://github.com/Cocoanetics/XMLKit.git (0.42s)
Fetched https://github.com/marcprux/swift-archive.git (2.57s)
Computing version for https://github.com/marcprux/swift-archive.git
Computed https://github.com/marcprux/swift-archive.git at 3.8.9 (2.80s)
Computing version for https://github.com/Cocoanetics/XMLKit.git
Computed https://github.com/Cocoanetics/XMLKit.git at 1.0.1 (0.20s)
Computing version for https://github.com/swiftlang/swift-markdown.git
Computed https://github.com/swiftlang/swift-markdown.git at 0.9.0 (0.27s)
Fetching https://github.com/swiftlang/swift-cmark.git
[1/18633] Fetching swift-cmark
Fetched https://github.com/swiftlang/swift-cmark.git (1.07s)
Computing version for https://github.com/swiftlang/swift-cmark.git
Computed https://github.com/swiftlang/swift-cmark.git at 0.9.0 (2.04s)
Computing version for https://github.com/apple/swift-argument-parser
Computed https://github.com/apple/swift-argument-parser at 1.8.2 (0.16s)
Creating working copy for https://github.com/Cocoanetics/XMLKit.git
Working copy of https://github.com/Cocoanetics/XMLKit.git resolved at 1.0.1
Creating working copy for https://github.com/swiftlang/swift-markdown.git
Working copy of https://github.com/swiftlang/swift-markdown.git resolved at 0.9.0
Creating working copy for https://github.com/swiftlang/swift-cmark.git
Working copy of https://github.com/swiftlang/swift-cmark.git resolved at 0.9.0
Creating working copy for https://github.com/marcprux/swift-archive.git
Working copy of https://github.com/marcprux/swift-archive.git resolved at 3.8.9
Creating working copy for https://github.com/apple/swift-argument-parser
Working copy of https://github.com/apple/swift-argument-parser resolved at 1.8.2
warning: 'swift-archive': you may be able to install libzstd using your system-packager:
apt-get install libzstd-dev
warning: 'swift-archive': you may be able to install liblzma using your system-packager:
apt-get install liblzma-dev
Building for debugging...
[Computing dependencies]
[Constructing description]
[Pre-planning 1 / 1411]
[Planning deferred tasks]
[Starting]
[113 / 532] SwiftTextDOCX
[184 / 532] cmark-gfm-extensions
[204 / 532] cmark-gfm
[231 / 538]
[246 / 589] SwiftTextCore
[255 / 589] Archive
[267 / 589] CArchive
[275 / 589] Archive
[292 / 589] CArchive
[303 / 589] CArchive
[311 / 589] CArchive
[321 / 589] CArchive
[341 / 589] CArchive
[350 / 589] CArchive
[357 / 589] CArchive
[367 / 589] CArchive
[376 / 589] CArchive
[391 / 589] CArchive
[402 / 589] CArchive
[420 / 589] CArchive
[428 / 589] SwiftTextOpenType
[428 / 589] SwiftTextPDFWriter
[437 / 590] SwiftTextCore
[442 / 591] SwiftTextPDFWriter
[445 / 591] SwiftTextCSS
[447 / 591] Markdown
[448 / 591] Markdown
[449 / 591] Markdown
[450 / 591] Markdown-product
[455 / 593] SwiftTextOpenType
[458 / 593] SwiftTextCSS
[459 / 593] HTMLParser
[463 / 593] HTMLParser-product
[465 / 593] Archive-product
[469 / 594] SwiftTextZip
[472 / 594] Archive
[479 / 599] SwiftTextZip
[484 / 614] SwiftTextIWA
[485 / 614] SwiftTextZip
[492 / 616] SwiftTextZip
[504 / 618] SwiftTextIWA
[510 / 618] SwiftTextIWA
/host/spi-builder-workspace/Sources/SwiftTextIWA/IWAContainer.swift:41:23: [1;33mwarning: [1;39mresult of call to 'fileExists(atPath:isDirectory:)' is unused[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m39 |[0;0m public static func isDirectory(_ url: URL) -> Bool {
[0;36m40 |[0;0m var isDirectory: ObjCBool = false
[0;36m41 |[0;0m FileManager.default.fileExists(atPath: url.path, isDirectory: &isDirectory)
[0;36m|[0;0m `- [1;33mwarning: [1;39mresult of call to 'fileExists(atPath:isDirectory:)' is unused[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/no-usage\NoUsage]8;;\]
[0;36m42 |[0;0m return isDirectory.boolValue
[0;36m43 |[0;0m }
[#NoUsage]: <https://docs.swift.org/compiler/documentation/diagnostics/no-usage>
[512 / 618] SwiftTextMarkdown
[519 / 618]
[524 / 622] ArgumentParser
[530 / 639] SwiftTextPages
[532 / 639] SwiftTextPages
[533 / 640] ArgumentParser
[535 / 640] SwiftTextPages
[535 / 640] ArgumentParser
[538 / 640] ArgumentParser
[543 / 640] SwiftTextIWA
[546 / 640] ArgumentParser
[547 / 640] ArgumentParser
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:195:7: [1;33mwarning: [1;39mvariable 'tsp' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m193 |[0;0m /// A `TSP.Color` in the RGB "model 1" form Pages uses for fills and strokes.
[0;36m194 |[0;0m static func tspColor(_ c: PagesColor) -> TSP_Color {
[0;36m195 |[0;0m var tsp = TSP_Color(); tsp.model = 1
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'tsp' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m196 |[0;0m tsp.r = c.red; tsp.g = c.green; tsp.b = c.blue; tsp.a = c.alpha
[0;36m197 |[0;0m return tsp
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:202:7: [1;33mwarning: [1;39mvariable 's' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m200 |[0;0m /// Pages renders nothing.
[0;36m201 |[0;0m static func strokeArchive(_ border: PagesCellBorder) -> TSD_StrokeArchive {
[0;36m202 |[0;0m var s = TSD_StrokeArchive(); s.color = tspColor(border.color); s.width = border.width
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 's' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m203 |[0;0m s.cap = 0; s.join = 0 // butt cap, miter join
[0;36m204 |[0;0m var pattern = TSD_StrokePatternArchive()
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:204:7: [1;33mwarning: [1;39mvariable 'pattern' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m202 |[0;0m var s = TSD_StrokeArchive(); s.color = tspColor(border.color); s.width = border.width
[0;36m203 |[0;0m s.cap = 0; s.join = 0 // butt cap, miter join
[0;36m204 |[0;0m var pattern = TSD_StrokePatternArchive()
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'pattern' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m205 |[0;0m pattern.type = 1 // TSDSolidPattern
[0;36m206 |[0;0m pattern.phase = 0; pattern.count = 0
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:216:7: [1;33mwarning: [1;39mvariable 'sup' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m214 |[0;0m /// here — Pages paints cell borders from the table stroke sidecar (see `strokeSidecar`).
[0;36m215 |[0;0m static func cellStyleArchive(_ appearance: PagesCellAppearance, parent: UInt64) -> [UInt8] {
[0;36m216 |[0;0m var sup = TSS_StyleArchive()
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'sup' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m217 |[0;0m var parentRef = TSP_Reference(); parentRef.identifier = parent; sup.parent = parentRef
[0;36m218 |[0;0m sup.isVariation = true
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:217:7: [1;33mwarning: [1;39mvariable 'parentRef' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m215 |[0;0m static func cellStyleArchive(_ appearance: PagesCellAppearance, parent: UInt64) -> [UInt8] {
[0;36m216 |[0;0m var sup = TSS_StyleArchive()
[0;36m217 |[0;0m var parentRef = TSP_Reference(); parentRef.identifier = parent; sup.parent = parentRef
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'parentRef' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m218 |[0;0m sup.isVariation = true
[0;36m219 |[0;0m var sheetRef = TSP_Reference(); sheetRef.identifier = stylesheetID; sup.stylesheet = sheetRef
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:219:7: [1;33mwarning: [1;39mvariable 'sheetRef' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m217 |[0;0m var parentRef = TSP_Reference(); parentRef.identifier = parent; sup.parent = parentRef
[0;36m218 |[0;0m sup.isVariation = true
[0;36m219 |[0;0m var sheetRef = TSP_Reference(); sheetRef.identifier = stylesheetID; sup.stylesheet = sheetRef
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'sheetRef' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m220 |[0;0m
[0;36m221 |[0;0m var props = TST_CellStylePropertiesArchive()
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:221:7: [1;33mwarning: [1;39mvariable 'props' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m219 |[0;0m var sheetRef = TSP_Reference(); sheetRef.identifier = stylesheetID; sup.stylesheet = sheetRef
[0;36m220 |[0;0m
[0;36m221 |[0;0m var props = TST_CellStylePropertiesArchive()
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'props' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m222 |[0;0m if let fill = appearance.fill { var f = TSD_FillArchive(); f.color = tspColor(fill); props.cellFill = f }
[0;36m223 |[0;0m if let valign = appearance.verticalAlignment { props.verticalAlignment = valign.rawValue }
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:222:39: [1;33mwarning: [1;39mvariable 'f' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m220 |[0;0m
[0;36m221 |[0;0m var props = TST_CellStylePropertiesArchive()
[0;36m222 |[0;0m if let fill = appearance.fill { var f = TSD_FillArchive(); f.color = tspColor(fill); props.cellFill = f }
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'f' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m223 |[0;0m if let valign = appearance.verticalAlignment { props.verticalAlignment = valign.rawValue }
[0;36m224 |[0;0m if let wrap = appearance.textWrap { props.textWrap = wrap }
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:226:7: [1;33mwarning: [1;39mvariable 'cellStyle' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m224 |[0;0m if let wrap = appearance.textWrap { props.textWrap = wrap }
[0;36m225 |[0;0m
[0;36m226 |[0;0m var cellStyle = TST_CellStyleArchive()
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'cellStyle' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m227 |[0;0m cellStyle.super = sup
[0;36m228 |[0;0m cellStyle.overrideCount = 1
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:273:9: [1;33mwarning: [1;39mvariable 'layer' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m271 |[0;0m var ids = [UInt64]()
[0;36m272 |[0;0m for (lineIndex, runs) in map.sorted(by: { $0.key < $1.key }) {
[0;36m273 |[0;0m var layer = TST_StrokeLayerArchive()
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'layer' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m274 |[0;0m layer.rowColumnIndex = UInt32(lineIndex)
[0;36m275 |[0;0m for (origin, border) in runs.sorted(by: { $0.0 < $1.0 }) {
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:276:10: [1;33mwarning: [1;39mvariable 'run' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m274 |[0;0m layer.rowColumnIndex = UInt32(lineIndex)
[0;36m275 |[0;0m for (origin, border) in runs.sorted(by: { $0.0 < $1.0 }) {
[0;36m276 |[0;0m var run = TST_StrokeLayerArchive_StrokeRunArchive()
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'run' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m277 |[0;0m run.origin = Int32(origin); run.length = 1
[0;36m278 |[0;0m run.stroke = strokeArchive(border); run.order = order; order += 1
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:289:65: [1;33mwarning: [1;39mvariable 'r' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m287 |[0;0m let leftIDs = buildLayers(left), rightIDs = buildLayers(right)
[0;36m288 |[0;0m let topIDs = buildLayers(top), bottomIDs = buildLayers(bottom)
[0;36m289 |[0;0m func refs(_ ids: [UInt64]) -> [TSP_Reference] { ids.map { var r = TSP_Reference(); r.identifier = $0; return r } }
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'r' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m290 |[0;0m
[0;36m291 |[0;0m var sidecar = TST_StrokeSidecarArchive()
/host/spi-builder-workspace/Sources/SwiftTextPages/PagesTableBuilder.swift:291:7: [1;33mwarning: [1;39mvariable 'sidecar' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m289 |[0;0m func refs(_ ids: [UInt64]) -> [TSP_Reference] { ids.map { var r = TSP_Reference(); r.identifier = $0; return r } }
[0;36m290 |[0;0m
[0;36m291 |[0;0m var sidecar = TST_StrokeSidecarArchive()
[0;36m|[0;0m `- [1;33mwarning: [1;39mvariable 'sidecar' was never mutated; consider changing to 'let' constant[0;0m [#]8;;https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated\VariableNeverMutated]8;;\]
[0;36m292 |[0;0m sidecar.maxOrder = order
[0;36m293 |[0;0m sidecar.columnCount = UInt32(table.columns)
[#VariableNeverMutated]: <https://docs.swift.org/compiler/documentation/diagnostics/variable-never-mutated>
[548 / 640] ArgumentParser
[550 / 640] ArgumentParser
[555 / 648] SwiftTextNumbers
[556 / 652] SwiftTextKeynote
[560 / 652] SwiftTextNumbers
[565 / 670] SwiftTextEPUB
[573 / 670] SwiftTextEPUB
[583 / 670] SwiftTextNumbers-product
[586 / 671] SwiftTextNumbers
[588 / 671] SwiftTextKeynote
[594 / 672] SwiftTextKeynote
[594 / 673] SwiftTextHTML
[596 / 673] SwiftTextPages
[602 / 673] SwiftTextPages-product
[603 / 673] SwiftTextHTML
[606 / 673] SwiftTextEPUB-product
[609 / 673] SwiftTextEPUB
[611 / 673] CHTMLParser
[615 / 674]
[625 / 698] SwiftTextDOCX
[626 / 699] SwiftTextCore-product
[628 / 699] Archive
[633 / 699] SwiftTextRender
[647 / 699] SwiftTextRender-product
[648 / 699] SwiftTextRender-product
[652 / 699] SwiftTextDOCX
[653 / 699] SwiftTextDOCX
[654 / 699] SwiftTextDOCX
[656 / 699] SwiftTextDOCX
[658 / 699] SwiftTextCore-product
[660 / 699] SwiftTextAttributedString-product
[663 / 701]
[666 / 707] swifttext-product
[667 / 707] swifttext-product
[672 / 709] SwiftTextAttributedString
[679 / 712]
[684 / 712] ArgumentParser-product
[692 / 713] Archive
[700 / 713] SwiftTextRender-product
[705 / 713] swifttext-product
[708 / 714] SwiftTextPages
[711 / 715] SwiftTextPages
[715 / 715] swifttext-product
Build complete! (30.46 secs)
Build complete.
{
"dependencies" : [
{
"identity" : "swift-argument-parser",
"requirement" : {
"range" : [
{
"lower_bound" : "1.3.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/apple/swift-argument-parser"
},
{
"identity" : "swift-archive",
"requirement" : {
"range" : [
{
"lower_bound" : "3.8.9",
"upper_bound" : "4.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/marcprux/swift-archive.git"
},
{
"identity" : "swift-markdown",
"requirement" : {
"range" : [
{
"lower_bound" : "0.8.0",
"upper_bound" : "1.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/swiftlang/swift-markdown.git"
},
{
"identity" : "xmlkit",
"requirement" : {
"range" : [
{
"lower_bound" : "1.0.0",
"upper_bound" : "2.0.0"
}
]
},
"type" : "sourceControl",
"url" : "https://github.com/Cocoanetics/XMLKit.git"
}
],
"manifest_display_name" : "SwiftText",
"name" : "SwiftText",
"path" : "/host/spi-builder-workspace",
"platforms" : [
{
"name" : "macos",
"version" : "13.0"
},
{
"name" : "ios",
"version" : "15.0"
},
{
"name" : "tvos",
"version" : "15.0"
},
{
"name" : "watchos",
"version" : "10.0"
}
],
"products" : [
{
"name" : "SwiftText",
"targets" : [
"SwiftText"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextCore",
"targets" : [
"SwiftTextCore"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextDOCX",
"targets" : [
"SwiftTextDOCX"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextEPUB",
"targets" : [
"SwiftTextEPUB"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextPages",
"targets" : [
"SwiftTextPages"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextIWA",
"targets" : [
"SwiftTextIWA"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextNumbers",
"targets" : [
"SwiftTextNumbers"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextKeynote",
"targets" : [
"SwiftTextKeynote"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextPDFWriter",
"targets" : [
"SwiftTextPDFWriter"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextOpenType",
"targets" : [
"SwiftTextOpenType"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextCSS",
"targets" : [
"SwiftTextCSS"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextRender",
"targets" : [
"SwiftTextRender"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextHTML",
"targets" : [
"SwiftTextHTML"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextMarkdown",
"targets" : [
"SwiftTextMarkdown"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "SwiftTextAttributedString",
"targets" : [
"SwiftTextAttributedString"
],
"type" : {
"library" : [
"automatic"
]
}
},
{
"name" : "swifttext",
"targets" : [
"SwiftTextCLI"
],
"type" : {
"executable" : null
}
}
],
"targets" : [
{
"c99name" : "VersionGeneratorPlugin",
"module_type" : "PluginTarget",
"name" : "VersionGeneratorPlugin",
"path" : "Plugins/VersionGeneratorPlugin",
"plugin_capability" : {
"type" : "buildTool"
},
"product_memberships" : [
"swifttext"
],
"sources" : [
"VersionGeneratorPlugin.swift"
],
"type" : "plugin"
},
{
"c99name" : "SwiftTextZip",
"module_type" : "SwiftTarget",
"name" : "SwiftTextZip",
"path" : "Sources/SwiftTextZip",
"product_dependencies" : [
"Archive"
],
"product_memberships" : [
"SwiftText",
"SwiftTextDOCX",
"SwiftTextEPUB",
"swifttext"
],
"sources" : [
"ZipContainerWriter.swift"
],
"type" : "library"
},
{
"c99name" : "SwiftTextRenderTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextRenderTests",
"path" : "Tests/SwiftTextRenderTests",
"sources" : [
"ArabicShaperTests.swift",
"BidiTests.swift",
"BoxModelTests.swift",
"BoxTreeTests.swift",
"FallbackEmbeddingTests.swift",
"FontFallbackTests.swift",
"InlineWhitespaceTests.swift",
"PageBreakTests.swift",
"PreservedWhitespaceTests.swift",
"RenderPDFTests.swift",
"TableColumnWidthsTests.swift",
"TableIntrinsicSizingTests.swift",
"TextDecorationTests.swift"
],
"target_dependencies" : [
"SwiftTextRender",
"SwiftTextHTML",
"SwiftTextCSS"
],
"type" : "test"
},
{
"c99name" : "SwiftTextRender",
"module_type" : "SwiftTarget",
"name" : "SwiftTextRender",
"path" : "Sources/SwiftTextRender",
"product_memberships" : [
"SwiftTextRender",
"swifttext"
],
"sources" : [
"ArabicShaper.swift",
"ArabicShapingTables.swift",
"Bidi.swift",
"Box.swift",
"BoxTreeBuilder.swift",
"Font.swift",
"FontResources.swift",
"HTMLRenderer.swift",
"ImageDecoder.swift",
"InlineLayout.swift",
"Layout.swift",
"LineBreaks.swift",
"PageMarginBoxes.swift",
"Painter.swift",
"StyledElement.swift",
"TableColumnWidths.swift"
],
"target_dependencies" : [
"SwiftTextHTML",
"SwiftTextCSS",
"SwiftTextOpenType",
"SwiftTextPDFWriter"
],
"type" : "library"
},
{
"c99name" : "SwiftTextPagesTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextPagesTests",
"path" : "Tests/SwiftTextPagesTests",
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/SwiftTextPagesTests/Resources/Sample.pages",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"IWAGeneratedModelTests.swift",
"IWAObjectGraphTests.swift",
"IWAPackageTests.swift",
"IWATestSupport.swift",
"IWATypeBinderTests.swift",
"IWAWriteTests.swift",
"MarkdownToPagesTests.swift",
"PagesCalloutTests.swift",
"PagesCellValueTests.swift",
"PagesDocumentTests.swift",
"PagesFileTests.swift",
"PagesFootnoteTests.swift",
"PagesFormattingTests.swift",
"PagesImageTests.swift",
"PagesLegacyTests.swift",
"PagesSynthesizerTests.swift",
"PagesTableStyleTests.swift",
"PagesWriterTests.swift",
"ProtobufTests.swift",
"SnappyTests.swift",
"StylesheetTests.swift",
"ZipParityTests.swift"
],
"target_dependencies" : [
"SwiftTextPages",
"SwiftTextIWA"
],
"type" : "test"
},
{
"c99name" : "SwiftTextPages",
"module_type" : "SwiftTarget",
"name" : "SwiftTextPages",
"path" : "Sources/SwiftTextPages",
"product_dependencies" : [
"Markdown"
],
"product_memberships" : [
"SwiftText",
"SwiftTextPages",
"swifttext"
],
"sources" : [
"Generated/BlankPagesTemplate.swift",
"Generated/IWA/IWACatalog.gen.swift",
"Generated/IWA/IWATypeRegistry.swift",
"Generated/IWA/IWAWire.swift",
"Generated/IWA/TNArchives.gen.swift",
"Generated/IWA/TPArchives.gen.swift",
"Generated/IWA/TSAArchives.gen.swift",
"Generated/IWA/TSCEArchives.gen.swift",
"Generated/IWA/TSCKArchives.gen.swift",
"Generated/IWA/TSDArchives.gen.swift",
"Generated/IWA/TSKArchives.gen.swift",
"Generated/IWA/TSPArchiveMessages.gen.swift",
"Generated/IWA/TSPMessages.gen.swift",
"Generated/IWA/TSSArchives.gen.swift",
"Generated/IWA/TSTArchives.gen.swift",
"Generated/IWA/TSTStylePropertyArchiving.gen.swift",
"Generated/IWA/TSWPArchives.gen.swift",
"Generated/PagesTableTemplate.swift",
"IWAObjectGraph.swift",
"IWAPackage.swift",
"IWATypeBinder.swift",
"MarkdownToPages.swift",
"PagesBodyBuilder.swift",
"PagesBoxLayout.swift",
"PagesDocument.swift",
"PagesFile.swift",
"PagesFootnoteBuilder.swift",
"PagesImageBuilder.swift",
"PagesImageCatalog.swift",
"PagesLegacyParser.swift",
"PagesMarkdownAST.swift",
"PagesParser.swift",
"PagesSynthesizer.swift",
"PagesTableBuilder.swift",
"PagesTableStyle.swift",
"PagesTemplate.swift",
"PagesWriter.swift",
"StoredZipWriter.swift"
],
"target_dependencies" : [
"SwiftTextIWA",
"SwiftTextMarkdown",
"SwiftTextCore"
],
"type" : "library"
},
{
"c99name" : "SwiftTextPDFWriterTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextPDFWriterTests",
"path" : "Tests/SwiftTextPDFWriterTests",
"sources" : [
"PDFWriterTests.swift"
],
"target_dependencies" : [
"SwiftTextPDFWriter"
],
"type" : "test"
},
{
"c99name" : "SwiftTextPDFWriter",
"module_type" : "SwiftTarget",
"name" : "SwiftTextPDFWriter",
"path" : "Sources/SwiftTextPDFWriter",
"product_memberships" : [
"SwiftTextPDFWriter",
"SwiftTextRender",
"swifttext"
],
"sources" : [
"Deflate.swift",
"PDF.swift",
"PDFObjects.swift",
"PDFStream.swift",
"PDFValue.swift"
],
"type" : "library"
},
{
"c99name" : "SwiftTextOpenTypeTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextOpenTypeTests",
"path" : "Tests/SwiftTextOpenTypeTests",
"sources" : [
"CFFSubsetTests.swift",
"OpenTypeTests.swift"
],
"target_dependencies" : [
"SwiftTextOpenType"
],
"type" : "test"
},
{
"c99name" : "SwiftTextOpenType",
"module_type" : "SwiftTarget",
"name" : "SwiftTextOpenType",
"path" : "Sources/SwiftTextOpenType",
"product_memberships" : [
"SwiftTextOpenType",
"SwiftTextRender",
"swifttext"
],
"sources" : [
"CFFSubset.swift",
"Cmap.swift",
"FontBytes.swift",
"OpenTypeFont.swift",
"TrueTypeSubset.swift"
],
"type" : "library"
},
{
"c99name" : "SwiftTextNumbersTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextNumbersTests",
"path" : "Tests/SwiftTextNumbersTests",
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/SwiftTextNumbersTests/Resources/LegacySample.numbers",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/SwiftTextNumbersTests/Resources/MultiTile.numbers",
"rule" : {
"process" : {
}
}
},
{
"path" : "/host/spi-builder-workspace/Tests/SwiftTextNumbersTests/Resources/Sample.numbers",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"NumbersFileTests.swift"
],
"target_dependencies" : [
"SwiftTextNumbers",
"SwiftTextIWA"
],
"type" : "test"
},
{
"c99name" : "SwiftTextNumbers",
"module_type" : "SwiftTarget",
"name" : "SwiftTextNumbers",
"path" : "Sources/SwiftTextNumbers",
"product_memberships" : [
"SwiftTextNumbers",
"swifttext"
],
"sources" : [
"NumbersDocument.swift",
"NumbersFile.swift",
"NumbersParser.swift"
],
"target_dependencies" : [
"SwiftTextIWA"
],
"type" : "library"
},
{
"c99name" : "SwiftTextMarkdownTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextMarkdownTests",
"path" : "Tests/SwiftTextMarkdownTests",
"sources" : [
"MarkdownAlertBlockTests.swift",
"MarkdownAlertColorsTests.swift",
"MarkdownFootnoteRendererTests.swift",
"SwiftMarkdownHTMLRendererTests.swift"
],
"target_dependencies" : [
"SwiftTextMarkdown"
],
"type" : "test"
},
{
"c99name" : "SwiftTextMarkdown",
"module_type" : "SwiftTarget",
"name" : "SwiftTextMarkdown",
"path" : "Sources/SwiftTextMarkdown",
"product_dependencies" : [
"Markdown"
],
"product_memberships" : [
"SwiftText",
"SwiftTextDOCX",
"SwiftTextEPUB",
"SwiftTextPages",
"SwiftTextRender",
"SwiftTextHTML",
"SwiftTextMarkdown",
"SwiftTextAttributedString",
"swifttext"
],
"sources" : [
"MarkdownAlertBlock.swift",
"MarkdownAlertColors.swift",
"MarkdownFootnoteParsing.swift",
"MarkdownFootnoteRenderer.swift",
"PlainTextExtraction.swift",
"SwiftMarkdownHTMLRenderer.swift"
],
"type" : "library"
},
{
"c99name" : "SwiftTextKeynoteTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextKeynoteTests",
"path" : "Tests/SwiftTextKeynoteTests",
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/SwiftTextKeynoteTests/Resources/Sample.key",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"KeynoteFileTests.swift"
],
"target_dependencies" : [
"SwiftTextKeynote",
"SwiftTextIWA"
],
"type" : "test"
},
{
"c99name" : "SwiftTextKeynote",
"module_type" : "SwiftTarget",
"name" : "SwiftTextKeynote",
"path" : "Sources/SwiftTextKeynote",
"product_memberships" : [
"SwiftTextKeynote",
"swifttext"
],
"sources" : [
"KeynoteDocument.swift",
"KeynoteFile.swift",
"KeynoteParser.swift"
],
"target_dependencies" : [
"SwiftTextIWA"
],
"type" : "library"
},
{
"c99name" : "SwiftTextIWA",
"module_type" : "SwiftTarget",
"name" : "SwiftTextIWA",
"path" : "Sources/SwiftTextIWA",
"product_dependencies" : [
"Archive"
],
"product_memberships" : [
"SwiftText",
"SwiftTextPages",
"SwiftTextIWA",
"SwiftTextNumbers",
"SwiftTextKeynote",
"swifttext"
],
"sources" : [
"IWAArchive.swift",
"IWAContainer.swift",
"IWALegacyTableReader.swift",
"IWAReferenceScanner.swift",
"Protobuf.swift",
"Snappy.swift",
"TSTTableReader.swift"
],
"type" : "library"
},
{
"c99name" : "SwiftTextHTMLTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextHTMLTests",
"path" : "Tests/SwiftTextHTMLTests",
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/SwiftTextHTMLTests/Resources/wordpress-blog-post.html",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"DomStyleContentTests.swift",
"HTMLAlertTests.swift",
"HTMLBlockquoteConversionTests.swift",
"HTMLCoreElementConversionTests.swift",
"HTMLDeepWrapperTests.swift",
"HTMLDocumentTests.swift",
"HTMLFootnoteConversionTests.swift",
"HTMLListConversionTests.swift",
"HTMLMalformedTrailingContentTests.swift",
"HTMLParserEventStreamTests.swift",
"HTMLRoundTripTests.swift",
"HTMLTableConversionTests.swift",
"ImageAltTextTests.swift",
"MainContentExtractionTests.swift",
"MarkdownGFMExtensionsTests.swift",
"MarkdownToHTMLParityTests.swift",
"MarkdownToHTMLTests.swift",
"TextWhitespaceTests.swift",
"WebKitPaginatedPDFTests.swift"
],
"target_dependencies" : [
"SwiftTextHTML",
"SwiftTextMarkdown",
"SwiftTextCore"
],
"type" : "test"
},
{
"c99name" : "SwiftTextHTML",
"module_type" : "SwiftTarget",
"name" : "SwiftTextHTML",
"path" : "Sources/SwiftTextHTML",
"product_dependencies" : [
"HTMLParser",
"Markdown"
],
"product_memberships" : [
"SwiftText",
"SwiftTextRender",
"SwiftTextHTML",
"swifttext"
],
"sources" : [
"DOMElement.swift",
"DOMFootnoteIndex.swift",
"DOMMarkupConverter.swift",
"DOMNode.swift",
"DOMRawText.swift",
"DOMText.swift",
"DomBuilder.swift",
"Exports.swift",
"HTMLDocument+WebKit.swift",
"HTMLDocument.swift",
"HTMLToMarkdown.swift",
"MainContentExtractor.swift",
"MarkdownToHTML.swift",
"String+Charset.swift",
"String+Markdown.swift",
"WebKitBrowser.swift"
],
"target_dependencies" : [
"SwiftTextMarkdown"
],
"type" : "library"
},
{
"c99name" : "SwiftTextEPUBTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextEPUBTests",
"path" : "Tests/SwiftTextEPUBTests",
"sources" : [
"EpubTestSupport.swift",
"EpubTests.swift"
],
"target_dependencies" : [
"SwiftTextEPUB",
"SwiftTextMarkdown"
],
"type" : "test"
},
{
"c99name" : "SwiftTextEPUB",
"module_type" : "SwiftTarget",
"name" : "SwiftTextEPUB",
"path" : "Sources/SwiftTextEPUB",
"product_dependencies" : [
"Markdown"
],
"product_memberships" : [
"SwiftTextEPUB",
"swifttext"
],
"sources" : [
"ChapterSplitter.swift",
"CoverImage.swift",
"DefaultStylesheet.swift",
"EpubArchiveWriter.swift",
"EpubMetadata.swift",
"EpubPackage.swift",
"MarkdownToEpub.swift",
"XMLEscaping.swift"
],
"target_dependencies" : [
"SwiftTextMarkdown",
"SwiftTextZip",
"SwiftTextCore"
],
"type" : "library"
},
{
"c99name" : "SwiftTextDOCXTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextDOCXTests",
"path" : "Tests/SwiftTextDOCXTests",
"product_dependencies" : [
"Archive"
],
"resources" : [
{
"path" : "/host/spi-builder-workspace/Tests/SwiftTextDOCXTests/Resources/Styles.docx",
"rule" : {
"process" : {
}
}
}
],
"sources" : [
"DocxAlertTests.swift",
"DocxArchiveTestSupport.swift",
"DocxFootnoteTests.swift",
"DocxFootnoteWriterTests.swift",
"DocxImageTests.swift",
"DocxParsingTests.swift",
"DocxQuoteCodeTests.swift",
"DocxStrikethroughTests.swift",
"DocxWriterTests.swift"
],
"target_dependencies" : [
"SwiftTextDOCX",
"SwiftTextZip"
],
"type" : "test"
},
{
"c99name" : "SwiftTextDOCX",
"module_type" : "SwiftTarget",
"name" : "SwiftTextDOCX",
"path" : "Sources/SwiftTextDOCX",
"product_dependencies" : [
"Archive"
],
"product_memberships" : [
"SwiftText",
"SwiftTextDOCX",
"swifttext"
],
"sources" : [
"DocxBoxLayout.swift",
"DocxDocument.swift",
"DocxFile.swift",
"DocxParser.swift",
"DocxWriter+Callouts.swift",
"DocxWriter.swift",
"MarkdownDocxBuilder.swift",
"MarkdownToDocx.swift",
"ZipUtilities.swift"
],
"target_dependencies" : [
"SwiftTextMarkdown",
"SwiftTextZip",
"SwiftTextCore"
],
"type" : "library"
},
{
"c99name" : "SwiftTextCoreTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextCoreTests",
"path" : "Tests/SwiftTextCoreTests",
"sources" : [
"ImageDimensionsTests.swift",
"UnicodeAbuseSanitizerTests.swift"
],
"target_dependencies" : [
"SwiftTextCore"
],
"type" : "test"
},
{
"c99name" : "SwiftTextCore",
"module_type" : "SwiftTarget",
"name" : "SwiftTextCore",
"path" : "Sources/SwiftTextCore",
"product_memberships" : [
"SwiftText",
"SwiftTextCore",
"SwiftTextDOCX",
"SwiftTextEPUB",
"SwiftTextPages",
"swifttext"
],
"sources" : [
"ImageDimensions.swift",
"UnicodeAbuseSanitizer.swift"
],
"type" : "library"
},
{
"c99name" : "SwiftTextCSSTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextCSSTests",
"path" : "Tests/SwiftTextCSSTests",
"sources" : [
"CSSColorTests.swift",
"CSSTests.swift",
"CascadeTests.swift",
"SelectorTests.swift"
],
"target_dependencies" : [
"SwiftTextCSS"
],
"type" : "test"
},
{
"c99name" : "SwiftTextCSS",
"module_type" : "SwiftTarget",
"name" : "SwiftTextCSS",
"path" : "Sources/SwiftTextCSS",
"product_memberships" : [
"SwiftTextCSS",
"SwiftTextRender",
"swifttext"
],
"sources" : [
"CSSColor.swift",
"CSSParser.swift",
"ComponentValue.swift",
"ComputedStyle.swift",
"Selector.swift",
"SelectorParser.swift",
"StyleResolver.swift",
"Tokenizer.swift",
"UserAgentStylesheet.swift"
],
"type" : "library"
},
{
"c99name" : "SwiftTextCLI",
"module_type" : "SwiftTarget",
"name" : "SwiftTextCLI",
"path" : "Sources/SwiftTextCLI",
"product_dependencies" : [
"ArgumentParser"
],
"product_memberships" : [
"swifttext"
],
"sources" : [
"OverlayRenderer.swift",
"PDFCommand.swift",
"RenderCommand.swift",
"SwiftTextCLI.swift"
],
"target_dependencies" : [
"SwiftTextHTML",
"SwiftTextDOCX",
"SwiftTextEPUB",
"SwiftTextMarkdown",
"SwiftTextPages",
"SwiftTextNumbers",
"SwiftTextKeynote",
"SwiftTextRender",
"VersionGeneratorPlugin"
],
"type" : "executable"
},
{
"c99name" : "SwiftTextAttributedStringTests",
"module_type" : "SwiftTarget",
"name" : "SwiftTextAttributedStringTests",
"path" : "Tests/SwiftTextAttributedStringTests",
"sources" : [
"MarkdownAttributedStringRendererTests.swift",
"NativeIntentBridgeTests.swift"
],
"target_dependencies" : [
"SwiftTextAttributedString"
],
"type" : "test"
},
{
"c99name" : "SwiftTextAttributedString",
"module_type" : "SwiftTarget",
"name" : "SwiftTextAttributedString",
"path" : "Sources/SwiftTextAttributedString",
"product_dependencies" : [
"Markdown"
],
"product_memberships" : [
"SwiftText",
"SwiftTextAttributedString"
],
"sources" : [
"MarkdownAttributedStringRenderer.swift",
"MarkdownAttributes.swift"
],
"target_dependencies" : [
"SwiftTextMarkdown"
],
"type" : "library"
},
{
"c99name" : "SwiftText",
"module_type" : "SwiftTarget",
"name" : "SwiftText",
"path" : "Sources/SwiftText",
"product_memberships" : [
"SwiftText"
],
"sources" : [
"SwiftText.swift"
],
"target_dependencies" : [
"SwiftTextDOCX",
"SwiftTextPages",
"SwiftTextAttributedString",
"SwiftTextHTML"
],
"type" : "library"
}
],
"tools_version" : "6.3"
}
basic-6.4-latest: Pulling from saguaro1/spi-images
Digest: sha256:cb09f0c0d537a8668f02529c380785d189fc75032d54572211355a09e050e122
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:basic-6.4-latest
Done.