summaryrefslogtreecommitdiff
path: root/packages/stalwart/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'packages/stalwart/package.nix')
-rw-r--r--packages/stalwart/package.nix211
1 files changed, 0 insertions, 211 deletions
diff --git a/packages/stalwart/package.nix b/packages/stalwart/package.nix
deleted file mode 100644
index 185fa5a..0000000
--- a/packages/stalwart/package.nix
+++ /dev/null
@@ -1,211 +0,0 @@
-{
- lib,
- rustPlatform,
- fetchFromGithub,
- pkg-config,
- protobuf,
- bzip2,
- openssl,
- sqlite,
- foundationdb,
- zstd,
- stdenv,
- nix-update-script,
- nixosTest,
- rocksdb,
- callPackage,
- withFoundationdb ? false,
- stalwartEnterprise ? false,
- buildPackages,
-}:
- rustPlatform.makeRustPackage (finalAttrs: {
- pname = "stalwart" + (lib.optionalString stalwartEnterprise "-enterprise");
- version = "0.16.6";
- src = fetchFromGithub {
- owner = "stalwartlabs";
- repo = "stalwart";
- tag = "v${finalAttrs.version}";
- hash = "";
- };
-
- cargoHash = "";
-
- depsBuildBuild = [
- pkg-config
- zstd
- ];
-
- nativeBuildInputs = [
- protobuf
- rustPlatform.bindgenHook
- ];
-
- buildInputs = [
- bzip2
- openssl
- sqlite
- zstd
- ] ++ lib.optional (stdenv.hostPlatform.isLinux && withFoundationdb) foundationdb;
-
- nativeCheckInputs = [
- openssl
- ];
-
- buildNoDefaultFeatures = true;
- buildFeatures = [
- "sqlite"
- "postgres"
- "mysql"
- "rocks"
- "s3"
- "redis"
- "azure"
- "nats"
- ]
- ++ lib.optionals withFoundationdb [ "foundationdb" ]
- ++ lib.optionals stalwartEnterprise [ "enterprise" ];
-
- env = {
- OPENSSL_NO_VENDOR = true;
- ZSTD_SYS_USE_PKG_CONFIG = true;
- ROCKSDB_INCLUDE_DIR = "${rocksdb}/include";
- ROCKSDB_LIB_DIR = "${rocksdb}/lib";
- }
- //
- lib.optionalAttrs
- (stdenv.hostPlatform.isLinux && (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isArmv7))
- {
- JEMALLOC_SYS_WITH_LG_PAGE = 16;
- };
-
- postInstall = ''
- mkdir -p $out/etc/stalwart
-
- mkdir -p $out/lib/systemd/system
-
- substitute resources/systemd/stalwart-mail.service $out/lib/systemd/system/stalwart.service \
- --replace-fail "__PATH__" "$out"
- '';
-
- preCheck = ''
- export STORE=Sqlite
- '';
- checkFlags = lib.forEach [
- # Require running mysql, postgresql daemon
- "directory::imap::imap_directory"
- "directory::internal::internal_directory"
- "directory::ldap::ldap_directory"
- "directory::sql::sql_directory"
- "directory::oidc::oidc_directory"
- "store::blob::blob_tests"
- "store::lookup::lookup_tests"
- "smtp::lookup::sql::lookup_sql"
- # thread 'directory::smtp::lmtp_directory' panicked at tests/src/store/mod.rs:122:44:
- # called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }
- "directory::smtp::lmtp_directory"
- # thread 'imap::imap_tests' panicked at tests/src/imap/mod.rs:436:14:
- # Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
- "imap::imap_tests"
- # thread 'jmap::jmap_tests' panicked at tests/src/jmap/mod.rs:303:14:
- # Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
- "jmap::jmap_tests"
- # Failed to read system DNS config: io error: No such file or directory (os error 2)
- "smtp::inbound::data::data"
- # Expected "X-My-Header: true" but got Received: from foobar.net (unknown [10.0.0.123])
- "smtp::inbound::scripts::sieve_scripts"
- # thread 'smtp::outbound::lmtp::lmtp_delivery' panicked at tests/src/smtp/session.rs:313:13:
- # Expected "<invalid@domain.org> (failed to lookup" but got From: "Mail Delivery Subsystem" <MAILER-DAEMON@localhost>
- "smtp::outbound::lmtp::lmtp_delivery"
- # thread 'smtp::outbound::extensions::extensions' panicked at tests/src/smtp/inbound/mod.rs:45:23:
- # No queue event received.
- "smtp::outbound::extensions::extensions"
- # panicked at tests/src/smtp/outbound/smtp.rs:173:5:
- "smtp::outbound::smtp::smtp_delivery"
- # panicked at tests/src/smtp/outbound/lmtp.rs
- "smtp::outbound::lmtp::lmtp_delivery"
- # thread 'smtp::queue::retry::queue_retry' panicked at tests/src/smtp/queue/retry.rs:119:5:
- # assertion `left == right` failed
- # left: [1, 2, 2]
- # right: [1, 2, 3]
- "smtp::queue::retry::queue_retry"
- # thread 'smtp::queue::virtualq::virtual_queue' panicked at /build/source/crates/store/src/dispatch/store.rs:548:14:
- # called `Result::unwrap()` on an `Err` value: Error(Event { inner: Store(MysqlError), keys: [(Reason, String("Input/output error: Input/output error: Connection refused (os error 111)")), (CausedBy, String("crates/store/src/dispatch/store.rs:301"))] })
- "smtp::queue::virtualq::virtual_queue"
- # Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
- "store::store_tests"
- # Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
- "cluster::cluster_tests"
- # Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
- "webdav::webdav_tests"
- # thread 'config::parser::tests::toml_parse' panicked at crates/utils/src/config/parser.rs:463:58:
- # called `Result::unwrap()` on an `Err` value: "Expected ['\\n'] but found '!' in value at line 70."
- "config::parser::tests::toml_parse"
- # error[E0432]: unresolved import `r2d2_sqlite`
- # use of undeclared crate or module `r2d2_sqlite`
- "backend::sqlite::pool::SqliteConnectionManager::with_init"
- # thread 'smtp::reporting::analyze::report_analyze' panicked at tests/src/smtp/reporting/analyze.rs:88:5:
- # assertion `left == right` failed
- # left: 0
- # right: 12
- "smtp::reporting::analyze::report_analyze"
- # thread 'smtp::inbound::dmarc::dmarc' panicked at tests/src/smtp/inbound/mod.rs:59:26:
- # Expected empty queue but got Reload
- "smtp::inbound::dmarc::dmarc"
- # thread 'smtp::queue::concurrent::concurrent_queue' panicked at tests/src/smtp/inbound/mod.rs:65:9:
- # assertion `left == right` failed
- "smtp::queue::concurrent::concurrent_queue"
- # Failed to read system DNS config: io error: No such file or directory (os error 2)
- "smtp::inbound::auth::auth"
- # Failed to read system DNS config: io error: No such file or directory (os error 2)
- "smtp::inbound::antispam::antispam"
- # Failed to read system DNS config: io error: No such file or directory (os error 2)
- "smtp::inbound::vrfy::vrfy_expn"
- # thread 'smtp::management::queue::manage_queue' panicked at tests/src/smtp/inbound/mod.rs:45:23:
- # No queue event received.
- # NOTE: Test unreliable on high load systems
- "smtp::management::queue::manage_queue"
- # thread 'responses::tests::parse_responses' panicked at crates/dav-proto/src/responses/mod.rs:671:17:
- # assertion `left == right` failed: failed for 008.xml
- # left: ElementEnd
- # right: Bytes([...])
- "responses::tests::parse_responses"
- # thread 'store::search_tests' (912386) panicked at tests/src/store/mod.rs:116:10:
- # Missing store type. Try running `STORE=<store_type> cargo test`: NotPresent
- "store::search_tests"
- ] (test: "--skip=${test}");
-
- doCheck = !(stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64);
-
- __darwinAllowLocalNetworking = true;
-
- passthru = {
- inherit rocksdb;
- # webadmin = buildPackages.callPackage ./webadmin.nix {};
- # spam-filter = callPackage ./spam-filter.nix {};
- updateScript = nix-update-script { };
- # test.stalwart = nixosTests.stalwart;
- };
-
- meta = {
- description = "Secure, modern, all-in-one mail and collaboration server";
- longDescription = ''
- Secure, scalable and fluent in every protocol (IMAP, JMAP, SMTP, CalDAV, CardDAV, WebDAV).
- '';
- homepage = "https://github.com/stalwartlabs/stalwart";
- changelog = "https://github.com/stalwartlabs/stalwart/blob/main/CHANGELOG.md";
- license = [
- lib.licenses.agpl3Only
- ]
- ++ lib.optionals stalwartEnterprise [
- {
- fullName = "Stalwart Enterprise License 1.0 (SELv1) Agreement";
- url = "https://github.com/stalwartlabs/stalwart/blob/main/LICENSES/LicenseRef-SEL.txt";
- free = false;
- redistributable = false;
- }
- ];
-
- mainProgram = "stalwart";
- };
-})
-