initial import

This commit is contained in:
2025-06-22 20:39:04 -05:00
commit f8a70886f0
3428 changed files with 302546 additions and 0 deletions

137
postfix/PKGBUILD Normal file
View File

@@ -0,0 +1,137 @@
# Maintainer: Jesus E. <heckyel@riseup.net>
pkgname=postfix
pkgver=3.5.13
_debver=$pkgver
_debrel=0
pkgrel=3
pkgdesc="Fast, easy to administer, secure mail server"
license=('IPL-1.0')
arch=('i686' 'x86_64')
url='http://www.postfix.org/'
depends=('libressl' 'pcre' 'icu' 'libsasl' 'libldap' 'db' 'libnsl' 'postgresql-libs' 'sqlite' 'tinycdb')
makedepends=('quilt')
optdepends=('logger: message logging support')
source=("https://archive.mgm51.com/mirrors/postfix-source/official/${pkgname}-${pkgver}.tar.gz"
"https://repo.hyperbola.info:50000/sources/${pkgname}/postfix_${_debver}-${_debrel}+deb11u1.debian.tar.xz"{,.sig}
"aliases.patch"
"libressl.patch"
"postfix.initd"
"postfix.run")
sha512sums=('47aee05f92fca387533132f5227b82fbab4700f9bc3512a17abee1c3aeb2e54ce5a964189774c14489a99c5b53ef606d8d3f5aac44f32739265c1be47bd4a24c'
'bac745840ce5cffe9243aba71df4506e54910377025aeeb29db9c6b32ff88cee96caeace110c1eb69859c4888865929b73f11416227abf08c546bcc48945f7c4'
'SKIP'
'630cd85be341fbd82c5202fdfd6c3b1df906c0b77cff43ae44f665451d7ddc99e6a20a755ed970fff60d93ccbb3139ea28495f0b281232e8a97218319156a57f'
'1acedf7558b39f78943368c88ae551988a228ded81d37fd58160b6cbe665e1cc94a2abebad80fb0f15ca4a9cbbb8a5e0d880e36103a400789586095855a96b0c'
'2ad1b053bbb51d4f480dbf5a01252e8e99a82ec14a75ff49336b2b190ea55bc02400542b109fa0cc4ebfe6b42eaabbc45f70f2ea581f1eb9c4189c439b825592'
'8a7afca85aa864eeff052751a72cd81e094db188c689f5361d6acbf429bdbb2fbdcec95a743de9054dbe13e101b66e5d1047e6393bd3bafcbd40a4cffaa30563')
validpgpkeys=('C92BAA713B8D53D3CAE63FC9E6974752F9704456') # André Silva
backup=('etc/postfix/'{access,aliases,canonical,generic,header_checks,main.cf,master.cf,relocated,transport,virtual})
conflicts=('smtp-server' 'smtp-forwarder' 'postfix-tools')
provides=('smtp-server' 'smtp-forwarder' 'postfix-tools')
replaces=('postfix-tools')
install=postfix.install
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
if [[ ${pkgver%.*} = ${_debver%.*} ]]; then
# Debian patches
export QUILT_PATCHES=debian/patches
export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
export QUILT_DIFF_ARGS='--no-timestamps'
mv "$srcdir"/debian .
# Doesn't apply
rm -v debian/patches/02_kfreebsd_support.diff || true
rm -v debian/patches/03_ldap3_by_default.diff || true
rm -v debian/patches/05_debian_defaults.diff || true
rm -v debian/patches/05_debian_manpage_differences.diff || true
rm -v debian/patches/05_debian_readme_differences.diff || true
rm -v debian/patches/06_debian_paths.diff || true
rm -v debian/patches/07_sasl_config.diff || true
rm -v debian/patches/10_openssl_version_check.diff || true
rm -v debian/patches/30_shared_libs.diff || true
quilt push -av
fi
patch -Np1 -i "${srcdir}/libressl.patch"
}
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
CCARGS='
-DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl
-DHAS_LDAP
-DUSE_TLS
-DHAS_PGSQL -I/usr/include/postgresql
-DHAS_SQLITE
-DHAS_CDB
-DDEF_COMMAND_DIR=\"/usr/sbin\"
-DDEF_DAEMON_DIR=\"/usr/libexec/postfix\"
-DDEF_SENDMAIL_PATH=\"/usr/sbin/sendmail\"
-DDEF_README_DIR=\"/usr/share/doc/postfix\"
-DDEF_MANPAGE_DIR=\"/usr/share/man\"
'
AUXLIBS='
-lsasl2
-lldap -llber
-lssl -lcrypto
-lz -lm
-lpq
-lsqlite3 -lpthread
-lcdb
'
make makefiles \
DEBUG='' \
pie=yes \
shared=yes \
CCARGS="${CCARGS//$'\n'/}" \
AUXLIBS="${AUXLIBS//$'\n'/}" \
OPT="${CFLAGS} ${LDFLAGS}"
make
}
package() {
cd "${srcdir}/postfix-${pkgver}"
sed 's:bin/postconf -dhx:bin/postconf -c conf -dhx:g' -i postfix-install
LD_LIBRARY_PATH=lib:$LD_LIBRARY_PATH \
sh postfix-install -non-interactive install_root="${pkgdir}"
install -Dm644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
install -Dm755 "${srcdir}/${pkgname}.initd" "${pkgdir}/etc/init.d/${pkgname}"
install -Dm755 "${srcdir}/${pkgname}.run" "${pkgdir}/etc/sv/${pkgname}/run"
for name in posttls-finger {smtp,qmqp}-{sink,source}; do
install -Dm644 "man/man1/${name}.1" "${pkgdir}/usr/share/man/man1/${name}.1"
install -Dm755 "bin/${name}" "${pkgdir}/usr/sbin/${name}"
done
# now set permissions right
sed -r \
-e '/override=1/d' \
-e '/absolute path name/d' \
-e 's/\$POSTCONF -/$POSTCONF -c .\/etc\/postfix -/g' \
-e '/(if \[|chmod|chown|find|mkdir|test)/s/\$path/.\/$path/g' \
libexec/post-install > ../hyperbola-post-install
cd "${pkgdir}"
LD_LIBRARY_PATH=usr/lib/postfix:$LD_LIBRARY_PATH \
sh "${srcdir}/hyperbola-post-install" \
command_directory=usr/sbin \
config_directory=etc/postfix \
meta_directory=etc/postfix \
setgid_group=75 \
mail_owner=73 \
set-permissions
patch --no-backup-if-mismatch -p1 -i "${srcdir}"/aliases.patch
sed 's/^\(\$manpage[^:]*\):/\1.gz:/' -i "etc/postfix/postfix-files"
}

20
postfix/aliases.patch Normal file
View File

@@ -0,0 +1,20 @@
diff --git a/etc/postfix/main.cf b/etc/postfix/main.cf
index 60f33af8..f0f53b61 100644
--- a/etc/postfix/main.cf
+++ b/etc/postfix/main.cf
@@ -401,6 +401,7 @@ unknown_local_recipient_reject_code = 550
#alias_maps = hash:/etc/aliases
#alias_maps = hash:/etc/aliases, nis:mail.aliases
#alias_maps = netinfo:/aliases
+alias_maps = hash:/etc/postfix/aliases
# The alias_database parameter specifies the alias database(s) that
# are built with "newaliases" or "sendmail -bi". This is a separate
@@ -411,6 +412,7 @@ unknown_local_recipient_reject_code = 550
#alias_database = dbm:/etc/mail/aliases
#alias_database = hash:/etc/aliases
#alias_database = hash:/etc/aliases, hash:/opt/majordomo/aliases
+alias_database = $alias_maps
# ADDRESS EXTENSIONS (e.g., user+foo)
#

233
postfix/libressl.patch Normal file
View File

@@ -0,0 +1,233 @@
diff --git a/src/global/mail_params.h b/src/global/mail_params.h
index a6119f1b..e437b9cd 100644
--- a/src/global/mail_params.h
+++ b/src/global/mail_params.h
@@ -19,7 +19,7 @@ typedef int bool;
#ifdef USE_TLS
#include <openssl/opensslv.h> /* OPENSSL_VERSION_NUMBER */
#include <openssl/objects.h> /* SN_* and NID_* macros */
-#if OPENSSL_VERSION_NUMBER < 0x1000200fUL
+#if OPENSSL_VERSION_NUMBER < 0x1010101fUL && !defined(LIBRESSL_VERSION_NUMBER)
#error "OpenSSL releases prior to 1.0.2 are no longer supported"
#endif
#endif
diff --git a/src/posttls-finger/posttls-finger.c b/src/posttls-finger/posttls-finger.c
index c142d43f..ee894327 100644
--- a/src/posttls-finger/posttls-finger.c
+++ b/src/posttls-finger/posttls-finger.c
@@ -1673,7 +1673,8 @@ static int finger(STATE *state)
return (0);
}
-#if defined(USE_TLS) && OPENSSL_VERSION_NUMBER < 0x10100000L
+#if defined(USE_TLS) && \
+ ( OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) )
/* ssl_cleanup - free memory allocated in the OpenSSL library */
@@ -2156,7 +2157,8 @@ int main(int argc, char *argv[])
cleanup(&state);
/* OpenSSL 1.1.0 and later (de)initialization is implicit */
-#if defined(USE_TLS) && OPENSSL_VERSION_NUMBER < 0x10100000L
+#if defined(USE_TLS) && \
+ ( OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) )
ssl_cleanup();
#endif
diff --git a/src/tls/tls.h b/src/tls/tls.h
index 2a8cc119..4c8dff11 100644
--- a/src/tls/tls.h
+++ b/src/tls/tls.h
@@ -84,12 +84,12 @@ extern const char *str_tls_level(int);
#define ssl_cipher_stack_t STACK_OF(SSL_CIPHER)
#define ssl_comp_stack_t STACK_OF(SSL_COMP)
-#if (OPENSSL_VERSION_NUMBER < 0x1000200fUL)
+#if (OPENSSL_VERSION_NUMBER < 0x1000200fUL && !defined(LIBRESSL_VERSION_NUMBER))
#error "OpenSSL releases prior to 1.0.2 are no longer supported"
#endif
/* Backwards compatibility with OpenSSL < 1.1.0 */
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
#define OpenSSL_version_num SSLeay
#define OpenSSL_version SSLeay_version
#define OPENSSL_VERSION SSLEAY_VERSION
@@ -106,13 +106,16 @@ extern const char *str_tls_level(int);
#define ASN1_STRING_get0_data ASN1_STRING_data
#define X509_getm_notBefore X509_get_notBefore
#define X509_getm_notAfter X509_get_notAfter
+#endif
+
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
#define TLS_method SSLv23_method
#define TLS_client_method SSLv23_client_method
#define TLS_server_method SSLv23_server_method
#endif
/* Backwards compatibility with OpenSSL < 1.1.1 */
-#if OPENSSL_VERSION_NUMBER < 0x1010100fUL
+#if OPENSSL_VERSION_NUMBER < 0x1010100fUL || defined(LIBRESSL_VERSION_NUMBER)
#define SSL_CTX_set_num_tickets(ctx, num) ((void)0)
#endif
@@ -124,7 +127,7 @@ extern const char *str_tls_level(int);
* SSL_get_peer_tmp_key(), with the original name left behind as an alias. We
* use the new name when available.
*/
-#if OPENSSL_VERSION_NUMBER < 0x1010101fUL
+#if OPENSSL_VERSION_NUMBER < 0x1010101fUL || defined(LIBRESSL_VERSION_NUMBER)
#undef SSL_get_signature_nid
#define SSL_get_signature_nid(ssl, pnid) (NID_undef)
#define tls_get_peer_dh_pubkey SSL_get_server_tmp_key
diff --git a/src/tls/tls_certkey.c b/src/tls/tls_certkey.c
index be8d4700..27a039c0 100644
--- a/src/tls/tls_certkey.c
+++ b/src/tls/tls_certkey.c
@@ -149,7 +149,7 @@ static void init_pem_load_state(pem_load_state_t *st, SSL_CTX *ctx, SSL *ssl,
/* use_chain - load cert, key and chain into ctx or ssl */
-#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL
+#if OPENSSL_VERSION_NUMBER >= 0x1010100fUL && !defined(LIBRESSL_VERSION_NUMBER)
static int use_chain(pem_load_state_t *st)
{
int ret;
@@ -697,7 +697,7 @@ int main(int argc, char *argv[])
char *key_file = 0;
SSL_CTX *ctx;
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
/*
* Initialize the OpenSSL library by the book! To start with, we must
diff --git a/src/tls/tls_client.c b/src/tls/tls_client.c
index 135cea4b..955c5340 100644
--- a/src/tls/tls_client.c
+++ b/src/tls/tls_client.c
@@ -333,7 +333,7 @@ TLS_APPL_STATE *tls_client_init(const TLS_CLIENT_INIT_PROPS *props)
*/
tls_check_version();
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
/*
* Initialize the OpenSSL library by the book! To start with, we must
@@ -410,7 +410,7 @@ TLS_APPL_STATE *tls_client_init(const TLS_CLIENT_INIT_PROPS *props)
SSL_CTX_set_options(client_ctx, off);
/* Enable all supported protocols */
-#if OPENSSL_VERSION_NUMBER >= 0x1010000fUL
+#if OPENSSL_VERSION_NUMBER >= 0x1010000fUL && !defined(LIBRESSL_VERSION_NUMBER)
SSL_CTX_set_min_proto_version(client_ctx, 0);
#endif
@@ -473,7 +473,7 @@ TLS_APPL_STATE *tls_client_init(const TLS_CLIENT_INIT_PROPS *props)
/*
* 2015-12-05: Ephemeral RSA removed from OpenSSL 1.1.0-dev
*/
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
/*
* According to the OpenSSL documentation, temporary RSA key is needed
diff --git a/src/tls/tls_dane.c b/src/tls/tls_dane.c
index 013426b1..5cbb74e3 100644
--- a/src/tls/tls_dane.c
+++ b/src/tls/tls_dane.c
@@ -2006,7 +2006,7 @@ static SSL_CTX *ctx_init(const char *CAfile)
tls_param_init();
tls_check_version();
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
SSL_load_error_strings();
SSL_library_init();
#endif
diff --git a/src/tls/tls_dh.c b/src/tls/tls_dh.c
index 70db8e9d..727e3a80 100644
--- a/src/tls/tls_dh.c
+++ b/src/tls/tls_dh.c
@@ -314,7 +314,7 @@ void tls_auto_eecdh_curves(SSL_CTX *ctx, const char *configured)
* This is a NOP in OpenSSL 1.1.0 and later, where curves are always
* auto-negotiated.
*/
-#if OPENSSL_VERSION_NUMBER < 0x10100000UL
+#if OPENSSL_VERSION_NUMBER < 0x10100000UL || defined(LIBRESSL_VERSION_NUMBER)
if (SSL_CTX_set_ecdh_auto(ctx, 1) <= 0) {
msg_warn("failed to enable automatic ECDHE curve selection");
tls_print_errors();
diff --git a/src/tls/tls_rsa.c b/src/tls/tls_rsa.c
index 67f2a2ee..c6a759e8 100644
--- a/src/tls/tls_rsa.c
+++ b/src/tls/tls_rsa.c
@@ -57,7 +57,7 @@
/*
* 2015-12-05: Ephemeral RSA removed from OpenSSL 1.1.0-dev
*/
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
/* tls_tmp_rsa_cb - call-back to generate ephemeral RSA key */
@@ -103,7 +103,7 @@ int main(int unused_argc, char *const argv[])
/*
* 2015-12-05: Ephemeral RSA removed from OpenSSL 1.1.0-dev
*/
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
RSA *rsa;
msg_vstream_init(argv[0], VSTREAM_ERR);
diff --git a/src/tls/tls_server.c b/src/tls/tls_server.c
index 25d85ec7..b134d50d 100644
--- a/src/tls/tls_server.c
+++ b/src/tls/tls_server.c
@@ -167,7 +167,7 @@ static const char server_session_id_context[] = "Postfix/TLS";
#define GET_SID(s, v, lptr) ((v) = SSL_SESSION_get_id((s), (lptr)))
/* OpenSSL 1.1.0 bitrot */
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
typedef const unsigned char *session_id_t;
#else
@@ -370,7 +370,7 @@ TLS_APPL_STATE *tls_server_init(const TLS_SERVER_INIT_PROPS *props)
*/
tls_check_version();
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
/*
* Initialize the OpenSSL library by the book! To start with, we must
@@ -487,7 +487,7 @@ TLS_APPL_STATE *tls_server_init(const TLS_SERVER_INIT_PROPS *props)
* incomplete.
*/
#ifdef SSL_OP_NO_TICKET
-#ifndef OPENSSL_NO_TLSEXT
+#if !defined(OPENSSL_NO_TLSEXT) && OPENSSL_VERSION_NUMBER >= 0x0090808fL && !defined(LIBRESSL_VERSION_NUMBER)
ticketable = (*var_tls_tkt_cipher && scache_timeout > 0
&& !(off & SSL_OP_NO_TICKET));
if (ticketable) {
@@ -528,7 +528,7 @@ TLS_APPL_STATE *tls_server_init(const TLS_SERVER_INIT_PROPS *props)
SSL_CTX_set_options(server_ctx, off);
/* Enable all supported protocols */
-#if OPENSSL_VERSION_NUMBER >= 0x1010000fUL
+#if OPENSSL_VERSION_NUMBER >= 0x1010000fUL && !defined(LIBRESSL_VERSION_NUMBER)
SSL_CTX_set_min_proto_version(server_ctx, 0);
SSL_CTX_set_min_proto_version(sni_ctx, 0);
#endif
@@ -616,7 +616,7 @@ TLS_APPL_STATE *tls_server_init(const TLS_SERVER_INIT_PROPS *props)
/*
* 2015-12-05: Ephemeral RSA removed from OpenSSL 1.1.0-dev
*/
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
/*
* According to OpenSSL documentation, a temporary RSA key is needed when

85
postfix/postfix.initd Normal file
View File

@@ -0,0 +1,85 @@
#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
extra_started_commands="reload abort flush"
description_reload="Re-read configuration files. Running processes terminate at their earliest convenience."
description_abort="Stop the Postfix mail system abruptly. Running processes are signaled to stop immediately."
description_flush="Force delivery: attempt to deliver every message in the deferred mail queue."
# Please read http://www.postfix.org/MULTI_INSTANCE_README.html for multi instance support
CONF_DIR="/etc/postfix"
CONF_OPT="${SVCNAME##*.}"
if [ -n ${CONF_OPT} -a ${SVCNAME} != "postfix" ]; then
CONF_DIR="${CONF_DIR}.${CONF_OPT}"
fi
if [ "${CONF_DIR}" = "/etc/postfix" ]; then
CONF_PARAM=""
CONF_MESSAGE=""
else
CONF_PARAM="-c ${CONF_DIR}"
CONF_MESSAGE="(${CONF_DIR})"
fi
depend() {
use logger dns ypbind amavisd antivirus postfix_greylist net saslauthd
if [ "${SVCNAME}" = "postfix" ]; then
provide mta
fi
}
start() {
if [ ! -z "${CONF_PARAM}" ]; then
einfo "Please consider updating your config for postmulti support."
fi
ebegin "Starting postfix ${CONF_MESSAGE}"
if [ ! -d ${CONF_DIR} ]; then
eend 1 "${CONF_DIR} does not exist"
return 1
fi
/usr/sbin/postfix ${CONF_PARAM} start >/dev/null 2>&1
eend $?
}
stop() {
ebegin "Stopping postfix ${CONF_MESSAGE}"
/usr/sbin/postfix ${CONF_PARAM} stop >/dev/null 2>&1
eend
}
status() {
local _retval
einfon ""
/usr/sbin/postfix ${CONF_PARAM} status
_retval=$?
if [ x${_retval} = 'x0' ]; then
mark_service_started "${SVCNAME}"
eend 0
else
mark_service_stopped "${SVCNAME}"
eend 3
fi
}
reload() {
ebegin "Reloading postfix ${CONF_MESSAGE}"
/usr/sbin/postfix ${CONF_PARAM} reload >/dev/null 2>&1
eend $?
}
abort() {
ebegin "Aborting postfix ${CONF_MESSAGE}"
if service_started "${SVCNAME}"; then
mark_service_stopped "${SVCNAME}"
fi
/usr/sbin/postfix ${CONF_PARAM} abort >/dev/null 2>&1
eend $?
}
flush() {
ebegin "Flushing postfix ${CONF_MESSAGE}"
/usr/sbin/postfix ${CONF_PARAM} flush >/dev/null 2>&1
eend $?
}

44
postfix/postfix.install Normal file
View File

@@ -0,0 +1,44 @@
post_install() {
if ! getent group postdrop &>/dev/null; then
groupadd -g 75 postdrop >/dev/null
fi
if ! getent group postfix &>/dev/null; then
groupadd -g 73 postfix >/dev/null
fi
if ! getent passwd postfix &>/dev/null; then
useradd -u 73 -d /var/spool/postfix -g postfix -G adm -s /bin/nologin postfix >/dev/null
fi
if ! groups postfix | grep adm &>/dev/null; then
gpasswd -a postfix adm >/dev/null
fi
postfix_shell=$(getent passwd postfix | cut -d: -f7)
if [ "$postfix_shell" != '/bin/nologin' ]; then
chsh -s /bin/nologin postfix &>/dev/null
fi
if [ ! -d /var/spool/postfix/public/pickup ]; then
mkfifo /var/spool/postfix/public/pickup
fi
}
post_upgrade() {
post_install
if [[ $(vercmp $2 3.0.0-3) -eq -1 ]]; then
echo '==> The postfix daemon binaries have moved.'
echo '==> Please restart postfix as soon as possible.'
elif [[ $(vercmp $2 3.0.1-1) -eq -1 ]]; then
echo '==> Several Postfix-internal protocols have changed.'
echo '==> Please restart postfix as soon as possible.'
fi
}
post_remove() {
if getent passwd postfix &>/dev/null; then
userdel postfix >/dev/null
fi
if getent group postfix &>/dev/null; then
groupdel postfix >/dev/null
fi
if getent group postdrop &>/dev/null; then
groupdel postdrop >/dev/null
fi
}

3
postfix/postfix.run Normal file
View File

@@ -0,0 +1,3 @@
#!/bin/sh
postfix check || exit 1
exec /usr/libexec/postfix/master -d