Dirk Mueller
f31762c30a
- bnc#981097 config.postfix creates broken main.cf for tls client configuration - bnc#981099 /etc/sysconfig/postfix: POSTFIX_SMTP_TLS_CLIENT incomplete - update to 3.1.1: - The new address_verify_pending_request_limit parameter introduces a safety limit for the number of address verification probes in the active queue. The default limit is 1/4 of the active queue maximum size. The queue manager enforces the limit by tempfailing probe messages that exceed the limit. This design avoids dependencies on global counters that get out of sync after a process or system crash. - Machine-readable, JSON-formatted queue listing with "postqueue -j" (no "mailq" equivalent). - The milter_macro_defaults feature provides an optional list of macro name=value pairs. These specify default values for Milter macros when no value is available from the SMTP session context. - Support to enforce a destination-independent delay between email deliveries. The following example inserts 20 seconds of delay between all deliveries with the SMTP transport, limiting the delivery rate to at most three messages per minute. smtp_transport_rate_delay = 20s - Historically, the default setting "postscreen_dnsbl_ttl = 1h" assumes that a "not found" result from a DNSBL server will be valid for one hour. This may have been adequate five years ago when postscreen was first implemented, but nowadays, that one hour can result in missed opportunities to block new spambots. To address this, postscreen now respects the TTL of DNSBL "not found" replies, as well as the TTL of DNSWL replies (both "found" and "not found"). The TTL for a "not found" reply is determined according to RFC 2308 (the TTL of an SOA record in the reply). Support for DNSBL or DNSWL reply TTL values is controlled by two OBS-URL: https://build.opensuse.org/request/show/397601 OBS-URL: https://build.opensuse.org/package/show/server:mail/postfix?expand=0&rev=235
663 lines
25 KiB
RPMSpec
663 lines
25 KiB
RPMSpec
#
|
|
# spec file for package postfix
|
|
#
|
|
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%if 0%{?suse_version} >= 1320 || ( 0%{?suse_version} == 1315 && 0%{?is_opensuse} )
|
|
%bcond_without lmdb
|
|
%else
|
|
%bcond_with lmdb
|
|
%endif
|
|
|
|
#
|
|
# Some defines
|
|
#
|
|
%define pf_docdir %{_docdir}/%{name}-doc
|
|
%define pf_config_directory %{_sysconfdir}/%{name}
|
|
%define pf_daemon_directory /usr/lib/%{name}
|
|
%define _libexecdir /usr/lib
|
|
%define pf_command_directory %{_prefix}/sbin
|
|
%define pf_queue_directory var/spool/%{name}
|
|
%define pf_sendmail_path %{_sbindir}/sendmail
|
|
%define pf_newaliases_path %{_bindir}/newaliases
|
|
%define pf_mailq_path %{_bindir}/mailq
|
|
%define pf_setgid_group maildrop
|
|
%define pf_readme_directory %{_docdir}/%{name}-doc/README_FILES
|
|
%define pf_html_directory %{_docdir}/%{name}-doc/html
|
|
%define pf_sample_directory %{_docdir}/%{name}-doc/samples
|
|
%define pf_data_directory %{_localstatedir}/lib/%{name}
|
|
%define pf_uid 51
|
|
%define pf_gid 51
|
|
%define maildrop_gid 59
|
|
%define mail_gid 12
|
|
%define conf_backup_dir %{_localstatedir}/adm/backup/%{name}
|
|
%define omc_pdir %{_datadir}/omc/
|
|
%define omc_dir %{_datadir}/omc/svcinfo.d/
|
|
#
|
|
%define vmusr vmail
|
|
%define vmgid 303
|
|
%define vmid 303
|
|
%define vmdir /srv/maildirs
|
|
#
|
|
# ---------------------------------------------------------------------------
|
|
%if 0%{?suse_version} > 1220
|
|
%define _unitdir %{_libexecdir}/systemd
|
|
%else
|
|
%define _unitdir /lib/systemd
|
|
%endif
|
|
Name: postfix
|
|
Version: 3.1.1
|
|
Release: 0
|
|
Summary: A fast, secure, and flexible mailer
|
|
License: IPL-1.0
|
|
Group: Productivity/Networking/Email/Servers
|
|
Url: http://www.postfix.org/
|
|
#Source: http://www.artfiles.org/postfix.org/postfix-release/official/postfix-%{version}.tar.gz
|
|
Source: postfix-%{version}.tar.gz
|
|
Source2: %{name}-SuSE.tar.gz
|
|
Source3: %{name}-mysql.tar.bz2
|
|
Source10: %{name}-rpmlintrc
|
|
Source11: check_mail_queue
|
|
Patch1: %{name}-no-md5.patch
|
|
Patch2: pointer_to_literals.patch
|
|
Patch3: ipv6_disabled.patch
|
|
Patch4: %{name}-main.cf.patch
|
|
Patch5: %{name}-master.cf.patch
|
|
Patch6: %{name}-post-install.patch
|
|
Patch7: %{name}-ssl-release-buffers.patch
|
|
Patch8: %{name}-vda-v13-3.10.0.patch
|
|
|
|
BuildRequires: cyrus-sasl-devel
|
|
BuildRequires: db-devel
|
|
BuildRequires: libopenssl-devel
|
|
%if %{with lmdb}
|
|
BuildRequires: lmdb-devel
|
|
%endif
|
|
BuildRequires: libicu-devel
|
|
BuildRequires: mysql-devel
|
|
BuildRequires: openldap2-devel
|
|
BuildRequires: pcre-devel
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: postgresql-devel
|
|
Requires: iproute2
|
|
Requires(pre): permissions
|
|
Requires(pre): %insserv_prereq
|
|
Requires(pre): %fillup_prereq
|
|
Provides: smtp_daemon
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
Conflicts: sendmail exim
|
|
%if 0%{?suse_version} > 1130
|
|
Requires(pre): sysvinit(network)
|
|
Requires(pre): sysvinit(syslog)
|
|
%endif
|
|
%if 0%{?suse_version} >= 1100
|
|
BuildRequires: fdupes
|
|
%endif
|
|
%if 0%{?suse_version} > 1210
|
|
BuildRequires: systemd
|
|
%{?systemd_requires}
|
|
%else
|
|
Requires(pre): %insserv_prereq %fillup_prereq
|
|
Requires(pre): %{_bindir}/getent
|
|
Requires(pre): pwdutils
|
|
Requires(pre): /bin/awk
|
|
Requires(pre): /bin/grep
|
|
Requires(pre): /bin/sed
|
|
Requires(pre): fileutils
|
|
Requires(pre): netcfg
|
|
Requires(pre): pcre
|
|
Requires(pre): sh-utils
|
|
Requires(pre): textutils
|
|
%endif
|
|
|
|
%description
|
|
Postfix aims to be an alternative to the widely-used sendmail program.
|
|
|
|
%package devel
|
|
Summary: Development headers for the postfix package
|
|
Group: Development/Libraries/C and C++
|
|
Requires(pre): %{name} = %{version}
|
|
|
|
%description devel
|
|
Postfix aims to be an alternative to the widely-used sendmail program.
|
|
|
|
%package doc
|
|
Summary: Documentations for the postfix package
|
|
Group: Productivity/Networking/Email/Servers
|
|
%if 0%{?suse_version} >= 1120
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description doc
|
|
Postfix aims to be an alternative to the widely-used sendmail program.
|
|
This package contains the documentation for %{name}
|
|
|
|
%package mysql
|
|
Summary: Postfix plugin to support MySQL maps
|
|
Group: Productivity/Networking/Email/Servers
|
|
Requires(pre): %{name} = %{version}
|
|
|
|
%description mysql
|
|
Postfix plugin to support MySQL maps. This library will be loaded by
|
|
starting %{name} if you'll access a postmap which is stored in mysql.
|
|
|
|
%package postgresql
|
|
Summary: Postfix plugin to support PostgreSQL maps
|
|
Group: Productivity/Networking/Email/Servers
|
|
Requires(pre): %{name} = %{version}
|
|
|
|
%description postgresql
|
|
Postfix plugin to support PostgreSQL maps. This library will be loaded
|
|
by starting %{name} if you'll access a postmap which is stored in
|
|
PostgreSQL.
|
|
|
|
%if %{with lmdb}
|
|
%package lmdb
|
|
Summary: Postfix plugin to support LMDB maps
|
|
Group: Productivity/Networking/Email/Servers
|
|
Requires(pre): %{name} = %{version}
|
|
|
|
%description lmdb
|
|
Postfix plugin to support LMDB maps. This library will be loaded
|
|
by starting %{name} if you'll access a postmap which is stored in
|
|
PostgreSQL.
|
|
%endif
|
|
|
|
%prep
|
|
%setup -q -a 2 -a 3
|
|
%patch1 -p1
|
|
%patch2 -p1
|
|
%patch3
|
|
%patch4
|
|
%patch5
|
|
%patch6
|
|
%patch7
|
|
%patch8 -p1
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%build
|
|
unset AUXLIBS AUXLIBS_LDAP AUXLIBS_PCRE AUXLIBS_MYSQL AUXLIBS_PGSQL AUXLIBS_SQLITE AUXLIBS_CDB
|
|
|
|
export CCARGS="${CCARGS} %{optflags} -Wno-comments -Wno-missing-braces -fPIC"
|
|
%ifarch s390 s390x ppc
|
|
export CCARGS="${CCARGS} -fsigned-char"
|
|
%endif
|
|
#
|
|
if pkg-config openssl ; then
|
|
export CCARGS="${CCARGS} -DUSE_TLS $(pkg-config --cflags openssl)"
|
|
export AUXLIBS="$AUXLIBS $(pkg-config --libs openssl)"
|
|
else
|
|
export CCARGS="${CCARGS} -DUSE_TLS"
|
|
export AUXLIBS="${AUXLIBS} -lssl -lcrypto"
|
|
fi
|
|
#
|
|
export CCARGS="${CCARGS} -DHAS_LDAP -DLDAP_DEPRECATED=1 -DUSE_LDAP_SASL"
|
|
export AUXLIBS_LDAP="-lldap -llber"
|
|
#
|
|
export CCARGS="${CCARGS} -DHAS_PCRE"
|
|
export AUXLIBS_PCRE="-lpcre"
|
|
#
|
|
export CCARGS="${CCARGS} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I%{_includedir}/sasl"
|
|
if pkg-config libsasl2 ; then
|
|
export AUXLIBS="$AUXLIBS $(pkg-config --libs libsasl2)"
|
|
else
|
|
export AUXLIBS="$AUXLIBS -lsasl2"
|
|
fi
|
|
#
|
|
export CCARGS="${CCARGS} -DHAS_MYSQL $(mysql_config --cflags)"
|
|
export AUXLIBS_MYSQL="$(mysql_config --libs)"
|
|
#
|
|
export CCARGS="${CCARGS} -DHAS_PGSQL -I$(pg_config --includedir)"
|
|
export AUXLIBS_PGSQL="-lpq"
|
|
#
|
|
%if %{with lmdb}
|
|
export CCARGS="${CCARGS} -DHAS_LMDB -I/usr/local/include" \
|
|
export AUXLIBS_LMDB="-llmdb"
|
|
%endif
|
|
#
|
|
# TODO
|
|
#export AUXLIBS_SQLITE
|
|
#export AUXLIBS_CDB
|
|
#export AUXLIBS_SDBM
|
|
|
|
export PIE=-pie
|
|
make makefiles pie=yes shared=yes dynamicmaps=yes \
|
|
shlib_directory=/usr/lib/postfix \
|
|
meta_directory=/usr/lib/postfix \
|
|
config_directory=/etc/postfix
|
|
make
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%install
|
|
groupadd -g %{pf_gid} -o -r %{name} 2> /dev/null || :
|
|
groupadd -g %{maildrop_gid} -o -r maildrop 2> /dev/null || :
|
|
useradd -r -o -g %{name} -u %{pf_uid} -s /bin/false -c "Postfix Daemon" -d /%{pf_queue_directory} %{name} 2> /dev/null || :
|
|
usermod -G %{maildrop_gid},%{mail_gid} %{name} 2> /dev/null || :
|
|
mkdir -p %{buildroot}/%{_libdir}
|
|
mkdir -p %{buildroot}/etc/postfix
|
|
cp conf/* %{buildroot}/etc/postfix/
|
|
cp lib/libpostfix-* %{buildroot}/%{_libdir}
|
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}/%{_libdir}
|
|
sh postfix-install -non-interactive \
|
|
install_root=%{buildroot} \
|
|
config_directory=%{pf_config_directory} \
|
|
daemon_directory=%{pf_daemon_directory} \
|
|
command_directory=%{pf_command_directory} \
|
|
queue_directory=/%{pf_queue_directory} \
|
|
sendmail_path=%{pf_sendmail_path} \
|
|
newaliases_path=%{pf_newaliases_path} \
|
|
mailq_path=%{pf_mailq_path} \
|
|
manpage_directory=%{_mandir} \
|
|
setgid_group=%{pf_setgid_group} \
|
|
readme_directory=%{pf_readme_directory} \
|
|
data_directory=%{pf_data_directory}
|
|
ln -sf ../sbin/sendmail %{buildroot}%{_libexecdir}/sendmail
|
|
for i in qmqp-source smtp-sink smtp-source; do
|
|
install -m 755 bin/$i %{buildroot}%{_sbindir}/$i
|
|
done
|
|
mkdir -p %{buildroot}%{_sysconfdir}/init.d
|
|
mkdir -p %{buildroot}/sbin/conf.d
|
|
mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
|
|
mkdir -p %{buildroot}/%{_libdir}/sasl2
|
|
mkdir -p %{buildroot}%{_prefix}/sbin
|
|
mkdir -p %{buildroot}/%{conf_backup_dir}
|
|
mkdir -p %{buildroot}/%{pf_sample_directory}
|
|
mkdir -p %{buildroot}/%{pf_html_directory}
|
|
mkdir -p %{buildroot}%{_includedir}/%{name}
|
|
mkdir -p %{buildroot}%{_sysconfdir}/pam.d
|
|
install -m 644 %{name}-SuSE/smtp %{buildroot}%{_sysconfdir}/pam.d/smtp
|
|
#mkdir samples
|
|
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
|
|
rm -f %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
|
|
sed -e 's;@lib@;%{_lib};g' %{name}-SuSE/sysconfig.%{name} > %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
|
|
install -m 644 %{name}-SuSE/sysconfig.mail-%{name} %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.mail-%{name}
|
|
sed -e 's;@lib@;%{_lib};g' \
|
|
-e 's;@conf_backup_dir@;%{conf_backup_dir};' \
|
|
-e 's;@daemon_directory@;%{pf_daemon_directory};' \
|
|
-e 's;@readme_directory@;%{pf_readme_directory};' \
|
|
-e 's;@html_directory@;%{pf_html_directory};' \
|
|
-e 's;@sendmail_path@;%{pf_sendmail_path};' \
|
|
-e 's;@setgid_group@;%{pf_setgid_group};' \
|
|
-e 's;@manpage_directory@;%{_mandir};' \
|
|
-e 's;@newaliases_path@;%{pf_newaliases_path};' \
|
|
-e 's;@sample_directory@;%{pf_sample_directory};' \
|
|
-e 's;@mailq_path@;%{pf_mailq_path};' %{name}-SuSE/config.%{name} > %{buildroot}%{_sbindir}/config.%{name}
|
|
chmod 755 %{buildroot}%{_sbindir}/config.%{name}
|
|
install -m 644 %{name}-SuSE/dynamicmaps.cf %{buildroot}%{_sysconfdir}/%{name}/dynamicmaps.cf
|
|
install -m 644 %{name}-SuSE/ldap_aliases.cf %{buildroot}%{_sysconfdir}/%{name}/ldap_aliases.cf
|
|
install -m 644 %{name}-SuSE/helo_access %{buildroot}%{_sysconfdir}/postfix/helo_access
|
|
install -m 644 %{name}-SuSE/permissions %{buildroot}%{_sysconfdir}/permissions.d/%{name}
|
|
install -m 644 %{name}-SuSE/sender_canonical %{buildroot}%{_sysconfdir}/%{name}/sender_canonical
|
|
install -m 644 %{name}-SuSE/relay %{buildroot}%{_sysconfdir}/postfix/relay
|
|
install -m 644 %{name}-SuSE/relay_ccerts %{buildroot}%{_sysconfdir}/%{name}/relay_ccerts
|
|
install -m 600 %{name}-SuSE/sasl_passwd %{buildroot}%{_sysconfdir}/%{name}/sasl_passwd
|
|
mkdir -p %{buildroot}%{_sysconfdir}/sasl2
|
|
install -m 600 %{name}-SuSE/smtpd.conf %{buildroot}%{_sysconfdir}/sasl2/smtpd.conf
|
|
install -m 644 %{name}-SuSE/openssl_%{name}.conf.in %{buildroot}%{_sysconfdir}/%{name}/openssl_%{name}.conf.in
|
|
install -m 755 %{name}-SuSE/mk%{name}cert %{buildroot}%{_sbindir}/mk%{name}cert
|
|
mkdir -p %{buildroot}/%{omc_dir}
|
|
install -m 644 %{name}-SuSE/%{name}.xml %{buildroot}/%{omc_dir}
|
|
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/
|
|
install -m 644 %{name}-SuSE/%{name}-fw %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/smtp
|
|
{
|
|
cat<<EOF
|
|
#
|
|
# -----------------------------------------------------------------------
|
|
# NOTE: Many parameters have already been added to the end of this file
|
|
# by config.postfix. So take care that you don't uncomment
|
|
# and set a parameter without checking whether it has been added
|
|
# to the end of this file.
|
|
# -----------------------------------------------------------------------
|
|
#
|
|
EOF
|
|
cat conf/main.cf
|
|
} > %{buildroot}%{_sysconfdir}/%{name}/main.cf
|
|
%{buildroot}%{_sbindir}/postconf -c %{buildroot}%{_sysconfdir}/%{name} \
|
|
-e "manpage_directory = %{_mandir}" \
|
|
"setgid_group = %{pf_setgid_group}" \
|
|
"mailq_path = %{pf_mailq_path}" \
|
|
"newaliases_path = %{pf_newaliases_path}" \
|
|
"sendmail_path = %{pf_sendmail_path}" \
|
|
"readme_directory = %{pf_readme_directory}" \
|
|
"html_directory = %{pf_html_directory}" \
|
|
"sample_directory = %{pf_sample_directory}" \
|
|
"daemon_directory = %{pf_daemon_directory}" \
|
|
"smtpd_helo_required = yes" \
|
|
"smtpd_delay_reject = yes" \
|
|
"disable_vrfy_command = yes" \
|
|
'smtpd_banner = $myhostname ESMTP'
|
|
#Set Permissions
|
|
install -m 644 %{name}-SuSE/%{name}-files %{buildroot}%{_libexecdir}/postfix/postfix-files
|
|
# postfix-mysql
|
|
install -m 644 %{name}-mysql/main.cf-mysql %{buildroot}%{_sysconfdir}/%{name}/main.cf-mysql
|
|
install -m 640 %{name}-mysql/*_maps.cf %{buildroot}%{_sysconfdir}/%{name}/
|
|
# create paranoid permissions file
|
|
printf '%%-38s %%-18s %%s\n' %{_sbindir}/postdrop "root.%{pf_setgid_group}" "0755" >> %{buildroot}%{_sysconfdir}/permissions.d/%{name}.paranoid
|
|
printf '%%-38s %%-18s %%s\n' %{_sbindir}/postqueue "root.%{pf_setgid_group}" "0755" >> %{buildroot}%{_sysconfdir}/permissions.d/%{name}.paranoid
|
|
install -m 644 include/*.h %{buildroot}%{_includedir}/%{name}/
|
|
# some rpmlint stuff
|
|
# remove unneeded examples/chroot-setup
|
|
for example in AIX42 BSDI* F* HPUX* IRIX* NETBSD1 NEXTSTEP3 OPENSTEP4 OSF1 Solaris*; do
|
|
rm examples/chroot-setup/${example}
|
|
done
|
|
cp -a examples/* %{buildroot}%{pf_sample_directory}
|
|
cp -a html/* %{buildroot}%{pf_html_directory}
|
|
cp -a auxiliary/ %{buildroot}%{pf_docdir}/
|
|
%if 0%{?suse_version} >= 1210
|
|
mkdir -p %{buildroot}%{_unitdir}/system
|
|
mkdir -p %{buildroot}%{_sysconfdir}/postfix/system
|
|
install -m 0644 %{name}-SuSE/postfix.service %{buildroot}%{_unitdir}/system/postfix.service
|
|
install -m 0755 %{name}-SuSE/config_postfix.systemd %{buildroot}%{_sysconfdir}/postfix/system/config_postfix
|
|
install -m 0755 %{name}-SuSE/update_chroot.systemd %{buildroot}%{_sysconfdir}/postfix/system/update_chroot
|
|
install -m 0755 %{name}-SuSE/update_postmaps.systemd %{buildroot}%{_sysconfdir}/postfix/system/update_postmaps
|
|
install -m 0755 %{name}-SuSE/wait_qmgr.systemd %{buildroot}%{_sysconfdir}/postfix/system/wait_qmgr
|
|
install -m 0755 %{name}-SuSE/cond_slp.systemd %{buildroot}%{_sysconfdir}/postfix/system/cond_slp
|
|
ln -sv %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
|
|
%else
|
|
install -m 755 %{name}-SuSE/rc.%{name} %{buildroot}%{_initddir}/%{name}
|
|
ln -s -f %{_initddir}/%{name} %{buildroot}%{_sbindir}/rc%{name}
|
|
%endif
|
|
%if 0%{?suse_version} >= 1100
|
|
%fdupes %{buildroot}%{pf_docdir}
|
|
%fdupes %{buildroot}%{_mandir}
|
|
%endif
|
|
# ---------------------------------------------------------------------------
|
|
install -m 755 %{SOURCE11} %{buildroot}%{_sbindir}/
|
|
|
|
%pre
|
|
%if 0%{?suse_version} > 1210
|
|
%service_add_pre %{name}.service
|
|
%endif
|
|
|
|
VERSIONTEST=$(test -x usr/sbin/postconf && usr/sbin/postconf proxy_read_maps 2>/dev/null || :)
|
|
if [ -z "$VERSIONTEST" -a -f %{pf_queue_directory}/pid/master.pid ]; then
|
|
if checkproc -p %{pf_queue_directory}/pid/master.pid usr/lib/%{name}/master; then
|
|
echo "%{name} is still running. You have to stop %{name} in order to"
|
|
echo "install a newer version."
|
|
exit 1
|
|
fi
|
|
fi
|
|
%{_sbindir}/groupadd -g %{pf_gid} -o -r %{name} 2> /dev/null || :
|
|
%{_sbindir}/groupadd -g %{maildrop_gid} -o -r maildrop 2> /dev/null || :
|
|
%{_sbindir}/useradd -r -o -g %{name} -u %{pf_uid} -s /bin/false -c "Postfix Daemon" -d /%{pf_queue_directory} %{name} 2> /dev/null || :
|
|
%{_sbindir}/usermod -G %{maildrop_gid},%{mail_gid} %{name} 2> /dev/null || :
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%pre mysql
|
|
#echo "PARAM_pre: "$1
|
|
# on `rpm -ivh` PARAM is 1
|
|
# on `rpm -Uvh` PARAM is 2
|
|
if [ "$1" = "1" ]; then
|
|
echo "Adding %{vmusr} user"
|
|
if [ -z "`getent group %{vmusr} 2>/dev/null`" ]; then
|
|
groupadd -r -g %{vmgid} %{vmusr}
|
|
fi
|
|
if [ -z "`getent passwd %{vmusr} 2>/dev/null`" ]; then
|
|
useradd -c "maildirs chef" -d %{vmdir} -g %{vmusr} -u %{vmid} -r -s /bin/false %{vmusr}
|
|
fi
|
|
fi
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%preun
|
|
%stop_on_removal %{name}
|
|
%if 0%{?suse_version} > 1210
|
|
%service_del_preun %{name}.service
|
|
%endif
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%preun mysql
|
|
#echo "PARAM_preun: "$1
|
|
# on `rpm -e` PARAM is 0
|
|
if [ "$1" = "0" ]; then
|
|
FILE=etc/%{name}/dynamicmaps.cf
|
|
if [ -e "$FILE" ] ; then
|
|
if grep -q "^mysql[[:space:]]" ${FILE}; then
|
|
echo "Removing mysql map entry from ${FILE}"
|
|
sed "/^mysql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \
|
|
cp --remove-destination ${FILE}.$$ ${FILE} && \
|
|
rm ${FILE}.$$
|
|
fi
|
|
else
|
|
echo "Can not find \"$FILE\". Not updating the file." >&2
|
|
fi
|
|
fi
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%preun postgresql
|
|
if [ "$1" = 0 ] ; then
|
|
FILE=etc/%{name}/dynamicmaps.cf
|
|
if [ -e "$FILE" ] ; then
|
|
if grep -q "^pgsql[[:space:]]" ${FILE}; then
|
|
echo "Removing pgsql map entry from ${FILE}"
|
|
sed "/^pgsql[[:space:]]/d" ${FILE} > ${FILE}.$$ && \
|
|
cp --remove-destination ${FILE}.$$ ${FILE} && \
|
|
rm ${FILE}.$$
|
|
fi
|
|
else
|
|
echo "Can not find \"$FILE\". Not updating the file." >&2
|
|
fi
|
|
fi
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%post
|
|
# We never have to run suseconfig for postfix after installation
|
|
# We only start postfix own upgrade-configuration by update
|
|
if [ ${1:-0} -gt 1 ]; then
|
|
touch %{_localstatedir}/adm/postfix.configured
|
|
# Check if main.cf and master.cf was changed manualy
|
|
MAINCH=0
|
|
if [ -e %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/main.cf ]; then
|
|
MD5SUM1=$( cat %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/main.cf )
|
|
MD5SUM2=$( grep -v "^#" %{_sysconfdir}/postfix/main.cf | md5sum )
|
|
if [ "$MD5SUM1" != "$MD5SUM2" ]; then
|
|
MAINCH=1
|
|
fi
|
|
fi
|
|
MASTERCH=0
|
|
if [ -e %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/master.cf ]; then
|
|
MD5SUM1=$( cat %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/master.cf )
|
|
MD5SUM2=$( grep -v "^#" %{_sysconfdir}/postfix/master.cf | md5sum )
|
|
if [ "$MD5SUM1" != "$MD5SUM2" ]; then
|
|
MASTERCH=1
|
|
fi
|
|
fi
|
|
echo "Executing upgrade-configuration."
|
|
%{_sbindir}/postfix set-permissions upgrade-configuration setgid_group=%{pf_setgid_group} || :
|
|
if [ $MASTERCH -eq 0 ]; then
|
|
test -e %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/master.cf && grep -v "^#" %{_sysconfdir}/postfix/master.cf | md5sum > %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/master.cf
|
|
fi
|
|
if [ $MAINCH -eq 0 ]; then
|
|
test -e %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/main.cf && grep -v "^#" %{_sysconfdir}/postfix/main.cf | md5sum > %{_localstatedir}/adm/SuSEconfig/md5%{_sysconfdir}/postfix/main.cf
|
|
fi
|
|
fi
|
|
%if 0%{?suse_version} > 1210
|
|
%service_add_post %{name}.service
|
|
|
|
%set_permissions %{_sbindir}/postqueue
|
|
%set_permissions %{_sbindir}/postdrop
|
|
%set_permissions %{_sysconfdir}/%{name}/sasl_passwd
|
|
%set_permissions %{_sbindir}/sendmail
|
|
|
|
%{fillup_only -y postfix}
|
|
%else
|
|
%{fillup_and_insserv -y postfix}
|
|
%endif
|
|
%{fillup_only -an mail}
|
|
/sbin/ldconfig
|
|
|
|
%if 0%{?suse_version} > 1210
|
|
%verifyscript
|
|
%verify_permissions -e %{_sbindir}/postqueue
|
|
%verify_permissions -e %{_sbindir}/postdrop
|
|
%verify_permissions -e %{_sysconfdir}/%{name}/sasl_passwd
|
|
%verify_permissions -e %{_sbindir}/sendmail
|
|
%{fillup_only postfix}
|
|
%else
|
|
%{fillup_and_insserv -y postfix}
|
|
%endif
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%postun
|
|
%restart_on_update %{name}
|
|
%insserv_cleanup
|
|
%if 0%{?suse_version} > 1210
|
|
%service_del_postun %{name}.service
|
|
%endif
|
|
/sbin/ldconfig
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%post postgresql
|
|
FILE=etc/%{name}/dynamicmaps.cf
|
|
if ! grep -q "^pgsql[[:space:]]" ${FILE}; then
|
|
echo "Adding pgsql map entry to ${FILE}"
|
|
echo "pgsql %{_libexecdir}/%{name}/dict_pgsql.so dict_pgsql_open" >> ${FILE}
|
|
fi
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%post mysql
|
|
FILE=etc/%{name}/dynamicmaps.cf
|
|
if ! grep -q "^mysql[[:space:]]" ${FILE}; then
|
|
echo "Adding mysql map entry to ${FILE}"
|
|
echo "mysql %{_libexecdir}/%{name}/dict_mysql.so dict_mysql_open" >> ${FILE}
|
|
fi
|
|
# ---------------------------------------------------------------------------
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc LICENSE
|
|
%config %{_sysconfdir}/pam.d/*
|
|
%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
|
|
%{_localstatedir}/adm/fillup-templates/sysconfig.mail-%{name}
|
|
%{_sbindir}/config.%{name}
|
|
%config(noreplace) %{omc_dir}/%{name}.xml
|
|
%dir %{_sysconfdir}/%{name}
|
|
%config %{_sysconfdir}/%{name}/main.cf.default
|
|
%config(noreplace) %{_sysconfdir}/%{name}/[^mysql]*[^mysql]
|
|
%config(noreplace) %{_sysconfdir}/%{name}/access
|
|
%config(noreplace) %{_sysconfdir}/%{name}/aliases
|
|
%config(noreplace) %{_sysconfdir}/%{name}/canonical
|
|
%config(noreplace) %{_sysconfdir}/%{name}/header_checks
|
|
%config(noreplace) %{_sysconfdir}/%{name}/helo_access
|
|
%config(noreplace) %{_sysconfdir}/%{name}/ldap_aliases.cf
|
|
%config(noreplace) %{_sysconfdir}/%{name}/main.cf
|
|
%config(noreplace) %{_sysconfdir}/%{name}/master.cf
|
|
%config(noreplace) %{_sysconfdir}/%{name}/post-install
|
|
%config(noreplace) %{_sysconfdir}/%{name}/postfix-files
|
|
%config(noreplace) %{_sysconfdir}/%{name}/relay
|
|
%config(noreplace) %{_sysconfdir}/%{name}/relay_ccerts
|
|
%config(noreplace) %{_sysconfdir}/%{name}/sasl_passwd
|
|
%config(noreplace) %{_sysconfdir}/%{name}/sender_canonical
|
|
%config(noreplace) %{_sysconfdir}/%{name}/virtual
|
|
|
|
%config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/smtp
|
|
%dir %{_sysconfdir}/sasl2/
|
|
%config(noreplace) %{_sysconfdir}/sasl2/smtpd.conf
|
|
%config %{_sysconfdir}/%{name}/LICENSE
|
|
%config %{_sysconfdir}/%{name}/TLS_LICENSE
|
|
%config %{_sysconfdir}/permissions.d/%{name}
|
|
%config %{_sysconfdir}/permissions.d/%{name}.paranoid
|
|
%attr(0644, root, root) %config %{_sysconfdir}/%{name}/makedefs.out
|
|
%{_libexecdir}/%{name}/%{name}-files
|
|
%if 0%{?suse_version} >= 1210
|
|
%dir %{_sysconfdir}/postfix/system
|
|
%config %attr(0755,root,root) %{_sysconfdir}/postfix/system/*
|
|
%config %{_unitdir}/system/postfix.service
|
|
%else
|
|
%config %attr(0755,root,root) %{_initddir}/%{name}
|
|
%endif
|
|
%verify(not mode) %attr(2755,root,%{pf_setgid_group}) %{_sbindir}/postdrop
|
|
%verify(not mode) %attr(2755,root,%{pf_setgid_group}) %{_sbindir}/postqueue
|
|
%{_bindir}/mailq
|
|
%{_bindir}/newaliases
|
|
%attr(0755,root,root) %{_sbindir}/sendmail
|
|
%attr(0755,root,root) %{_sbindir}/postalias
|
|
%attr(0755,root,root) %{_sbindir}/postcat
|
|
%attr(0755,root,root) %{_sbindir}/postconf
|
|
%attr(0755,root,root) %{_sbindir}/postfix
|
|
%attr(0755,root,root) %{_sbindir}/postkick
|
|
%attr(0755,root,root) %{_sbindir}/postlock
|
|
%attr(0755,root,root) %{_sbindir}/postlog
|
|
%attr(0755,root,root) %{_sbindir}/postmap
|
|
%attr(0755,root,root) %{_sbindir}/postmulti
|
|
%attr(0755,root,root) %{_sbindir}/postsuper
|
|
%attr(0755,root,root) %{_sbindir}/qmqp-source
|
|
%attr(0755,root,root) %{_sbindir}/smtp-sink
|
|
%attr(0755,root,root) %{_sbindir}/smtp-source
|
|
%attr(0755,root,root) %{_sbindir}/mkpostfixcert
|
|
%attr(0755,root,root) %{_sbindir}/check_mail_queue
|
|
%attr(0755,root,root) %{_sbindir}/config.postfix
|
|
%{_sbindir}/rc%{name}
|
|
%{_libdir}/lib*
|
|
%{_libexecdir}/sendmail
|
|
%dir %{_libexecdir}/%{name}
|
|
%{_libexecdir}/%{name}/*[^.so]
|
|
%{_libexecdir}/%{name}/postfix-ldap.so
|
|
%{_libexecdir}/%{name}/postfix-pcre.so
|
|
%{_libexecdir}/%{name}/libpostfix-dns.so
|
|
%{_libexecdir}/%{name}/libpostfix-global.so
|
|
%{_libexecdir}/%{name}/libpostfix-master.so
|
|
%{_libexecdir}/%{name}/libpostfix-tls.so
|
|
%{_libexecdir}/%{name}/libpostfix-util.so
|
|
%{_libexecdir}/%{name}/main.cf.proto
|
|
%{_libexecdir}/%{name}/master.cf.proto
|
|
|
|
%{conf_backup_dir}
|
|
%dir %attr(0700,%{name},root) %{pf_data_directory}
|
|
%{_mandir}/man?/*.gz
|
|
%dir %attr(0755,root,root) /%{pf_queue_directory}
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/active
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/bounce
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/corrupt
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/defer
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/deferred
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/flush
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/hold
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/incoming
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/private
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/saved
|
|
%dir %attr(0700,%{name},root) /%{pf_queue_directory}/trace
|
|
%dir %attr(0730,%{name},maildrop) /%{pf_queue_directory}/maildrop
|
|
%dir %attr(0710,%{name},maildrop) /%{pf_queue_directory}/public
|
|
|
|
%files devel
|
|
%defattr(-,root,root)
|
|
%{_includedir}/%{name}/
|
|
|
|
%files doc
|
|
%defattr(0644,root,root,0755)
|
|
%{pf_docdir}/
|
|
|
|
%files mysql
|
|
%defattr(-,root,root)
|
|
%doc %{name}-mysql/%{name}-mysql.sql
|
|
%config(noreplace) %attr(640, root, %{name}) %{_sysconfdir}/%{name}/*_maps.cf
|
|
%config(noreplace) %{_sysconfdir}/%{name}/main.cf-mysql
|
|
%{_libexecdir}/%{name}/postfix-mysql.so
|
|
|
|
%files postgresql
|
|
%defattr(-,root,root)
|
|
%{_libexecdir}/%{name}/postfix-pgsql.so
|
|
|
|
%if %{with lmdb}
|
|
%files lmdb
|
|
%defattr(-,root,root)
|
|
%{_libexecdir}/%{name}/postfix-lmdb.so
|
|
%endif
|
|
|
|
%changelog
|