postfix/postfix.spec
2024-01-02 07:13:26 +00:00

688 lines
24 KiB
RPMSpec

%undefine _strict_symbol_defs_build
%{!?_hardened_build:%global _hardened_build 1}
%define postfix_config_dir %{_sysconfdir}/postfix
%define postfix_daemon_dir %{_libexecdir}/postfix
%define postfix_shlib_dir %{_libdir}/postfix
%define postfix_command_dir %{_sbindir}
%define postfix_queue_dir %{_var}/spool/postfix
%define postfix_data_dir %{_var}/lib/postfix
%define postfix_doc_dir %{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
%define postfix_sample_dir %{postfix_doc_dir}/samples
%define postfix_readme_dir %{postfix_doc_dir}/README_FILES
%global sslcert %{_sysconfdir}/pki/tls/certs/postfix.pem
%global sslkey %{_sysconfdir}/pki/tls/private/postfix.key
%global _privatelibs libpostfix-.+\.so.*
%global __provides_exclude ^(%{_privatelibs})$
%global __requires_exclude ^(%{_privatelibs})$
%global sasl_config_dir %{_sysconfdir}/sasl2
Name: postfix
Summary: Postfix Mail Transport Agent
Version: 3.8.4
Release: 1
Epoch: 2
URL: http://www.postfix.org
License: (IPL-1.0 and GPLv2+) or (EPL-2.0 and GPLv2+)
Source0: http://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
Source1: postfix-etc-init.d-postfix
Source2: postfix.service
Source3: postfix.aliasesdb
Source4: postfix-chroot-update
Source53: https://jimsun.linxnet.com/downloads/pflogsumm-1.1.5.tar.gz
Source100: postfix-sasl.conf
Source101: postfix-pam.conf
Patch1: postfix-3.2.0-config.patch
Patch2: postfix-3.1.0-files.patch
Patch3: postfix-3.1.0-alternatives.patch
Patch4: postfix-3.2.0-large-fs.patch
Patch5: pflogsumm-1.1.5-datecalc.patch
Patch6: pflogsumm-1.1.5-ipv6-warnings-fix.patch
Patch11: postfix-use-lmdb-by-default-instead-of-libdb.patch
Patch12: postfix-set-default_data_type-to-lmdb.patch
BuildRequires: lmdb-devel perl-generators pkgconfig zlib-devel systemd-units libicu-devel libnsl2-devel gcc m4 openldap-devel
BuildRequires: cyrus-sasl-devel pcre2-devel mariadb-connector-c-devel postgresql-devel sqlite-devel openssl-devel procps-ng
BuildRequires: chrpath findutils
Requires(post): systemd-sysv %{_sbindir}/alternatives %{_bindir}/openssl
Requires(pre): %{_sbindir}/groupadd %{_sbindir}/useradd
Requires(preun): %{_sbindir}/alternatives
%{?systemd_requires}
Requires: diffutils findutils %{name}-help
Provides: MTA smtpd smtpdaemon server(smtp)
Provides: %{name}-mysql %{name}-sqlite %{name}-ldap %{name}-pcre
Obsoletes: %{name}-mysql %{name}-sqlite %{name}-ldap %{name}-pcre
%description
Postfix is a Mail Transport Agent (MTA).
%package sysvinit
Summary: SysV initscript for postfix
BuildArch: noarch
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires(preun): chkconfig
Requires(post): chkconfig
%description sysvinit
This package contains the SysV initscript.
%package perl-scripts
Summary: Postfix utilities written in perl
Requires: %{name} = %{epoch}:%{version}-%{release}
Obsoletes: postfix < 2:2.5.5-2
Provides: postfix-pflogsumm = %{epoch}:%{version}-%{release}
Obsoletes: postfix-pflogsumm < 2:2.5.5-2
%description perl-scripts
This package contains perl scripts pflogsumm and qshape.
Pflogsumm is a log analyzer/summarizer for the Postfix MTA. It is
designed to provide an over-view of Postfix activity. Pflogsumm
generates summaries and, in some cases, detailed reports of mail
server traffic volumes, rejected and bounced email, and server
warnings, errors and panics.
qshape prints Postfix queue domain and age distribution.
%package pgsql
Summary: Postfix PostgreSQL map support
Requires: %{name} = %{epoch}:%{version}-%{release}
%description pgsql
This provides support for PostgreSQL maps in Postfix. If you plan to use
PostgreSQL maps with Postfix, you need this.
%package_help
%prep
%setup -qn %{name}-%{version}
%patch1 -p1 -b .config
%patch2 -p1 -b .files
%patch3 -p1 -b .alternatives
%patch4 -p1 -b .large-fs
%patch11 -p1
%patch12 -p1
sed -i \
's|^\(\s*#define\s\+DEF_SHLIB_DIR\s\+\)"/usr/lib/postfix"|\1"%{_libdir}/postfix"|' \
src/global/mail_params.h
sed -i -e "s/DB_VERSION_MAJOR == 6/DB_VERSION_MAJOR >= 6/" \
src/util/dict_db.c
gzip -dc %{SOURCE53} | tar xf -
pushd pflogsumm-1.1.5
%patch5 -p1 -b .datecalc
%patch6 -p1 -b .ipv6-warnings-fix
popd
sed -i makedefs -e '\@Linux\.@s|345|3456|'
sed -i src/util/sys_defs.h -e 's@defined(LINUX5)@defined(LINUX5) || defined(LINUX6)@'
for f in README_FILES/TLS_{LEGACY_,}README TLS_ACKNOWLEDGEMENTS; do
iconv -f iso8859-1 -t utf8 -o ${f}{_,} &&
touch -r ${f}{,_} && mv -f ${f}{_,}
done
%build
unset AUXLIBS AUXLIBS_LDAP AUXLIBS_LMDB AUXLIBS_PCRE AUXLIBS_MYSQL AUXLIBS_PGSQL AUXLIBS_SQLITE AUXLIBS_CDB
CCARGS="-fPIC"
AUXLIBS="-lnsl"
CCARGS="${CCARGS} -DHAS_LDAP -DLDAP_DEPRECATED=1 %{?with_sasl:-DUSE_LDAP_SASL}"
AUXLIBS_LDAP="-lldap -llber"
CCARGS="${CCARGS} -DHAS_LMDB"
AUXLIBS_LMDB="-llmdb"
CCARGS="${CCARGS} -DHAS_PCRE=2 `pcre2-config --cflags`"
AUXLIBS_PCRE="`pcre2-config --libs8`"
CCARGS="${CCARGS} -DHAS_MYSQL -I%{_includedir}/mysql"
AUXLIBS_MYSQL="-L%{_libdir}/mariadb -lmysqlclient -lm"
CCARGS="${CCARGS} -DHAS_PGSQL -I%{_includedir}/pgsql"
AUXLIBS_PGSQL="-lpq"
CCARGS="${CCARGS} -DHAS_SQLITE `pkg-config --cflags sqlite3`"
AUXLIBS_SQLITE="`pkg-config --libs sqlite3`"
CCARGS="${CCARGS} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I%{_includedir}/sasl"
AUXLIBS="${AUXLIBS} -L%{_libdir}/sasl2 -lsasl2"
if pkg-config openssl ; then
CCARGS="${CCARGS} -DUSE_TLS `pkg-config --cflags openssl`"
AUXLIBS="${AUXLIBS} `pkg-config --libs openssl`"
else
CCARGS="${CCARGS} -DUSE_TLS -I/usr/include/openssl"
AUXLIBS="${AUXLIBS} -lssl -lcrypto"
fi
CCARGS="${CCARGS} -DDEF_CONFIG_DIR=\\\"%{postfix_config_dir}\\\""
CCARGS="${CCARGS} $(getconf LFS_CFLAGS)"
CCARGS="${CCARGS} -DNO_DB"
LDFLAGS="%{?__global_ldflags} %{?_hardened_build:-Wl,-z,relro,-z,now}"
make -f Makefile.init makefiles shared=yes dynamicmaps=yes \
%{?_hardened_build:pie=yes} CCARGS="${CCARGS}" AUXLIBS="${AUXLIBS}" \
AUXLIBS_LDAP="${AUXLIBS_LDAP}" AUXLIBS_LMDB="${AUXLIBS_LMDB}" AUXLIBS_PCRE="${AUXLIBS_PCRE}" \
AUXLIBS_MYSQL="${AUXLIBS_MYSQL}" AUXLIBS_PGSQL="${AUXLIBS_PGSQL}" \
AUXLIBS_SQLITE="${AUXLIBS_SQLITE}" AUXLIBS_CDB="${AUXLIBS_CDB}"\
DEBUG="" SHLIB_RPATH="-Wl,-rpath,%{postfix_shlib_dir} $LDFLAGS" \
OPT="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-comment" \
POSTFIX_INSTALL_OPTS=-keep-build-mtime
%make_build
%install
mkdir -p %{buildroot}
for i in man1/mailq.1 man1/newaliases.1 man1/sendmail.1 man5/aliases.5 man8/smtpd.8; do
dest=$(echo $i | sed 's|\.[1-9]$|.postfix\0|')
mv man/$i man/$dest
sed -i "s|^\.so $i|\.so $dest|" man/man?/*.[1-9]
done
make non-interactive-package \
install_root=%{buildroot} \
config_directory=%{postfix_config_dir} \
meta_directory=%{postfix_config_dir} \
shlib_directory=%{postfix_shlib_dir} \
daemon_directory=%{postfix_daemon_dir} \
command_directory=%{postfix_command_dir} \
queue_directory=%{postfix_queue_dir} \
data_directory=%{postfix_data_dir} \
sendmail_path=%{postfix_command_dir}/sendmail.postfix \
newaliases_path=%{_bindir}/newaliases.postfix \
mailq_path=%{_bindir}/mailq.postfix \
mail_owner=postfix \
setgid_group=postdrop \
manpage_directory=%{_mandir} \
sample_directory=%{postfix_sample_dir} \
readme_directory=%{postfix_readme_dir} || exit 1
mkdir -p %{buildroot}%{_initrddir}
install -c %{SOURCE1} %{buildroot}%{_initrddir}/postfix
mkdir -p %{buildroot}%{_unitdir}
install -m 644 %{SOURCE2} %{buildroot}%{_unitdir}
install -m 755 %{SOURCE3} %{buildroot}%{postfix_daemon_dir}/aliasesdb
install -m 755 %{SOURCE4} %{buildroot}%{postfix_daemon_dir}/chroot-update
install -c auxiliary/rmail/rmail %{buildroot}%{_bindir}/rmail.postfix
for i in active bounce corrupt defer deferred flush incoming private saved maildrop public pid saved trace; do
mkdir -p %{buildroot}%{postfix_queue_dir}/$i
done
for i in smtp-sink smtp-source ; do
install -c -m 755 bin/$i %{buildroot}%{postfix_command_dir}/
install -c -m 755 man/man1/$i.1 %{buildroot}%{_mandir}/man1/
done
sed -i -r "s#(/man[158]/.*.[158]):f#\1.gz:f#" %{buildroot}%{postfix_config_dir}/postfix-files
cat %{buildroot}%{postfix_config_dir}/postfix-files
mkdir -p %{buildroot}%{sasl_config_dir}
install -m 644 %{SOURCE100} %{buildroot}%{sasl_config_dir}/smtpd.conf
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
install -m 644 %{SOURCE101} %{buildroot}%{_sysconfdir}/pam.d/smtp.postfix
mkdir -p %{buildroot}%{postfix_doc_dir}
cp -p COMPATIBILITY LICENSE TLS_ACKNOWLEDGEMENTS TLS_LICENSE %{buildroot}%{postfix_doc_dir}
mkdir -p %{buildroot}%{postfix_doc_dir}/examples{,/chroot-setup}
cp -pr examples/{qmail-local,smtpd-policy} %{buildroot}%{postfix_doc_dir}/examples
cp -p examples/chroot-setup/LINUX2 %{buildroot}%{postfix_doc_dir}/examples/chroot-setup
cp conf/{main,bounce}.cf.default %{buildroot}%{postfix_doc_dir}
sed -i 's#%{postfix_config_dir}\(/bounce\.cf\.default\)#%{postfix_doc_dir}\1#' %{buildroot}%{_mandir}/man5/bounce.5
rm -f %{buildroot}%{postfix_config_dir}/{TLS_,}LICENSE
find %{buildroot}%{postfix_doc_dir} -type f | xargs chmod 644
find %{buildroot}%{postfix_doc_dir} -type d | xargs chmod 755
install -c -m 644 pflogsumm-1.1.5/pflogsumm-faq.txt %{buildroot}%{postfix_doc_dir}/pflogsumm-faq.txt
install -c -m 644 pflogsumm-1.1.5/pflogsumm.1 %{buildroot}%{_mandir}/man1/pflogsumm.1
install -c pflogsumm-1.1.5/pflogsumm.pl %{buildroot}%{postfix_command_dir}/pflogsumm
mantools/srctoman - auxiliary/qshape/qshape.pl > qshape.1
install -c qshape.1 %{buildroot}%{_mandir}/man1/qshape.1
install -c auxiliary/qshape/qshape.pl %{buildroot}%{postfix_command_dir}/qshape
rm -f %{buildroot}%{postfix_config_dir}/aliases
mkdir -p %{buildroot}/usr/lib
pushd %{buildroot}/usr/lib
ln -sf ../sbin/sendmail.postfix .
popd
mkdir -p %{buildroot}%{_var}/lib/misc
touch %{buildroot}%{_var}/lib/misc/postfix.aliasesdb-stamp
for i in %{postfix_command_dir}/sendmail %{_bindir}/{mailq,newaliases,rmail} \
%{_sysconfdir}/pam.d/smtp /usr/lib/sendmail \
%{_mandir}/{man1/{mailq.1,newaliases.1},man5/aliases.5,man8/{sendmail.8,smtpd.8}}
do
touch %{buildroot}$i
done
chrpath -d %{buildroot}%{_libexecdir}/postfix/anvil
chrpath -d %{buildroot}%{_libexecdir}/postfix/postlogd
chrpath -d %{buildroot}%{_libexecdir}/postfix/spawn
chrpath -d %{buildroot}%{_libexecdir}/postfix/trivial-rewrite
chrpath -d %{buildroot}%{_sbindir}/postlock
chrpath -d %{buildroot}%{_sbindir}/postkick
chrpath -d %{buildroot}%{_sbindir}/postfix
chrpath -d %{buildroot}%{_sbindir}/postlog
chrpath -d %{buildroot}%{_sbindir}/postdrop
chrpath -d %{buildroot}%{_libdir}/postfix/*.so*
chrpath -d %{buildroot}%{_libexecdir}/postfix/smtp
chrpath -d %{buildroot}%{_libexecdir}/postfix/pipe
chrpath -d %{buildroot}%{_libexecdir}/postfix/master
chrpath -d %{buildroot}%{_libexecdir}/postfix/nqmgr
chrpath -d %{buildroot}%{_libexecdir}/postfix/scache
chrpath -d %{buildroot}%{_libexecdir}/postfix/cleanup
chrpath -d %{buildroot}%{_libexecdir}/postfix/postscreen
chrpath -d %{buildroot}%{_libexecdir}/postfix/error
chrpath -d %{buildroot}%{_libexecdir}/postfix/proxymap
chrpath -d %{buildroot}%{_libexecdir}/postfix/showq
chrpath -d %{buildroot}%{_libexecdir}/postfix/qmgr
chrpath -d %{buildroot}%{_libexecdir}/postfix/dnsblog
chrpath -d %{buildroot}%{_libexecdir}/postfix/flush
chrpath -d %{buildroot}%{_libexecdir}/postfix/local
chrpath -d %{buildroot}%{_libexecdir}/postfix/verify
chrpath -d %{buildroot}%{_libexecdir}/postfix/smtpd
chrpath -d %{buildroot}%{_libexecdir}/postfix/qmqpd
chrpath -d %{buildroot}%{_libexecdir}/postfix/virtual
chrpath -d %{buildroot}%{_libexecdir}/postfix/lmtp
chrpath -d %{buildroot}%{_libexecdir}/postfix/bounce
chrpath -d %{buildroot}%{_libexecdir}/postfix/tlsmgr
chrpath -d %{buildroot}%{_libexecdir}/postfix/oqmgr
chrpath -d %{buildroot}%{_libexecdir}/postfix/pickup
chrpath -d %{buildroot}%{_libexecdir}/postfix/discard
chrpath -d %{buildroot}%{_libexecdir}/postfix/tlsproxy
chrpath -d %{buildroot}%{_sbindir}/sendmail.postfix
chrpath -d %{buildroot}%{_sbindir}/smtp-source
chrpath -d %{buildroot}%{_sbindir}/postmap
chrpath -d %{buildroot}%{_sbindir}/postalias
chrpath -d %{buildroot}%{_sbindir}/postqueue
chrpath -d %{buildroot}%{_sbindir}/postcat
chrpath -d %{buildroot}%{_sbindir}/smtp-sink
chrpath -d %{buildroot}%{_sbindir}/postconf
chrpath -d %{buildroot}%{_sbindir}/postsuper
chrpath -d %{buildroot}%{_sbindir}/postmulti
mkdir -p %{buildroot}/etc/ld.so.conf.d
echo "%{_libdir}/postfix" > %{buildroot}/etc/ld.so.conf.d/%{name}-%{_arch}.conf
function split_file
{
grep "$1" "$3" >> "$3.d/$2" || :
sed -i "\|$1| d" "$3" || :
}
pushd %{buildroot}%{postfix_config_dir}
for map in mysql pgsql sqlite ldap lmdb pcre; do
rm -f dynamicmaps.cf.d/"$map" "postfix-files.d/$map"
split_file "^\s*$map\b" "$map" dynamicmaps.cf
sed -i "s|postfix-$map\\.so|%{postfix_shlib_dir}/\\0|" "dynamicmaps.cf.d/$map"
split_file "^\$shlib_directory/postfix-$map\\.so:" "$map" postfix-files
split_file "^\$manpage_directory/man5/${map}_table\\.5" "$map" postfix-files
map_upper=`echo $map | tr '[:lower:]' '[:upper:]'`
split_file "^\$readme_directory/${map_upper}_README:" "$map" postfix-files
done
popd
%post -e
%systemd_post %{name}.service
/sbin/ldconfig
%{_sbindir}/postfix set-permissions upgrade-configuration \
daemon_directory=%{postfix_daemon_dir} \
command_directory=%{postfix_command_dir} \
mail_owner=postfix \
setgid_group=postdrop \
manpage_directory=%{_mandir} \
sample_directory=%{postfix_sample_dir} \
readme_directory=%{postfix_readme_dir} &> /dev/null
ALTERNATIVES_DOCS=""
[ "%%{_excludedocs}" = 1 ] || ALTERNATIVES_DOCS='--slave %{_mandir}/man1/mailq.1.gz mta-mailqman %{_mandir}/man1/mailq.postfix.1.gz
--slave %{_mandir}/man1/newaliases.1.gz mta-newaliasesman %{_mandir}/man1/newaliases.postfix.1.gz
--slave %{_mandir}/man5/aliases.5.gz mta-aliasesman %{_mandir}/man5/aliases.postfix.5.gz
--slave %{_mandir}/man8/sendmail.8.gz mta-sendmailman %{_mandir}/man1/sendmail.postfix.1.gz
--slave %{_mandir}/man8/smtpd.8.gz mta-smtpdman %{_mandir}/man8/smtpd.postfix.8.gz'
%{_sbindir}/alternatives --install %{postfix_command_dir}/sendmail mta %{postfix_command_dir}/sendmail.postfix 60 \
--slave %{_bindir}/mailq mta-mailq %{_bindir}/mailq.postfix \
--slave %{_bindir}/newaliases mta-newaliases %{_bindir}/newaliases.postfix \
--slave %{_sysconfdir}/pam.d/smtp mta-pam %{_sysconfdir}/pam.d/smtp.postfix \
--slave %{_bindir}/rmail mta-rmail %{_bindir}/rmail.postfix \
--slave /usr/lib/sendmail mta-sendmail /usr/lib/sendmail.postfix \
$ALTERNATIVES_DOCS \
--initscript postfix
if [ -f %{_libdir}/sasl2/smtpd.conf ]; then
mv -f %{_libdir}/sasl2/smtpd.conf %{sasl_config_dir}/smtpd.conf
/sbin/restorecon %{sasl_config_dir}/smtpd.conf 2> /dev/null
fi
if [ ! -f %{sslkey} ]; then
umask 077
%{_bindir}/openssl genrsa 4096 > %{sslkey} 2> /dev/null
fi
if [ ! -f %{sslcert} ]; then
if [ -x %{_bindir}/hostname ] ; then
FQDN=`hostname`
if [ "x${FQDN}" = "x" ]; then
FQDN=localhost.localdomain
fi
else
FQDN=localhost.localdomain
fi
%{_bindir}/openssl req -new -key %{sslkey} -x509 -sha256 -days 730 -set_serial $RANDOM -out %{sslcert} \
-subj "/C=--/ST=SomeState/L=SomeCity/O=SomeOrganization/OU=SomeOrganizationalUnit/CN=${FQDN}/emailAddress=root@${FQDN}"
chmod 644 %{sslcert}
fi
exit 0
%pre
%{_sbindir}/groupadd -g 90 -r postdrop 2>/dev/null
%{_sbindir}/groupadd -g 89 -r postfix 2>/dev/null
%{_sbindir}/groupadd -g 12 -r mail 2>/dev/null
%{_sbindir}/useradd -d %{postfix_queue_dir} -s /sbin/nologin -g postfix -G mail -M -r -u 89 postfix 2>/dev/null
if [ -e %{_mandir}/man8/smtpd.8.gz ]; then
[ -h %{_mandir}/man8/smtpd.8.gz ] || rm -f %{_mandir}/man8/smtpd.8.gz
fi
exit 0
%preun
%systemd_preun %{name}.service
if [ "$1" = 0 ]; then
%{_sbindir}/alternatives --remove mta %{postfix_command_dir}/sendmail.postfix
fi
exit 0
%postun
%systemd_postun_with_restart %{name}.service
/sbin/ldconfig
%post sysvinit
/sbin/chkconfig --add postfix >/dev/null 2>&1 ||:
%preun sysvinit
if [ "$1" = 0 ]; then
%{_initrddir}/postfix stop >/dev/null 2>&1 ||:
/sbin/chkconfig --del postfix >/dev/null 2>&1 ||:
fi
%postun sysvinit
[ "$1" -ge 1 ] && %{_initrddir}/postfix condrestart >/dev/null 2>&1 ||:
%triggerpostun -n postfix-sysvinit -- postfix < 2.8.12-2
/sbin/chkconfig --add postfix >/dev/null 2>&1 || :
%triggerun -- postfix < 2.8.12-2
%{_bindir}/systemd-sysv-convert --save postfix >/dev/null 2>&1 ||:
%{_bindir}/systemd-sysv-convert --apply postfix >/dev/null 2>&1 ||:
/sbin/chkconfig --del postfix >/dev/null 2>&1 || :
/bin/systemctl try-restart postfix.service >/dev/null 2>&1 || :
%files
%defattr(-,root,root)
%config(noreplace) %{sasl_config_dir}/smtpd.conf
%config(noreplace) %{_sysconfdir}/pam.d/smtp.postfix
%config(noreplace) /etc/ld.so.conf.d/*
%{_unitdir}/postfix.service
%{postfix_doc_dir}
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/active
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/bounce
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/corrupt
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/defer
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/deferred
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/flush
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/hold
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/incoming
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/saved
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/trace
%dir %attr(0730,postfix,postdrop) %{postfix_queue_dir}/maildrop
%dir %{postfix_queue_dir}/pid
%dir %attr(0700,postfix,root) %{postfix_queue_dir}/private
%dir %attr(0710,postfix,postdrop) %{postfix_queue_dir}/public
%dir %attr(0700,postfix,root) %{postfix_data_dir}
%{postfix_command_dir}/smtp-sink
%{postfix_command_dir}/smtp-source
%{postfix_command_dir}/postalias
%{postfix_command_dir}/postcat
%{postfix_command_dir}/postconf
%{postfix_command_dir}/postfix
%{postfix_command_dir}/postkick
%{postfix_command_dir}/postlock
%{postfix_command_dir}/postlog
%{postfix_command_dir}/postmap
%{postfix_command_dir}/postmulti
%{postfix_command_dir}/postsuper
%attr(2755,root,postdrop) %{postfix_command_dir}/postqueue
%attr(2755,root,postdrop) %{postfix_command_dir}/postdrop
%config(noreplace) %{postfix_config_dir}/access
%config(noreplace) %{postfix_config_dir}/canonical
%config(noreplace) %{postfix_config_dir}/generic
%config(noreplace) %{postfix_config_dir}/header_checks
%config(noreplace) %{postfix_config_dir}/relocated
%config(noreplace) %{postfix_config_dir}/transport
%config(noreplace) %{postfix_config_dir}/virtual
%config(noreplace) %{postfix_config_dir}/main.cf
%config(noreplace) %{postfix_config_dir}/master.cf
%config(noreplace) %{postfix_config_dir}/main.cf.proto
%config(noreplace) %{postfix_config_dir}/master.cf.proto
%{postfix_config_dir}/postfix-files
%{postfix_config_dir}/dynamicmaps.cf
%{postfix_config_dir}/dynamicmaps.cf.d/sqlite
%{postfix_config_dir}/postfix-files.d/sqlite
%{postfix_config_dir}/dynamicmaps.cf.d/ldap
%{postfix_config_dir}/postfix-files.d/ldap
%{postfix_config_dir}/dynamicmaps.cf.d/pcre
%{postfix_config_dir}/postfix-files.d/pcre
%{postfix_config_dir}/dynamicmaps.cf.d/mysql
%{postfix_config_dir}/postfix-files.d/mysql
%{postfix_shlib_dir}/postfix-pcre.so
%{postfix_shlib_dir}/postfix-ldap.so
%{postfix_shlib_dir}/postfix-mysql.so
%{postfix_shlib_dir}/postfix-sqlite.so
%{postfix_shlib_dir}/libpostfix-*.so
%{postfix_daemon_dir}/*
%{_bindir}/mailq.postfix
%{_bindir}/newaliases.postfix
%{_bindir}/rmail.postfix
%{_sbindir}/sendmail.postfix
/usr/lib/sendmail.postfix
%attr(0644, root, root) %{postfix_config_dir}/dynamicmaps.cf.d/lmdb
%attr(0644, root, root) %{postfix_config_dir}/postfix-files.d/lmdb
%attr(0755, root, root) %{postfix_shlib_dir}/postfix-lmdb.so
%ghost %{_sysconfdir}/pam.d/smtp
%ghost %attr(0755, root, root) %{_bindir}/mailq
%ghost %attr(0755, root, root) %{_bindir}/newaliases
%ghost %attr(0755, root, root) %{_bindir}/rmail
%ghost %attr(0755, root, root) %{_sbindir}/sendmail
%ghost %attr(0755, root, root) %{_prefix}/lib/sendmail
%ghost %attr(0644, root, root) %{_var}/lib/misc/postfix.aliasesdb-stamp
%exclude %{postfix_doc_dir}/pflogsumm-faq.txt
%exclude %{postfix_doc_dir}/README_FILES/*
%exclude %{_mandir}/man5/*_table.5*
%files sysvinit
%defattr(-,root,root)
%{_initrddir}/postfix
%files perl-scripts
%defattr(-,root,root)
%{postfix_command_dir}/qshape
%{postfix_command_dir}/pflogsumm
%files pgsql
%defattr(-,root,root)
%{postfix_config_dir}/dynamicmaps.cf.d/pgsql
%{postfix_config_dir}/postfix-files.d/pgsql
%{postfix_shlib_dir}/postfix-pgsql.so
%files help
%defattr(-,root,root)
%{_mandir}/man1/qshape*
%{_mandir}/man1/pflogsumm.1.gz
%{_mandir}/man1/post*.1*
%{_mandir}/man1/smtp*.1*
%{_mandir}/man1/*.postfix.1*
%{_mandir}/man5/access.5*
%{_mandir}/man5/[b-v]*.5*
%{_mandir}/man5/*.postfix.5*
%{_mandir}/man8/[a-qt-v]*.8*
%{_mandir}/man8/s[ch-lnp]*.8*
%{_mandir}/man8/smtp.8*
%{_mandir}/man8/smtpd.postfix.8*
%ghost %{_mandir}/man1/mailq.1.gz
%ghost %{_mandir}/man1/newaliases.1.gz
%ghost %{_mandir}/man5/aliases.5.gz
%ghost %{_mandir}/man8/sendmail.8.gz
%ghost %{_mandir}/man8/smtpd.8.gz
%doc %{postfix_doc_dir}/pflogsumm-faq.txt
%{postfix_doc_dir}/README_FILES/*
%changelog
* Tue Jan 02 2024 gaihuiying <eaglegai@163.com> - 2:3.8.4-1
- Type:requirements
- ID:NA
- SUG:NA
- DESC:update postfix to 3.8.4
* Mon Aug 28 2023 gaihuiying <eaglegai@163.com> - 2:3.8.1-2
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:strip for smtp qmgr
* Tue Jul 25 2023 gaihuiying <eaglegai@163.com> - 2:3.8.1-1
- Type:requirements
- ID:NA
- SUG:NA
- DESC:update postfix to 3.8.1
* Tue Jun 13 2023 zhouyihang <zhouyihang3@h-partners.com> - 2:3.7.4-2
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:add require of help to fix empty symlink
* Sat Mar 11 2023 xinghe <xinghe2@h-partners.com> - 2:3.7.4-1
- Type:requirements
- ID:NA
- SUG:NA
- DESC:update postfix to 3.7.4
* Fri Mar 10 2023 gaihuiying <eaglegai@163.com> - 2:3.7.2-4
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:modify Certificate validity period
* Fri Sep 30 2022 Funda Wang <fundawang@yeah.net> - 2:3.7.2-3
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:detect if hostname is executable before executing it
* Tue Sep 13 2022 xingwei <xingwei14@h-partners.com> - 2:3.7.2-2
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:remove runpath of files
* Mon Jul 04 2022 gaihuiying <eaglegai@163.com> - 2:3.7.2-1
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:update postfix to 3.7.2
switch from pcre to pcre2
* Thu Mar 03 2022 gaihuiying <eaglegai@163.com> - 2:3.3.1-19
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:set default_data_tpye to lmdb
* Tue Mar 01 2022 zhujunhao<zhujunhao11@huawei.com> - 2:3.3.1-18
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:set lmdb db in main.cf
* Tue Mar 01 2022 zhouyihang<zhouyihang3@h-partners.com> - 2:3.3.1-17
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:add build require of lmdb
* Wed Feb 23 2022 xihaochen<xihaochen@h-partner.com> - 2:3.3.1-16
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:remove libdb dependency
* Tue Sep 07 2021 gaihuiying <gaihuiying1@huawei.com> - 2:3.3.1-15
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:remove runpath of files
* Tue Aug 10 2021 gaihuiying <gaihuiying1@huawei.com> - 2:3.3.1-14
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix build error with glibc 2.34
* Fri Jul 30 2021 gaihuiying <gaihuiying1@huawei.com> - 2:3.3.1-13
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix build error with gcc 10
* Fri Feb 05 2021 caodongxia <caodongxia@huawei.com> - 2:3.3.1-12
- Decouple the deprecated package tinycdb by removing subpackage postfix-cdb
* Thu Jul 30 2020 gaihuiying <gaihuiying1@huawei.com> - 2:3.3.1-11
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix build fail with glibc new version
* Wed Dec 25 2019 openEuler Buildteam <buildteam@openeuler.org> - 2:3.3.1-10
- change permission of files
* Sat Dec 21 2019 openEuler Buildteam <buildteam@openeuler.org> - 2:3.3.1-9
- Type:bugfix
- ID:NA
- SUG:NA
- DESC:fix postfix build failed
* Tue Dec 3 2019 openEuler Buildteam <buildteam@openeuler.org> - 2:3.3.1-8
- Type:NA
- ID:NA
- SUG:NA
- DESC:optimize the spec file
* Tue Oct 29 2019 openEuler Buildteam <buildteam@openeuler.org> - 2:3.3.1-7
- Type:NA
- ID:NA
- SUG:NA
- DESC:Solve the problem of compilation failures
* Wed Sep 18 2019 openEuler Buildteam <buildteam@openeuler.org> - 2:3.3.1-6
- Package init