File sendmail.spec of Package sendmail.14171

#
# spec file for package sendmail
#
# Copyright (c) 2020 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#


#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
  %define _fillupdir /var/adm/fillup-templates
%endif

#
# sysvinit -- build for SysVinit and not for systemd
#
%if %{undefined systemd_requires}
%global		with_sysvinit 1
%endif
%bcond_with     sysvinit
%define libmilter_somajor 1
%define libmilter_sominor 0
%define libmilter_sopatch 1
%define libmilter_soversion %{libmilter_somajor}.%{libmilter_sominor}.%{libmilter_sopatch}
%define libmilter_soname    libmilter.so.%{libmilter_somajor}.%{libmilter_sominor}

Name:           sendmail
BuildRequires:  cyrus-sasl-devel
BuildRequires:  db-devel
BuildRequires:  groff
BuildRequires:  libopenssl-devel
BuildRequires:  m4
BuildRequires:  mailx
BuildRequires:  netcfg
BuildRequires:  openldap2-devel
BuildRequires:  procmail
BuildRequires:  tcpd-devel
BuildRequires:  vacation
%if 0%{?suse_version} > 1140
BuildRequires:  libnsl-devel
BuildRequires:  pkg-config
BuildRequires:  pkgconfig(libsystemd)
%endif
URL:            http://www.sendmail.org/
%define         SUBDIRS libsmutil libsmdb sendmail mail.local mailstats makemap praliases rmail smrsh libmilter libsm editmap
Provides:       sendcf
Provides:       sendmail-tls
Provides:       smailcfg
Provides:       smtp_daemon
Requires:       /bin/fuser
Requires:       coreutils
Requires:       filesystem
Requires:       findutils
Requires:       m4
Requires:       make
Requires:       netcfg
Requires:       procmail
%if %{without sysvinit}
Requires(pre):  sysvinit(network)
%else
Requires(pre):  %insserv_prereq
Requires(post): %insserv_prereq
Requires(postun): %insserv_prereq
%endif
%if 0%{?suse_version} >= 1330
Requires(pre):  group(daemon)
Requires(pre):  user(daemon)
Requires(pre):  group(mail)
Requires(pre):  user(mail)
%endif
Requires(post): %fillup_prereq
Requires(post): coreutils
Requires(post): permissions
Requires(post): sed
Requires(posttrans): coreutils
Requires(posttrans): findutils
Requires(posttrans): m4
Requires(verify): permissions
%{?systemd_requires}
Conflicts:      smail postfix postfix-tls
Obsoletes:      sendmail-tls
Version:        8.15.2
Release:        0
Summary:        BSD Sendmail
License:        Sendmail
Group:          Productivity/Networking/Email/Servers
Source0:        ftp://ftp.sendmail.org/pub/sendmail/sendmail.%{version}.tar.gz
Source1:        sendmail-suse.tar.bz2
Source2:        sendmail-rpmlintrc
Source3:        sendmail-client.path
Source4:        sendmail.service
Source5:        sendmail-client.service
Source6:        sendmail.systemd
Source7:        sendmail-client.systemd
# PATCH-FIX-OPENSUSE: Add our m4 extensions and maintenance scripts
Patch0:         sendmail-8.15.2.dif
# PATCH-FIX-OPENSUSE: if select(2) is interrupted the timeout become undefined
Patch1:         sendmail-8.14.7-select.dif
# PATCH-FIX-UPSTREAM: SMTP session reuse bugfix (boo#1162204)
Patch2:         8.15.2.mci.p0
# PATCH-FIX-UPSTREAM: Detect shared libraries
Patch4:         sendmail-8.14.8-m4header.patch
# PATCH-FIX-DEBIAN: systemd socket activation support for libmilter
Patch5:         sendmail-fd-passing-libmilter.patch
Patch6:         sendmail-8.15.2-openssl-1.1.0-fix.patch
Patch7:         sendmail-8.15.2-openssl-1.1.0-ecdhe-fix.patch
# PATCH-FIX-OPENSUSE: make build result reproducible
Patch8:         sendmail-8.15.2-reproducible.patch
# PATCH-FIX-OPENSUSE: The former deprecated macro RES_USE_INET6 is gone with glibc 2.30
Patch9:         sendmail-8.15.2-glibc-2.30.patch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
%global         _sysconfdir	%{_sysconfdir}
%global         _mailcnfdir	%{_sysconfdir}/mail
%global         _localstatedir  %{_localstatedir}
%if 0%{?suse_version} < 1120
%global _libexecdir %{_exec_prefix}/lib
%endif

%description
The "Unix System Administration Handbook" calls sendmail "The most
complex and complete mail delivery system in common use..." .

Ready-made configuration files are included for systems connected by
TCP/IP (with or without a name server) and for systems using UUCP.

'procmail' is used as a local mail agent.

"sendmail" is a trademark of Sendmail, Inc.

%package devel
Summary:        BSD Sendmail Development Kit
Group:          Development/Libraries/Other
Requires:       libmilter%{libmilter_somajor}_%{libmilter_sominor}

%description devel
This package includes libraries and header files for building tools to
access sendmail features.

"sendmail" is a trademark of Sendmail, Inc.

%package -n libmilter%{libmilter_somajor}_%{libmilter_sominor}
Summary:        BSD Sendmail Content Management API (milter)
# To be exact: a MTA with libmilter support *is* required
Group:          System/Libraries
Requires:       smtp_daemon

%description -n libmilter%{libmilter_somajor}_%{libmilter_sominor}
Sendmail's Content Management API (milter) provides third-party programs to
access mail messages as they are being processed by the Mail Transfer Agent
(MTA), allowing them to examine and modify message content and
meta-information. Filtering policies implemented by Milter-conformant filters
may then be centrally configured and composed in an end-user's MTA
configuration file.

"sendmail" is a trademark of Sendmail, Inc.

%package -n libmilter-doc
Summary:        BSD Sendmail Content Management API (milter)
Group:          Documentation/HTML
Requires:       libmilter%{libmilter_somajor}_%{libmilter_sominor}
%if 0%{?suse_version} > 1140
BuildArch:      noarch
%endif

%description -n libmilter-doc
Sendmail's Content Management API (milter) provides third-party programs to
access mail messages as they are being processed by the Mail Transfer Agent
(MTA), allowing them to examine and modify message content and
meta-information. Filtering policies implemented by Milter-conformant filters
may then be centrally configured and composed in an end-user's MTA
configuration file.

"sendmail" is a trademark of Sendmail, Inc.

%package -n sendmail-starttls
Summary:        BSD Sendmail Starttls helper scripts
Group:          Productivity/Networking/Security
Requires:       cyrus-sasl-saslauthd
Requires:       openssl
%if 0%{?suse_version} > 1140
BuildArch:      noarch
%endif

%description -n sendmail-starttls
This package includes the directory layout as well as some useful
helper scripts for better SSL/TLS support.

"sendmail" is a trademark of Sendmail, Inc.

%package -n rmail
Version:        %{version}
Release:        0
Summary:        Rmail of the BSD Sendmail
Group:          Productivity/Networking/Email/Servers

%description -n rmail
Rmail interprets incoming mail received via uucp and passing the
processed mail on to the MTA (e.g. sendmail).

%prep
%setup -n sendmail-%{version}
%patch1 -p0 -b .select
%patch2 -p0 -b .reuse
%patch4 -p0 -b .m4head
%patch5 -p1 -b .fdmilt
if pkg-config --atleast-version=1.1.0 openssl; then
%patch6 -p1 -b .openssl11
%patch7 -p1 -b .ecdhe
fi
%patch0 -p0 -b .p0
%patch8 -p1 -b .reproducible
%patch9 -p0 -b .use_inet6
    tar --strip-components=1 -xf %{S:1} 
    set -f
    cat <<-EOF > file-list
	%%defattr(-,root,root)
%if %{with sysvinit}
	%%ghost %%dir %%attr(1750,root,root)   %{_localstatedir}/run/sendmail
%endif
	%%dir    %%attr(0750,root,root)        %{_localstatedir}/lib/sendmail
	%%attr(0600,root,root)                 %{_localstatedir}/lib/sendmail/statistics
	%%attr(0600,root,root)                 %{_mailcnfdir}/statistics
	%%dir    %%attr(0700,root,root)        %{_localstatedir}/spool/mqueue
	%%dir    %%attr(0700,root,root)        %{_localstatedir}/spool/mqueue/.hoststat
	# Part of filesystem RPM
	# %%dir    %%attr(0770,root,mail)      %{_localstatedir}/spool/clientmqueue
	%%attr(0660,root,mail)                 %{_localstatedir}/spool/clientmqueue/sm-client.st
	%%config %%attr(0644,root,root)        %{_sysconfdir}/permissions.d/sendmail
	%%config %%attr(0644,root,root)        %{_sysconfdir}/permissions.d/sendmail.paranoid
	EOF
    cat <<-EOF > milterversion.c
	#include "libmilter/mfapi.h"
	#include <stdio.h>
	int main()
	{
	     return printf("%d.%d.%d\n",
			   SM_LM_VRS_MAJOR(SMFI_VERSION),
			   SM_LM_VRS_MINOR(SMFI_VERSION),
			   SM_LM_VRS_PLVL(SMFI_VERSION)) > 0 ? 0 : 1;
	}
	EOF
    set +f

%build
%global _lto_cflags %{?_lto_cflags} -ffat-lto-objects
    #
    ID=$(id -u)
    RPM_OPT_FLAGS="%{optflags} -fno-strict-aliasing -D_GNU_SOURCE"
    ARCH_LIB=%{_lib}
    export ARCH_LIB
    gcc $RPM_OPT_FLAGS -I./include -o milterversion milterversion.c
    MILTERVERSION=$(./milterversion)
    test %libmilter_soversion = $MILTERVERSION || exit 1
    sed -ri -e 's/@sm_libmilter_somajor@/%{libmilter_somajor}/' \
	    -e 's/@sm_libmilter_soname@/%{libmilter_soname}/' \
	    -e 's/@sm_libmilter_soversion@/%{libmilter_soversion}/' \
	devtools/Site/site.config.m4
    make clean
    # ingnore vacation (we have our own)
    make %{?_smp_mflags} SUBDIRS="%{SUBDIRS}"

%install
    ID=$(id -u)
    ARCH_LIB=%{_lib}
    export ARCH_LIB
    doc=%{buildroot}%{_defaultdocdir}/sendmail
    if test "$ID" -ne 0 ; then
	mkdir bin
	PATH=${PWD}/bin:$PATH
	(cat > bin/install)<<-EOF
	#!/bin/bash
	argv=""
	while test \$# -gt 0; do
	    case "\$1" in
	    -o) shift 2;;
	    -g) shift 2;;
	    *)  argv="\${argv:+"\$argv "}\$1"
		shift
	    esac
	done
	set -- \$(echo \${argv})
	exec -a install %{_bindir}/install \${1+"\$@"}
	EOF
	chmod 755 bin/install
	type -p install
    fi
    mkdir -p ${doc}
    mkdir -p ${doc}/libmilter
    mkdir -p %{buildroot}/sbin/conf.d
    mkdir -p %{buildroot}%{_bindir}
    mkdir -p %{buildroot}%{_sbindir}
    mkdir -p %{buildroot}%{_mailcnfdir}/certs
    mkdir -p %{buildroot}%{_mailcnfdir}/certs/certs
    mkdir -p %{buildroot}%{_mailcnfdir}/certs/crl
    mkdir -p %{buildroot}%{_mailcnfdir}/certs/private
    mkdir -p %{buildroot}%{_mailcnfdir}/certs/newcerts
    mkdir -p %{buildroot}%{_mailcnfdir}/certs/scripts
    mkdir -p %{buildroot}%{_mailcnfdir}/auth
%if %{with sysvinit}
    mkdir -p %{buildroot}%{_sysconfdir}/init.d
%endif
    mkdir -p %{buildroot}%{_sysconfdir}/pam.d
    mkdir -p %{buildroot}%{_libdir}
    mkdir -p %{buildroot}%{_libexecdir}/sendmail.d/bin
    mkdir -p %{buildroot}%{_datadir}/sendmail
    mkdir -p %{buildroot}%{_includedir}/sm
    mkdir -p %{buildroot}%{_includedir}/sm/os
    chmod 0750 %{buildroot}%{_mailcnfdir}/certs
    chmod 0750 %{buildroot}%{_mailcnfdir}/auth
    mkdir -p %{buildroot}%{_sysconfdir}/permissions.d
    mkdir -p %{buildroot}%{_mandir}/man1
    mkdir -p %{buildroot}%{_mandir}/man5
    mkdir -p %{buildroot}%{_mandir}/man8
    mkdir -p %{buildroot}%{_fillupdir}
%if %{without sysvinit}
    mkdir -p %{buildroot}%{_unitdir}
    mkdir -p %{buildroot}/%{_mailcnfdir}/system
%endif
    make \
	DESTDIR=%{buildroot} \
	SUBDIRS="%{SUBDIRS}" \
	MANROOTMAN=%{_mandir}/man \
	MANROOT=%{_mandir}/cat \
	install
    # needed to be able to comple a milter which uses libsm, i.e. amavis-milter
    cd include/sm
    ln -s os/sm_os_linux.h sm_os.h
    cd ../../
    cd include/sm/os
    ln -s sm_os_linux.h sm_os.h
    cd ../../../
    cp -pr include/sm  %{buildroot}%{_includedir}/
    test "$ID" -ne 0 || \
    chown root:root    %{buildroot}%{_mailcnfdir}/submit.cf
    chmod 0644	       %{buildroot}%{_mailcnfdir}/submit.cf
    test "$ID" -ne 0 || \
    chown root:mail    %{buildroot}%{_sbindir}/sendmail
    ln -sf %{_sbindir}/sendmail %{buildroot}%{_prefix}/lib/sendmail
    mv %{buildroot}%{_sbindir}/praliases \
			      %{buildroot}%{_bindir}/praliases
    mkdir -p           %{buildroot}%{_localstatedir}/spool/mqueue/.hoststat
    test "$ID" -ne 0 || \
    chown -R root:root %{buildroot}%{_localstatedir}/spool/mqueue
    chmod 0700         %{buildroot}%{_localstatedir}/spool/mqueue
    chmod 0700         %{buildroot}%{_localstatedir}/spool/mqueue/.hoststat
%if %{with sysvinit}
    mkdir -p           %{buildroot}%{_localstatedir}/run/sendmail
    chmod 1750         %{buildroot}%{_localstatedir}/run/sendmail
%endif
    mkdir -p           %{buildroot}%{_localstatedir}/lib/sendmail
    chmod 0750         %{buildroot}%{_localstatedir}/lib/sendmail
    touch              %{buildroot}%{_localstatedir}/lib/sendmail/statistics
    test "$ID" -ne 0 || \
    chown -R root:root %{buildroot}%{_localstatedir}/lib/sendmail/statistics
    chmod 0600	       %{buildroot}%{_localstatedir}/lib/sendmail/statistics
    ln -sf %{_localstatedir}/lib/sendmail/statistics %{buildroot}%{_mailcnfdir}/statistics
    mkdir -p	       %{buildroot}%{_localstatedir}/spool/clientmqueue
    test "$ID" -ne 0 || \
    chown -R root:mail %{buildroot}%{_localstatedir}/spool/clientmqueue
    chmod 0770         %{buildroot}%{_localstatedir}/spool/clientmqueue
    touch              %{buildroot}%{_localstatedir}/spool/clientmqueue/sm-client.st
    test "$ID" -ne 0 || \
    chown -R root:mail %{buildroot}%{_localstatedir}/spool/clientmqueue/sm-client.st
    chmod 0660         %{buildroot}%{_localstatedir}/spool/clientmqueue/sm-client.st
    chmod 0755         %{buildroot}%{_libexecdir}/sendmail.d
    chmod 0755         %{buildroot}%{_libexecdir}/sendmail.d/bin
    chmod 0644         %{buildroot}%{_libdir}/*.a
    ln -sf %{_bindir}/vacation %{buildroot}%{_libexecdir}/sendmail.d/bin/
    ln -sf %{_bindir}/mail     %{buildroot}%{_libexecdir}/sendmail.d/bin/
    ln -sf %{_bindir}/procmail %{buildroot}%{_libexecdir}/sendmail.d/bin/
    install -m 0644 K* README RELE* doc/op/op.ps sendmail/SECURITY \
                       sendmail/TRACEFLAGS suse/README.SUSE \
                       contrib/{e*,re-*,sm*,passwd*}.pl \
		       contrib/etrn.0 ${doc}
    cat > ${doc}/FAQ.sendmail.html <<-'EOF'
	<html>
	<head>
	<title>Sendmail Frequently Asked Questions</title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	</head>
	<body>
	The latest Sendmail Frequently Asked Questions (FAQ) can be found at
	<br>
	<a href="http://www.sendmail.de/sm/open_source/support/support_faq"><b>http://www.sendmail.de/sm/open_source/support/support_faq</b></a>
	</body>
	</html>
	EOF
    GROFF_NO_SGR=1 groff -pe -me -mtty-char -Tlatin1 doc/op/op.me > ${doc}/op.txt
    install -m 0644 smrsh/README ${doc}/README.smrsh
    install -m 0644 libmilter/README ${doc}/README.libmilter
    bzip2 -9f ${doc}/*.ps
    bzip2 -9f ${doc}/*.txt
    bzip2 -9f ${doc}/RELEASE_NOTES
    tar cfC - cf . | tar xfC - %{buildroot}%{_datadir}/sendmail/
    test "$ID" -ne 0 || \
    chown root:root -R	%{buildroot}%{_datadir}/sendmail/
    chmod 0755		%{buildroot}%{_datadir}/sendmail/sh/makeinfo.sh
    rm -f  %{buildroot}%{_datadir}/sendmail/cf/Build
    rm -f  %{buildroot}%{_datadir}/sendmail/cf/README
    rm -f  %{buildroot}%{_datadir}/sendmail/cf/Makefile
    rm -f  %{buildroot}%{_datadir}/sendmail/cf/*.cf
    rm -fr %{buildroot}%{_datadir}/sendmail/*/*~ ${doc}/*~
    find %{buildroot}         "(" -name '*.ldap' -o -name '*.mime' -o \
				  -name '*.mrbl' -o -name '*.util' -o \
				  -name '*.p0'   -o -name '*.auth2' -o \
				  -name '*.dif'  -o -name '*.orig' -o \
				  -name '*.reproducible' ")" -print -delete
    cd suse/
    # etc/aliases and %{_sysconfdir}/aliases.d are in other packages
    #install -m 0644 aliases %{buildroot}%{_sysconfdir}/
    #install -d -m 0750 %{buildroot}%{_sysconfdir}/aliases.d
    install -m 0644 README Makefile mailertable genericstable userdb domaintable \
		    virtusertable access linux.mc linux.submit.mc \
		    linux.nullclient.mc service-nodns.switch \
		    service.switch relay-domains trusted-users \
		    local-host-names %{buildroot}%{_mailcnfdir}/
    install -m 0600 auth-info %{buildroot}%{_mailcnfdir}/auth/
    install -m 0755 sendmail.nissl %{buildroot}%{_sbindir}/
    install -m 0644 permissions %{buildroot}%{_sysconfdir}/permissions.d/sendmail
    install -m 0644 permissions.paranoid %{buildroot}%{_sysconfdir}/permissions.d/sendmail.paranoid
%if %{with sysvinit}
    install -m 0755 rc   %{buildroot}%{_sysconfdir}/init.d/sendmail
%else
    sed -ri '\@/etc/init.d/sendmail@d' %{buildroot}%{_sysconfdir}/permissions.d/sendmail
    sed -ri '\@/etc/init.d/sendmail@d' %{buildroot}%{_sysconfdir}/permissions.d/sendmail.paranoid
%endif
    install -m 0644 smtp %{buildroot}%{_sysconfdir}/pam.d/smtp
    install update.sendmail %{buildroot}%{_libexecdir}/sendmail.d/update
%if 0%{?suse_version} <= 1140
    sed -ri 's/,,//g' %{buildroot}%{_libexecdir}/sendmail.d/update
%endif
    cat > %{buildroot}%{_sbindir}/config.sendmail <<-'EOF'
	#!/bin/bash
	VERBOSE=true exec %{_libexecdir}/sendmail.d/update
	EOF
    chmod 755 %{buildroot}%{_sbindir}/config.sendmail
    install -m 0644 sysconfig.sendmail      %{buildroot}%{_fillupdir}/
    install -m 0644 sysconfig.mail-sendmail %{buildroot}%{_fillupdir}/
    > ${doc}/README.sendmail-local-only
    for m in messages/sendmail-local-only.[a-z][a-z]; do
	l=${m##*.}
	n=${m##*/}
	n=${n%.*}
	cat $m >> ${doc}/README.sendmail-local-only
	echo   >> ${doc}/README.sendmail-local-only
    done
    cd ../
    if test -n "%{buildroot}" ; then
	cat %{buildroot}%{_mailcnfdir}/linux.mc		| \
	sed "s@include(\`@include(\`%{buildroot}@"	| \
	m4 | \
	sed "s@%{buildroot}@@g"	> %{buildroot}%{_sysconfdir}/sendmail.cf
	cat %{buildroot}%{_mailcnfdir}/linux.submit.mc	| \
	sed "s@include(\`@include(\`%{buildroot}@"	| \
	m4 | \
	sed "s@%{buildroot}@@g"	> %{buildroot}%{_mailcnfdir}/submit.cf
	chmod 0644 %{buildroot}%{_sysconfdir}/sendmail.cf
	chmod 0644 %{buildroot}%{_mailcnfdir}/submit.cf
    else
	m4 < %{_mailcnfdir}/linux.mc		> %{_sysconfdir}/sendmail.cf
	m4 < %{_mailcnfdir}/linux.submit.mc	> %{_mailcnfdir}/submit.cf
	chmod 0644 %{_sysconfdir}/sendmail.cf
	chmod 0644 %{_mailcnfdir}/submit.cf
    fi
%if %{with sysvinit}
    ln -sf %{_sysconfdir}/init.d/sendmail %{buildroot}%{_sbindir}/rcsendmail
%else
    ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcsendmail
    ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcsendmail-client
%endif
    ln -sf ../aliases  %{buildroot}%{_mailcnfdir}/aliases
    pushd %{buildroot}%{_mailcnfdir}/
	OPATH=$PATH
	PATH="${OPATH}:%{buildroot}%{_sbindir}:%{buildroot}%{_bindir}"
	make DESTDIR=%{buildroot} short
	PATH=$OPATH
    popd
%if %{without sysvinit}
    #
    # systemd unit conf files
    install -m 0644 %{S:3} %{buildroot}%{_unitdir}/
    install -m 0644 %{S:4} %{buildroot}%{_unitdir}/
    install -m 0644 %{S:5} %{buildroot}%{_unitdir}/
    install -m 0644 %{S:6} %{buildroot}/%{_mailcnfdir}/system/sm.pre
    install -m 0644 %{S:7} %{buildroot}/%{_mailcnfdir}/system/sm-client.pre
    chmod 0755 %{buildroot}/%{_mailcnfdir}/system/sm.pre
    chmod 0755 %{buildroot}/%{_mailcnfdir}/system/sm-client.pre
%endif
    #
    # Documentation for libmilter
    #
    install -m 0644 libmilter/docs/* ${doc}/libmilter/

    #
    # Remove some files we don't wish to package
    #
    rm -f %{buildroot}%{_sysconfdir}/aliases %{buildroot}%{_mailcnfdir}/*.db
    rm -f %{buildroot}%{_mailcnfdir}/*/*.db

%clean
rm -rf %{buildroot}

%if %{defined verify_permissions}
%verifyscript
%if %{with sysvinit}
%verify_permissions -e %{_localstatedir}/run/sendmail/
%endif
%verify_permissions -e %{_localstatedir}/spool/mqueue/
%verify_permissions -e %{_sysconfdir}/sendmail.cf
%if %{with sysvinit}
%verify_permissions -e %{_sysconfdir}/init.d/sendmail
%endif
%verify_permissions -e %{_mailcnfdir}/auth/
%verify_permissions -e %{_mailcnfdir}/certs/
%verify_permissions -e %{_libexecdir}/sendmail.d/bin/
%verify_permissions -e %{_libexecdir}/sendmail.d/bin/mail.local
%verify_permissions -e %{_libexecdir}/sendmail.d/bin/smrsh
%verify_permissions -e %{_sbindir}/sendmail
%endif

%post
# Trigger rebuild of old db's
for db in /etc/aliases.db /etc/aliases.d/*.db /etc/mail/*.db /etc/mail/*/*.db ; do
  test -e "$db"       || continue
  test -e "${db%.db}" || continue
  touch "${db%.db}"
done
# Update from newer SUSE releases or new installation
if test -f /etc/sysconfig/mail ; then
  . /etc/sysconfig/mail
fi
# Edit older configuration files
if test -s /etc/sysconfig/sendmail ; then
  sed -ri '\@^##[[:space:]]+Type:@,\@^#[[:space:]]+@ {
    \@^##[[:space:]]+Command:@b skip
    \@# enable this to change also the recipient address\.@i\
## Command:     /usr/lib/sendmail.d/update
    \@^#[[:space:]]*$@i\
## Command:     /usr/lib/sendmail.d/update
    :skip
    N
  }' /etc/sysconfig/sendmail
fi
%{fillup_only -an mail}
%if %{with sysvinit}
%{fillup_and_insserv -nY sendmail sendmail}
%else
%{fillup_only -an sendmail}
%service_add_post sendmail.service sendmail-client.service sendmail-client.path
PATH=bin:usr/bin:$PATH
if type -p systemctl > /dev/null 2>&1 ; then
  systemctl enable sendmail.service >/dev/null 2>&1 || :
  systemctl enable sendmail-client.service >/dev/null 2>&1 || :
  systemctl enable sendmail-client.path >/dev/null 2>&1 || :
fi
%endif
%if %{defined set_permissions}
%if %{with sysvinit}
%set_permissions %{_localstatedir}/run/sendmail/
%endif
%set_permissions %{_localstatedir}/spool/mqueue/
%set_permissions %{_sysconfdir}/sendmail.cf
%if %{with sysvinit}
%set_permissions %{_sysconfdir}/init.d/sendmail
%endif
%set_permissions %{_mailcnfdir}/auth/
%set_permissions %{_mailcnfdir}/certs/
%set_permissions %{_libexecdir}/sendmail.d/bin/
%set_permissions %{_libexecdir}/sendmail.d/bin/mail.local
%set_permissions %{_libexecdir}/sendmail.d/bin/smrsh
%set_permissions %{_sbindir}/sendmail
%endif

%if ! %{with sysvinit}
%pre
%service_add_pre sendmail.service sendmail-client.service sendmail-client.path
%endif

%preun
%if %{with sysvinit}
%{stop_on_removal sendmail}
%else
%service_del_preun sendmail.service sendmail-client.service sendmail-client.path
%endif

%postun
if test $1 = 0; then
%if %{with sysvinit}
    %{restart_on_update sendmail}
%endif
    rm -rf %{_localstatedir}/lib/sendmail
    exit 0
fi
%if ! %{with sysvinit}
%service_del_postun sendmail.service sendmail-client.service sendmail-client.path
%else
%{insserv_cleanup}
%endif

%posttrans
if test -x %{_libexecdir}/sendmail.d/update ; then
    VERBOSE=false %{_libexecdir}/sendmail.d/update
fi

%post -n libmilter%{libmilter_somajor}_%{libmilter_sominor} -p /sbin/ldconfig
%postun -n libmilter%{libmilter_somajor}_%{libmilter_sominor} -p /sbin/ldconfig

%files -f file-list
%defattr(-,root,root)
%dir %{_mailcnfdir}
# %{_sysconfdir}/aliases.d is part of aaa_dir
# %dir %attr(0750,root,mail) %{_sysconfdir}/aliases.d
%dir %attr(0750,root,root) %{_mailcnfdir}/auth
%dir %attr(0750,root,root) %{_mailcnfdir}/certs
%if %{without sysvinit}
%dir %attr(0750,root,root) %{_mailcnfdir}/system
%endif
%config(noreplace) %verify(not md5 size mtime) %{_sysconfdir}/sendmail.cf
# %{_sysconfdir}/aliases is part of netcfg
# %config(noreplace) %{_sysconfdir}/aliases
%doc               %{_mailcnfdir}/README
%config(noreplace) %{_mailcnfdir}/Makefile
# this is a link
%config(noreplace) %{_mailcnfdir}/aliases
%config(noreplace) %verify(not md5 size mtime) %attr(0600,root,root) %{_mailcnfdir}/auth/auth-info
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/linux.mc
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/linux.submit.mc
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/linux.nullclient.mc
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/mailertable
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/genericstable
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/domaintable
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/virtusertable
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/access
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/userdb
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/relay-domains
%config(noreplace) %{_mailcnfdir}/service.switch
%config(noreplace) %{_mailcnfdir}/service-nodns.switch
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/trusted-users
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/local-host-names
%config(noreplace) %verify(not md5 size mtime) %{_mailcnfdir}/submit.cf
%doc %{_defaultdocdir}/sendmail
%exclude %{_defaultdocdir}/sendmail/README.libmilter
%exclude %dir %{_defaultdocdir}/sendmail/libmilter
%exclude %{_defaultdocdir}/sendmail/libmilter/*
%{_datadir}/sendmail
%{_fillupdir}/sysconfig.sendmail
%{_fillupdir}/sysconfig.mail-sendmail
%config %attr(0644,root,root) %{_sysconfdir}/pam.d/smtp
%if %{with sysvinit}
%config %attr(0744,root,root) %{_sysconfdir}/init.d/sendmail
%endif
%attr(0755,root,root) %{_libexecdir}/sendmail.d/update
%attr(0755,root,root) %{_sbindir}/config.sendmail
%if %{without sysvinit}
%config %attr(0644,root,root) %{_unitdir}/sendmail-client.path
%config %attr(0644,root,root) %{_unitdir}/sendmail.service
%config %attr(0644,root,root) %{_unitdir}/sendmail-client.service
%config %attr(0755,root,root) %{_mailcnfdir}/system/sm.pre
%config %attr(0755,root,root) %{_mailcnfdir}/system/sm-client.pre
%endif
%{_bindir}/hoststat
%{_bindir}/mailq
%{_bindir}/newaliases
%{_bindir}/praliases
%{_bindir}/purgestat
#%{_bindir}/rmail
%{_prefix}/lib/sendmail
%dir %attr(0755,root,root) %{_libexecdir}/sendmail.d/
%dir %attr(0755,root,root) %{_libexecdir}/sendmail.d/bin/
%{_libexecdir}/sendmail.d/bin/mail
%attr(0511,root,root) %{_libexecdir}/sendmail.d/bin/mail.local
%{_libexecdir}/sendmail.d/bin/procmail
%attr(0511,root,root) %{_libexecdir}/sendmail.d/bin/smrsh
%{_libexecdir}/sendmail.d/bin/vacation
%{_libexecdir}/sendmail.d/helpfile
%doc %{_mandir}/man1/mailq.1.gz
%doc %{_mandir}/man1/newaliases.1.gz
%doc %{_mandir}/man5/aliases.5.gz
%doc %{_mandir}/man8/editmap.8.gz
%doc %{_mandir}/man8/makemap.8.gz
#%doc %{_mandir}/man8/rmail.8.gz
%doc %{_mandir}/man8/sendmail.8.gz
%doc %{_mandir}/man8/smrsh.8.gz
%doc %{_mandir}/man8/mail.local.8.gz
%doc %{_mandir}/man8/mailstats.8.gz
%doc %{_mandir}/man8/praliases.8.gz
%{_sbindir}/editmap
%{_sbindir}/mailstats
%{_sbindir}/makemap
# Should we do 6555??
%attr(2555,root,mail) %{_sbindir}/sendmail
%{_sbindir}/sendmail.nissl
%{_sbindir}/rcsendmail*

%files devel
%defattr(-,root,root)
%dir %{_includedir}/libmilter
%{_includedir}/libmilter/*.h
%dir %{_includedir}/sm
%{_includedir}/sm/*.h
%dir %{_includedir}/sm/os
%{_includedir}/sm/os/*.h
%{_libdir}/libmilter.a
%{_libdir}/libmilter.so
%{_libdir}/libsmutil.a
%{_libdir}/libsm.a

%files -n libmilter%{libmilter_somajor}_%{libmilter_sominor}
%defattr(-,root,root)
%{_libdir}/libmilter.so.*
%doc %{_defaultdocdir}/sendmail/README.libmilter

%files -n libmilter-doc
%defattr(-,root,root)
%dir %doc %{_defaultdocdir}/sendmail/libmilter/
%doc %{_defaultdocdir}/sendmail/libmilter/*

%files -n sendmail-starttls
%defattr(-,root,root)
%dir %attr(0700,root,root) %{_mailcnfdir}/certs/certs/
%dir %attr(0700,root,root) %{_mailcnfdir}/certs/crl/
%dir %attr(0700,root,root) %{_mailcnfdir}/certs/private/
%dir %attr(0700,root,root) %{_mailcnfdir}/certs/newcerts/
%dir %attr(0700,root,root) %{_mailcnfdir}/certs/scripts/

%files -n rmail
%defattr(-,root,root)
%{_bindir}/rmail
%doc %{_mandir}/man8/rmail.8.gz

%changelog
openSUSE Build Service is sponsored by