# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup github 1.0 set core_branch 2.3 set minor_version 21.1 set core_version ${core_branch}.${minor_version} github.setup dovecot core ${core_version} github.tarball_from releases name dovecot revision 1 epoch 20060722 categories mail maintainers {jberry @jdberry} openmaintainer license LGPL-2.1 homepage https://www.dovecot.org description Secure, fast imap and pop3 server long_description Dovecot is an IMAP and POP3 server for \ Linux/UNIX-like systems, written with security \ primarily in mind. Although it is written in C, it \ uses several coding techniques to avoid most of \ the common pitfalls. subport dovecot-sieve { github.setup dovecot pigeonhole 0.5.${minor_version} revision 0 description Pigeonhole sieve and managesieve plugins for dovecot long_description \ Pigeonhole is the name of the project that adds \ support for the Sieve language (RFC 5228) and the \ ManageSieve protocol (RFC 5804) to the Dovecot \ Secure IMAP Server. The Sieve language is used to \ specify how e-mail needs to be processed. By \ writing Sieve scripts, users can customize how \ messages are delivered, e.g. whether they are \ forwarded or stored in special folders. Unwanted \ messages can be discarded or rejected, and, when \ the user is not available, the Sieve interpreter \ can send an automated reply. Above all, the Sieve \ language is meant to be simple, extensible and \ system independent. And, unlike most other mail \ filtering script languages, it does not allow \ users to execute arbitrary programs. This is \ particularly useful to prevent virtual users from \ having full access to the mail store. The \ intention of the language is to make it impossible \ for users to do anything more complex (and \ dangerous) than write simple mail filters. Using \ the ManageSieve protocol, users can upload their \ Sieve scripts remotely, without needing direct \ filesystem access through FTP or \ SCP. Additionally, a ManageSieve server always \ makes sure that uploaded scripts are valid, \ preventing compile failures at mail delivery. The \ Pigeonhole project provides Sieve support as a \ plugin to Dovecot's Local Delivery Agent \ (LDA). The ManageSieve protocol is provided is an \ additional service, next to Dovecot's own POP3 and \ IMAP services. homepage https://pigeonhole.dovecot.org/ distname dovecot-${core_branch}-pigeonhole-${version} master_sites ${homepage}releases/${core_branch}/ checksums rmd160 4936e99b2e3ca573acc600b2b060a26b5ee67775 \ sha256 0377db284b620723de060431115fb2e7791e1df4321411af718201d6925c4692 \ size 1956404 depends_lib-append \ port:dovecot patchfiles dynamic_lookup-11-sieve.patch configure.ldflags-append \ -L${prefix}/lib/dovecot configure.args --with-managesieve=yes \ --disable-dependency-tracking } set perl5.major 5.34 if {${name} eq ${subport}} { master_sites https://dovecot.org/releases/${core_branch}/ distname ${name}-${version} checksums rmd160 a1dc152dc823680fd5675f982347251a47b6c8d3 \ sha256 2d90a178c4297611088bf7daae5492a3bc3d5ab6328c3a032eb425d2c249097e \ size 7842044 depends_build-append \ port:bison \ port:flex \ path:bin/pkg-config:pkgconfig depends_lib-append \ port:bzip2 \ path:lib/pkgconfig/icu-uc.pc:icu \ port:libiconv \ path:lib/libssl.dylib:openssl \ port:lz4 \ port:xz \ port:zlib set default_internal_user _dovecot set default_login_user _dovenull add_users ${default_internal_user} group=${default_internal_user} realname=Dovecot \ ${default_login_user} group=${default_login_user} realname=Dovenull patch.pre_args-replace -p0 -p1 patchfiles patch-doc-example-config-conf.d-10-master.conf.diff \ patch-src-master-master-settings.c.diff \ dynamic_lookup-11.patch \ dbox-storage.c.patch post-patch { reinplace "s|@@default_internal_user@@|${default_internal_user}|g" \ ${worksrcpath}/doc/example-config/conf.d/10-master.conf reinplace "s|@@default_login_user@@|${default_login_user}|g" \ ${worksrcpath}/doc/example-config/conf.d/10-master.conf } configure.args --sysconfdir=${prefix}/etc \ --localstatedir=${prefix}/var \ --with-ssl=openssl \ --with-zlib \ --with-bzlib \ --with-ssldir=${prefix}/etc/openssl \ --with-shared-libs \ --with-pam \ --with-gssapi=yes configure.cppflags -I${prefix}/include/openssl configure.env-append \ PANDOC=false # Remove next release # https://github.com/dovecot/core/commit/1ccd5b54a408d12fce0c94ab0bbaedbb5ef69830 configure.env-append \ LIBICU_LIBS=-licui18n\ -licuuc # check if dovecot-sieve must be upgraded post-activate { if { ![catch {set result [registry_active dovecot-sieve]}] && [lrange [split [lindex [lindex ${result} 0] 1] .] 2 end] ne [split ${minor_version} .] } { ui_msg "dovecot-sieve @[lindex [lindex ${result} 0] 1] and dovecot @${core_version} versions are incompatible. Please run: \tsudo port upgrade dovecot-sieve " } } variant ldap description {Enable LDAP support} { depends_lib-append path:lib/libldap.dylib:openldap configure.args-append --with-ldap=yes } variant solr requires lucene description {Enable apache-solr support} { depends_lib-append port:curl port:expat depends_run-append port:apache-solr8 configure.args-append --with-solr } variant lucene description {Enable lucene support} { depends_lib-append port:clucene configure.args-append --with-lucene } variant libstemmer description {Use libstemmer for full-text search} { depends_lib-append port:libstemmer configure.args-append --with-libstemmer } # remove after 2026-01-01 variant apns \ description "Enable Apple Push Notification Service (APNS) \[deprecated]" { notes-append \ "Apple no longer supports APNS certificates for Mail.\ This variant will be removed in a future update. See:\ https://discussions.apple.com/thread/255898876" } variant postgresql11 \ conflicts postgresql12 postgresql13 postgresql14 postgresql15 postgresql16 postgresql17 \ description "Enable PostgreSQL 11 support" { depends_lib-append port:postgresql11 configure.env-append PG_CONFIG=${prefix}/lib/postgresql11/bin/pg_config configure.args-append --with-pgsql } variant postgresql12 \ conflicts postgresql11 postgresql13 postgresql14 postgresql15 postgresql16 postgresql17 \ description "Enable PostgreSQL 12 support" { depends_lib-append port:postgresql12 configure.env-append PG_CONFIG=${prefix}/lib/postgresql12/bin/pg_config configure.args-append --with-pgsql } variant postgresql13 \ conflicts postgresql11 postgresql12 postgresql14 postgresql15 postgresql16 postgresql17 \ description "Enable PostgreSQL 13 support" { depends_lib-append port:postgresql13 configure.env-append PG_CONFIG=${prefix}/lib/postgresql13/bin/pg_config configure.args-append --with-pgsql } variant postgresql14 \ conflicts postgresql11 postgresql12 postgresql13 postgresql15 postgresql16 postgresql17 \ description "Enable PostgreSQL 14 support" { depends_lib-append port:postgresql14 configure.env-append PG_CONFIG=${prefix}/lib/postgresql14/bin/pg_config configure.args-append --with-pgsql } variant postgresql15 \ conflicts postgresql11 postgresql12 postgresql13 postgresql14 postgresql16 postgresql17 \ description "Enable PostgreSQL 15 support" { depends_lib-append port:postgresql15 configure.env-append PG_CONFIG=${prefix}/lib/postgresql15/bin/pg_config configure.args-append --with-pgsql } variant postgresql16 \ conflicts postgresql11 postgresql12 postgresql13 postgresql14 postgresql15 postgresql17 \ description "Enable PostgreSQL 16 support" { depends_lib-append port:postgresql16 configure.env-append PG_CONFIG=${prefix}/lib/postgresql16/bin/pg_config configure.args-append --with-pgsql } variant postgresql17 \ conflicts postgresql11 postgresql12 postgresql13 postgresql14 postgresql15 postgresql16 \ description "Enable PostgreSQL 16 support" { depends_lib-append port:postgresql16 configure.env-append PG_CONFIG=${prefix}/lib/postgresql16/bin/pg_config configure.args-append --with-pgsql } variant percona \ conflicts mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mariadb10.7 mariadb10.8 mariadb10.11 mysql57 mysql8 \ description "Enable Percona (MySQL) support" { depends_lib-append port:percona configure.env-append MYSQL_CONFIG=${prefix}/lib/percona/bin/mysql_config configure.args-append --with-mysql } variant mariadb10.3 \ conflicts mariadb10.4 mariadb10.5 mariadb10.6 mariadb10.7 mariadb10.8 mariadb10.11 mysql57 mysql8 percona \ description "Enable MariaDB 10.3 (MySQL) support" { depends_lib-append port:mariadb-10.3 configure.env-append MYSQL_CONFIG=${prefix}/lib/mariadb-10.3/bin/mysql_config configure.args-append --with-mysql } variant mariadb10.4 \ conflicts mariadb10.3 mariadb10.5 mariadb10.6 mariadb10.7 mariadb10.8 mariadb10.11 mysql57 mysql8 percona \ description "Enable MariaDB 10.4 (MySQL) support" { depends_lib-append port:mariadb-10.4 configure.env-append MYSQL_CONFIG=${prefix}/lib/mariadb-10.4/bin/mysql_config configure.args-append --with-mysql } variant mariadb10.5 \ conflicts mariadb10.3 mariadb10.4 mariadb10.6 mariadb10.7 mariadb10.8 mariadb10.11 mysql57 mysql8 percona \ description "Enable MariaDB 10.5 (MySQL) support" { depends_lib-append port:mariadb-10.5 configure.env-append MYSQL_CONFIG=${prefix}/lib/mariadb-10.5/bin/mysql_config configure.args-append --with-mysql } variant mariadb10.6 \ conflicts mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.7 mariadb10.8 mariadb10.11 mysql57 mysql8 percona \ description "Enable MariaDB 10.6 (MySQL) support" { depends_lib-append port:mariadb-10.6 configure.env-append MYSQL_CONFIG=${prefix}/lib/mariadb-10.6/bin/mysql_config configure.args-append --with-mysql } variant mariadb10.7 \ conflicts mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mariadb10.8 mariadb10.11 mysql57 mysql8 percona \ description "Enable MariaDB 10.7 (MySQL) support" { depends_lib-append port:mariadb-10.7 configure.env-append MYSQL_CONFIG=${prefix}/lib/mariadb-10.7/bin/mysql_config configure.args-append --with-mysql } variant mariadb10.8 \ conflicts mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mariadb10.7 mariadb10.11 mysql57 mysql8 percona \ description "Enable MariaDB 10.8 (MySQL) support" { depends_lib-append port:mariadb-10.8 configure.env-append MYSQL_CONFIG=${prefix}/lib/mariadb-10.8/bin/mysql_config configure.args-append --with-mysql } variant mariadb10.11 \ conflicts mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mariadb10.7 mariadb10.8 mysql57 mysql8 percona \ description "Enable MariaDB 10.11 (MySQL) support" { depends_lib-append port:mariadb-10.11 configure.env-append MYSQL_CONFIG=${prefix}/lib/mariadb-10.11/bin/mysql_config configure.args-append --with-mysql } variant mysql57 \ conflicts mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mariadb10.7 mariadb10.8 mariadb10.11 mysql8 percona \ description "Enable MySQL 5.7 support" { depends_lib-append port:mysql57 configure.env-append MYSQL_CONFIG=${prefix}/lib/mysql57/bin/mysql_config configure.args-append --with-mysql } variant mysql8 \ conflicts mariadb10.3 mariadb10.4 mariadb10.5 mariadb10.6 mariadb10.7 mariadb10.8 mariadb10.11 mysql57 percona \ description "Enable MySQL 8 support" { depends_lib-append port:mysql8 configure.env-append MYSQL_CONFIG=${prefix}/lib/mysql8/bin/mysql_config configure.args-append --with-mysql } # remove after 2026-01-14 variant mariadb10.2 requires mariadb10.5 description "Legacy compatibility variant" {} variant postgresql10 requires postgresql13 description "Legacy compatibility variant" {} startupitem.create yes startupitem.executable ${prefix}/sbin/${name} startupitem.pidfile auto ${prefix}/var/run/${name}/master.pid destroot.keepdirs \ ${destroot}${prefix}/etc/${name} }