{ lib , rustPlatform , fetchFromGitHub , pkg-config , protobuf , bzip2 , openssl , sqlite , zstd , stdenv , darwin , nix-update-script , rocksdb_8_3 }: let version = "0.6.0"; rocksdb = rocksdb_8_3; in rustPlatform.buildRustPackage { pname = "stalwart-mail"; inherit version; src = fetchFromGitHub { owner = "stalwartlabs"; repo = "mail-server"; rev = "v${version}"; hash = "sha256-OHwUWSUW6ovLQTxnuUrolQGhxbhp4YqKSH+ZTpe2WXc="; fetchSubmodules = true; }; cargoLock = { lockFile = ./Cargo.lock; }; nativeBuildInputs = [ pkg-config protobuf rustPlatform.bindgenHook ]; buildInputs = [ bzip2 openssl sqlite zstd ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.CoreFoundation darwin.apple_sdk.frameworks.Security darwin.apple_sdk.frameworks.SystemConfiguration ]; env = { OPENSSL_NO_VENDOR = true; ZSTD_SYS_USE_PKG_CONFIG = true; ROCKSDB_INCLUDE_DIR = "${rocksdb}/include"; ROCKSDB_LIB_DIR = "${rocksdb}/lib"; }; # Tests require reading to /etc/resolv.conf doCheck = false; passthru.update-script = nix-update-script { }; meta = with lib; { description = "Secure & Modern All-in-One Mail Server (IMAP, JMAP, SMTP)"; homepage = "https://github.com/stalwartlabs/mail-server"; changelog = "https://github.com/stalwartlabs/mail-server/blob/${version}/CHANGELOG"; license = licenses.agpl3Only; maintainers = with maintainers; [ happysalada ]; }; }