dani-garcia / vaultwarden

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs
GNU Affero General Public License v3.0
39.36k stars 1.91k forks source link

signal::unix::SignalKind breaks windows build #5052

Closed bober757 closed 1 month ago

bober757 commented 1 month ago

Vaultwarden Support String

Your environment (Generated via diagnostics page)

Config (Generated via diagnostics page)

Show Running Config **Environment settings which are overridden:** ```json { "_duo_akey": null, "_enable_duo": false, "_enable_email_2fa": true, "_enable_smtp": true, "_enable_yubico": false, "_icon_service_csp": "", "_icon_service_url": "", "_ip_header_enabled": true, "_max_note_size": 10000, "_smtp_img_src": "cid:", "admin_ratelimit_max_burst": 3, "admin_ratelimit_seconds": 300, "admin_session_lifetime": 20, "admin_token": "***", "allowed_iframe_ancestors": "", "attachments_folder": "C:/storage/vaultwarden/attachments", "auth_request_purge_schedule": "30 * * * * *", "authenticator_disable_time_drift": false, "data_folder": "C:/storage/vaultwarden", "database_conn_init": "", "database_max_conns": 10, "database_timeout": 30, "database_url": "*****://**************************************************", "db_connection_retries": 15, "disable_2fa_remember": false, "disable_admin_token": false, "disable_icon_download": false, "domain": "*****://***********************", "domain_origin": "*****://***********************", "domain_path": "", "domain_set": true, "duo_context_purge_schedule": "30 * * * * *", "duo_host": null, "duo_ikey": null, "duo_skey": null, "duo_use_iframe": false, "email_2fa_auto_fallback": false, "email_2fa_enforce_on_verified_invite": false, "email_attempts_limit": 3, "email_change_allowed": true, "email_expiration_time": 600, "email_token_size": 6, "emergency_access_allowed": true, "emergency_notification_reminder_schedule": "0 3 * * * *", "emergency_request_timeout_schedule": "0 7 * * * *", "enable_db_wal": true, "enable_websocket": true, "enforce_single_org_with_reset_pw_policy": false, "event_cleanup_schedule": "0 10 0 * * *", "events_days_retain": null, "experimental_client_feature_flags": "fido2-vault-credentials", "extended_logging": true, "helo_name": null, "hibp_api_key": null, "http_request_block_non_global_ips": true, "http_request_block_regex": "^(192\\.168\\.1\\.[0-9]+)$", "icon_blacklist_non_global_ips": true, "icon_blacklist_regex": "^(192\\.168\\.1\\.[0-9]+)$", "icon_cache_folder": "C:/storage/vaultwarden/icon_cache", "icon_cache_negttl": 3600, "icon_cache_ttl": 0, "icon_download_timeout": 20, "icon_redirect_code": 308, "icon_service": "internal", "incomplete_2fa_schedule": "30 * * * * *", "incomplete_2fa_time_limit": 3, "increase_note_size_limit": false, "invitation_expiration_hours": 120, "invitation_org_name": "Vaultwarden", "invitations_allowed": true, "ip_header": "X-Real-IP", "job_poll_interval_ms": 30000, "log_file": "c:/temp/vaultwarden.log", "log_level": "error", "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f", "login_ratelimit_max_burst": 10, "login_ratelimit_seconds": 60, "org_attachment_limit": null, "org_creation_users": "", "org_events_enabled": false, "org_groups_enabled": false, "password_hints_allowed": false, "password_iterations": 600000, "push_enabled": true, "push_identity_uri": "https://identity.bitwarden.eu", "push_installation_id": "***", "push_installation_key": "***", "push_relay_uri": "https://api.bitwarden.eu", "reload_templates": false, "require_device_email": false, "rsa_key_filename": "C:/storage/vaultwarden/rsa_key", "send_purge_schedule": "0 5 * * * *", "sendmail_command": null, "sends_allowed": true, "sends_folder": "C:/storage/vaultwarden/sends", "show_password_hint": false, "signups_allowed": false, "signups_domains_whitelist": "", "signups_verify": true, "signups_verify_resend_limit": 3, "signups_verify_resend_time": 3600, "smtp_accept_invalid_certs": false, "smtp_accept_invalid_hostnames": true, "smtp_auth_mechanism": "Plain", "smtp_debug": false, "smtp_embed_images": true, "smtp_explicit_tls": null, "smtp_from": "******************", "smtp_from_name": "Vaultwarden", "smtp_host": "*********", "smtp_password": "***", "smtp_port": 465, "smtp_security": "force_tls", "smtp_ssl": null, "smtp_timeout": 15, "smtp_username": "******************", "templates_folder": "C:/storage/vaultwarden/templates", "tmp_folder": "C:/temp/vaultwarden", "trash_auto_delete_days": 2, "trash_purge_schedule": "0 5 0 * * *", "use_sendmail": false, "use_syslog": false, "user_attachment_limit": null, "user_send_limit": null, "web_vault_enabled": true, "web_vault_folder": "web-vault/", "yubico_client_id": null, "yubico_secret_key": null, "yubico_server": null } ```

Vaultwarden Build Version

1.32.1

Deployment method

Build from source

Custom deployment method

No response

Reverse Proxy

apache 2.4.62

Host/Server Operating System

Windows

Operating System Version

11

Clients

Web Vault, Browser Extension, Android

Client Version

No response

Steps To Reproduce

in MinGW64 console

  1. git clone https://github.com/dani-garcia/vaultwarden.git
  2. cd vaultwarden/
  3. set MYSQLCLIENT_LIB_DIR=$ABS_DIRECTORY/../mysql/lib
  4. cargo build --features mysql --release
   Compiling diesel_migrations v2.2.0
error[E0432]: unresolved import `tokio::signal::unix`
  --> src/main.rs:41:13
   |
41 |     signal::unix::SignalKind,
   |             ^^^^ could not find `unix` in `signal`
   |
note: found an item that was configured out
  --> C:\Users\***\.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.40.0\src\signal\mod.rs:63:9
   |
63 | pub mod unix;
   |         ^^^^
note: the item is gated here
  --> C:\Users\***\.cargo\registry\src\index.crates.io-6f17d22bba15001f\tokio-1.40.0\src\signal\unix.rs:6:1
   |
6  | #![cfg(unix)]
   | ^^^^^^^^^^^^^

For more information about this error, try `rustc --explain E0432`.
error: could not compile `vaultwarden` (bin "vaultwarden") due to 1 previous error

Expected Result

successfull build

Actual Result

build ends with error

Logs

No response

Screenshots or Videos

No response

Additional Context

signal::unix::SignalKind (src/main.rs line 41) breaks build on Windows 11 with MinGW with version 1.32.0 all was good and after commenting the line nothing breaks (mayby)

BlackDex commented 1 month ago

Ah, sorry, that was an oversight indeed.

If you run this patch file over the code it should work for now.

diff --git a/src/main.rs b/src/main.rs
index e8830f2aa3..01586ebb8d 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -38,9 +38,11 @@ use std::{
 use tokio::{
     fs::File,
     io::{AsyncBufReadExt, BufReader},
-    signal::unix::SignalKind,
 };

+#[cfg(unix)]
+use tokio::signal::unix::SignalKind;
+
 #[macro_use]
 mod error;
 mod api;