[INFO] cloning repository https://github.com/altbert/Cobalt
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/altbert/Cobalt" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faltbert%2FCobalt", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faltbert%2FCobalt'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 94f692078d7967a840872e422eb8bdf22bf5fe99
[INFO] checking altbert/Cobalt against 846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9 for pr-160391-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Faltbert%2FCobalt" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-6-tc1/source/.cargo/config.toml
[INFO] started tweaking git repo https://github.com/altbert/Cobalt
[INFO] finished tweaking git repo https://github.com/altbert/Cobalt
[INFO] tweaked toml for git repo https://github.com/altbert/Cobalt written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/altbert/Cobalt on toolchain 846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/altbert/Cobalt already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: missing `[lints]` to inherit `[workspace.lints]`
[INFO] [stderr]   --> crates/kobo-vault-host/Cargo.toml
[INFO] [stderr]    = note: `cargo::missing_lints_inheritance` is set to `warn` by default
[INFO] [stderr] help: to inherit `workspace.lints, add:
[INFO] [stderr]    |
[INFO] [stderr] 10 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 11 + [lints]
[INFO] [stderr] 12 + workspace = true
[INFO] [stderr]    |
[INFO] [stderr] help: to clarify your intent to not inherit, add:
[INFO] [stderr]    |
[INFO] [stderr] 10 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 11 + [lints]
[INFO] [stderr]    |
[INFO] [stderr] warning: `kobo-vault-host` (manifest) generated 1 warning
[INFO] [stderr] warning: missing `[lints]` to inherit `[workspace.lints]`
[INFO] [stderr]   --> third_party/fsrs/Cargo.toml
[INFO] [stderr]    = note: `cargo::missing_lints_inheritance` is set to `warn` by default
[INFO] [stderr] help: to inherit `workspace.lints, add:
[INFO] [stderr]    |
[INFO] [stderr] 34 ~ strum = { version = "0.28.0", features = ["derive"] }
[INFO] [stderr] 35 + [lints]
[INFO] [stderr] 36 + workspace = true
[INFO] [stderr]    |
[INFO] [stderr] help: to clarify your intent to not inherit, add:
[INFO] [stderr]    |
[INFO] [stderr] 34 ~ strum = { version = "0.28.0", features = ["derive"] }
[INFO] [stderr] 35 + [lints]
[INFO] [stderr]    |
[INFO] [stderr] warning: `fsrs` (manifest) generated 1 warning
[INFO] [stderr] warning: missing `[lints]` to inherit `[workspace.lints]`
[INFO] [stderr]   --> crates/kobo-music-host/Cargo.toml
[INFO] [stderr]    = note: `cargo::missing_lints_inheritance` is set to `warn` by default
[INFO] [stderr] help: to inherit `workspace.lints, add:
[INFO] [stderr]    |
[INFO] [stderr] 11 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 12 + [lints]
[INFO] [stderr] 13 + workspace = true
[INFO] [stderr]    |
[INFO] [stderr] help: to clarify your intent to not inherit, add:
[INFO] [stderr]    |
[INFO] [stderr] 11 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 12 + [lints]
[INFO] [stderr]    |
[INFO] [stderr] warning: `kobo-music-host` (manifest) generated 1 warning
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fontdue v0.9.3
[INFO] [stderr]   Downloaded shakmaty v0.27.3
[INFO] [stderr]   Downloaded priority-queue v2.7.0
[INFO] [stderr]   Downloaded qrcodegen v1.8.0
[INFO] [stderr]   Downloaded minimp3 v0.5.2
[INFO] [stderr]   Downloaded slice-ring-buffer v0.3.4
[INFO] [stderr]   Downloaded command-group v5.0.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc
[INFO] running `Command { std: "docker" "start" "7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc" "/opt/rustwide/cargo-home/bin/cargo" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc" "/opt/rustwide/cargo-home/bin/cargo" "+846e51f66b1e7b49ba9e3988c58ccfe5817ce0a9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: missing `[lints]` to inherit `[workspace.lints]`
[INFO] [stderr]   --> crates/kobo-vault-host/Cargo.toml
[INFO] [stderr]    = note: `cargo::missing_lints_inheritance` is set to `warn` by default
[INFO] [stderr] help: to inherit `workspace.lints, add:
[INFO] [stderr]    |
[INFO] [stderr] 10 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 11 + [lints]
[INFO] [stderr] 12 + workspace = true
[INFO] [stderr]    |
[INFO] [stderr] help: to clarify your intent to not inherit, add:
[INFO] [stderr]    |
[INFO] [stderr] 10 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 11 + [lints]
[INFO] [stderr]    |
[INFO] [stderr] warning: `kobo-vault-host` (manifest) generated 1 warning
[INFO] [stderr] warning: missing `[lints]` to inherit `[workspace.lints]`
[INFO] [stderr]   --> third_party/fsrs/Cargo.toml
[INFO] [stderr]    = note: `cargo::missing_lints_inheritance` is set to `warn` by default
[INFO] [stderr] help: to inherit `workspace.lints, add:
[INFO] [stderr]    |
[INFO] [stderr] 34 ~ strum = { version = "0.28.0", features = ["derive"] }
[INFO] [stderr] 35 + [lints]
[INFO] [stderr] 36 + workspace = true
[INFO] [stderr]    |
[INFO] [stderr] help: to clarify your intent to not inherit, add:
[INFO] [stderr]    |
[INFO] [stderr] 34 ~ strum = { version = "0.28.0", features = ["derive"] }
[INFO] [stderr] 35 + [lints]
[INFO] [stderr]    |
[INFO] [stderr] warning: `fsrs` (manifest) generated 1 warning
[INFO] [stderr] warning: missing `[lints]` to inherit `[workspace.lints]`
[INFO] [stderr]   --> crates/kobo-music-host/Cargo.toml
[INFO] [stderr]    = note: `cargo::missing_lints_inheritance` is set to `warn` by default
[INFO] [stderr] help: to inherit `workspace.lints, add:
[INFO] [stderr]    |
[INFO] [stderr] 11 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 12 + [lints]
[INFO] [stderr] 13 + workspace = true
[INFO] [stderr]    |
[INFO] [stderr] help: to clarify your intent to not inherit, add:
[INFO] [stderr]    |
[INFO] [stderr] 11 ~ kobo-json = { path = "../kobo-json" }
[INFO] [stderr] 12 + [lints]
[INFO] [stderr]    |
[INFO] [stderr] warning: `kobo-music-host` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]     Checking kobo-json v0.3.27 (/opt/rustwide/workdir/crates/kobo-json)
[INFO] [stderr]    Compiling rustls v0.23.45
[INFO] [stderr]     Checking kobo-ui v0.3.27 (/opt/rustwide/workdir/crates/kobo-ui)
[INFO] [stderr]     Checking smallvec v1.16.0
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking kobo-dict v0.3.27 (/opt/rustwide/workdir/crates/kobo-dict)
[INFO] [stderr]     Checking bytemuck v1.25.2
[INFO] [stderr]    Compiling syn v3.0.4
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]     Checking hybrid-array v0.4.14
[INFO] [stderr]     Checking gif v0.13.3
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling rand v0.8.8
[INFO] [stderr]     Checking moxcms v0.7.11
[INFO] [stderr]     Checking kobo-state v0.3.27 (/opt/rustwide/workdir/crates/kobo-state)
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]     Checking tiny-skia-path v0.11.4
[INFO] [stderr]    Compiling cpufeatures v0.3.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling mime v0.3.17
[INFO] [stderr]     Checking fancy-regex v0.14.0
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]    Compiling phf_generator v0.11.3
[INFO] [stderr]     Checking owned_ttf_parser v0.25.1
[INFO] [stderr]     Checking crypto-common v0.2.2
[INFO] [stderr]     Checking block-buffer v0.12.1
[INFO] [stderr]     Checking regex-lite v0.1.9
[INFO] [stderr]     Checking ab_glyph v0.2.32
[INFO] [stderr]    Compiling pulldown-cmark v0.13.4
[INFO] [stderr]     Checking tiny-skia v0.11.4
[INFO] [stderr]     Checking pulldown-cmark-escape v0.11.0
[INFO] [stderr]     Checking indexmap v2.14.2
[INFO] [stderr]     Checking kobo-xml v0.3.27 (/opt/rustwide/workdir/crates/kobo-xml)
[INFO] [stderr]     Checking generic-array v0.14.9
[INFO] [stderr]     Checking kobo-profile v0.3.27 (/opt/rustwide/workdir/crates/kobo-profile)
[INFO] [stderr]     Checking fontdue v0.9.3
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]    Compiling minimp3-sys v0.3.2
[INFO] [stderr]     Checking zip v4.6.1
[INFO] [stderr]    Compiling blake3 v1.8.7
[INFO] [stderr]     Checking digest v0.11.3
[INFO] [stderr]     Checking sha2 v0.11.0
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking kobo-protocol v0.3.27 (/opt/rustwide/workdir/crates/kobo-protocol)
[INFO] [stderr]     Checking kobo-text v0.3.27 (/opt/rustwide/workdir/crates/kobo-text)
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling kobo-catalog v0.3.27 (/opt/rustwide/workdir/crates/kobo-catalog)
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking rust-embed-utils v8.12.0
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking vte v0.15.0
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking kobo-abi v0.3.27 (/opt/rustwide/workdir/crates/kobo-abi)
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking slice-ring-buffer v0.3.4
[INFO] [stderr]     Checking fontdb v0.23.0
[INFO] [stderr]     Checking rfc6979 v0.4.0
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking ff v0.13.1
[INFO] [stderr]     Checking crypto-bigint v0.5.5
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking vt100 v0.16.2
[INFO] [stderr]     Checking system-fonts v0.1.2
[INFO] [stderr]     Checking kobo-opds v0.3.27 (/opt/rustwide/workdir/crates/kobo-opds)
[INFO] [stderr]     Checking kurbo v0.11.3
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking rustybuzz v0.20.1
[INFO] [stderr]     Checking ratex-unicode-font v0.1.14
[INFO] [stderr]     Checking group v0.13.0
[INFO] [stderr]     Checking pico-args v0.5.0
[INFO] [stderr]     Checking unicode-vo v0.1.0
[INFO] [stderr]     Checking sec1 v0.7.3
[INFO] [stderr]     Checking xmlwriter v0.1.0
[INFO] [stderr]     Checking imagesize v0.13.0
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]     Checking chacha20 v0.10.2
[INFO] [stderr]     Checking rgb v0.8.53
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking num-integer v0.1.47
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking priority-queue v2.7.0
[INFO] [stderr]     Checking kobo-zstory v0.3.27 (/opt/rustwide/workdir/crates/kobo-zstory)
[INFO] [stderr]     Checking rand v0.10.2
[INFO] [stderr]     Checking nix v0.27.1
[INFO] [stderr]     Checking btoi v0.4.3
[INFO] [stderr]     Checking shakmaty v0.27.3
[INFO] [stderr]     Checking kobo-term v0.3.27 (/opt/rustwide/workdir/crates/kobo-term)
[INFO] [stderr]     Checking kobo-vault-host v0.3.27 (/opt/rustwide/workdir/crates/kobo-vault-host)
[INFO] [stderr]     Checking ndarray v0.17.2
[INFO] [stderr]     Checking qrcodegen v1.8.0
[INFO] [stderr]     Checking svgtypes v0.15.3
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking elliptic-curve v0.13.8
[INFO] [stderr]     Checking command-group v5.0.1
[INFO] [stderr]     Checking primeorder v0.13.6
[INFO] [stderr]     Checking ecdsa v0.16.9
[INFO] [stderr]     Checking icon-import v0.3.27 (/opt/rustwide/workdir/tools/icon-import)
[INFO] [stderr]     Checking image v0.25.8
[INFO] [stderr]     Checking usvg v0.45.1
[INFO] [stderr]     Checking rustls-webpki v0.103.15
[INFO] [stderr]     Checking kobo-wifi-trace v0.3.27 (/opt/rustwide/workdir/crates/kobo-wifi-trace)
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling phf_macros v0.11.3
[INFO] [stderr]    Compiling rust-embed-impl v8.12.0
[INFO] [stderr]     Checking p256 v0.13.2
[INFO] [stderr]    Compiling snafu-derive v0.9.2
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]     Checking phf v0.11.3
[INFO] [stderr]     Checking rust-embed v8.12.0
[INFO] [stderr]     Checking ratex-katex-fonts v0.1.14
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking minimp3 v0.5.2
[INFO] [stderr]     Checking serde v1.0.229
[INFO] [stderr]     Checking snafu v0.9.2
[INFO] [stderr]     Checking resvg v0.45.1
[INFO] [stderr]     Checking strum v0.28.0
[INFO] [stderr]     Checking kobo-image v0.3.27 (/opt/rustwide/workdir/crates/kobo-image)
[INFO] [stderr]     Checking kobo-frame-host v0.3.27 (/opt/rustwide/workdir/crates/kobo-frame-host)
[INFO] [stderr]     Checking ratex-types v0.1.14
[INFO] [stderr]     Checking toml_datetime v0.6.11
[INFO] [stderr]     Checking serde_spanned v0.6.9
[INFO] [stderr]     Checking kobo-comic v0.3.27 (/opt/rustwide/workdir/crates/kobo-comic)
[INFO] [stderr]     Checking kobo-flashcards-format v0.3.27 (/opt/rustwide/workdir/crates/kobo-flashcards-format)
[INFO] [stderr]     Checking kobo-music-host v0.3.27 (/opt/rustwide/workdir/crates/kobo-music-host)
[INFO] [stderr]     Checking toml_edit v0.22.27
[INFO] [stderr]     Checking ratex-font v0.1.14
[INFO] [stderr]     Checking ratex-lexer v0.1.14
[INFO] [stderr]     Checking ratex-parser v0.1.14
[INFO] [stderr]     Checking ratex-font-loader v0.1.14
[INFO] [stderr]     Checking kobo-net v0.3.27 (/opt/rustwide/workdir/crates/kobo-net)
[INFO] [stderr]     Checking toml v0.8.23
[INFO] [stderr]     Checking fsrs v6.6.2 (/opt/rustwide/workdir/third_party/fsrs)
[INFO] [stderr]     Checking kobo-opml v0.3.27 (/opt/rustwide/workdir/crates/kobo-opml)
[INFO] [stderr]     Checking kobo-stream v0.3.27 (/opt/rustwide/workdir/crates/kobo-stream)
[INFO] [stderr]     Checking kobo-sidekickd v0.3.27 (/opt/rustwide/workdir/crates/kobo-sidekickd)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/kobo-stream/src/lib.rs:545:22
[INFO] [stdout]     |
[INFO] [stdout] 545 |                     .fetch_update(Ordering::AcqRel, Ordering::Acquire, |count| {
[INFO] [stdout]     |                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 545 -                     .fetch_update(Ordering::AcqRel, Ordering::Acquire, |count| {
[INFO] [stdout] 545 +                     .try_update(Ordering::AcqRel, Ordering::Acquire, |count| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/kobo-stream/src/lib.rs:545:22
[INFO] [stdout]     |
[INFO] [stdout] 545 |                     .fetch_update(Ordering::AcqRel, Ordering::Acquire, |count| {
[INFO] [stdout]     |                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 545 -                     .fetch_update(Ordering::AcqRel, Ordering::Acquire, |count| {
[INFO] [stdout] 545 +                     .try_update(Ordering::AcqRel, Ordering::Acquire, |count| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/kobo-sidekickd/src/server.rs:170:14
[INFO] [stdout]     |
[INFO] [stdout] 170 |             .fetch_update(Ordering::AcqRel, Ordering::Acquire, |live| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 170 -             .fetch_update(Ordering::AcqRel, Ordering::Acquire, |live| {
[INFO] [stdout] 170 +             .try_update(Ordering::AcqRel, Ordering::Acquire, |live| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<usize>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]    --> crates/kobo-sidekickd/src/server.rs:170:14
[INFO] [stdout]     |
[INFO] [stdout] 170 |             .fetch_update(Ordering::AcqRel, Ordering::Acquire, |live| {
[INFO] [stdout]     |              ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]     |
[INFO] [stdout] 170 -             .fetch_update(Ordering::AcqRel, Ordering::Acquire, |live| {
[INFO] [stdout] 170 +             .try_update(Ordering::AcqRel, Ordering::Acquire, |live| {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking rusqlite v0.37.0
[INFO] [stderr]     Checking ratex-layout v0.1.14
[INFO] [stderr]     Checking kobo-policy v0.3.27 (/opt/rustwide/workdir/crates/kobo-policy)
[INFO] [stderr]     Checking ratex-render v0.1.14
[INFO] [stderr]     Checking kobo-html v0.3.27 (/opt/rustwide/workdir/crates/kobo-html)
[INFO] [stderr]     Checking kobo-sdk v0.3.27 (/opt/rustwide/workdir/crates/kobo-sdk)
[INFO] [stderr]     Checking kobo-app-store v0.3.27 (/opt/rustwide/workdir/crates/kobo-app-store)
[INFO] [stderr]     Checking kobo-shell v0.3.27 (/opt/rustwide/workdir/crates/kobo-shell)
[INFO] [stderr]     Checking kobo-doc v0.3.27 (/opt/rustwide/workdir/crates/kobo-doc)
[INFO] [stderr]     Checking kobo-hal v0.3.27 (/opt/rustwide/workdir/crates/kobo-hal)
[INFO] [stderr]     Checking kobo-read v0.3.27 (/opt/rustwide/workdir/crates/kobo-read)
[INFO] [stderr]     Checking kobo-flashcards v0.1.0 (/opt/rustwide/workdir/apps/flashcards)
[INFO] [stderr]     Checking kobo-gallery v0.3.27 (/opt/rustwide/workdir/examples/gallery)
[INFO] [stderr]     Checking kobo-musicstand v0.1.0 (/opt/rustwide/workdir/apps/musicstand)
[INFO] [stderr]     Checking kobo-sudoku v1.0.11 (/opt/rustwide/workdir/apps/sudoku)
[INFO] [stderr]     Checking kobo-sidekick v0.3.27 (/opt/rustwide/workdir/examples/sidekick)
[INFO] [stderr]     Checking kobo-audiobook v0.3.27 (/opt/rustwide/workdir/examples/audiobook)
[INFO] [stderr]     Checking kobo-crossword v0.1.3 (/opt/rustwide/workdir/apps/crossword)
[INFO] [stderr]     Checking kobo-paperterm v0.1.6 (/opt/rustwide/workdir/apps/paperterm)
[INFO] [stderr]     Checking kobo-homepanel v0.2.4 (/opt/rustwide/workdir/apps/homepanel)
[INFO] [stderr]     Checking kobod v0.3.27 (/opt/rustwide/workdir/crates/kobod)
[INFO] [stderr]     Checking kobo-doctor v0.3.27 (/opt/rustwide/workdir/crates/kobo-doctor)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/kobod/src/fonts.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 38 |                     .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |next| {
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 38 -                     .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |next| {
[INFO] [stdout] 38 +                     .try_update(Ordering::Relaxed, Ordering::Relaxed, |next| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking kobo-morse v0.3.27 (/opt/rustwide/workdir/apps/morse)
[INFO] [stderr]     Checking kobo-sim v0.3.27 (/opt/rustwide/workdir/crates/kobo-sim)
[INFO] [stderr]     Checking kobo-post v0.2.4 (/opt/rustwide/workdir/apps/post)
[INFO] [stderr]     Checking kobo-fieldbook v0.2.0 (/opt/rustwide/workdir/apps/fieldbook)
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::Atomic::<u32>::fetch_update`: renamed to `try_update` for consistency
[INFO] [stdout]   --> crates/kobod/src/fonts.rs:38:22
[INFO] [stdout]    |
[INFO] [stdout] 38 |                     .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |next| {
[INFO] [stdout]    |                      ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 38 -                     .fetch_update(Ordering::Relaxed, Ordering::Relaxed, |next| {
[INFO] [stdout] 38 +                     .try_update(Ordering::Relaxed, Ordering::Relaxed, |next| {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking kobo-bookview v0.3.27 (/opt/rustwide/workdir/crates/kobo-bookview)
[INFO] [stderr]     Checking kobo-nonograms v0.1.6 (/opt/rustwide/workdir/apps/nonograms)
[INFO] [stderr]     Checking kobo-vault v0.1.4 (/opt/rustwide/workdir/apps/vault)
[INFO] [stderr]     Checking kobo-logicpack v0.1.5 (/opt/rustwide/workdir/apps/logicpack)
[INFO] [stderr]     Checking kobo-pubquiz v0.1.0 (/opt/rustwide/workdir/apps/pubquiz)
[INFO] [stderr]     Checking kobo-verses v0.1.0 (/opt/rustwide/workdir/apps/verses)
[INFO] [stderr]     Checking kobo-hello v0.3.27 (/opt/rustwide/workdir/examples/hello)
[INFO] [stderr]     Checking kobo-rss-miniflux v0.1.0 (/opt/rustwide/workdir/apps/rss-miniflux)
[INFO] [stderr]     Checking kobo-rss v0.3.27 (/opt/rustwide/workdir/examples/rss)
[INFO] [stderr]     Checking kobo-calibre-web v0.1.3 (/opt/rustwide/workdir/apps/calibre-web)
[INFO] [stderr]     Checking kobo-gutenbird v0.3.27 (/opt/rustwide/workdir/examples/gutenbird)
[INFO] [stderr]     Checking kobo-panels v0.1.2 (/opt/rustwide/workdir/apps/panels)
[INFO] [stderr]     Checking kobo-grimoire v0.1.1 (/opt/rustwide/workdir/apps/grimoire)
[INFO] [stderr]     Checking kobo-arxiv v0.3.27 (/opt/rustwide/workdir/apps/arxiv)
[INFO] [stderr]     Checking kobo-fanshelf v0.2.0 (/opt/rustwide/workdir/apps/fanshelf)
[INFO] [stderr]     Checking kobo-cli v0.3.27 (/opt/rustwide/workdir/crates/kobo-cli)
[INFO] [stdout] warning: constant `COMMAND_TTL_SECONDS` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:28:7
[INFO] [stdout]    |
[INFO] [stdout] 28 | const COMMAND_TTL_SECONDS: u64 = 72 * 60 * 60;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSTALL_COMPLETION_TTL_SECONDS` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 | const INSTALL_COMPLETION_TTL_SECONDS: u64 = 15 * 60;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CLOCK_SKEW_SECONDS` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const CLOCK_SKEW_SECONDS: u64 = 5 * 60;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `COMPLETED_LIMIT` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const COMPLETED_LIMIT: usize = 64;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HKDF_INFO` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const HKDF_INFO: &[u8] = b"cobalt-app-install-v1";
[INFO] [stdout]    |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `INSTALL_SIGNATURE_CONTEXT` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const INSTALL_SIGNATURE_CONTEXT: &str = "cobalt-install-v2";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn begin(root: &Path) -> Result<DeviceResult, DeviceError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn poll(root: &Path) -> Result<DeviceResult, DeviceError> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `device_name` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn device_name() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `new_link_secret` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:299:4
[INFO] [stdout]     |
[INFO] [stdout] 299 | fn new_link_secret() -> Result<String, DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `begin_with` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:395:4
[INFO] [stdout]     |
[INFO] [stdout] 395 | fn begin_with(
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll_with` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:614:4
[INFO] [stdout]     |
[INFO] [stdout] 614 | fn poll_with(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `validate_command` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:643:4
[INFO] [stdout]     |
[INFO] [stdout] 643 | fn validate_command(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `process_command` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:707:4
[INFO] [stdout]     |
[INFO] [stdout] 707 | fn process_command(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `resume_pending` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:755:4
[INFO] [stdout]     |
[INFO] [stdout] 755 | fn resume_pending(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `finish_pending` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:807:4
[INFO] [stdout]     |
[INFO] [stdout] 807 | fn finish_pending(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `reject_command` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:831:4
[INFO] [stdout]     |
[INFO] [stdout] 831 | fn reject_command(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_pairing` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:881:4
[INFO] [stdout]     |
[INFO] [stdout] 881 | fn parse_pairing(response: &[u8]) -> Result<Pairing, DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_pairing_value` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:885:4
[INFO] [stdout]     |
[INFO] [stdout] 885 | fn parse_pairing_value(value: &Value) -> Result<Pairing, DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `InstallRequest` is never constructed
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:933:8
[INFO] [stdout]     |
[INFO] [stdout] 933 | struct InstallRequest {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_install_signature` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:939:4
[INFO] [stdout]     |
[INFO] [stdout] 939 | fn verify_install_signature(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decrypt_command` is never used
[INFO] [stdout]    --> crates/kobod/src/app_link.rs:971:4
[INFO] [stdout]     |
[INFO] [stdout] 971 | fn decrypt_command(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `AesKeyLength` is never constructed
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1034:8
[INFO] [stdout]      |
[INFO] [stdout] 1034 | struct AesKeyLength;
[INFO] [stdout]      |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Pending` is never constructed
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1043:8
[INFO] [stdout]      |
[INFO] [stdout] 1043 | struct Pending {
[INFO] [stdout]      |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `PendingPhase` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1052:6
[INFO] [stdout]      |
[INFO] [stdout] 1052 | enum PendingPhase {
[INFO] [stdout]      |      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Ack` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1064:6
[INFO] [stdout]      |
[INFO] [stdout] 1064 | enum Ack {
[INFO] [stdout]      |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Report` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1071:6
[INFO] [stdout]      |
[INFO] [stdout] 1071 | enum Report {
[INFO] [stdout]      |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load`, `save`, `final_success`, `final_outcome_failure`, and `final_failure` are never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1077:8
[INFO] [stdout]      |
[INFO] [stdout] 1076 | impl Pending {
[INFO] [stdout]      | ------------ associated items in this implementation
[INFO] [stdout] 1077 |     fn load(root: &Path) -> Result<Option<Self>, DeviceError> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1144 |     fn save(&self, root: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1201 |     fn final_success(mut self, outcome: RemoteInstallOutcome) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1209 |     fn final_outcome_failure(mut self, failure: &str, outcome: RemoteInstallOutcome) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1217 |     fn final_failure(mut self, failure: &str, error: DeviceError) -> Self {
[INFO] [stdout]      |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_ack` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1226:4
[INFO] [stdout]      |
[INFO] [stdout] 1226 | fn send_ack(
[INFO] [stdout]      |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `outcome_name` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1261:4
[INFO] [stdout]      |
[INFO] [stdout] 1261 | fn outcome_name(outcome: &RemoteInstallOutcome) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_outcome` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1274:4
[INFO] [stdout]      |
[INFO] [stdout] 1274 | fn parse_outcome(value: &Value) -> Result<RemoteInstallOutcome, DeviceError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `relay_outcome` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1304:4
[INFO] [stdout]      |
[INFO] [stdout] 1304 | fn relay_outcome(outcome: &RemoteInstallOutcome) -> Option<&'static str> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `failure_code` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1316:4
[INFO] [stdout]      |
[INFO] [stdout] 1316 | fn failure_code(error: DeviceError) -> &'static str {
[INFO] [stdout]      |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `device_error_name` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1328:4
[INFO] [stdout]      |
[INFO] [stdout] 1328 | fn device_error_name(error: DeviceError) -> &'static str {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_device_error` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1332:4
[INFO] [stdout]      |
[INFO] [stdout] 1332 | fn parse_device_error(value: &str) -> Option<DeviceError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `completed` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1345:4
[INFO] [stdout]      |
[INFO] [stdout] 1345 | fn completed(root: &Path) -> Result<Vec<String>, DeviceError> {
[INFO] [stdout]      |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remember_completed` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1363:4
[INFO] [stdout]      |
[INFO] [stdout] 1363 | fn remember_completed(root: &Path, request_id: &str) -> Result<(), DeviceError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `required_string` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1426:4
[INFO] [stdout]      |
[INFO] [stdout] 1426 | fn required_string(value: &Value, key: &str) -> Result<String, DeviceError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_bounded` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1434:4
[INFO] [stdout]      |
[INFO] [stdout] 1434 | fn decode_bounded(value: &str, minimum: usize, maximum: usize) -> Result<Vec<u8>, DeviceError> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_request_id` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1459:4
[INFO] [stdout]      |
[INFO] [stdout] 1459 | fn valid_request_id(value: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_install_signature` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1471:4
[INFO] [stdout]      |
[INFO] [stdout] 1471 | fn valid_install_signature(value: &str) -> bool {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_timestamp` is never used
[INFO] [stdout]     --> crates/kobod/src/app_link.rs:1499:4
[INFO] [stdout]      |
[INFO] [stdout] 1499 | fn parse_timestamp(value: &str) -> Option<u64> {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STABLE_RELEASES` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const STABLE_RELEASES: &str = "https://api.github.com/repos/BandarLabs/Cobalt/releases/latest";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BETA_RELEASES` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const BETA_RELEASES: &str = "https://api.github.com/repos/BandarLabs/Cobalt/releases?per_page=20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELEASE_LIMIT` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const RELEASE_LIMIT: u32 = 8 * 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANIFEST_LIMIT` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const MANIFEST_LIMIT: u32 = 64 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGNATURE_LIMIT` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const SIGNATURE_LIMIT: u32 = 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Plan` is never constructed
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:84:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | pub struct Plan {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 93 | impl Plan {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PlatformUpdate` is never constructed
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct PlatformUpdate {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_preferences` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:124:8
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub fn set_preferences(root: &Path, chosen: Preferences) -> Result<(), DeviceError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plan` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn plan(root: &Path, chosen: Preferences, installed: &str) -> Plan {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plan_with` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:157:4
[INFO] [stdout]     |
[INFO] [stdout] 157 | fn plan_with(
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `render` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn render(chosen: Preferences) -> String {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stale_apps` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn stale_apps(root: &Path, channel: UpdateChannel) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `platform_update` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn platform_update(installed: &str, channel: UpdateChannel) -> Option<PlatformUpdate> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `platform_from_manifest` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn platform_from_manifest(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Release` is never constructed
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:263:8
[INFO] [stdout]     |
[INFO] [stdout] 263 | struct Release {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `release_from` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn release_from(body: &str) -> Option<Release> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `beta_release_from` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:279:4
[INFO] [stdout]     |
[INFO] [stdout] 279 | fn beta_release_from(body: &str) -> Option<Release> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `release_value` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:288:4
[INFO] [stdout]     |
[INFO] [stdout] 288 | fn release_value(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `valid_release_url` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:329:4
[INFO] [stdout]     |
[INFO] [stdout] 329 | fn valid_release_url(url: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `archive_file` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:333:4
[INFO] [stdout]     |
[INFO] [stdout] 333 | fn archive_file(version: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `newer` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:339:4
[INFO] [stdout]     |
[INFO] [stdout] 339 | fn newer(latest: &str, installed: &str) -> bool {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `numbers` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:346:4
[INFO] [stdout]     |
[INFO] [stdout] 346 | fn numbers(version: &str) -> Option<(u64, u64, u64)> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Decision` is never used
[INFO] [stdout]   --> crates/kobod/src/consent.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum Decision {
[INFO] [stdout]    |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Notice` is never constructed
[INFO] [stdout]   --> crates/kobod/src/consent.rs:38:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct Notice {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ledger` is never used
[INFO] [stdout]   --> crates/kobod/src/consent.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn ledger(root: &Path) -> PathBuf {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `key` is never used
[INFO] [stdout]   --> crates/kobod/src/consent.rs:59:4
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn key(profile: &DeviceProfile, firmware: &str) -> Option<String> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `already_accepted` is never used
[INFO] [stdout]   --> crates/kobod/src/consent.rs:66:8
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn already_accepted(root: &Path, profile: &DeviceProfile, firmware: &str) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record` is never used
[INFO] [stdout]   --> crates/kobod/src/consent.rs:92:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn record(
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `notice` is never used
[INFO] [stdout]    --> crates/kobod/src/consent.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn notice(standing: Standing, profile: &DeviceProfile, firmware: &str) -> Option<Notice> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `trace` is never used
[INFO] [stdout]   --> crates/kobod/src/update.rs:26:4
[INFO] [stdout]    |
[INFO] [stdout] 26 | fn trace(_event: &str) {}
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `record_failure` is never used
[INFO] [stdout]   --> crates/kobod/src/update.rs:45:4
[INFO] [stdout]    |
[INFO] [stdout] 45 | fn record_failure(adds: &Path, reason: &str) {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PREFIX` is never used
[INFO] [stdout]   --> crates/kobod/src/update.rs:69:7
[INFO] [stdout]    |
[INFO] [stdout] 69 | const PREFIX: &str = "mnt/onboard/.adds/cobalt";
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `EXPANDED_LIMIT` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 | const EXPANDED_LIMIT: u32 = 128 * 1024 * 1024;
[INFO] [stdout]     |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BLOCK` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:104:7
[INFO] [stdout]     |
[INFO] [stdout] 104 | const BLOCK: usize = 512;
[INFO] [stdout]     |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `install` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:171:4
[INFO] [stdout]     |
[INFO] [stdout] 171 | fn install(archive: &[u8], sha256: &str, adds: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `complete_launch_chain` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:228:4
[INFO] [stdout]     |
[INFO] [stdout] 228 | fn complete_launch_chain(release: &Path) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `regular_file` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:234:4
[INFO] [stdout]     |
[INFO] [stdout] 234 | fn regular_file(path: &Path, executable: bool) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_executable` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:245:4
[INFO] [stdout]     |
[INFO] [stdout] 245 | fn is_executable(metadata: &fs::Metadata) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:257:4
[INFO] [stdout]     |
[INFO] [stdout] 257 | fn unpack(tar: &[u8], staging: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `unpack_with_bootstrap` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:280:4
[INFO] [stdout]     |
[INFO] [stdout] 280 | fn unpack_with_bootstrap(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:362:4
[INFO] [stdout]     |
[INFO] [stdout] 362 | fn swap(adds: &Path, staging: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransactionStep` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:367:6
[INFO] [stdout]     |
[INFO] [stdout] 367 | enum TransactionStep {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TransactionFailure` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:383:6
[INFO] [stdout]     |
[INFO] [stdout] 383 | enum TransactionFailure {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Direction` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:390:6
[INFO] [stdout]     |
[INFO] [stdout] 390 | enum Direction {
[INFO] [stdout]     |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OWNER_HOLDER` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:395:7
[INFO] [stdout]     |
[INFO] [stdout] 395 | const OWNER_HOLDER: &str = "cobalt.owner";
[INFO] [stdout]     |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOURNAL` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:396:7
[INFO] [stdout]     |
[INFO] [stdout] 396 | const JOURNAL: &str = ".cobalt-update-transaction";
[INFO] [stdout]     |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `JOURNAL_TEMPORARY` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:397:7
[INFO] [stdout]     |
[INFO] [stdout] 397 | const JOURNAL_TEMPORARY: &str = ".cobalt-update-transaction.new";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAUNCH_BOOTSTRAP` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:398:7
[INFO] [stdout]     |
[INFO] [stdout] 398 | const LAUNCH_BOOTSTRAP: &str = "cobalt-launch.sh";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAUNCH_BOOTSTRAP_TEMPORARY` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:399:7
[INFO] [stdout]     |
[INFO] [stdout] 399 | const LAUNCH_BOOTSTRAP_TEMPORARY: &str = "cobalt-launch.sh.new";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAUNCH_BOOTSTRAP_CONTENT` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:400:7
[INFO] [stdout]     |
[INFO] [stdout] 400 | const LAUNCH_BOOTSTRAP_CONTENT: &str = include_str!("../../../assets/cobalt-launch.sh");
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LAUNCH_BOOTSTRAP_ARCHIVE_PATH` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:401:7
[INFO] [stdout]     |
[INFO] [stdout] 401 | const LAUNCH_BOOTSTRAP_ARCHIVE_PATH: &str = "mnt/onboard/.adds/cobalt-launch.sh";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `NICKELMENU_CONFIGS` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:402:7
[INFO] [stdout]     |
[INFO] [stdout] 402 | const NICKELMENU_CONFIGS: [&str; 2] = ["nm/cobalt", "nm/menu"];
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OLD_LAUNCH_PATH` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:403:7
[INFO] [stdout]     |
[INFO] [stdout] 403 | const OLD_LAUNCH_PATH: &str = "/mnt/onboard/.adds/cobalt/start.sh";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STABLE_LAUNCH_PATH` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:404:7
[INFO] [stdout]     |
[INFO] [stdout] 404 | const STABLE_LAUNCH_PATH: &str = "/mnt/onboard/.adds/cobalt-launch.sh";
[INFO] [stdout]     |       ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `swap_with_fault` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:409:4
[INFO] [stdout]     |
[INFO] [stdout] 409 | fn swap_with_fault(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_forward` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:431:4
[INFO] [stdout]     |
[INFO] [stdout] 431 | fn recover_forward(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_rollback` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:469:4
[INFO] [stdout]     |
[INFO] [stdout] 469 | fn recover_rollback(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_at_startup` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:507:8
[INFO] [stdout]     |
[INFO] [stdout] 507 | pub fn recover_at_startup(adds: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_interrupted_update` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:513:4
[INFO] [stdout]     |
[INFO] [stdout] 513 | fn recover_interrupted_update(adds: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `has_owner_folders` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:566:4
[INFO] [stdout]     |
[INFO] [stdout] 566 | fn has_owner_folders(path: &Path) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OWNER_FOLDERS` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:576:7
[INFO] [stdout]     |
[INFO] [stdout] 576 | const OWNER_FOLDERS: [&str; 6] = ["secrets", "trust", "state", "data", "apps", "store"];
[INFO] [stdout]     |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `move_owner_folders` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:578:4
[INFO] [stdout]     |
[INFO] [stdout] 578 | fn move_owner_folders(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `restore_owner_folders` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:599:4
[INFO] [stdout]     |
[INFO] [stdout] 599 | fn restore_owner_folders(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `private_holder` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:626:4
[INFO] [stdout]     |
[INFO] [stdout] 626 | fn private_holder(holder: &Path) -> Result<(), TransactionFailure> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_empty_holder` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:638:4
[INFO] [stdout]     |
[INFO] [stdout] 638 | fn remove_empty_holder(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `rename_durable` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:658:4
[INFO] [stdout]     |
[INFO] [stdout] 658 | fn rename_durable(from: &Path, to: &Path) -> Result<(), TransactionFailure> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `remove_durable` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:669:4
[INFO] [stdout]     |
[INFO] [stdout] 669 | fn remove_durable(path: &Path) -> Result<(), TransactionFailure> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ensure_launch_bootstrap` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:682:4
[INFO] [stdout]     |
[INFO] [stdout] 682 | fn ensure_launch_bootstrap(adds: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `migrate_nickelmenu_file` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:704:4
[INFO] [stdout]     |
[INFO] [stdout] 704 | fn migrate_nickelmenu_file(adds: &Path, relative: &str) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `migrate_nickelmenu_lines` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:728:4
[INFO] [stdout]     |
[INFO] [stdout] 728 | fn migrate_nickelmenu_lines(original: &str) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `atomic_file` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:750:4
[INFO] [stdout]     |
[INFO] [stdout] 750 | fn atomic_file(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_file_mode` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:784:4
[INFO] [stdout]     |
[INFO] [stdout] 784 | fn set_file_mode(path: &Path, mode: u32) -> std::io::Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `write_direction` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:794:4
[INFO] [stdout]     |
[INFO] [stdout] 794 | fn write_direction(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_direction` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:823:4
[INFO] [stdout]     |
[INFO] [stdout] 823 | fn read_direction(adds: &Path) -> Result<Option<Direction>, DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `clear_journal` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:837:4
[INFO] [stdout]     |
[INFO] [stdout] 837 | fn clear_journal(
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sync_directory` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:849:4
[INFO] [stdout]     |
[INFO] [stdout] 849 | fn sync_directory(path: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `sync_tree` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:855:4
[INFO] [stdout]     |
[INFO] [stdout] 855 | fn sync_tree(path: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `device_error` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:871:4
[INFO] [stdout]     |
[INFO] [stdout] 871 | fn device_error(_: TransactionFailure) -> DeviceError {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `installed_path` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:877:4
[INFO] [stdout]     |
[INFO] [stdout] 877 | fn installed_path(path: &str) -> Option<&Path> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `names_folder_above_prefix` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:899:4
[INFO] [stdout]     |
[INFO] [stdout] 899 | fn names_folder_above_prefix(path: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `set_mode` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:912:4
[INFO] [stdout]     |
[INFO] [stdout] 912 | fn set_mode(path: &Path, field: &[u8]) {
[INFO] [stdout]     |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `verify_checksum` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:923:4
[INFO] [stdout]     |
[INFO] [stdout] 923 | fn verify_checksum(block: &[u8]) -> Result<(), DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_string` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:943:4
[INFO] [stdout]     |
[INFO] [stdout] 943 | fn read_string(field: &[u8]) -> String {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_octal` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:951:4
[INFO] [stdout]     |
[INFO] [stdout] 951 | fn read_octal(field: &[u8]) -> Result<u64, DeviceError> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking kobo-needles v0.1.0 (/opt/rustwide/workdir/apps/needles)
[INFO] [stderr]     Checking kobo-brief v0.3.27 (/opt/rustwide/workdir/examples/brief)
[INFO] [stderr]     Checking kobo-zotero-reader v0.3.27 (/opt/rustwide/workdir/apps/zotero-reader)
[INFO] [stderr]     Checking kobo-hn v0.3.27 (/opt/rustwide/workdir/examples/hn)
[INFO] [stderr]     Checking kobo-books v0.3.27 (/opt/rustwide/workdir/examples/books)
[INFO] [stdout] warning: function `begin` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:43:8
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub fn begin(root: &Path) -> Result<DeviceResult, DeviceError> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `poll` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn poll(root: &Path) -> Result<DeviceResult, DeviceError> {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `device_name` is never used
[INFO] [stdout]   --> crates/kobod/src/app_link.rs:83:4
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn device_name() -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `STABLE_RELEASES` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const STABLE_RELEASES: &str = "https://api.github.com/repos/BandarLabs/Cobalt/releases/latest";
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `BETA_RELEASES` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:37:7
[INFO] [stdout]    |
[INFO] [stdout] 37 | const BETA_RELEASES: &str = "https://api.github.com/repos/BandarLabs/Cobalt/releases?per_page=20";
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `RELEASE_LIMIT` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:51:7
[INFO] [stdout]    |
[INFO] [stdout] 51 | const RELEASE_LIMIT: u32 = 8 * 1024 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MANIFEST_LIMIT` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:53:7
[INFO] [stdout]    |
[INFO] [stdout] 53 | const MANIFEST_LIMIT: u32 = 64 * 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `SIGNATURE_LIMIT` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:54:7
[INFO] [stdout]    |
[INFO] [stdout] 54 | const SIGNATURE_LIMIT: u32 = 1024;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_empty` is never used
[INFO] [stdout]   --> crates/kobod/src/autoupdate.rs:96:12
[INFO] [stdout]    |
[INFO] [stdout] 93 | impl Plan {
[INFO] [stdout]    | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `plan` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn plan(root: &Path, chosen: Preferences, installed: &str) -> Plan {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `stale_apps` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:208:4
[INFO] [stdout]     |
[INFO] [stdout] 208 | fn stale_apps(root: &Path, channel: UpdateChannel) -> Vec<String> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `platform_update` is never used
[INFO] [stdout]    --> crates/kobod/src/autoupdate.rs:223:4
[INFO] [stdout]     |
[INFO] [stdout] 223 | fn platform_update(installed: &str, channel: UpdateChannel) -> Option<PlatformUpdate> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Accepted` is never constructed
[INFO] [stdout]   --> crates/kobod/src/consent.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum Decision {
[INFO] [stdout]    |          -------- variant in this enum
[INFO] [stdout] 30 |     /// Run, and do not ask again for this device on this firmware branch.
[INFO] [stdout] 31 |     Accepted,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Decision` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `recover_at_startup` is never used
[INFO] [stdout]    --> crates/kobod/src/update.rs:507:8
[INFO] [stdout]     |
[INFO] [stdout] 507 | pub fn recover_at_startup(adds: &Path) -> Result<(), DeviceError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking kobo-deck v0.2.6 (/opt/rustwide/workdir/apps/deck)
[INFO] [stderr]     Checking kobo-launcher v0.3.27 (/opt/rustwide/workdir/examples/launcher)
[INFO] [stderr]     Checking kobo-birds v0.1.0 (/opt/rustwide/workdir/apps/birds)
[INFO] [stderr]     Checking kobo-settings v0.3.27 (/opt/rustwide/workdir/examples/settings)
[INFO] [stderr]     Checking kobo-readlater v0.1.0 (/opt/rustwide/workdir/apps/readlater)
[INFO] [stderr]     Checking kobo-backgammon v0.1.1 (/opt/rustwide/workdir/apps/backgammon)
[INFO] [stderr]     Checking kobo-tictactoe v0.3.27 (/opt/rustwide/workdir/examples/tictactoe)
[INFO] [stderr]     Checking kobo-parser v0.1.0 (/opt/rustwide/workdir/apps/parser)
[INFO] [stderr]     Checking kobo-syncthing v0.3.2 (/opt/rustwide/workdir/apps/syncthing)
[INFO] [stderr]     Checking kobo-inkling v0.2.0 (/opt/rustwide/workdir/apps/inkling)
[INFO] [stderr]     Checking kobo-habits v0.1.8 (/opt/rustwide/workdir/apps/habits)
[INFO] [stderr]     Checking kobo-lichess v1.0.2 (/opt/rustwide/workdir/apps/lichess)
[INFO] [stderr]     Checking kobo-frame v1.0.1 (/opt/rustwide/workdir/apps/frame)
[INFO] [stderr]     Checking kobo-magnet v0.3.27 (/opt/rustwide/workdir/examples/magnet)
[INFO] [stderr]     Checking kobo-terminal v0.3.27 (/opt/rustwide/workdir/examples/terminal)
[INFO] [stderr]     Checking kobo-parlor v0.1.0 (/opt/rustwide/workdir/apps/parlor)
[INFO] [stderr]     Checking kobo-todo v0.3.27 (/opt/rustwide/workdir/examples/todo)
[INFO] [stderr]     Checking kobo-chat v0.3.27 (/opt/rustwide/workdir/examples/chat)
[INFO] [stderr]     Checking kobo-kitchencard v0.1.6 (/opt/rustwide/workdir/apps/kitchencard)
[INFO] [stderr]     Checking kobo-store v0.3.27 (/opt/rustwide/workdir/examples/store)
[INFO] [stderr] warning: unused dependency `log`
[INFO] [stderr]   --> third_party/fsrs/Cargo.toml:27:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | log = "0.4"
[INFO] [stderr]    | ^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `log`
[INFO] [stderr] warning: unused dependency `strum`
[INFO] [stderr]   --> third_party/fsrs/Cargo.toml:34:1
[INFO] [stderr]    |
[INFO] [stderr] 34 | strum = { version = "0.28.0", features = ["derive"] }
[INFO] [stderr]    | ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `strum`
[INFO] [stderr] warning: `fsrs` (manifest) generated 2 warnings
[INFO] [stderr] warning: unused dependency `fsrs`
[INFO] [stderr]   --> apps/flashcards/Cargo.toml:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | fsrs = { path = "../../third_party/fsrs" }
[INFO] [stderr]    | ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `fsrs`
[INFO] [stderr] warning: `kobo-flashcards` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `kobo-doc`
[INFO] [stderr]   --> crates/kobo-hal/Cargo.toml:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | kobo-doc = { path = "../kobo-doc" }
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `kobo-doc`
[INFO] [stderr] warning: unused dependency `minimp3`
[INFO] [stderr]   --> crates/kobo-hal/Cargo.toml:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | minimp3 = "0.5.2"
[INFO] [stderr]    | ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `minimp3`
[INFO] [stderr] warning: `kobo-hal` (manifest) generated 2 warnings
[INFO] [stderr] warning: unused dependency `kobo-shell`
[INFO] [stderr]   --> crates/kobod/Cargo.toml:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | kobo-shell = { path = "../kobo-shell" }
[INFO] [stderr]    | ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `kobo-shell`
[INFO] [stderr] warning: unused dependency `kobo-wifi-trace`
[INFO] [stderr]   --> crates/kobod/Cargo.toml:25:1
[INFO] [stderr]    |
[INFO] [stderr] 25 | kobo-wifi-trace = { path = "../kobo-wifi-trace" }
[INFO] [stderr]    | ^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the dependency on `kobo-wifi-trace`
[INFO] [stderr] warning: `kobod` (manifest) generated 2 warnings
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 35.91s
[INFO] running `Command { std: "docker" "inspect" "7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc", kill_on_drop: false }`
[INFO] [stdout] 7ffd299c43a06c64942ccf01d11588ab22f63cf3c998930561a0a0400d20facc
