Skip to content

Build fails on Arch using rustc 1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1.1) #60

Description

@nordlow

Output:

warning: unused import: `std::process::Command`
 --> src/boxes/apt.rs:7:5
  |
7 | use std::process::Command;
  |     ^^^^^^^^^^^^^^^^^^^^^
  |
  = note: requested on the command line with `-W unused-imports`

warning: unused import: `warn`
 --> src/boxes/emerge.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/flatpak.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/pacman.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/snap.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/zypper.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/nix.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/chocolatey.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/scoop.rs:4:21
  |
4 | use tracing::{info, warn};
  |                     ^^^^

warning: unused import: `warn`
 --> src/boxes/winget.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/brew.rs:7:28
  |
7 | use tracing::{error, info, warn};
  |                            ^^^^

warning: unused import: `warn`
 --> src/boxes/mas.rs:4:21
  |
4 | use tracing::{info, warn};
  |                     ^^^^

warning: unused import: `crate::branding::OmniBranding`
 --> src/gui.rs:2:5
  |
2 | use crate::branding::OmniBranding;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `std::collections::HashMap`
 --> src/hardware.rs:3:5
  |
3 | use std::collections::HashMap;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `warn`
 --> src/hardware.rs:6:21
  |
6 | use tracing::{info, warn};
  |                     ^^^^

warning: unused import: `tracing::info`
 --> src/interactive.rs:7:5
  |
7 | use tracing::info;
  |     ^^^^^^^^^^^^^

warning: unused import: `std::path::PathBuf`
 --> src/logging.rs:4:5
  |
4 | use std::path::PathBuf;
  |     ^^^^^^^^^^^^^^^^^^

warning: unused imports: `Level` and `Subscriber`
 --> src/logging.rs:5:15
  |
5 | use tracing::{Level, Subscriber};
  |               ^^^^^  ^^^^^^^^^^

warning: unused import: `error`
 --> src/package_discovery.rs:8:15
  |
8 | use tracing::{error, info, warn};
  |               ^^^^^

warning: unused imports: `VersionReq` and `Version`
 --> src/resolver.rs:5:14
  |
5 | use semver::{Version, VersionReq};
  |              ^^^^^^^  ^^^^^^^^^^

warning: unused imports: `error` and `warn`
 --> src/resolver.rs:9:15
  |
9 | use tracing::{error, info, warn};
  |               ^^^^^        ^^^^

warning: unused import: `error`
  --> src/snapshot.rs:12:15
   |
12 | use tracing::{error, info, warn};
   |               ^^^^^

warning: unused import: `crate::boxes::apt::AptManager`
 --> src/updater.rs:1:5
  |
1 | use crate::boxes::apt::AptManager;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::boxes::dnf::DnfBox`
 --> src/updater.rs:2:5
  |
2 | use crate::boxes::dnf::DnfBox;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::boxes::flatpak::FlatpakBox`
 --> src/updater.rs:3:5
  |
3 | use crate::boxes::flatpak::FlatpakBox;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::boxes::pacman::PacmanBox`
 --> src/updater.rs:4:5
  |
4 | use crate::boxes::pacman::PacmanBox;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::error_handling::OmniError`
 --> src/advanced_resolver.rs:2:5
  |
2 | use crate::error_handling::OmniError;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `warn`
 --> src/advanced_resolver.rs:6:21
  |
6 | use tracing::{info, warn};
  |                     ^^^^

warning: unused import: `info`
 --> src/privilege_manager.rs:3:15
  |
3 | use tracing::{info, warn};
  |               ^^^^

warning: usage of an `unsafe` block
   --> src/privilege_manager.rs:120:9
    |
120 | /         unsafe {
121 | |             libc::getuid() == 0
122 | |         }
    | |_________^
    |
    = note: requested on the command line with `-W unsafe-code`

warning: unused import: `std::os::unix::process::CommandExt`
 --> src/secure_executor.rs:3:5
  |
3 | use std::os::unix::process::CommandExt;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `std::process::Stdio`
 --> src/secure_executor.rs:4:5
  |
4 | use std::process::Stdio;
  |     ^^^^^^^^^^^^^^^^^^^

warning: unused import: `tokio::process::Command`
 --> src/secure_executor.rs:6:5
  |
6 | use tokio::process::Command;
  |     ^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `error`
 --> src/secure_executor.rs:7:15
  |
7 | use tracing::{error, info, warn};
  |               ^^^^^

warning: unused import: `crate::error_handling::OmniError`
 --> src/transaction.rs:2:5
  |
2 | use crate::error_handling::OmniError;
  |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `error`
  --> src/unified_manager.rs:10:15
   |
10 | use tracing::{error, info, warn};
   |               ^^^^^

warning: unused imports: `AsyncReadExt` and `AsyncWriteExt`
  --> src/ssh.rs:12:17
   |
12 | use tokio::io::{AsyncReadExt, AsyncWriteExt};
   |                 ^^^^^^^^^^^^  ^^^^^^^^^^^^^

warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
   --> src/error_handling.rs:607:39
    |
607 |             let jitter_factor = rand::thread_rng().gen_range(0.8..1.2);
    |                                       ^^^^^^^^^^
    |
    = note: `#[warn(deprecated)]` on by default

error[E0195]: lifetime parameters or bounds on method `check_server_key` do not match the trait declaration
    --> src/ssh.rs:95:14
     |
  95 |       async fn check_server_key(
     |  ______________^
  96 | |         &mut self,
  97 | |         _server_public_key: &key::PublicKey,
  98 | |     ) -> Result<bool, Self::Error> {
     | |_____^ lifetimes do not match method in trait
     |
    ::: /home/nordlow/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/russh-0.53.0/src/client/mod.rs:1706:5
     |
1706 | /     fn check_server_key(
1707 | |         &mut self,
1708 | |         server_public_key: &ssh_key::PublicKey,
1709 | |     ) -> impl Future<Output = Result<bool, Self::Error>> + Send {
     | |_______________________________________________________________- lifetimes in impl do not match this method in trait

error[E0195]: lifetime parameters or bounds on method `server_channel_open_forwarded_tcpip` do not match the trait declaration
    --> src/ssh.rs:103:14
     |
 103 |       async fn server_channel_open_forwarded_tcpip(
     |  ______________^
 104 | |         &mut self,
 105 | |         _channel: Channel<client::Msg>,
 106 | |         _connected_address: &str,
...    |
 110 | |         _session: &mut client::Session,
 111 | |     ) -> Result<(), Self::Error> {
     | |_____^ lifetimes do not match method in trait
     |
    ::: /home/nordlow/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/russh-0.53.0/src/client/mod.rs:1782:5
     |
1782 | /     fn server_channel_open_forwarded_tcpip(
1783 | |         &mut self,
1784 | |         channel: Channel<Msg>,
1785 | |         connected_address: &str,
...    |
1789 | |         session: &mut Session,
1790 | |     ) -> impl Future<Output = Result<(), Self::Error>> + Send {
     | |_____________________________________________________________- lifetimes in impl do not match this method in trait

error[E0600]: cannot apply unary operator `!` to type `AuthResult`
   --> src/ssh.rs:467:20
    |
467 |                 if !auth_result {
    |                    ^^^^^^^^^^^^ cannot apply unary operator `!`
    |
note: `AuthResult` does not implement `std::ops::Not`
   --> /home/nordlow/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/russh-0.53.0/src/auth.rs:139:1
    |
139 | pub enum AuthResult {
    | ^^^^^^^^^^^^^^^^^^^ `AuthResult` is defined in another crate

error[E0308]: mismatched types
   --> src/ssh.rs:488:68
    |
488 |                     .authenticate_publickey(&self.config.username, Arc::new(key))
    |                      ----------------------                        ^^^^^^^^^^^^^ expected `PrivateKeyWithHashAlg`, found `Arc<KeyPair>`
    |                      |
    |                      arguments to this method are incorrect
    |
    = note: expected struct `PrivateKeyWithHashAlg`
               found struct `Arc<KeyPair>`
note: method defined here
   --> /home/nordlow/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/russh-0.53.0/src/client/mod.rs:409:18
    |
409 |     pub async fn authenticate_publickey<U: Into<String>>(
    |                  ^^^^^^^^^^^^^^^^^^^^^^

error[E0600]: cannot apply unary operator `!` to type `AuthResult`
   --> src/ssh.rs:491:20
    |
491 |                 if !auth_result {
    |                    ^^^^^^^^^^^^ cannot apply unary operator `!`
    |
note: `AuthResult` does not implement `std::ops::Not`
   --> /home/nordlow/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/russh-0.53.0/src/auth.rs:139:1
    |
139 | pub enum AuthResult {
    | ^^^^^^^^^^^^^^^^^^^ `AuthResult` is defined in another crate

error[E0308]: mismatched types
   --> src/gui.rs:949:13
    |
948 |         match self.brain.list_installed() {
    |               --------------------------- this expression has type `std::vec::Vec<std::string::String>`
949 |             Ok(installed_packages) => {
    |             ^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<String>`, found `Result<_, _>`
    |
    = note: expected struct `std::vec::Vec<std::string::String>`
                 found enum `Result<_, _>`

error[E0308]: mismatched types
   --> src/gui.rs:960:13
    |
948 |         match self.brain.list_installed() {
    |               --------------------------- this expression has type `std::vec::Vec<std::string::String>`
...
960 |             Err(e) => {
    |             ^^^^^^ expected `Vec<String>`, found `Result<_, _>`
    |
    = note: expected struct `std::vec::Vec<std::string::String>`
                 found enum `Result<_, _>`

error[E0282]: type annotations needed
   --> src/gui.rs:950:79
    |
950 |                 let total_installed: usize = installed_packages.values().map(|v| v.len()).sum();
    |                                                                               ^  - type must be known at this point
    |
help: consider giving this closure parameter an explicit type
    |
950 |                 let total_installed: usize = installed_packages.values().map(|v: /* Type */| v.len()).sum();
    |                                                                                ++++++++++++

warning: use of deprecated method `rand::Rng::gen_range`: Renamed to `random_range`
   --> src/error_handling.rs:607:52
    |
607 |             let jitter_factor = rand::thread_rng().gen_range(0.8..1.2);
    |                                                    ^^^^^^^^^

warning: unused variable: `package`
  --> src/boxes/mas.rs:58:22
   |
58 |     fn remove(&self, package: &str) -> Result<()> {
   |                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package`
   |
   = note: requested on the command line with `-W unused-variables`

warning: unused variable: `manifest`
   --> src/gui.rs:594:27
    |
594 |                 if let Ok(manifest) = OmniManifest::from_file(&self.manifest_path) {
    |                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_manifest`

warning: unused variable: `model`
   --> src/hardware.rs:303:52
    |
303 |     fn suggest_network_driver(&self, vendor: &str, model: &str) -> Option<String> {
    |                                                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_model`

warning: unused variable: `id`
   --> src/interactive.rs:484:20
    |
484 |             .map(|(id, name, date)| format!("{} ({})", name, date))
    |                    ^^ help: if this is intentional, prefix it with an underscore: `_id`

warning: unused variable: `log_file`
  --> src/logging.rs:18:9
   |
18 |     let log_file = log_dir.join("omni.log");
   |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_log_file`

warning: unused variable: `package_name`
   --> src/resolver.rs:333:43
    |
333 |     async fn get_snap_dependencies(&self, package_name: &str) -> Result<Vec<Dependency>> {
    |                                           ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_package_name`

warning: unused variable: `tcp_stream`
   --> src/ssh.rs:161:13
    |
161 |         let tcp_stream =
    |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tcp_stream`

Some errors have detailed explanations: E0195, E0282, E0308, E0600.
For more information about an error, try `rustc --explain E0195`.
warning: `omni` (lib) generated 46 warnings
error: could not compile `omni` (lib) due to 8 previous errors; 46 warnings emitted

~ 3m 40s

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions