Re: [Exim] application bug

Top Page
Delete this message
Reply to this message
Author: Neal D. Becker
Date:  
To: Nico Erfurth
CC: Patrick Boutilier, exim-users
Subject: Re: [Exim] application bug
--
On Wednesday 02 April 2003 12:59 pm, Nico Erfurth wrote:
> Neal D. Becker wrote:
> > On Wednesday 02 April 2003 12:31 pm, Patrick Boutilier wrote:
> >>Did you read the RedHat 9 release notes?
> >
> > Not yet. Anything in particular I should look at?
>
> http://www.redhat.com/docs/manuals/linux/RHL-9-Manual/release-notes/x86/
>
> <quote>
> A new system message has been added to Red Hat Linux 9:
>
> application bug: <app-name>(<app-pid>) has SIGCHLD set to SIG_IGN but
> calls wait(). (see the NOTES section of 'man 2 wait'). Workaround
> activated.
>
> This message (which is displayed on the system console and/or in the
> system log files) indicates that the application is not completely
> standards compliant with respect to its handling of child processes. If
> you see this message, you should alert the application's developers.
> </quote>
>
> Have you tested the latest exim-release (4.14)?
>


I believe it is working with 4.14. I did have to modify the .spec file
slightly (couldn't find krb5.h). Here is my current spec file:

--
#
# spec file for package exim (Version 4.10)
#
# Copyright (c) 2002 SuSE Linux AG, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# please send bugfixes or comments to feedback@???.
#

# neededforbuild  db-devel openssl-devel tcpd xdevel xf86
# usedforbuild    aaa_base aaa_version bash bind9-utils bison cpio cpp cyrus-sasl db devs diffutils e2fsprogs file filesystem fileutils fillup findutils flex gawk gdbm-devel glibc glibc-devel glibc-locale gpm grep groff gzip kbd less libgcc libstdc++ libxcrypt m4 make man mktemp modutils ncurses ncurses-devel net-tools netcfg pam pam-devel pam-modules patch permissions ps rcs readline sed sendmail sh-utils shadow strace syslogd sysvinit tar texinfo textutils timezone unzip util-linux vim zlib-devel autoconf automake binutils bzip2 cracklib db-devel gcc gdbm gettext libtool openssl-devel perl rpm tcpd xdevel xf86 xshared zlib


Name:         exim
#Conflicts:    sendmail sendmail-tls postfix
License:      GPL
Group:        Productivity/Networking/Email/Servers
Autoreqprov:  on
provides:     smtpdaemon /usr/sbin/sendmail
Requires:     logrotate
#PreReq:       %insserv_prereq %fillup_prereq /usr/sbin/useradd fileutils textutils
Version:      4.14
Release:      9
Summary:      The Exim mail transfer agent, a replacement for sendmail
BuildRoot:    %{_tmppath}/%{name}-%{version}-build
Source:       exim-%{version}.tar.bz2
Source1:      sysconfig.exim
Source2:      exim.logrotate
Source11:     exim.rc
#Source12:     permissions.exim
%package -n eximon
Summary:      Eximon, an graphical frontend to administer Exim's mail queue
Group:        Productivity/Networking/Email/Servers


%description
Exim is a mail transport agent (MTA) developed at the University of
Cambridge for use on Unix systems connected to the Internet. It is
freely available under the terms of the GNU General Public Licence. In
style it is similar to Smail 3, but its facilities are more extensive,
and in particular it has options for verifying incoming sender and
recipient addresses, for refusing mail from specified hosts, networks,
or senders, and for controlling mail relaying.


Authors:
--------
    Philip Hazel <ph10@???>



%description -n eximon
This allows administrators to view the exim agent's mail queue and logs,
and perform a variety of actions on queued messages, such as freezing,
bouncing and thawing messages, and even editing body and header of
mails.


Authors:
--------
    Philip Hazel <ph10@???>


%prep
%setup
cat <<-EOF > Local/Makefile
    # see src/EDITME for comments.
    BIN_DIRECTORY=/usr/sbin
    CONFIGURE_FILE=/etc/exim/exim.conf
    EXIM_USER=mail
    EXIM_GROUP=mail
    SPOOL_DIRECTORY=/var/spool/exim


    ROUTER_ACCEPT=yes
    ROUTER_DNSLOOKUP=yes
    ROUTER_IPLITERAL=yes
    ROUTER_MANUALROUTE=yes
    ROUTER_QUERYPROGRAM=yes
    ROUTER_REDIRECT=yes
    # ROUTER_IPLOOKUP=yes
    TRANSPORT_APPENDFILE=yes
    TRANSPORT_AUTOREPLY=yes
    TRANSPORT_PIPE=yes
    TRANSPORT_SMTP=yes
    TRANSPORT_LMTP=yes
    SUPPORT_MAILDIR=yes
    # SUPPORT_MAILSTORE=yes
    # SUPPORT_MBX=yes
    LOOKUP_DBM=yes
    LOOKUP_LSEARCH=yes
    LOOKUP_CDB=yes
    # LOOKUP_DNSDB=yes
    LOOKUP_DSEARCH=yes
    # LOOKUP_MYSQL=yes
    # LOOKUP_NIS=yes
    # LOOKUP_NISPLUS=yes
    # LOOKUP_ORACLE=yes
    # LOOKUP_PGSQL=yes
    # LOOKUP_WHOSON=yes


    LOOKUP_LDAP=yes
    # LDAP_LIB_TYPE=OPENLDAP1
    LDAP_LIB_TYPE=OPENLDAP2
    # LDAP_LIB_TYPE=NETSCAPE
    # LDAP_LIB_TYPE=SOLARIS


    # LOOKUP_INCLUDE=-I /usr/local/ldap/include -I /usr/local/mysql/include -I /usr/local/pgsql/include
    # LOOKUP_LIBS=-L/usr/local/lib -lldap -llber -lmysqlclient -lpq
    LOOKUP_LIBS=-lldap


    EXIM_MONITOR=eximon.bin


    AUTH_CRAM_MD5=yes
    AUTH_PLAINTEXT=yes
    # AUTH_SPA=yes
    SUPPORT_TLS=yes
    TLS_LIBS=-lssl -lcrypto
    TLS_INCLUDE=-I/usr/kerberos/include


    INFO_DIRECTORY=%{_infodir}
    LOG_FILE_PATH=/var/log/exim/%%s.log
    EXICYCLOG_MAX=10
    COMPRESS_COMMAND=/bin/gzip
    COMPRESS_SUFFIX=gz
    ZCAT_COMMAND=/usr/bin/zcat
    SUPPORT_PAM=yes
    # You probably need to add -lpam to EXTRALIBS
    # RADIUS_CONFIG_FILE=/etc/radiusclient/radiusclient.conf
    # CYRUS_PWCHECK_SOCKET=/var/pwcheck/pwcheck
    # USE_TCP_WRAPPERS=yes


    NO_SYMLINK=yes
    CHOWN_COMMAND=/bin/chown
    CHGRP_COMMAND=/bin/chgrp
    MV_COMMAND=/bin/mv
    RM_COMMAND=/bin/rm
    PERL_COMMAND=/usr/bin/perl
    # APPENDFILE_MODE=0600
    # APPENDFILE_DIRECTORY_MODE=0700
    # APPENDFILE_LOCKFILE_MODE=0600
    # CONFIGURE_FILE_USE_NODE=yes
    # CONFIGURE_FILE_USE_EUID=yes
    # DELIVER_BUFFER_SIZE=8192
    # EXIMDB_DIRECTORY_MODE=0750
    # EXIMDB_MODE=0640
    # EXIMDB_LOCKFILE_MODE=0640
    # HEADER_MAXSIZE="(1024*1024)"
    # INPUT_DIRECTORY_MODE=0750
    # LOG_DIRECTORY_MODE=0750
    # LOG_MODE=0640
    # LOOKUP_TESTDB=yes
    MAKE_SHELL=/bin/bash
    # MAX_NAMED_LIST=16
    # MAXINTERFACES=250
    # MSGLOG_DIRECTORY_MODE=0750
    # PERL_CC=
    # PERL_CCOPTS=
    # PERL_LIBS=
    PID_FILE_PATH=/var/run/exim%%s.pid
    # SPOOL_DIRECTORY_MODE=0750
    # SPOOL_MODE=0640
    SUPPORT_MOVE_FROZEN_MESSAGES=yes
    HAVE_IPV6=YES


    CFLAGS=$RPM_OPT_FLAGS
    EXTRALIBS=-lpam -ldl -L/usr/X11R6/%{_lib}
EOF
touch Local/eximon.conf


%build
make build=linux-i386

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/init.d
mkdir -p $RPM_BUILD_ROOT/etc/logrotate.d
mkdir -p $RPM_BUILD_ROOT/usr/{bin,sbin}
mkdir -p $RPM_BUILD_ROOT/var/log/exim
mkdir -p $RPM_BUILD_ROOT/var/spool/mail/
#mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
mkdir -p $RPM_BUILD_ROOT%{_mandir}/{man5,man8}
mkdir -p $RPM_BUILD_ROOT/usr/X11R6/bin
make     build=linux-i386 inst_dest=$RPM_BUILD_ROOT/usr/sbin \
    inst_conf=$RPM_BUILD_ROOT/etc/exim/exim.conf \
    inst_info=$RPM_BUILD_ROOT/%{_infodir} inst_uid=$USER    install
mv $RPM_BUILD_ROOT/usr/sbin/exim-%{version}* $RPM_BUILD_ROOT/usr/sbin/exim
install -m 755 %{S:11} $RPM_BUILD_ROOT/etc/init.d/exim
ln -sv /usr/sbin/exim $RPM_BUILD_ROOT/usr/bin/mailq.exim
ln -sv /usr/sbin/exim $RPM_BUILD_ROOT/usr/bin/runq
ln -sv /usr/sbin/exim $RPM_BUILD_ROOT/usr/bin/newaliases.exim
ln -sv /usr/sbin/exim $RPM_BUILD_ROOT/usr/sbin/sendmail.exim
ln -sv ../../etc/init.d/exim $RPM_BUILD_ROOT/usr/sbin/rcexim
mv $RPM_BUILD_ROOT/usr/sbin/eximon* $RPM_BUILD_ROOT/usr/X11R6/bin/
#%cp -p %{S:1} $RPM_BUILD_ROOT/var/adm/fillup-templates/sysconfig.exim
install -m 644 %{S:2} $RPM_BUILD_ROOT/etc/logrotate.d/exim
mv doc/exim.8 $RPM_BUILD_ROOT/%{_mandir}/man8/
gzip -9 doc/*.txt
for i in main panic reject; do
    touch $RPM_BUILD_ROOT/var/log/exim/${i}.log
done
#install -o root -g root -m 0755 -d $RPM_BUILD_ROOT/etc/permissions.d
#install -o root -g root -m 0644 $RPM_SOURCE_DIR/permissions.exim $RPM_BUILD_ROOT/etc/permissions.d/exim


%pre

%post
if ! test -s etc/exim/exim.conf; then
    if test -s etc/exim.conf; then
        mv etc/exim.conf etc/exim/
        echo moving exim.conf to /etc/exim/
    else
        cp -p usr/share/doc/packages/exim/configure.default etc/exim/exim.conf
        echo copying default config file to /etc/exim/exim.conf
    fi
fi


/usr/sbin/alternatives --install /usr/sbin/sendmail mta /usr/sbin/sendmail.exim 10 \
        --slave /usr/bin/mailq mta-mailq /usr/bin/mailq.exim \
        --slave /usr/bin/newaliases mta-newaliases /usr/bin/newaliases.exim \
        --slave /usr/share/man/man1/mailq.1.gz mta-mailqman /usr/share/man/man1/mailq.exim.1.gz \
    --initscript exim


%postun
#sbin/insserv etc/init.d/

%files
%defattr(-,root,root)
%doc doc/*
%doc src/configure.default
%doc build-linux-i386/convert4r{3,4}
%doc %{_mandir}/man8/*
/usr/sbin/exicyclog
/usr/sbin/exigrep
/usr/sbin/exim
/usr/sbin/exim_*
/usr/sbin/eximstats
/usr/sbin/exinext
/usr/sbin/exiqsumm
/usr/sbin/exiwhat
/usr/sbin/exiqgrep
%dir /etc/exim
%config /etc/init.d/exim
%config(noreplace) /etc/logrotate.d/exim
%config(noreplace) /etc/exim/exim.conf
#%config(noreplace) /etc/permissions.d/exim
/usr/sbin/rcexim
/usr/bin/mailq.exim
/usr/bin/runq
/usr/bin/newaliases.exim
/usr/sbin/sendmail.exim
#/var/adm/fillup-templates/sysconfig.exim
%dir /var/log/exim
%attr(664,mail,mail) /var/log/exim/main.log
%attr(664,mail,mail) /var/log/exim/panic.log
%attr(664,mail,mail) /var/log/exim/reject.log
%files -n eximon
%defattr(-,root,root)
/usr/X11R6/bin/eximon
/usr/X11R6/bin/eximon.bin

%changelog -n exim
* Tue Aug 13 2002 - poeml@???
- mv exim.conf to /etc/exim/
- add scripts for conversion of 3.xx config files
- add symbolic link "runq" (same as exim -q)
- use %%defattr
* Mon Aug 12 2002 - poeml@???
- improve logrotate configuration
- fix PreReq
- install exim.8 manpage and gzip the remaining documentation
- Moved log file creation from %%post to rcexim
* Tue Aug 06 2002 - draht@???
- added /etc/permissions.d/exim for setuid /usr/sbin/exim
* Fri Aug 02 2002 - poeml@???
- package created (4.10)
--