diff --git a/sendmail-redhat.mc b/sendmail-redhat.mc index 9c97441..c656155 100644 --- a/sendmail-redhat.mc +++ b/sendmail-redhat.mc @@ -37,6 +37,7 @@ FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl +dnl The '-t' option will retry delivery if e.g. the user runs over his quota. FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl FEATURE(`access_db',`hash -o /etc/mail/access.db')dnl FEATURE(`blacklist_recipients')dnl diff --git a/sendmail.etc-mail-Makefile b/sendmail.etc-mail-Makefile new file mode 100644 index 0000000..4cdc56d --- /dev/null +++ b/sendmail.etc-mail-Makefile @@ -0,0 +1,24 @@ +# These could be used by sendmail, but are not part of the default install. +# To use them you will have to generate your own sendmail.cf with +# FEATURE('whatever') +# +POSSIBLE += $(shell test -f bitdomain && echo bitdomain.db) +POSSIBLE += $(shell test -f uudomain && echo uudomain.db) +POSSIBLE += $(shell test -f genericstable && echo genericstable.db) +POSSIBLE += $(shell test -f userdb && echo userdb.db) + + +all: ${POSSIBLE} virtusertable.db access.db domaintable.db mailertable.db + +virtusertable.db : virtusertable + @makemap -f hash $@ < $< + +userdb.db : userdb + @makemap btree $@ < $< + +%.db : % + @makemap hash $@ < $< + +clean: + rm -f *.db *~ + diff --git a/sendmail.init b/sendmail.init index 347dd09..3e78577 100644 --- a/sendmail.init +++ b/sendmail.init @@ -38,7 +38,7 @@ start() { echo -n $"Starting $prog: " /usr/bin/newaliases > /dev/null 2>&1 if test -x /usr/bin/make -a -f /etc/mail/Makefile ; then - make -C /etc/mail -q + make -C /etc/mail -s else for i in virtusertable access domaintable mailertable ; do if [ -f /etc/mail/$i ] ; then diff --git a/sendmail.spec b/sendmail.spec index 5a21f35..26c044b 100644 --- a/sendmail.spec +++ b/sendmail.spec @@ -1,9 +1,24 @@ %define initdir /etc/rc.d/init.d +# If you want to build this on older Red Hat Linux releases, this defines +# the version number to build on. Supported should be 62 70 71 72 for +# Red Hat Linux 6.2 up to 7.2 and "100" for the current rawhide version. +%define errata 72 +%define release 8 + +%if %{errata} <= 70 +%define sendmailcf usr/lib/sendmail-cf +%else +%define sendmailcf usr/share/sendmail-cf +%endif Summary: A widely used Mail Transport Agent (MTA). Name: sendmail Version: 8.11.6 -Release: 3 +%if %{errata} == 100 +Release: %{release} +%else +Release: %{release}.%{errata}.1 +%endif Copyright: BSD Group: System Environment/Daemons Provides: smtpdaemon @@ -11,23 +26,36 @@ Source0: ftp://ftp.cs.berkeley.edu/ucb/sendmail/sendmail.%{version}.tar.gz Source1: sendmail.init Source3: aliases Source4: sendmail.sysconfig -Source5: sendmail-8.9.3-etc-mail-Makefile +Source5: sendmail.etc-mail-Makefile Source6: sendmail-redhat.mc Source7: Sendmail.conf Source8: sendmail.pam Patch0: sendmail-8.11.0-redhat.patch -Patch1: sendmail-8.10.0-makemapman.patch -Patch2: sendmail-8.10.0-smrsh-paths.patch -Patch3: sendmail-8.8.7-rmail.patch -Patch5: sendmail-8.10.1-movefiles.patch -Patch6: sendmail-8.10.1-manpath.patch -Patch7: sendmail-8.11.0-m4path.patch +Patch1: sendmail-8.11.0-redhat.patch2 +Patch2: sendmail-8.10.0-makemapman.patch +Patch3: sendmail-8.10.0-smrsh-paths.patch +Patch4: sendmail-8.10.1-movefiles.patch Buildroot: %{_tmppath}/%{name}-root -BuildRequires: openldap-devel, cyrus-sasl-devel -BuildRequires: gdbm-devel, db3-devel +BuildRequires: gdbm-devel +%if %{errata} > 62 +%if %{errata} <= 70 +BuildRequires: cyrus-sasl +%else +BuildRequires: cyrus-sasl-devel +%endif +%if %{errata} == 100 +BuildRequires: db4-devel +%else +BuildRequires: db3-devel +%endif +BuildRequires: openldap-devel tcp_wrappers +%endif Prereq: /sbin/chkconfig /usr/sbin/useradd Conflicts: postfix exim -Requires: procmail, bash >= 2.0 +Requires: procmail +%if %{errata} > 62 +Requires: bash >= 2.0 +%endif %description The Sendmail program is a very widely used Mail Transport Agent (MTA). @@ -50,6 +78,14 @@ Mail Transport Agent (MTA) program, including release notes, the Sendmail FAQ, and a few papers written about Sendmail. The papers are provided in PostScript(TM) and troff formats. +%package devel +Summary: Extra development include files and development files. +Group: System Environment/Daemons + +%description devel +Include files and devel libraries for e.g. the milter addons as part +of sendmail. + %package cf Summary: The files needed to reconfigure Sendmail. Group: System Environment/Daemons @@ -62,15 +98,14 @@ your sendmail.cf file. %prep %setup -q -%patch0 -p1 -b .redhat -%patch1 -p1 -b .makemapman -%patch2 -p1 -b .smrsh -%patch3 -p1 -b .rmail -%patch5 -p1 -b .movestuff -%patch6 -p0 -%patch7 -p1 -b .m4path - -sed -e 's|@@PATH@@|\.\.|' < %{SOURCE6} > cf/cf/redhat.mc +%if %{errata} > 62 +%patch0 -p1 +%else +%patch1 -p1 +%endif +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 %build cd libmilter @@ -101,56 +136,61 @@ cd smrsh sh Build -f ../redhat.config.m4 cd .. -cd cf/cf -m4 redhat.mc > redhat.cf - %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT cd $RPM_BUILD_ROOT mkdir -p etc/sysconfig $RPM_BUILD_ROOT%{initdir} etc/pam.d -mkdir -p usr/bin usr/lib .%{_mandir}/man{1,5,8} usr/sbin var/log var/spool usr/share/sendmail-cf +mkdir -p usr/bin usr/include usr/lib .%{_mandir}/man{1,5,8} usr/sbin var/log +mkdir -p var/spool %{sendmailcf} cd - OBJDIR=obj.$(uname -s).$(uname -r).$(arch) -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` \ - install -C $OBJDIR/sendmail -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` \ - install -C $OBJDIR/mailstats -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` \ - install -C $OBJDIR/praliases -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` \ - force-install -C $OBJDIR/rmail -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` \ - install -C $OBJDIR/makemap -ln -sf ../sbin/makemap $RPM_BUILD_ROOT/usr/bin/makemap -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` \ - install -C $OBJDIR/smrsh -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` INCOWN=`id -nu` INCGRP=`id -ng` LIBOWN=`id -nu` LIBGRP=`id -ng` \ - install -C $OBJDIR/libmilter -make DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng` INCOWN=`id -nu` INCGRP=`id -ng` LIBOWN=`id -nu` LIBGRP=`id -ng` \ - install -C $OBJDIR/libsmutil +XX="DESTDIR=$RPM_BUILD_ROOT MANROOT=%{_mandir}/man SBINOWN=`id -nu` UBINOWN=`id -nu` SBINGRP=`id -ng` UBINGRP=`id -ng` MANOWN=`id -nu` MANGRP=`id -ng`" +make $XX install -C $OBJDIR/sendmail +make $XX install -C $OBJDIR/mailstats +make $XX install -C $OBJDIR/praliases +make $XX force-install -C $OBJDIR/rmail +make $XX install -C $OBJDIR/makemap +ln -sf ../sbin/makemap $RPM_BUILD_ROOT/usr/bin/makemap +make $XX install -C $OBJDIR/smrsh +make $XX INCOWN=`id -nu` INCGRP=`id -ng` LIBOWN=`id -nu` LIBGRP=`id -ng` \ + install -C $OBJDIR/libmilter +make $XX INCOWN=`id -nu` INCGRP=`id -ng` LIBOWN=`id -nu` LIBGRP=`id -ng` \ + install -C $OBJDIR/libsmutil # install docs by hand -mkdir -p $RPM_BUILD_ROOT%{_docdir}/sendmail -cp -ar FAQ LICENSE KNOWNBUGS README RELEASE_NOTES doc $RPM_BUILD_ROOT%{_docdir}/sendmail -cp smrsh/README $RPM_BUILD_ROOT%{_docdir}/sendmail/README.smrsh -cp cf/README $RPM_BUILD_ROOT%{_docdir}/sendmail/README.cf +DOC=$RPM_BUILD_ROOT%{_docdir}/sendmail +mkdir -p $DOC +cp -ar FAQ LICENSE KNOWNBUGS README RELEASE_NOTES doc $DOC +cp sendmail/README $DOC/README.sendmail +cp smrsh/README $DOC/README.smrsh +cp libmilter/README $DOC/README.libmilter +cp cf/README $DOC/README.cf # install the cf files pushd cf -cp -ar * $RPM_BUILD_ROOT/usr/share/sendmail-cf -rm -f $RPM_BUILD_ROOT/usr/share/sendmail-cf/*/*.m4path +cp -ar * $RPM_BUILD_ROOT/%{sendmailcf} popd mkdir -p $RPM_BUILD_ROOT/etc/mail +sed -e 's|@@PATH@@|/%{sendmailcf}|' < %{SOURCE6} > $RPM_BUILD_ROOT/etc/mail/sendmail.mc +%if %{errata} <= 62 +perl -pi -e 's/.*confAUTH_OPTIONS.*//' $RPM_BUILD_ROOT/etc/mail/sendmail.mc +%endif +%if %{errata} <= 70 +perl -pi -e 's/^DAEMON_OPTIONS/dnl DAEMON_OPTIONS/' $RPM_BUILD_ROOT/etc/mail/sendmail.mc +%endif + +sed -e 's|/%{sendmailcf}|\.\.|' < $RPM_BUILD_ROOT/etc/mail/sendmail.mc > cf/cf/redhat.mc +(cd cf/cf && m4 redhat.mc > redhat.cf) install -m 644 cf/cf/redhat.cf $RPM_BUILD_ROOT/etc/sendmail.cf -sed -e 's|@@PATH@@|/usr/share/sendmail-cf|' < %{SOURCE6} > $RPM_BUILD_ROOT/etc/mail/sendmail.mc + echo "# local-host-names - include all aliases for your machine here." > $RPM_BUILD_ROOT/etc/mail/local-host-names ( echo "# trusted-users - users that can send mail as others without a warning" echo "# apache, mailman, majordomo, uucp, are good candidates" ) \ @@ -168,9 +208,9 @@ for f in hoststat mailq newaliases purgestat mkdir -p $RPM_BUILD_ROOT/etc/smrsh cat < $RPM_BUILD_ROOT/etc/mail/access -# Check the /usr/share/doc/sendmail-%{version}/README.cf file for a description +# Check the /usr/share/doc/sendmail/README.cf file for a description # of the format of this file. (search for access_db in that file) -# The /usr/share/doc/sendmail-%{version}/README.cf is part of the sendmail-doc +# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc # package. # # by default we allow relaying from localhost... @@ -200,9 +240,11 @@ chmod u+w $RPM_BUILD_ROOT/usr/bin/rmail strip $RPM_BUILD_ROOT/usr/sbin/{mailstats,praliases,sendmail} strip $RPM_BUILD_ROOT/usr/bin/rmail +%if %{errata} > 62 install -m755 -d $RPM_BUILD_ROOT%{_libdir}/sasl install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_libdir}/sasl/Sendmail.conf install -m 644 %{SOURCE8} $RPM_BUILD_ROOT/etc/pam.d/smtp +%endif install -m 755 -d $RPM_BUILD_ROOT%{_libdir} install -m 644 $OBJDIR/libmilter/libmilter.a $RPM_BUILD_ROOT%{_libdir} @@ -286,8 +328,6 @@ fi /usr/bin/mailq /usr/sbin/smrsh /usr/lib/sendmail -/usr/lib/libmilter.a -/usr/lib/libsmutil.a %{_mandir}/man8/rmail.8* %{_mandir}/man8/praliases.8* @@ -329,18 +369,54 @@ fi %config %{initdir}/sendmail +%if %{errata} > 62 %config %{_libdir}/sasl/Sendmail.conf /etc/pam.d/smtp +%endif %files cf %defattr(-,root,root) -/usr/share/sendmail-cf +/%{sendmailcf} + +%files devel +%defattr(-,root,root) +/usr/include/*.h +/usr/lib/libmilter.a +/usr/lib/libsmutil.a %files doc %defattr(-,root,root) %{_docdir}/sendmail %changelog +* Tue Jan 22 2002 Florian La Roche +- fix quotation in spec-file + +* Thu Jan 10 2002 Florian La Roche +- integrate ugly logic to compile this src.rpm also on older Red Hat + Linux releases +- clean up spec file and patches a bit +- add db4 support + +* Wed Jan 09 2002 Florian La Roche +- fix another path to correct docu +- include sendmail/README in the docu +- compile with -D_FFR_WORKAROUND_BROKEN_NAMESERVERS, but do not + enable this at runtime +- devel subpackage files owned by root now + +* Fri Dec 07 2001 Florian La Roche +- change "-q" to "-s" as option to make #57216 +- move milter lib into separate "devel" sub-package +- add include files to devel sub-package #56064 +- fix pointer in access file to docu #54351 + +* Mon Sep 10 2001 Florian La Roche +- add libmilter docu +- add support for userdb to /etc/mail/Makefile +- use "btree" database files if a userdb is used +- buildrequires tcp_wrappers + * Fri Aug 31 2001 Florian La Roche - fix libmilter support - fix init script to use /etc/mail/Makefile #52932