The Swift Package Index logo.Swift Package Index

Build Information

Failed to build WatchDuck, reference main (0c4672), with Swift 6.3 for Android on 16 Apr 2026 00:30:56 UTC.

Build Command

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

Build Log

========================================
RunAll
========================================
Builder version: 4.70.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.3
Building package at path:  $PWD
https://github.com/BertanT/WatchDuck.git
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-4609320-3":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest swift build --swift-sdk aarch64-unknown-linux-android28 2>&1
android-6.3-latest: Pulling from swiftpackageindex/spi-images
Digest: sha256:9008270ea37a55e78725e6225015adb5eff8582da520c5232bf0499f32c36dc4
Status: Image is up to date for registry.gitlab.com/swiftpackageindex/spi-images:android-6.3-latest
Fetching https://github.com/apple/swift-argument-parser.git
[1/17523] Fetching swift-argument-parser
Fetched https://github.com/apple/swift-argument-parser.git from cache (1.30s)
Fetching https://github.com/jpsim/Yams.git
[1/11551] Fetching yams
Fetched https://github.com/jpsim/Yams.git from cache (2.18s)
Fetching https://github.com/JohnSundell/Plot.git
[1/2109] Fetching plot
Fetched https://github.com/JohnSundell/Plot.git from cache (0.49s)
Fetching https://github.com/JohnSundell/ShellOut.git
[1/980] Fetching shellout
Fetched https://github.com/JohnSundell/ShellOut.git from cache (0.48s)
Fetching https://github.com/swiftlang/swift-docc-plugin
[1/2277] Fetching swift-docc-plugin
Fetched https://github.com/swiftlang/swift-docc-plugin from cache (1.47s)
Fetching https://github.com/swiftlang/swift-docc-symbolkit
[1/3672] Fetching swift-docc-symbolkit
Fetched https://github.com/swiftlang/swift-docc-symbolkit from cache (0.62s)
Computing version for https://github.com/swiftlang/swift-docc-symbolkit
Computed https://github.com/swiftlang/swift-docc-symbolkit at 1.0.0 (1.62s)
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/jpsim/Yams.git
Working copy of https://github.com/jpsim/Yams.git resolved at b4b8042411dc7bbb696300a34a4bf3ba1b7ad19b
Creating working copy for https://github.com/JohnSundell/Plot.git
Working copy of https://github.com/JohnSundell/Plot.git resolved at 271926b4413fe868739d99f5eadcf2bd6cd62fb8
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/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/apple/swift-argument-parser.git
Working copy of https://github.com/apple/swift-argument-parser.git resolved at 41982a3656a71c768319979febd796c6fd111d5c
[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
[5/25] Copying Resources
[6/25] Write sources
[10/25] Compiling reader.c
[11/25] Compiling writer.c
[12/25] Compiling parser.c
[13/25] Compiling api.c
[14/25] Write swift-version--4F562202D5529B1.txt
[15/25] Compiling emitter.c
[16/30] Compiling scanner.c
[18/108] Emitting module Plot
[19/116] Compiling Yams Tag.swift
[20/116] Compiling Yams YamlAnchorProviding.swift
[21/118] Compiling Yams Node.Alias.swift
[22/118] Compiling Yams Node.Mapping.swift
[23/118] Compiling Yams Node.Scalar.swift
[24/118] Emitting module Yams
[25/118] Emitting module ArgumentParserToolInfo
[26/118] Compiling ArgumentParserToolInfo ToolInfo.swift
[27/119] Wrapping AST for ArgumentParserToolInfo for debugging
[29/157] Emitting module ArgumentParser
[30/162] Compiling ArgumentParser OptionGroup.swift
[31/162] Compiling ArgumentParser AsyncParsableCommand.swift
[32/162] Compiling ArgumentParser CommandConfiguration.swift
[33/162] Compiling ArgumentParser CommandGroup.swift
[34/162] Compiling ArgumentParser EnumerableFlag.swift
[35/162] Compiling ArgumentParser Name.swift
[36/162] Compiling ArgumentParser Parsed.swift
[37/162] Compiling ArgumentParser ParsedValues.swift
[38/162] Compiling ArgumentParser ParserError.swift
[39/162] Compiling ArgumentParser SplitArguments.swift
[40/162] Compiling ArgumentParser ArgumentVisibility.swift
[41/162] Compiling ArgumentParser CompletionKind.swift
[42/162] Compiling ArgumentParser Errors.swift
[43/162] Compiling ArgumentParser Flag.swift
[44/162] Compiling ArgumentParser NameSpecification.swift
[45/162] Compiling ArgumentParser Option.swift
[46/162] Compiling ArgumentParser BashCompletionsGenerator.swift
[47/162] Compiling ArgumentParser CompletionsGenerator.swift
[48/162] Compiling ArgumentParser FishCompletionsGenerator.swift
[49/162] Compiling ArgumentParser ZshCompletionsGenerator.swift
[50/162] Compiling ArgumentParser Argument.swift
[51/162] Compiling ArgumentParser ArgumentHelp.swift
[52/162] Compiling ArgumentParser ArgumentDefinition.swift
[53/162] Compiling ArgumentParser ArgumentSet.swift
[54/162] Compiling ArgumentParser CommandParser.swift
[55/162] Compiling ArgumentParser InputKey.swift
[56/162] Compiling ArgumentParser InputOrigin.swift
[57/162] Compiling ArgumentParser CollectionExtensions.swift
[58/162] Compiling ArgumentParser Platform.swift
[59/162] Compiling ArgumentParser SequenceExtensions.swift
[60/162] Compiling ArgumentParser StringExtensions.swift
[61/162] Compiling ArgumentParser Tree.swift
[62/162] Compiling Plot HTMLAnchorRelationship.swift
[63/162] Compiling Plot HTMLAnchorTarget.swift
[64/162] Compiling Plot HTMLAttributes.swift
[65/162] Compiling Plot HTMLAudioFormat.swift
[66/162] Compiling Plot HTMLButtonType.swift
[67/162] Compiling Plot HTMLComponents.swift
[68/162] Compiling Plot HTMLElements.swift
[69/162] Compiling Plot HTMLFormContentType.swift
[70/162] Compiling Plot HTMLFormMethod.swift
[71/162] Compiling ArgumentParser ParsableArgumentsValidation.swift
[72/162] Compiling ArgumentParser ParsableCommand.swift
[73/162] Compiling ArgumentParser ArgumentDecoder.swift
[74/162] Compiling ArgumentParser DumpHelpGenerator.swift
[75/162] Compiling ArgumentParser HelpCommand.swift
[76/162] Compiling ArgumentParser HelpGenerator.swift
[77/162] Compiling ArgumentParser MessageInfo.swift
[78/162] Compiling ArgumentParser UsageGenerator.swift
[106/162] Compiling ArgumentParser ExpressibleByArgument.swift
[107/162] Compiling ArgumentParser ParsableArguments.swift
[117/163] Compiling Plot AnyEnvironmentValue.swift
[118/163] Compiling Plot AnyNode.swift
[119/163] Compiling Plot ElementRenderingBuffer.swift
[120/163] Compiling Plot ElementWrapper.swift
[121/163] Compiling Plot Environment.swift
[122/163] Compiling Plot ModifiedComponent.swift
[123/163] Compiling Plot Renderer.swift
[124/163] Compiling Plot String+Escaping.swift
[147/164] Compiling Plot HTMLInputType.swift
[148/164] Compiling Plot HTMLLinkRelationship.swift
[149/164] Compiling Plot HTMLListStyle.swift
[150/164] Compiling Plot HTMLVideoFormat.swift
[151/164] Compiling Plot HTMLViewportFitMode.swift
[152/164] Compiling Plot HTMLViewportWidthMode.swift
[153/164] Compiling Plot Indentation.swift
[154/164] Compiling Plot Language.swift
[157/165] Emitting module ShellOut
[158/165] Compiling ShellOut ShellOut.swift
[158/165] Wrapping AST for Yams for debugging
[159/166] Wrapping AST for Plot for debugging
[160/166] Wrapping AST for ArgumentParser for debugging
[162/166] Wrapping AST for ShellOut for debugging
[164/201] 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 '_' 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))
[165/201] 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 '_' 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))
[166/201] 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 '_' 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))
[167/201] 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 '_' 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))
[168/201] 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 '_' 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))
[169/201] Compiling watchduck KeyedDecodingContainer+AssignIfPresent.swift
[170/201] Compiling watchduck Sequence+Uniqued.swift
[171/201] Compiling watchduck String+CFString.swift
[172/201] Compiling watchduck String+Color+Bold.swift
[173/201] Compiling watchduck String.Encoding+IANACharset.swift
[174/201] Compiling watchduck Task+SleepTimeInterval.swift
[175/201] Compiling watchduck URL+CurrentDirectory.swift
[176/201] Compiling watchduck URL+StaticString.swift
[177/201] Compiling watchduck URLRequest+PreferredTextEncoding.swift
[178/201] Compiling watchduck WDPageHeader.swift
[179/201] Compiling watchduck WDPageListSubtext.swift
[180/201] Compiling watchduck WDPageStatusList.swift
[181/201] Compiling watchduck ANSIColors.swift
[182/201] Compiling watchduck CLISpinner.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[183/201] Compiling watchduck Bundle+StaticURL.swift
[184/201] Compiling watchduck Bundle+StaticURLs.swift
[185/201] Compiling watchduck ClosedRange+ContainsRange.swift
[186/201] Compiling watchduck Error+UnderlyingLocalizedDescription.swift
[187/201] Compiling watchduck HTTPURLResponse+TextEncoding.swift
[188/201] 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 '_' 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 |                 """
[189/201] Compiling watchduck WDOutage.swift
[190/201] Compiling watchduck WDStatus.swift
[191/201] Compiling watchduck FileComponents.swift
[192/201] Compiling watchduck WDHTML.swift
[193/201] Compiling watchduck WDPageFooter.swift
[194/201] 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 |                 """
[195/201] 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 |                 """
[196/201] 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 |                 """
[197/201] 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 |                 """
[198/201] 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 |                 """
[199/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)
[200/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)
[201/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)
[202/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)
BUILD FAILURE 6.3 android