these 2 derivations will be built: /nix/store/b93piz3j5h4fyn63h958f1wy1kz7awhy-harmonia-deps-3.2.0.drv /nix/store/zcbi10v6yvdrqqaabrp62pjfkf4n3i1h-harmonia-clippy-3.2.0.drv building '/nix/store/zcbi10v6yvdrqqaabrp62pjfkf4n3i1h-harmonia-clippy-3.2.0.drv' on 'ssh-ng://customer@mac02' building '/nix/store/zcbi10v6yvdrqqaabrp62pjfkf4n3i1h-harmonia-clippy-3.2.0.drv' harmonia-clippy-3.2.0> Running phase: unpackPhase harmonia-clippy-3.2.0> unpacking source archive /nix/store/8007dymm2l790hc03wqgzzdjklix8xb2-source harmonia-clippy-3.2.0> source root is source harmonia-clippy-3.2.0> Running phase: patchPhase harmonia-clippy-3.2.0> Executing configureCargoCommonVars harmonia-clippy-3.2.0> decompressing cargo artifacts from /nix/store/ghgkd4jy080sqpdz7mh779b989gwjpsy-harmonia-deps-3.2.0/target.tar.zst to target harmonia-clippy-3.2.0> Running phase: updateAutotoolsGnuConfigScriptsPhase harmonia-clippy-3.2.0> Running phase: configurePhase harmonia-clippy-3.2.0> will append /nix/var/nix/builds/nix-58064-4085619671/source/.cargo-home/config.toml with contents of /nix/store/2a1wbxqfgkj4ng9s3ghkw73j4sah48vq-vendor-cargo-deps/config.toml harmonia-clippy-3.2.0> default configurePhase, nothing to do harmonia-clippy-3.2.0> Running phase: buildPhase harmonia-clippy-3.2.0> +++ command cargo --version harmonia-clippy-3.2.0> cargo 1.97.0 (c980f4866 2026-06-30) harmonia-clippy-3.2.0> +++ command cargo clippy --release --locked --all-targets --all-features -- -D warnings harmonia-clippy-3.2.0> Checking harmonia-utils-base-encoding v0.0.0-alpha.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-utils-base-encoding) harmonia-clippy-3.2.0> Checking harmonia-utils-test v0.0.0-alpha.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-utils-test) harmonia-clippy-3.2.0> Checking harmonia-file-core v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-file-core) harmonia-clippy-3.2.0> Checking harmonia-utils-io v0.0.0-alpha.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-utils-io) harmonia-clippy-3.2.0> Compiling harmonia-protocol-derive v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-protocol-derive) harmonia-clippy-3.2.0> Checking harmonia-client v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-client) harmonia-clippy-3.2.0> Checking harmonia-ssh-store v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-ssh-store) harmonia-clippy-3.2.0> Checking harmonia-utils-hash v0.0.0-alpha.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-utils-hash) harmonia-clippy-3.2.0> Checking harmonia-utils-signature v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-utils-signature) harmonia-clippy-3.2.0> Checking harmonia-file-nar v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-file-nar) harmonia-clippy-3.2.0> Checking harmonia-store-path v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-path) harmonia-clippy-3.2.0> Checking harmonia-store-content-address v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-content-address) harmonia-clippy-3.2.0> Checking harmonia-store-fs v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-fs) harmonia-clippy-3.2.0> Checking harmonia-store-ref-scan v0.0.0-alpha.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-ref-scan) harmonia-clippy-3.2.0> Checking harmonia-bench v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-bench) harmonia-clippy-3.2.0> Checking harmonia-store-derivation v0.0.0-alpha.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-derivation) harmonia-clippy-3.2.0> Checking harmonia-store-path-info v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-path-info) harmonia-clippy-3.2.0> Checking harmonia-store-nar-info v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-nar-info) harmonia-clippy-3.2.0> Checking harmonia-store-db v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-db) harmonia-clippy-3.2.0> Checking harmonia-store-aterm v0.0.0-alpha.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-aterm) harmonia-clippy-3.2.0> Checking harmonia-store-build-result v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-build-result) harmonia-clippy-3.2.0> Checking harmonia-store-gc v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-store-gc) harmonia-clippy-3.2.0> Checking harmonia-cache v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-cache) harmonia-clippy-3.2.0> Checking harmonia-protocol v3.2.0 (/nix/var/nix/builds/nix-58064-4085619671/source/harmonia-protocol) harmonia-clippy-3.2.0> error: this expression creates a reference which is immediately dereferenced by the compiler harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:186:36 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 186 | let _gc_lock = acquire_gc_lock(&store.layout.state_dir())?; harmonia-clippy-3.2.0> | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `store.layout.state_dir()` harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow harmonia-clippy-3.2.0> = note: `-D clippy::needless-borrow` implied by `-D warnings` harmonia-clippy-3.2.0> = help: to override `-D warnings` add `#[allow(clippy::needless_borrow)]` harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: this expression creates a reference which is immediately dereferenced by the compiler harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:201:37 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 201 | match GcSocketServer::start(&store.layout.state_dir(), live, graph) { harmonia-clippy-3.2.0> | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `store.layout.state_dir()` harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: this expression creates a reference which is immediately dereferenced by the compiler harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:225:25 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 225 | .load_graph(&store.layout.store_dir(), &opts.graph_options)?, harmonia-clippy-3.2.0> | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `store.layout.store_dir()` harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: this expression creates a reference which is immediately dereferenced by the compiler harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:260:9 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 260 | &store.layout.state_dir(), harmonia-clippy-3.2.0> | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `store.layout.state_dir()` harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: this expression creates a reference which is immediately dereferenced by the compiler harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:276:31 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 276 | for tr in find_temp_roots(&store.layout.state_dir())? { harmonia-clippy-3.2.0> | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `store.layout.state_dir()` harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: the borrowed expression implements the required traits harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:314:39 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 314 | if let Ok(entries) = fs::read_dir(&store.layout.real_store_dir()) { harmonia-clippy-3.2.0> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `store.layout.real_store_dir()` harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args harmonia-clippy-3.2.0> = note: `-D clippy::needless-borrows-for-generic-args` implied by `-D warnings` harmonia-clippy-3.2.0> = help: to override `-D warnings` add `#[allow(clippy::needless_borrows_for_generic_args)]` harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: this expression creates a reference which is immediately dereferenced by the compiler harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:570:49 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 570 | let bytes_freed = bytes_freed + clean_links(&store.layout.links_dir())?; harmonia-clippy-3.2.0> | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `store.layout.links_dir()` harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: this `if` statement can be collapsed harmonia-clippy-3.2.0> --> harmonia-store-gc/src/roots/runtime_roots.rs:109:5 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 109 | / if n > 0 { harmonia-clippy-3.2.0> 110 | | if let Ok(s) = std::str::from_utf8(&buf[..n as usize]) { harmonia-clippy-3.2.0> 111 | | add_unchecked(store_prefix, s, unchecked); harmonia-clippy-3.2.0> 112 | | } harmonia-clippy-3.2.0> 113 | | } harmonia-clippy-3.2.0> | |_____^ harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if harmonia-clippy-3.2.0> = note: `-D clippy::collapsible-if` implied by `-D warnings` harmonia-clippy-3.2.0> = help: to override `-D warnings` add `#[allow(clippy::collapsible_if)]` harmonia-clippy-3.2.0> help: collapse nested if block harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 109 ~ if n > 0 harmonia-clippy-3.2.0> 110 ~ && let Ok(s) = std::str::from_utf8(&buf[..n as usize]) { harmonia-clippy-3.2.0> 111 | add_unchecked(store_prefix, s, unchecked); harmonia-clippy-3.2.0> 112 ~ } harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: this `if` statement can be collapsed harmonia-clippy-3.2.0> --> harmonia-store-gc/src/roots/runtime_roots.rs:187:9 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 187 | / if r > 0 { harmonia-clippy-3.2.0> 188 | | if let Some(p) = extract_cstr_path(&buf) { harmonia-clippy-3.2.0> 189 | | add_unchecked(store_prefix, &p, unchecked); harmonia-clippy-3.2.0> 190 | | } harmonia-clippy-3.2.0> 191 | | } harmonia-clippy-3.2.0> | |_________^ harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if harmonia-clippy-3.2.0> help: collapse nested if block harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 187 ~ if r > 0 harmonia-clippy-3.2.0> 188 ~ && let Some(p) = extract_cstr_path(&buf) { harmonia-clippy-3.2.0> 189 | add_unchecked(store_prefix, &p, unchecked); harmonia-clippy-3.2.0> 190 ~ } harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: call to `.clone()` on a reference in this situation does nothing harmonia-clippy-3.2.0> --> harmonia-store-gc/src/gc.rs:385:55 harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 385 | let real_store_dir = store.layout.real_store_dir().clone(); harmonia-clippy-3.2.0> | ^^^^^^^^ harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> = note: the type `std::path::Path` does not implement `Clone`, so calling `clone` on `&std::path::Path` copies the reference, which does not do anything and can be removed harmonia-clippy-3.2.0> = note: `-D noop-method-call` implied by `-D warnings` harmonia-clippy-3.2.0> = help: to override `-D warnings` add `#[allow(noop_method_call)]` harmonia-clippy-3.2.0> help: remove this redundant call harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> 385 - let real_store_dir = store.layout.real_store_dir().clone(); harmonia-clippy-3.2.0> 385 + let real_store_dir = store.layout.real_store_dir(); harmonia-clippy-3.2.0> | harmonia-clippy-3.2.0> harmonia-clippy-3.2.0> error: could not compile `harmonia-store-gc` (lib) due to 10 previous errors harmonia-clippy-3.2.0> warning: build failed, waiting for other jobs to finish... harmonia-clippy-3.2.0> error: could not compile `harmonia-store-gc` (lib test) due to 10 previous errors error: build of '/nix/store/zcbi10v6yvdrqqaabrp62pjfkf4n3i1h-harmonia-clippy-3.2.0.drv' on 'ssh-ng://customer@mac02' failed: Cannot build '/nix/store/zcbi10v6yvdrqqaabrp62pjfkf4n3i1h-harmonia-clippy-3.2.0.drv'. Reason: builder failed with exit code 101. Output paths: /nix/store/fmxp7rh18hx0ys7mn8fzvi0n18k53i0k-harmonia-clippy-3.2.0 Last 25 log lines: > | > 187 ~ if r > 0 > 188 ~ && let Some(p) = extract_cstr_path(&buf) { > 189 | add_unchecked(store_prefix, &p, unchecked); > 190 ~ } > | > > error: call to `.clone()` on a reference in this situation does nothing > --> harmonia-store-gc/src/gc.rs:385:55 > | > 385 | let real_store_dir = store.layout.real_store_dir().clone(); > | ^^^^^^^^ > | > = note: the type `std::path::Path` does not implement `Clone`, so calling `clone` on `&std::path::Path` copies the reference, which does not do anything and can be removed > = note: `-D noop-method-call` implied by `-D warnings` > = help: to override `-D warnings` add `#[allow(noop_method_call)]` > help: remove this redundant call > | > 385 - let real_store_dir = store.layout.real_store_dir().clone(); > 385 + let real_store_dir = store.layout.real_store_dir(); > | > > error: could not compile `harmonia-store-gc` (lib) due to 10 previous errors > warning: build failed, waiting for other jobs to finish... > error: could not compile `harmonia-store-gc` (lib test) due to 10 previous errors For full logs, run: nix log /nix/store/zcbi10v6yvdrqqaabrp62pjfkf4n3i1h-harmonia-clippy-3.2.0.drv error: Cannot build '/nix/store/zcbi10v6yvdrqqaabrp62pjfkf4n3i1h-harmonia-clippy-3.2.0.drv'. Reason: builder failed with exit code 1. Output paths: /nix/store/fmxp7rh18hx0ys7mn8fzvi0n18k53i0k-harmonia-clippy-3.2.0