%define postfix_uid 89 %define postfix_user postfix %define postfix_gid 89 %define postfix_group postfix %define maildrop_group postdrop %define maildrop_gid 90 %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 Name: postfix Summary: Postfix Mail Transport Agent Version: 3.7.2 Release: 1 URL: http://www.postfix.org License: (IBM and GPLv2+) or (EPL-2.0 and GPLv2+) Provides: MTA smtpd smtpdaemon server(smtp) Source0: postfix-3.7.2.tar.gz Source1: postfix-sasl.conf Patch0: postfix-3.7.2-makedefs.patch Patch1: postfix-3.7.2-sys_defs.patch Patch2: postfix-3.7.2-makefile.patch Patch3: postfix-3.7.2-create-archive.patch Patch4: postfix-3.7.2-config_dir.patch Patch5: postfix-3.7.2-postfix-files.patch Requires: libgcc >= 8.3.0 Requires: cyrus-sasl >= 2.1.28 %description Postfix is a Mail Transport Agent (MTA). %package sqlite Summary: Postfix SQLite map support Requires: %{name} = %{version}-%{release} Requires: libgcc >= 8.3.0 Requires: sqlite >= 3.37.2 %description sqlite This provides support for SQLite maps in Postfix. If you plan to use SQLite maps with Postfix, you need this. %package ldap Summary: Postfix LDAP map support Requires: %{name} = %{version}-%{release} Requires: libgcc >= 8.3.0 Requires: openldap >= 2.4.58 %description ldap This provides support for LDAP maps in Postfix. If you plan to use LDAP maps with Postfix, you need this. %package pcre Summary: Postfix PCRE map support Requires: %{name} = %{version}-%{release} Requires: libgcc >= 8.3.0 Requires: pcre >= 8.44 %description pcre This provides support for PCRE maps in Postfix. If you plan to use PCRE maps with Postfix, you need this. %prep %setup -q %patch0 %patch1 %patch2 %patch3 %patch4 %patch5 %build export OBJECT_MODE=64 CCARGS="${CCARGS} -DHAS_LDAP -DLDAP_DEPRECATED=1 -DUSE_LDAP_SASL -DHAS_PCRE -DHAS_SQLITE -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/opt/freeware/include/sasl -DUSE_TLS -I/usr/include/openssl -DHAS_DLOPEN -DHAS_SHL_LOAD -maix64" AUXLIBS_LDAP="-lldap -llber" AUXLIBS_PCRE="-lpcre" AUXLIBS_SQLITE="-lsqlite3" AUXLIBS="-lsasl2 -lssl -lcrypto" gmake -f Makefile.init makefiles shared=yes dynamicmaps=yes \ CC="gcc -maix64" \ CCARGS="${CCARGS}" AUXLIBS="${AUXLIBS}" \ AUXLIBS_LDAP="${AUXLIBS_LDAP}" AUXLIBS_PCRE="${AUXLIBS_PCRE}" \ AUXLIBS_SQLITE="${AUXLIBS_SQLITE}" SHLIB_SUFFIX=".so" SHLIB_RPATH="$LDFLAGS -Wl,-blibpath:/opt/freeware/lib/postfix:/opt/freeware/lib:/usr/lib:/lib" gmake %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} # install postfix into $RPM_BUILD_ROOT make non-interactive-package \ install_root=$RPM_BUILD_ROOT \ config_directory=%{_sysconfdir}/postfix \ meta_directory=%{_sysconfdir}/postfix \ shlib_directory=%{_libdir}/postfix \ daemon_directory=%{_libexecdir}/postfix \ command_directory=%{_sbindir} \ queue_directory=%{_prefix}/var/spool/postfix \ data_directory=%{_prefix}/var/lib/postfix \ sendmail_path=%{_sbindir}/sendmail.postfix \ newaliases_path=%{_bindir}/newaliases.postfix \ mailq_path=%{_bindir}/mailq.postfix \ mail_owner=%{postfix_user} \ setgid_group=%{maildrop_group} \ manpage_directory=%{_mandir} \ sample_directory=%{postfix_sample_dir} \ readme_directory=%{postfix_readme_dir} \ html_directory=no || exit 1 # Move stuff around so we don't conflict with sendmail cd $RPM_BUILD_ROOT%{_prefix} 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 cd - install -c auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail.postfix # install performance benchmark and test tools by hand for i in smtp-sink smtp-source posttls-finger ; do install -c -m 755 bin/$i $RPM_BUILD_ROOT%{_sbindir}/ install -c -m 755 man/man1/$i.1 $RPM_BUILD_ROOT%{_mandir}/man1/ done # Install the smtpd.conf file for SASL support. mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/sasl2 install -m 644 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/sasl2/smtpd.conf # create /usr/lib/sendmail mkdir -p $RPM_BUILD_ROOT%{_prefix}/lib cd $RPM_BUILD_ROOT%{_prefix}/lib ln -sf ../sbin/sendmail.postfix . cd - # helper for splitting content of dynamicmaps.cf and postfix-files function split_file { # "|| :" to silently skip non existent records grep "$1" "$3" >> "$3.d/$2" || : sed -i "\|$1| d" "$3" || : } # split global dynamic maps configuration to individual sub-packages cd $RPM_BUILD_ROOT%{_sysconfdir}/postfix for map in sqlite ldap pcre ;do rm -f dynamicmaps.cf.d/"$map" "postfix-files.d/$map" split_file "^\s*$map\b" "$map" dynamicmaps.cf 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 cd - %pre result=`/usr/sbin/lsgroup %{maildrop_group} | /usr/bin/awk '{ print $1 }' 2>/dev/null` if [[ "${result}" != "%{maildrop_group}" ]] ; then /usr/bin/mkgroup -A id=%{maildrop_gid} %{maildrop_group} 2> /dev/null || : fi result=`/usr/sbin/lsgroup %{postfix_group} | /usr/bin/awk '{ print $1 }' 2>/dev/null` if [[ "${result}" != "%{postfix_group}" ]] ; then /usr/bin/mkgroup -A id=%{postfix_gid} %{postfix_group} 2> /dev/null || : fi result=`/usr/sbin/lsgroup mail | /usr/bin/awk '{ print $1 }' 2>/dev/null` if [[ "${result}" != "mail" ]] ; then /usr/bin/mkgroup -A mail 2> /dev/null || : fi result=`/usr/sbin/lsuser %{postfix_user} | /usr/bin/awk '{ print $1 }' 2>/dev/null` if [[ "${result}" != "%{postfix_user}" ]] ; then /usr/bin/mkuser id=%{postfix_uid} login='false' rlogin='false' pgrp=%{postfix_group} home=%{_prefix}/var/spool/postfix groups=mail %{postfix_user} 2> /dev/null || : fi %preun if [ "$1" = "0" ]; then /usr/sbin/rmuser -p %{postfix_user} /usr/sbin/rmgroup %{maildrop_group} /usr/sbin/rmgroup %{postfix_group} /usr/sbin/rmgroup mail fi %files %defattr(-,root,system,-) %dir %{_sysconfdir}/postfix %dir %{_libexecdir}/postfix %dir %{_prefix}/var/spool/postfix %dir %{_libdir}/postfix %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/active %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/bounce %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/corrupt %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/defer %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/deferred %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/flush %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/hold %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/incoming %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/saved %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/trace %dir %attr(0730, %{postfix_user}, %{maildrop_group}) %{_prefix}/var/spool/postfix/maildrop %dir %{_prefix}/var/spool/postfix/pid %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/spool/postfix/private %dir %attr(0710, %{postfix_user}, %{maildrop_group}) %{_prefix}/var/spool/postfix/public %dir %attr(0700, %{postfix_user}, system) %{_prefix}/var/lib/postfix %dir %{_sysconfdir}/postfix/dynamicmaps.cf.d %dir %{_sysconfdir}/postfix/postfix-files.d %{_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* %{_sbindir}/smtp-sink %{_sbindir}/smtp-source %{_sbindir}/posttls-finger %{_sbindir}/postalias %{_sbindir}/postcat %{_sbindir}/postconf %attr(2755, root, %{maildrop_group}) %{_sbindir}/postdrop %{_sbindir}/postfix %{_sbindir}/postkick %{_sbindir}/postlock %{_sbindir}/postlog %{_sbindir}/postmap %{_sbindir}/postmulti %attr(2755, root, %{maildrop_group}) %{_sbindir}/postqueue %{_sbindir}/postsuper %config(noreplace) %{_sysconfdir}/postfix/access %config(noreplace) %{_sysconfdir}/postfix/canonical %config(noreplace) %{_sysconfdir}/postfix/generic %config(noreplace) %{_sysconfdir}/postfix/header_checks %config(noreplace) %{_sysconfdir}/postfix/main.cf %config(noreplace) %{_sysconfdir}/postfix/main.cf.proto %config(noreplace) %{_sysconfdir}/postfix/master.cf %config(noreplace) %{_sysconfdir}/postfix/master.cf.proto %config(noreplace) %{_sysconfdir}/postfix/relocated %config(noreplace) %{_sysconfdir}/postfix/transport %config(noreplace) %{_sysconfdir}/postfix/virtual %{_sysconfdir}/postfix/dynamicmaps.cf %{_libexecdir}/postfix/[^mp]* %{_libexecdir}/postfix/master %{_libexecdir}/postfix/pickup %{_libexecdir}/postfix/pipe %{_libexecdir}/postfix/post-install %{_sysconfdir}/postfix/postfix-files %{_libexecdir}/postfix/postfix-script %{_libexecdir}/postfix/postfix-tls-script %{_libexecdir}/postfix/postfix-wrapper %{_libexecdir}/postfix/postmulti-script %{_libexecdir}/postfix/postscreen %{_libexecdir}/postfix/postlogd %{_libexecdir}/postfix/proxymap %{_libdir}/postfix/libpostfix-*.a %{_bindir}/mailq.postfix %{_bindir}/newaliases.postfix %{_bindir}/rmail.postfix %{_sbindir}/sendmail.postfix %{_prefix}/lib/sendmail.postfix %config(noreplace) %{_sysconfdir}/sasl2/smtpd.conf %files sqlite %{_sysconfdir}/postfix/dynamicmaps.cf.d/sqlite %{_sysconfdir}/postfix/postfix-files.d/sqlite %{_libdir}/postfix/postfix-sqlite.so %{_mandir}/man5/sqlite_table.5* %{postfix_doc_dir}/README_FILES/SQLITE_README %files ldap %{_sysconfdir}/postfix/dynamicmaps.cf.d/ldap %{_sysconfdir}/postfix/postfix-files.d/ldap %{_libdir}/postfix/postfix-ldap.so %{_mandir}/man5/ldap_table.5* %{postfix_doc_dir}/README_FILES/LDAP_README %files pcre %{_sysconfdir}/postfix/dynamicmaps.cf.d/pcre %{_sysconfdir}/postfix/postfix-files.d/pcre %{_libdir}/postfix/postfix-pcre.so %{_mandir}/man5/pcre_table.5* %{postfix_doc_dir}/README_FILES/PCRE_README %changelog * Tue Sep 06 2022 Reshma V Kumar - 3.7.2-1 - Initial port for AIX toolbox