File-Monitor Build Errors
Date: 2025-10-06 Status: ❌ Compilation Errors
Dependencies Status
✅ All system dependencies installed successfully:
- build-essential
- pkg-config
- libssl-dev (OpenSSL 3.5.1)
- ca-certificates
- libclang-dev
- cmake
- git, curl, wget, gdb
Compilation Errors
Error 1: Serde Attribute (src/events.rs:79)
error: unknown serde variant attribute `skip_serializing_if`
--> src/events.rs:79:13
|
79 | #[serde(skip_serializing_if = "is_false")]
| ^^^^^^^^^^^^^^^^^^^
Issue: Serde version mismatch or incorrect attribute usage
Fix needed: Check if using correct serde feature or update to skip_serializing_if = "Option::is_none" pattern
Error 2: Metrics Macro Syntax (src/observability.rs:26,31,36,41)
error: expected labels, but comma not found
--> src/observability.rs:26:55
|
26 | counter!("fs_monitor.events.received", "type" => event_type.to_string()).increment(1);
| ^
Issue: Incorrect metrics macro syntax for labels
Current: counter!("metric.name", "label" => value)
Should be: counter!("metric.name", "label" = value) or check metrics crate version
Error 3: Missing Deserialize Derive (src/events.rs:17)
error[E0277]: the trait bound `FileEventType: serde::Deserialize<'de>` is not satisfied
--> src/events.rs:17:21
|
17 | pub event_type: FileEventType,
| ^^^^^^^^^^^^^ the trait `Deserialize<'_>` is not implemented for `FileEventType`
Issue: FileEventType enum missing Deserialize derive
Fix needed: Add #[derive(Deserialize)] to FileEventType enum definition
Error 4: Moved Value (src/monitor.rs:73)
error[E0382]: use of moved value: `output_rx`
--> src/monitor.rs:73:13
|
34 | let (output_tx, output_rx) = mpsc::channel(config.channel_buffer_size);
| --------- move occurs because `output_rx` has type `tokio::sync::mpsc::Receiver<AuditEvent>`, which does not implement the `Copy` trait
...
68 | event_rx: output_rx,
| --------- value moved here
...
73 | output_rx,
| ^^^^^^^^^ value used here after move
Issue: output_rx used in two places
Fix needed: Clone the receiver or restructure to avoid dual ownership
Dependency Version Mismatch
The code may have been written for different versions of:
serde(currently 1.0)metrics(currently 0.21, but 0.22 is installed)
Recommended Actions
Option 1: Fix Code Errors
Update the source code to match current crate versions:
- Fix serde attributes in
src/events.rs - Fix metrics macro syntax in
src/observability.rs - Add Deserialize derive to
FileEventType - Fix moved value issue in
src/monitor.rs
Option 2: Update Dependencies
Lock to specific versions that match the code:
[dependencies]
serde = "=1.0.228"
metrics = "=0.21.1" # Match the exact version the code was written for
Option 3: Contact Original Author
The code appears to have version mismatches. May need updated code from the original author.
Summary
- ✅ System dependencies: All installed
- ✅ Rust toolchain: Working (cargo 1.90.0)
- ❌ Source code: Has compilation errors
- ❌ Build: Failed with 25 errors
The file-monitor cannot be built until source code errors are resolved.