Various FreeBSD improvements (#3219)
* Fix permission denied (/var/run/stalwart.pid) on FreeBSD install * Remove jemalloc dependency on FreeBSD (which is already using jemalloc) * Enabling binding to privileged ports on FreeBSD
This commit is contained in:
@@ -40,7 +40,7 @@ migration = { path = "../migration" }
|
||||
tokio = { version = "1.47", features = ["full"] }
|
||||
rustls = { version = "0.23.5", default-features = false, features = ["std", "aws_lc_rs", "tls12"] }
|
||||
|
||||
[target.'cfg(not(target_env = "msvc"))'.dependencies]
|
||||
[target.'cfg(not(any(target_env = "msvc", target_os = "freebsd")))'.dependencies]
|
||||
jemallocator = "0.5.0"
|
||||
|
||||
[features]
|
||||
|
||||
@@ -23,10 +23,10 @@ use utils::wait_for_shutdown;
|
||||
#[cfg(feature = "dev_mode")]
|
||||
pub mod test_data;
|
||||
|
||||
#[cfg(not(target_env = "msvc"))]
|
||||
#[cfg(not(any(target_env = "msvc", target_os = "freebsd")))]
|
||||
use jemallocator::Jemalloc;
|
||||
|
||||
#[cfg(not(target_env = "msvc"))]
|
||||
#[cfg(not(any(target_env = "msvc", target_os = "freebsd")))]
|
||||
#[global_allocator]
|
||||
static GLOBAL: Jemalloc = Jemalloc;
|
||||
|
||||
|
||||
13
install.sh
13
install.sh
@@ -486,7 +486,8 @@ desc="Stalwart Server"
|
||||
load_rc_config \$name
|
||||
|
||||
: \${stalwart_enable:="NO"}
|
||||
: \${stalwart_user:="${_user}"}
|
||||
: \${stalwart_runas_user:="${_user}"}
|
||||
: \${stalwart_runas_group:="${_user}"}
|
||||
: \${stalwart_config:="${_config}"}
|
||||
: \${stalwart_envfile:="${_env}"}
|
||||
: \${stalwart_logfile:="${_log_dir}/stalwart.log"}
|
||||
@@ -495,7 +496,7 @@ load_rc_config \$name
|
||||
pidfile="/var/run/stalwart.pid"
|
||||
procname="${_bin}"
|
||||
command="/usr/sbin/daemon"
|
||||
command_args="-f -o \${stalwart_logfile} -p \${pidfile} -u \${stalwart_user} ${_bin} --config=\${stalwart_config}"
|
||||
command_args="-f -o \${stalwart_logfile} -p \${pidfile} ${_bin} --config=\${stalwart_config}"
|
||||
sig_stop="INT"
|
||||
start_precmd="stalwart_precmd"
|
||||
|
||||
@@ -507,10 +508,12 @@ stalwart_precmd()
|
||||
. "\${stalwart_envfile}"
|
||||
set +a
|
||||
fi
|
||||
ulimit -n "\${stalwart_fdlimit}"
|
||||
|
||||
# Binding privileged ports (25/443/465/993/...) as a non-root user
|
||||
# requires: sysctl net.inet.ip.portrange.reservedhigh=0
|
||||
# Stalwart binds its listeners as root, then setuid()s to this account
|
||||
export RUN_AS_USER="\${stalwart_runas_user}"
|
||||
export RUN_AS_GROUP="\${stalwart_runas_group}"
|
||||
|
||||
ulimit -n "\${stalwart_fdlimit}"
|
||||
}
|
||||
|
||||
run_rc_command "\$1"
|
||||
|
||||
@@ -89,5 +89,5 @@ time = "0.3"
|
||||
testcontainers = { version = "0.27", features = ["reusable-containers"] }
|
||||
rust-s3 = { version = "0.37", default-features = false, features = ["tokio-rustls-tls"] }
|
||||
|
||||
[target.'cfg(not(target_env = "msvc"))'.dependencies]
|
||||
[target.'cfg(not(any(target_env = "msvc", target_os = "freebsd")))'.dependencies]
|
||||
jemallocator = "0.5.0"
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
|
||||
#[cfg(test)]
|
||||
use ::store::registry::bootstrap::Bootstrap;
|
||||
#[cfg(not(target_env = "msvc"))]
|
||||
#[cfg(not(any(target_env = "msvc", target_os = "freebsd")))]
|
||||
use jemallocator::Jemalloc;
|
||||
|
||||
#[cfg(not(target_env = "msvc"))]
|
||||
#[cfg(not(any(target_env = "msvc", target_os = "freebsd")))]
|
||||
#[global_allocator]
|
||||
static GLOBAL: Jemalloc = Jemalloc;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user