aports/main/postfix/APKBUILD
2025-03-27 13:20:03 +01:00

200 lines
5.4 KiB
Text

# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=postfix
pkgver=3.10.1
pkgrel=1
pkgdesc="Secure and fast drop-in replacement for Sendmail (MTA)"
url="https://www.postfix.org/"
arch="all"
license="IPL-1.0 EPL-2.0"
makedepends="
coreutils
cyrus-sasl-dev
icu-dev
libpq-dev
linux-headers
lmdb-dev
m4
mariadb-connector-c-dev
openldap-dev
openssl-dev>3
pcre2-dev
perl
sqlite-dev
"
install="$pkgname.pre-install"
subpackages="
$pkgname-doc
$pkgname-openrc
$pkgname-ldap:_mv_dict
$pkgname-mysql:_mv_dict
$pkgname-pcre:_mv_dict
$pkgname-pgsql:_mv_dict
$pkgname-sqlite:_mv_dict
$pkgname-stone
"
options="!check suid" # No test suite.
pkgusers="postfix"
pkggroups="postfix postdrop"
source="https://de.postfix.org/ftpmirror/official/postfix-$pkgver.tar.gz
$pkgname.initd
postfix-install.patch
lmdb-default.patch
"
_shared_libs() {
file --mime-type "$@" | \
awk -F: '$2 ~ /sharedlib/ {print $1}'
}
prepare() {
default_prepare
sed -i -e "s|#define HAS_NIS|//#define HAS_NIS|g" \
-e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:/etc/postfix/aliases|" \
src/util/sys_defs.h
sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf
}
build() {
# needed for dynamic maps.
local ccargs="-DHAS_SHL_LOAD"
local auxlibs="$LDFLAGS"
# berkeley-db
ccargs="$ccargs -DNO_DB"
# pcre2
ccargs="$ccargs -DHAS_PCRE=2 $(pcre2-config --cflags)"
# ssl
ccargs="$ccargs -DUSE_TLS"
auxlibs="$auxlibs -lssl -lcrypto"
# dovecot-sasl
ccargs="$ccargs -DUSE_SASL_AUTH -DDEF_SASL_SERVER=\\\"dovecot\\\""
# cyrus sasl
ccargs="$ccargs -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl"
auxlibs="$auxlibs -lsasl2"
# postgresql
ccargs="$ccargs -DHAS_PGSQL $(pkg-config --cflags libpq)"
# mysql
ccargs="$ccargs -DHAS_MYSQL $(mysql_config --include)"
# ldap
ccargs="$ccargs -DHAS_LDAP -DUSE_LDAP_SASL"
# sqlite
ccargs="$ccargs -DHAS_SQLITE $(pkg-config --cflags sqlite3)"
# lmdb (make it default)
ccargs="$ccargs -DHAS_LMDB $(pkg-config --cflags lmdb) -DDEF_DB_TYPE=\\\"lmdb\\\""
# compile
make DEBUG="" \
OPT="$CFLAGS" \
CCARGS="$ccargs" \
AUXLIBS="$auxlibs" \
AUXLIBS_LDAP="-lldap -llber" \
AUXLIBS_MYSQL="$(mysql_config --libs)" \
AUXLIBS_PCRE="$(pkg-config --libs libpcre2-8)" \
AUXLIBS_PGSQL="$(pkg-config --libs libpq)" \
AUXLIBS_SQLITE="$(pkg-config --libs sqlite3)" \
AUXLIBS_LMDB="$(pkg-config --libs lmdb)" \
config_directory=/etc/postfix \
meta_directory=/etc/postfix \
daemon_directory=/usr/libexec/postfix \
shlib_directory=/usr/lib/postfix \
dynamicmaps=yes \
shared=yes \
makefiles
make OPT="$CFLAGS"
}
_mvline() {
local regex="$1"
local outfile="$3.d/$2"
local infile="$3"
sed -i -E -e "\|$regex|{
w $outfile
d
}" $infile
}
package() {
make non-interactive-package \
install_root="$pkgdir" \
readme_directory=/usr/share/doc/$pkgname/readme \
manpage_directory=/usr/share/man
# Install qshape auxiliary script
install -Dm644 man/man1/qshape.1 -t "$pkgdir"/usr/share/man/man1
install -Dm755 auxiliary/qshape/qshape.pl -t "$pkgdir"/usr/bin
for i in postdrop postqueue; do
chgrp postdrop "$pkgdir"/usr/sbin/$i
chmod g+s "$pkgdir"/usr/sbin/$i
done
mkdir -p "$pkgdir"/usr/share/doc/postfix/defaults/ \
"$pkgdir"/usr/share/licenses/$pkgname/
mv "$pkgdir"/etc/postfix/*.default \
"$pkgdir"/usr/share/doc/postfix/defaults/
mv "$pkgdir"/etc/postfix/*LICENSE* \
"$pkgdir"/usr/share/licenses/$pkgname/
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
chown postfix "$pkgdir"/var/spool/postfix/* "$pkgdir"/var/lib/postfix
chown root:postfix "$pkgdir"/var/spool/postfix/pid
chgrp postdrop "$pkgdir"/var/spool/postfix/maildrop \
"$pkgdir"/var/spool/postfix/public
cd "$pkgdir"/etc/postfix/
for map in ldap mysql pcre pgsql sqlite lmdb; do
msg "split $map"
_mvline "^\s*$map" "$map" dynamicmaps.cf
done
rm makedefs.out
# fix /etc/postfix/postfix-files so that "postfix set-permissions" can run
sed -i \
-e '/shlib_directory\/postfix-/d' \
-e '/meta_directory\/makedefs.out/d' \
-e '/manpage_directory/d' \
-e '/config_directory\/LICENSE/d' \
-e '/config_directory\/TLS_LICENSE/d' \
-e '/config_directory\/[^/]\+\.cf\.default/d' \
"$pkgdir"/etc/postfix/postfix-files
}
_mv_dict() {
local m=${subpkgname##*-}
pkgdesc="$m map support for postfix"
depends=
mkdir -p "$subpkgdir"/usr/lib/postfix \
"$subpkgdir"/etc/postfix/dynamicmaps.cf.d
mv "$pkgdir"/usr/lib/postfix/postfix-$m.so \
"$subpkgdir"/usr/lib/postfix/
mv "$pkgdir"/etc/postfix/dynamicmaps.cf.d/$m \
"$subpkgdir"/etc/postfix/dynamicmaps.cf.d/
}
stone() {
cd $builddir
pkgdesc="Postfix simulation and testing tools"
install -Dm755 src/fsstone/fsstone "$subpkgdir"/usr/bin/fsstone
find src/smtpstone -mindepth 1 -perm 0755 -exec cp {} "$subpkgdir"/usr/bin \;
}
sha512sums="
f977668a3475493c679884fb06e7b6aee33e082b2a828e63e1f67515907ded7b406468d2bb03685275b9cde50ac04c03415876119401d0ca45c5b28ca0277cfe postfix-3.10.1.tar.gz
2752e69c4e1857bdcf29444ffb458bca818bc60b9c77c20823c5f5b87c36cb5e0f3217a625a7fe5788d5bfcef7570a1f2149e1233fcd23ccf7ee14190aff47a2 postfix.initd
25cd34f23ca909d4e33aaf3239d1e397260abc7796d9a4456dee4f005682fd3a58aab8106126e5218c95bdddae415a3ef7e2223cd3b0d7b1e2bd76158bb7eaf8 postfix-install.patch
0769e2e503486f8dd6fa21f2c534ad7df7a9f1bb57dde2f0ad61863a3e615d0a6dc18132b27796eb28cd81afb2b4e97c65c9d490a391f835aa3b7b18e74252c5 lmdb-default.patch
"