The Swift Package Index logo.Swift Package Index

Build Information

Failed to build WatchDuck, reference main (0c4672), with Swift 6.2 for Android on 17 Nov 2025 20:52:42 UTC.

Build Command

bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1

Build Log

========================================
RunAll
========================================
Builder version: 4.68.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/BertanT/WatchDuck.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/BertanT/WatchDuck
 * branch            main       -> FETCH_HEAD
 * [new branch]      main       -> origin/main
HEAD is now at 0c46728 Update to the latest ci version
Cloned https://github.com/BertanT/WatchDuck.git
Revision (git rev-parse @):
0c467281521a869bd0b4e11ea2daadb83cd3a2a8
SPI manifest file found: $PWD/.spi.yml
SUCCESS checkout https://github.com/BertanT/WatchDuck.git at main
========================================
Build
========================================
Selected platform:         android
Swift version:             6.2
Building package at path:  $PWD
https://github.com/BertanT/WatchDuck.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-0":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/finestructure/spi-images:android-6.2-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.2-latest: Pulling from finestructure/spi-images
Digest: sha256:d70d83f328e9f1ae04a4e17e63e2d335ae10639f90ee796a5fe3bfb139eab948
Status: Image is up to date for registry.gitlab.com/finestructure/spi-images:android-6.2-latest
Fetching https://github.com/apple/swift-argument-parser.git
[1/16686] Fetching swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser.git from cache (0.93s)
Fetching https://github.com/jpsim/Yams.git
[1/11263] Fetching yams
Fetched https://github.com/jpsim/Yams.git from cache (1.43s)
Fetching https://github.com/JohnSundell/Plot.git
[1/2096] Fetching plot
Fetched https://github.com/JohnSundell/Plot.git from cache (0.27s)
Fetching https://github.com/JohnSundell/ShellOut.git
[1/980] Fetching shellout
Fetched https://github.com/JohnSundell/ShellOut.git from cache (0.25s)
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2158] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (0.35s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3578] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.39s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (0.85s)
Creating working copy for https://github.com/swiftlang/swift-docc-symbolkit
Working copy of https://github.com/swiftlang/swift-docc-symbolkit resolved at 1.0.0
Creating working copy for https://github.com/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at b4b8042411dc7bbb696300a34a4bf3ba1b7ad19b
Creating working copy for https://github.com/swiftlang/swift-docc-plugin
Working copy of https://github.com/swiftlang/swift-docc-plugin resolved at 85e4bb4e1cd62cec64a4b8e769dcefdf0c5b9d64
Creating working copy for https://github.com/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 41982a3656a71c768319979febd796c6fd111d5c
Creating working copy for https://github.com/JohnSundell/ShellOut.git
Working copy of https://github.com/JohnSundell/ShellOut.git resolved at e1577acf2b6e90086d01a6d5e2b8efdaae033568
Creating working copy for https://github.com/JohnSundell/Plot.git
Working copy of https://github.com/JohnSundell/Plot.git resolved at 271926b4413fe868739d99f5eadcf2bd6cd62fb8
[1/1] Compiling plugin Swift-DocC Preview
[2/2] Compiling plugin Swift-DocC
[3/3] Compiling plugin GenerateManual
Building for debugging...
[3/25] Write sources
[7/25] Copying Resources
[8/25] Write sources
[10/25] Compiling writer.c
[11/25] Compiling reader.c
[12/25] Compiling parser.c
[13/25] Compiling api.c
[14/25] Write swift-version--11D90AFD9DD3AB2.txt
[15/25] Compiling emitter.c
[16/57] Compiling scanner.c
[18/108] Compiling Yams Tag.swift
[19/108] Compiling Yams YamlAnchorProviding.swift
[20/110] Compiling ArgumentParserToolInfo ToolInfo.swift
[21/110] Emitting module ArgumentParserToolInfo
[22/111] Wrapping AST for ArgumentParserToolInfo for debugging
[24/149] Emitting module ArgumentParser
[25/154] Compiling ArgumentParser BashCompletionsGenerator.swift
[26/154] Compiling ArgumentParser CompletionsGenerator.swift
[27/154] Compiling ArgumentParser FishCompletionsGenerator.swift
[28/154] Compiling ArgumentParser ZshCompletionsGenerator.swift
[29/154] Compiling ArgumentParser Argument.swift
[30/154] Compiling ArgumentParser ArgumentHelp.swift
[31/154] Compiling ArgumentParser ExpressibleByArgument.swift
[32/154] Compiling ArgumentParser ParsableArguments.swift
[33/154] Compiling ArgumentParser ParsableArgumentsValidation.swift
[34/154] Compiling ArgumentParser ParsableCommand.swift
[35/154] Compiling ArgumentParser ArgumentDecoder.swift
[36/154] Compiling ArgumentParser CollectionExtensions.swift
[37/154] Compiling ArgumentParser Platform.swift
[38/154] Compiling ArgumentParser SequenceExtensions.swift
[39/154] Compiling ArgumentParser StringExtensions.swift
[40/154] Compiling ArgumentParser Tree.swift
[41/154] Compiling Plot SiteMapElements.swift
[42/154] Compiling Plot TwitterCardType.swift
[43/154] Compiling Plot URLRepresentable.swift
[44/154] Compiling Plot XML.swift
[45/154] Compiling Plot XMLAttributes.swift
[46/154] Compiling Plot XMLElements.swift
[47/154] Compiling Plot AnyAttribute.swift
[48/154] Compiling Plot AnyElement.swift
[49/162] Compiling ArgumentParser ArgumentVisibility.swift
[50/162] Compiling ArgumentParser CompletionKind.swift
[53/162] Compiling Plot PodcastMediaType.swift
[54/162] Compiling Plot PodcastType.swift
[55/162] Compiling Plot RSS.swift
[56/162] Compiling Plot RSSAttributes.swift
[57/162] Compiling Plot RSSElements.swift
[58/162] Compiling Plot Renderable.swift
[59/162] Compiling Plot SiteMap.swift
[60/162] Compiling Plot SiteMapChangeFrequency.swift
[61/162] Compiling ArgumentParser ArgumentDefinition.swift
[62/162] Compiling ArgumentParser ArgumentSet.swift
[63/162] Compiling ArgumentParser CommandParser.swift
[64/162] Compiling ArgumentParser InputKey.swift
[65/162] Compiling ArgumentParser InputOrigin.swift
[66/162] Compiling ArgumentParser DumpHelpGenerator.swift
[67/162] Compiling ArgumentParser HelpCommand.swift
[68/162] Compiling ArgumentParser HelpGenerator.swift
[69/162] Compiling ArgumentParser MessageInfo.swift
[70/162] Compiling ArgumentParser UsageGenerator.swift
[76/162] Compiling Plot PodcastFeed.swift
[77/162] Emitting module ShellOut
[78/162] Compiling ShellOut ShellOut.swift
[83/163] Compiling ArgumentParser OptionGroup.swift
[84/163] Compiling ArgumentParser AsyncParsableCommand.swift
[85/163] Compiling ArgumentParser CommandConfiguration.swift
[86/163] Compiling ArgumentParser CommandGroup.swift
[87/163] Compiling ArgumentParser EnumerableFlag.swift
[88/163] Compiling ArgumentParser ParserError.swift
[89/163] Compiling ArgumentParser SplitArguments.swift
[92/163] Compiling ArgumentParser Errors.swift
[93/163] Compiling ArgumentParser Flag.swift
[94/163] Compiling ArgumentParser NameSpecification.swift
[95/163] Compiling ArgumentParser Option.swift
[111/163] Compiling ArgumentParser Name.swift
[112/163] Compiling ArgumentParser Parsed.swift
[113/163] Compiling ArgumentParser ParsedValues.swift
[114/163] Emitting module Plot
[115/163] Emitting module Yams
[148/165] Wrapping AST for ShellOut for debugging
[151/165] Wrapping AST for Yams for debugging
[152/165] Wrapping AST for ArgumentParser for debugging
[154/165] Compiling Plot AnyEnvironmentValue.swift
[155/165] Compiling Plot AnyNode.swift
[156/165] Compiling Plot ElementRenderingBuffer.swift
[157/165] Compiling Plot ElementWrapper.swift
[158/165] Compiling Plot Environment.swift
[159/165] Compiling Plot ModifiedComponent.swift
[160/165] Compiling Plot Renderer.swift
[161/165] Compiling Plot String+Escaping.swift
[162/166] Wrapping AST for Plot for debugging
[164/201] Compiling watchduck Bundle+StaticURL.swift
[165/201] Compiling watchduck Bundle+StaticURLs.swift
[166/201] Compiling watchduck ClosedRange+ContainsRange.swift
[167/201] Compiling watchduck Error+UnderlyingLocalizedDescription.swift
[168/201] Compiling watchduck HTTPURLResponse+TextEncoding.swift
[169/205] Compiling watchduck KeyedDecodingContainer+AssignIfPresent.swift
[170/205] Compiling watchduck Sequence+Uniqued.swift
[171/205] Compiling watchduck String+CFString.swift
[172/205] Compiling watchduck String+Color+Bold.swift
[173/205] Compiling watchduck String.Encoding+IANACharset.swift
[174/205] Compiling watchduck Task+SleepTimeInterval.swift
[175/205] Compiling watchduck URL+CurrentDirectory.swift
[176/205] Compiling watchduck URL+StaticString.swift
[177/205] Compiling watchduck URLRequest+PreferredTextEncoding.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[178/205] Emitting module watchduck
/host/spi-builder-workspace/Sources/Commands/Run.swift:29:46: error: type 'PackageResources' has no member 'defaultConfigURL'
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                                              `- error: type 'PackageResources' has no member 'defaultConfigURL'
 30 |
 31 |     @Flag(
/host/spi-builder-workspace/Sources/Commands/Run.swift:22:8: error: type 'Run' does not conform to protocol 'Decodable'
 20 | import Foundation
 21 |
 22 | struct Run: AsyncParsableCommand {
    |        `- error: type 'Run' does not conform to protocol 'Decodable'
 23 |     static let configuration = CommandConfiguration(abstract: "Runs checks to update logs and the static webpage.")
 24 |
    :
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                 `- note: cannot automatically synthesize 'Decodable' because '<<error type>>' does not conform to 'Decodable'
 30 |
 31 |     @Flag(
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
  | `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
[179/205] Compiling watchduck URLSession+RetryingData.swift
/host/spi-builder-workspace/Sources/Helpers/OSUtils.swift:25:63: error: type 'PackageResources' has no member 'kernelName'
23 | enum OSUtils {
24 |     static func kernelCheck() throws {
25 |         guard (try shellOut(to: "uname")) == PackageResources.kernelName else {
   |                                                               `- error: type 'PackageResources' has no member 'kernelName'
26 |             print("Error: Kernel-binary mismatch! Please stop using WatchDuck and re-install the correct binary for your operating system!".color(.red))
27 |             throw ExitCode(EXIT_FAILURE)
[180/205] Compiling watchduck HTTPMethod.swift
/host/spi-builder-workspace/Sources/Helpers/OSUtils.swift:25:63: error: type 'PackageResources' has no member 'kernelName'
23 | enum OSUtils {
24 |     static func kernelCheck() throws {
25 |         guard (try shellOut(to: "uname")) == PackageResources.kernelName else {
   |                                                               `- error: type 'PackageResources' has no member 'kernelName'
26 |             print("Error: Kernel-binary mismatch! Please stop using WatchDuck and re-install the correct binary for your operating system!".color(.red))
27 |             throw ExitCode(EXIT_FAILURE)
[181/205] Compiling watchduck OSUtils.swift
/host/spi-builder-workspace/Sources/Helpers/OSUtils.swift:25:63: error: type 'PackageResources' has no member 'kernelName'
23 | enum OSUtils {
24 |     static func kernelCheck() throws {
25 |         guard (try shellOut(to: "uname")) == PackageResources.kernelName else {
   |                                                               `- error: type 'PackageResources' has no member 'kernelName'
26 |             print("Error: Kernel-binary mismatch! Please stop using WatchDuck and re-install the correct binary for your operating system!".color(.red))
27 |             throw ExitCode(EXIT_FAILURE)
[182/205] Compiling watchduck resource_bundle_accessor.swift
/host/spi-builder-workspace/Sources/Helpers/OSUtils.swift:25:63: error: type 'PackageResources' has no member 'kernelName'
23 | enum OSUtils {
24 |     static func kernelCheck() throws {
25 |         guard (try shellOut(to: "uname")) == PackageResources.kernelName else {
   |                                                               `- error: type 'PackageResources' has no member 'kernelName'
26 |             print("Error: Kernel-binary mismatch! Please stop using WatchDuck and re-install the correct binary for your operating system!".color(.red))
27 |             throw ExitCode(EXIT_FAILURE)
[183/205] Compiling watchduck WDPageHeader.swift
[184/205] Compiling watchduck WDPageListSubtext.swift
[185/205] Compiling watchduck WDPageStatusList.swift
[186/205] Compiling watchduck ANSIColors.swift
[187/205] Compiling watchduck CLISpinner.swift
[188/205] Compiling watchduck WDOutage.swift
[189/205] Compiling watchduck WDStatus.swift
[190/205] Compiling watchduck FileComponents.swift
[191/205] Compiling watchduck WDHTML.swift
[192/205] Compiling watchduck WDPageFooter.swift
[193/205] Compiling watchduck HTTPResponseCodeCheck.swift
/host/spi-builder-workspace/Sources/Commands/Run.swift:29:46: error: type 'PackageResources' has no member 'defaultConfigURL'
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                                              `- error: type 'PackageResources' has no member 'defaultConfigURL'
 30 |
 31 |     @Flag(
/host/spi-builder-workspace/Sources/Commands/Run.swift:22:8: error: type 'Run' does not conform to protocol 'Decodable'
 20 | import Foundation
 21 |
 22 | struct Run: AsyncParsableCommand {
    |        `- error: type 'Run' does not conform to protocol 'Decodable'
 23 |     static let configuration = CommandConfiguration(abstract: "Runs checks to update logs and the static webpage.")
 24 |
    :
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                 `- note: cannot automatically synthesize 'Decodable' because '<<error type>>' does not conform to 'Decodable'
 30 |
 31 |     @Flag(
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
  | `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Commands/Run.swift:44:24: error: cannot find 'SIG_IGN' in scope
 42 |
 43 |         // TODO: Make signal handling more elegant while keeping it secure if possible.
 44 |         signal(SIGINT, SIG_IGN)
    |                        `- error: cannot find 'SIG_IGN' in scope
 45 |
 46 |         let sigintSource = DispatchSource.makeSignalSource(signal: SIGINT, queue: DispatchQueue.main)
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:39:32: error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
37 |         print(PackageResources.asciiDuck)
38 |         print(PackageResources.serviceInstallBanner)
39 |         print(PackageResources.serviceInstallExtraInstructions)
   |                                `- error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
40 |
41 |         if !acceptDefault {
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:64:54: error: type 'PackageResources' has no member 'serviceFileDest'
62 |         ])
63 |         #endif
64 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:67:70: error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:47: error: type 'PackageResources' has no member 'serviceFileSource'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                               `- error: type 'PackageResources' has no member 'serviceFileSource'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:93: error: type 'PackageResources' has no member 'serviceFileDest'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                                                                             `- error: type 'PackageResources' has no member 'serviceFileDest'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:70:46: error: type 'PackageResources' has no member 'serviceName'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
   |                                              `- error: type 'PackageResources' has no member 'serviceName'
71 |         #if os(macOS)
72 |         try shellOut(to: [
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:84:69: error: type 'PackageResources' has no member 'defaultConfigURL'
82 |         #endif
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
   |                                                                     `- error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:85:79: error: type 'PackageResources' has no member 'defaultConfigURL'
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
   |                                                                               `- error: type 'PackageResources' has no member 'defaultConfigURL'
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:86:74: error: type 'PackageResources' has no member 'defaultConfigURL'
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                          `- error: type 'PackageResources' has no member 'defaultConfigURL'
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
88 |         }
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:87:108: error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
   |                                                                                                            `- error: type 'PackageResources' has no member 'defaultConfigURL'
88 |         }
89 |
/host/spi-builder-workspace/Sources/Commands/ServiceUninstall.swift:66:54: error: type 'PackageResources' has no member 'serviceFileDest'
64 |
65 |         print("> Cleaning any configuration files...".color(.magenta))
66 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
67 |
68 |         print("\n✔ The WatchDuck system service is now uninstalled.".color(.green, bold: true))
[194/205] Compiling watchduck Run.swift
/host/spi-builder-workspace/Sources/Commands/Run.swift:29:46: error: type 'PackageResources' has no member 'defaultConfigURL'
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                                              `- error: type 'PackageResources' has no member 'defaultConfigURL'
 30 |
 31 |     @Flag(
/host/spi-builder-workspace/Sources/Commands/Run.swift:22:8: error: type 'Run' does not conform to protocol 'Decodable'
 20 | import Foundation
 21 |
 22 | struct Run: AsyncParsableCommand {
    |        `- error: type 'Run' does not conform to protocol 'Decodable'
 23 |     static let configuration = CommandConfiguration(abstract: "Runs checks to update logs and the static webpage.")
 24 |
    :
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                 `- note: cannot automatically synthesize 'Decodable' because '<<error type>>' does not conform to 'Decodable'
 30 |
 31 |     @Flag(
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
  | `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Commands/Run.swift:44:24: error: cannot find 'SIG_IGN' in scope
 42 |
 43 |         // TODO: Make signal handling more elegant while keeping it secure if possible.
 44 |         signal(SIGINT, SIG_IGN)
    |                        `- error: cannot find 'SIG_IGN' in scope
 45 |
 46 |         let sigintSource = DispatchSource.makeSignalSource(signal: SIGINT, queue: DispatchQueue.main)
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:39:32: error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
37 |         print(PackageResources.asciiDuck)
38 |         print(PackageResources.serviceInstallBanner)
39 |         print(PackageResources.serviceInstallExtraInstructions)
   |                                `- error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
40 |
41 |         if !acceptDefault {
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:64:54: error: type 'PackageResources' has no member 'serviceFileDest'
62 |         ])
63 |         #endif
64 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:67:70: error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:47: error: type 'PackageResources' has no member 'serviceFileSource'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                               `- error: type 'PackageResources' has no member 'serviceFileSource'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:93: error: type 'PackageResources' has no member 'serviceFileDest'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                                                                             `- error: type 'PackageResources' has no member 'serviceFileDest'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:70:46: error: type 'PackageResources' has no member 'serviceName'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
   |                                              `- error: type 'PackageResources' has no member 'serviceName'
71 |         #if os(macOS)
72 |         try shellOut(to: [
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:84:69: error: type 'PackageResources' has no member 'defaultConfigURL'
82 |         #endif
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
   |                                                                     `- error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:85:79: error: type 'PackageResources' has no member 'defaultConfigURL'
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
   |                                                                               `- error: type 'PackageResources' has no member 'defaultConfigURL'
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:86:74: error: type 'PackageResources' has no member 'defaultConfigURL'
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                          `- error: type 'PackageResources' has no member 'defaultConfigURL'
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
88 |         }
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:87:108: error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
   |                                                                                                            `- error: type 'PackageResources' has no member 'defaultConfigURL'
88 |         }
89 |
/host/spi-builder-workspace/Sources/Commands/ServiceUninstall.swift:66:54: error: type 'PackageResources' has no member 'serviceFileDest'
64 |
65 |         print("> Cleaning any configuration files...".color(.magenta))
66 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
67 |
68 |         print("\n✔ The WatchDuck system service is now uninstalled.".color(.green, bold: true))
[195/205] Compiling watchduck ServiceInstall.swift
/host/spi-builder-workspace/Sources/Commands/Run.swift:29:46: error: type 'PackageResources' has no member 'defaultConfigURL'
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                                              `- error: type 'PackageResources' has no member 'defaultConfigURL'
 30 |
 31 |     @Flag(
/host/spi-builder-workspace/Sources/Commands/Run.swift:22:8: error: type 'Run' does not conform to protocol 'Decodable'
 20 | import Foundation
 21 |
 22 | struct Run: AsyncParsableCommand {
    |        `- error: type 'Run' does not conform to protocol 'Decodable'
 23 |     static let configuration = CommandConfiguration(abstract: "Runs checks to update logs and the static webpage.")
 24 |
    :
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                 `- note: cannot automatically synthesize 'Decodable' because '<<error type>>' does not conform to 'Decodable'
 30 |
 31 |     @Flag(
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
  | `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Commands/Run.swift:44:24: error: cannot find 'SIG_IGN' in scope
 42 |
 43 |         // TODO: Make signal handling more elegant while keeping it secure if possible.
 44 |         signal(SIGINT, SIG_IGN)
    |                        `- error: cannot find 'SIG_IGN' in scope
 45 |
 46 |         let sigintSource = DispatchSource.makeSignalSource(signal: SIGINT, queue: DispatchQueue.main)
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:39:32: error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
37 |         print(PackageResources.asciiDuck)
38 |         print(PackageResources.serviceInstallBanner)
39 |         print(PackageResources.serviceInstallExtraInstructions)
   |                                `- error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
40 |
41 |         if !acceptDefault {
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:64:54: error: type 'PackageResources' has no member 'serviceFileDest'
62 |         ])
63 |         #endif
64 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:67:70: error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:47: error: type 'PackageResources' has no member 'serviceFileSource'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                               `- error: type 'PackageResources' has no member 'serviceFileSource'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:93: error: type 'PackageResources' has no member 'serviceFileDest'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                                                                             `- error: type 'PackageResources' has no member 'serviceFileDest'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:70:46: error: type 'PackageResources' has no member 'serviceName'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
   |                                              `- error: type 'PackageResources' has no member 'serviceName'
71 |         #if os(macOS)
72 |         try shellOut(to: [
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:84:69: error: type 'PackageResources' has no member 'defaultConfigURL'
82 |         #endif
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
   |                                                                     `- error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:85:79: error: type 'PackageResources' has no member 'defaultConfigURL'
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
   |                                                                               `- error: type 'PackageResources' has no member 'defaultConfigURL'
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:86:74: error: type 'PackageResources' has no member 'defaultConfigURL'
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                          `- error: type 'PackageResources' has no member 'defaultConfigURL'
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
88 |         }
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:87:108: error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
   |                                                                                                            `- error: type 'PackageResources' has no member 'defaultConfigURL'
88 |         }
89 |
/host/spi-builder-workspace/Sources/Commands/ServiceUninstall.swift:66:54: error: type 'PackageResources' has no member 'serviceFileDest'
64 |
65 |         print("> Cleaning any configuration files...".color(.magenta))
66 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
67 |
68 |         print("\n✔ The WatchDuck system service is now uninstalled.".color(.green, bold: true))
[196/205] Compiling watchduck ServiceUninstall.swift
/host/spi-builder-workspace/Sources/Commands/Run.swift:29:46: error: type 'PackageResources' has no member 'defaultConfigURL'
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                                              `- error: type 'PackageResources' has no member 'defaultConfigURL'
 30 |
 31 |     @Flag(
/host/spi-builder-workspace/Sources/Commands/Run.swift:22:8: error: type 'Run' does not conform to protocol 'Decodable'
 20 | import Foundation
 21 |
 22 | struct Run: AsyncParsableCommand {
    |        `- error: type 'Run' does not conform to protocol 'Decodable'
 23 |     static let configuration = CommandConfiguration(abstract: "Runs checks to update logs and the static webpage.")
 24 |
    :
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                 `- note: cannot automatically synthesize 'Decodable' because '<<error type>>' does not conform to 'Decodable'
 30 |
 31 |     @Flag(
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
  | `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Commands/Run.swift:44:24: error: cannot find 'SIG_IGN' in scope
 42 |
 43 |         // TODO: Make signal handling more elegant while keeping it secure if possible.
 44 |         signal(SIGINT, SIG_IGN)
    |                        `- error: cannot find 'SIG_IGN' in scope
 45 |
 46 |         let sigintSource = DispatchSource.makeSignalSource(signal: SIGINT, queue: DispatchQueue.main)
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:39:32: error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
37 |         print(PackageResources.asciiDuck)
38 |         print(PackageResources.serviceInstallBanner)
39 |         print(PackageResources.serviceInstallExtraInstructions)
   |                                `- error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
40 |
41 |         if !acceptDefault {
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:64:54: error: type 'PackageResources' has no member 'serviceFileDest'
62 |         ])
63 |         #endif
64 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:67:70: error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:47: error: type 'PackageResources' has no member 'serviceFileSource'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                               `- error: type 'PackageResources' has no member 'serviceFileSource'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:93: error: type 'PackageResources' has no member 'serviceFileDest'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                                                                             `- error: type 'PackageResources' has no member 'serviceFileDest'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:70:46: error: type 'PackageResources' has no member 'serviceName'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
   |                                              `- error: type 'PackageResources' has no member 'serviceName'
71 |         #if os(macOS)
72 |         try shellOut(to: [
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:84:69: error: type 'PackageResources' has no member 'defaultConfigURL'
82 |         #endif
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
   |                                                                     `- error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:85:79: error: type 'PackageResources' has no member 'defaultConfigURL'
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
   |                                                                               `- error: type 'PackageResources' has no member 'defaultConfigURL'
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:86:74: error: type 'PackageResources' has no member 'defaultConfigURL'
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                          `- error: type 'PackageResources' has no member 'defaultConfigURL'
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
88 |         }
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:87:108: error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
   |                                                                                                            `- error: type 'PackageResources' has no member 'defaultConfigURL'
88 |         }
89 |
/host/spi-builder-workspace/Sources/Commands/ServiceUninstall.swift:66:54: error: type 'PackageResources' has no member 'serviceFileDest'
64 |
65 |         print("> Cleaning any configuration files...".color(.magenta))
66 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
67 |
68 |         print("\n✔ The WatchDuck system service is now uninstalled.".color(.green, bold: true))
[197/205] Compiling watchduck WatchDuck.swift
/host/spi-builder-workspace/Sources/Commands/Run.swift:29:46: error: type 'PackageResources' has no member 'defaultConfigURL'
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                                              `- error: type 'PackageResources' has no member 'defaultConfigURL'
 30 |
 31 |     @Flag(
/host/spi-builder-workspace/Sources/Commands/Run.swift:22:8: error: type 'Run' does not conform to protocol 'Decodable'
 20 | import Foundation
 21 |
 22 | struct Run: AsyncParsableCommand {
    |        `- error: type 'Run' does not conform to protocol 'Decodable'
 23 |     static let configuration = CommandConfiguration(abstract: "Runs checks to update logs and the static webpage.")
 24 |
    :
 27 |         help: "The configuration JSON file path.",
 28 |         transform: URL.init(fileURLWithPath:))
 29 |     private var configURL = PackageResources.defaultConfigURL
    |                 `- note: cannot automatically synthesize 'Decodable' because '<<error type>>' does not conform to 'Decodable'
 30 |
 31 |     @Flag(
Swift.Decodable.init:2:1: note: protocol requires initializer 'init(from:)' with type 'Decodable'
1 | protocol Decodable {
2 | init(from decoder: any Decoder) throws}
  | `- note: protocol requires initializer 'init(from:)' with type 'Decodable'
3 |
/host/spi-builder-workspace/Sources/Commands/Run.swift:44:24: error: cannot find 'SIG_IGN' in scope
 42 |
 43 |         // TODO: Make signal handling more elegant while keeping it secure if possible.
 44 |         signal(SIGINT, SIG_IGN)
    |                        `- error: cannot find 'SIG_IGN' in scope
 45 |
 46 |         let sigintSource = DispatchSource.makeSignalSource(signal: SIGINT, queue: DispatchQueue.main)
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:39:32: error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
37 |         print(PackageResources.asciiDuck)
38 |         print(PackageResources.serviceInstallBanner)
39 |         print(PackageResources.serviceInstallExtraInstructions)
   |                                `- error: type 'PackageResources' has no member 'serviceInstallExtraInstructions'
40 |
41 |         if !acceptDefault {
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:64:54: error: type 'PackageResources' has no member 'serviceFileDest'
62 |         ])
63 |         #endif
64 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:67:70: error: type 'PackageResources' has no member 'serviceFileDest'
65 |
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:47: error: type 'PackageResources' has no member 'serviceFileSource'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                               `- error: type 'PackageResources' has no member 'serviceFileSource'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:68:93: error: type 'PackageResources' has no member 'serviceFileDest'
66 |         print("> Copying system service configuration file...".color(.magenta))
67 |         try FileManager.default.createDirectory(at: PackageResources.serviceFileDest.deletingLastPathComponent(), withIntermediateDirectories: true)
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
   |                                                                                             `- error: type 'PackageResources' has no member 'serviceFileDest'
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:70:46: error: type 'PackageResources' has no member 'serviceName'
68 |         try Data(contentsOf: PackageResources.serviceFileSource).write(to: PackageResources.serviceFileDest, options: [.atomic])
69 |
70 |         print("> Starting \(PackageResources.serviceName) and enabling it on boot.".color(.magenta))
   |                                              `- error: type 'PackageResources' has no member 'serviceName'
71 |         #if os(macOS)
72 |         try shellOut(to: [
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:84:69: error: type 'PackageResources' has no member 'defaultConfigURL'
82 |         #endif
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
   |                                                                     `- error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:85:79: error: type 'PackageResources' has no member 'defaultConfigURL'
83 |
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
   |                                                                               `- error: type 'PackageResources' has no member 'defaultConfigURL'
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:86:74: error: type 'PackageResources' has no member 'defaultConfigURL'
84 |         if !FileManager.default.fileExists(atPath: PackageResources.defaultConfigURL.path) {
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
   |                                                                          `- error: type 'PackageResources' has no member 'defaultConfigURL'
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
88 |         }
/host/spi-builder-workspace/Sources/Commands/ServiceInstall.swift:87:108: error: type 'PackageResources' has no member 'defaultConfigURL'
85 |             print("> Creating sample configuration file at \(PackageResources.defaultConfigURL.path)...".color(.magenta))
86 |             try FileManager.default.createDirectory(at: PackageResources.defaultConfigURL.deletingLastPathComponent(), withIntermediateDirectories: true)
87 |             try FileManager.default.copyItem(at: PackageResources.sampleConfigSource, to: PackageResources.defaultConfigURL)
   |                                                                                                            `- error: type 'PackageResources' has no member 'defaultConfigURL'
88 |         }
89 |
/host/spi-builder-workspace/Sources/Commands/ServiceUninstall.swift:66:54: error: type 'PackageResources' has no member 'serviceFileDest'
64 |
65 |         print("> Cleaning any configuration files...".color(.magenta))
66 |         _ = try? shellOut(to: "rm \(PackageResources.serviceFileDest.path)")
   |                                                      `- error: type 'PackageResources' has no member 'serviceFileDest'
67 |
68 |         print("\n✔ The WatchDuck system service is now uninstalled.".color(.green, bold: true))
[198/205] Compiling watchduck AnyWDCheck.swift
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
[199/205] Compiling watchduck PackageResources.swift
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
[200/205] Compiling watchduck WDCheck.swift
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
[201/205] Compiling watchduck WDConfig.swift
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
[202/205] Compiling watchduck WDLog.swift
/host/spi-builder-workspace/Sources/Data/PackageResources.swift:112:68: error: cannot find 'defaultConfigURL' in scope
110 |
111 |                 \("!!! Please check the following before proceeding !!!".color(.red, bold: true))
112 |                 > WatchDuck will always use the configuration at \(defaultConfigURL.path) in system service mode.
    |                                                                    `- error: cannot find 'defaultConfigURL' in scope
113 |                     A sample configuration will be created there if it does not exist. To learn more about how to edit the configuration, see \(docsURL).
114 |                 """
BUILD FAILURE 6.2 android