Files
mullvadvpn-app/mullvad-daemon/Cargo.toml
T

185 lines
8.0 KiB
TOML

[package]
name = "mullvad-daemon"
edition.workspace = true
rust-version.workspace = true
description = "Mullvad VPN daemon. Runs and controls the VPN tunnels"
repository.workspace = true
license.workspace = true
[package.metadata.winresource]
ProductName = "Mullvad VPN"
CompanyName = "Mullvad VPN AB"
LegalCopyright = "(c) 2026 Mullvad VPN AB"
InternalName = "mullvad-daemon"
OriginalFilename = "mullvad-daemon.exe"
[package.metadata.deb]
name = "mullvad-vpn-daemon"
conflicts = ["mullvad-vpn"]
maintainer = "Mullvad VPN <support@mullvadvpn.net>"
copyright = "2026, Mullvad VPN AB <support@mullvadvpn.net>"
license-file = ["../LICENSE.md", "0"]
section = "net"
priority = "optional"
depends = "$auto"
profile = "release"
maintainer-scripts = "../dist-assets/linux/daemon/"
assets = [
{ source = "target/release/mullvad", dest = "usr/bin/", mode = "755" },
{ source = "target/release/mullvad-daemon", dest = "usr/bin/", mode = "755" },
{ source = "target/release/mullvad-exclude", dest = "usr/bin/", mode = "755" },
{ source = "target/release/mullvad-setup", dest = "opt/Mullvad VPN/resources/", mode = "755" },
{ source = "target/release/mullvad-problem-report", dest = "opt/Mullvad VPN/resources/", mode = "755" },
{ source = "../dist-assets/linux/mullvad-daemon.service", dest = "usr/lib/systemd/system/", mode = "644" },
{ source = "../dist-assets/linux/mullvad-early-boot-blocking.service", dest = "usr/lib/systemd/system/", mode = "644" },
{ source = "../dist-assets/ca.crt", dest = "opt/Mullvad VPN/resources/", mode = "644" },
{ source = "../dist-assets/relays/relays.json", dest = "opt/Mullvad VPN/resources/", mode = "644" },
{ source = "../build/shell-completions/mullvad.bash", dest = "usr/share/bash-completion/completions/mullvad", mode = "644" },
{ source = "../build/shell-completions/_mullvad", dest = "usr/local/share/zsh/site-functions/_mullvad", mode = "644" },
{ source = "../build/shell-completions/mullvad.fish", dest = "usr/share/fish/vendor_completions.d/mullvad.fish", mode = "644" },
{ source = "../build/shell-completions/mullvad.nu", dest = "usr/share/nushell/vendor/autoload/mullvad.nu", mode = "644" },
{ source = "../CHANGELOG.md", dest = "opt/Mullvad VPN/resources/", mode = "644" },
]
[package.metadata.generate-rpm]
name = "mullvad-vpn-daemon"
vendor = "Mullvad VPN <support@mullvadvpn.net>"
auto-req = "yes"
pre_install_script = "../dist-assets/linux/daemon/preinst"
pre_uninstall_script = "../dist-assets/linux/daemon/prerm"
post_install_script = "../dist-assets/linux/daemon/postinst"
post_uninstall_script = "../dist-assets/linux/daemon/postrm"
post_trans_script = "../dist-assets/linux/post-transaction.sh"
assets = [
{ source = "target/release/mullvad", dest = "/usr/bin/", mode = "755" },
{ source = "target/release/mullvad-daemon", dest = "/usr/bin/", mode = "755" },
{ source = "target/release/mullvad-exclude", dest = "/usr/bin/", mode = "755" },
{ source = "target/release/mullvad-setup", dest = "/opt/Mullvad VPN/resources/", mode = "755" },
{ source = "target/release/mullvad-problem-report", dest = "/opt/Mullvad VPN/resources/", mode = "755" },
{ source = "../dist-assets/linux/mullvad-daemon.service", dest = "/usr/lib/systemd/system/", mode = "644" },
{ source = "../dist-assets/linux/mullvad-early-boot-blocking.service", dest = "/usr/lib/systemd/system/", mode = "644" },
{ source = "../dist-assets/ca.crt", dest = "/opt/Mullvad VPN/resources/", mode = "644" },
{ source = "../dist-assets/relays/relays.json", dest = "/opt/Mullvad VPN/resources/", mode = "644" },
{ source = "../build/shell-completions/mullvad.bash", dest = "/usr/share/bash-completion/completions/mullvad", mode = "644" },
{ source = "../build/shell-completions/_mullvad", dest = "/usr/share/zsh/site-functions/_mullvad", mode = "644" },
{ source = "../build/shell-completions/mullvad.fish", dest = "/usr/share/fish/vendor_completions.d/mullvad.fish", mode = "644" },
{ source = "../build/shell-completions/mullvad.nu", dest = "/usr/share/nushell/vendor/autoload/mullvad.nu", mode = "644" },
{ source = "../CHANGELOG.md", dest = "/opt/Mullvad VPN/resources/", mode = "644" },
]
[package.metadata.generate-rpm.conflicts]
mullvad-vpn = "*"
[dependencies]
anyhow = { workspace = true }
chrono = { workspace = true }
clap = { workspace = true }
either = "1.11"
futures = { workspace = true }
libc = "0.2"
log = { workspace = true }
log-panics = "2.0.0"
mullvad-api = { path = "../mullvad-api" }
mullvad-daemon-relay-selector = { path = "../mullvad-daemon-relay-selector" }
mullvad-encrypted-dns-proxy = { path = "../mullvad-encrypted-dns-proxy" }
mullvad-fs = { path = "../mullvad-fs" }
mullvad-leak-checker = { path = "../mullvad-leak-checker" }
mullvad-logging = { path = "../mullvad-logging" }
mullvad-management-interface = { path = "../mullvad-management-interface" }
mullvad-paths = { path = "../mullvad-paths" }
mullvad-relay-selector = { path = "../mullvad-relay-selector" }
mullvad-types = { path = "../mullvad-types" }
mullvad-version = { path = "../mullvad-version" }
rand = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true, features = ["std"] }
talpid-core = { path = "../talpid-core" }
talpid-dns = { path = "../talpid-dns" }
talpid-future = { path = "../talpid-future" }
talpid-platform-metadata = { path = "../talpid-platform-metadata" }
talpid-routing = { path = "../talpid-routing" }
talpid-time = { path = "../talpid-time" }
talpid-types = { path = "../talpid-types" }
thiserror = { workspace = true }
tokio = { workspace = true, features = [
"fs",
"io-util",
"rt-multi-thread",
"signal",
"sync",
"time",
] }
tokio-stream = { version = "0.1", features = ["sync"] }
tracing-appender = { workspace = true }
tracing-subscriber = { workspace = true, features = ["chrono"] }
[dev-dependencies]
insta = { workspace = true, features = ["json"] }
talpid-time = { path = "../talpid-time", features = ["test"] }
tokio = { workspace = true, features = ["test-util"] }
[target."cfg(any(unix, windows))".dependencies]
mullvad-update = { path = "../mullvad-update", features = ["client"] }
[target.'cfg(target_os="android")'.dependencies]
async-trait = { workspace = true }
ctrlc = { workspace = true }
hickory-resolver = { workspace = true }
paranoid-android = "0.2.2"
[target.'cfg(target_os="linux")'.dependencies]
ctrlc = { workspace = true, features = ["termination"] }
talpid-dbus = { path = "../talpid-dbus" }
tikv-jemallocator = { version = "0.6", optional = true }
[target.'cfg(target_os="macos")'.dependencies]
ctrlc = { workspace = true, features = ["termination"] }
notify = "8.0.0"
objc2-foundation = { version = "0.3.1", features = ["NSProcessInfo", "NSString", "NSURL"] }
objc2-service-management = { version = "0.3.1", features = ["SMAppService", "objc2"] }
talpid-macos = { path = "../talpid-macos" }
[target."cfg(unix)".dependencies]
nix = { workspace = true, features = ["signal", "user"] }
[target."cfg(windows)".dependencies]
ctrlc = { workspace = true }
dirs = { workspace = true }
talpid-windows = { path = "../talpid-windows" }
winapi = { version = "0.3", features = ["excpt", "winerror", "winnt"] }
windows-service = "0.6.0"
[target."cfg(windows)".dependencies.windows-sys]
workspace = true
features = [
"Win32_Foundation",
"Win32_Security",
"Win32_Security_Authentication_Identity",
"Win32_Security_Authorization",
"Win32_System_Diagnostics_Debug",
"Win32_System_Kernel",
"Win32_System_Memory",
"Win32_System_Threading",
]
[target."cfg(windows)".build-dependencies]
mullvad-version = { path = "../mullvad-version" }
winresource.workspace = true
[target."cfg(windows)".build-dependencies.windows-sys]
workspace = true
features = ["Win32_System_SystemServices"]
[features]
default = ["default-allocator"]
# Allow the API server to use to be configured
api-override = ["mullvad-api/api-override"]
cgroup2 = ["talpid-core/cgroup2"]
# Use jemalloc as the global allocator. Only takes effect on Linux.
default-allocator = ["dep:tikv-jemallocator"]
multihop-pcap = ["talpid-core/multihop-pcap"]
staggered-obfuscation = ["mullvad-relay-selector/staggered-obfuscation"]
[lints]
workspace = true