Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:aevseev
exim
exim.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File exim.spec of Package exim
%define realver 4.97 %undefine subver # See src/version.sh %undefine variant %define compnum 2 # This needed for manpages from debian package %define debver 4.97-1 # turn off the generation of debuginfo rpm (RH9) ?? %global debug_package %{nil} %if ! 0%{?_fillupdir:1} %global _fillupdir /var/adm/fillup-templates %endif Name: exim Version: %{realver}%{?subver:.%{subver}} Release: wiz%{?extraver:0.}1%{?dist} Group: Productivity/Networking/Email/Servers License: GPL-2.0 URL: http://www.exim.org/ Summary: The mail transfer agent, a replacement for sendmail # Install-time parameters Provides: smtp_daemon smtpdaemon Conflicts: sendmail sendmail-tls postfix Requires: logrotate %if 0%{?suse_version} Requires: system-user-mail %endif BuildRequires: pkgconfig xz BuildRequires: pkgconfig(openssl) BuildRequires: readline-devel pcre2-devel BuildRequires: cyrus-sasl-devel postgresql-devel libspf2-devel BuildRequires: libidn-devel BuildRequires: pkgconfig(jansson) BuildRequires: pkgconfig(libmariadb) BuildRequires: pkgconfig(libpq) BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(hiredis) BuildRequires: perl(File::FcntlLock) %if 0%{?suse_version} BuildRequires: db-devel openldap2-devel BuildRequires: system-user-bin BuildRequires: system-user-mail %else BuildRequires: openldap-devel libevent-devel %if 0%{?rhel} >= 7 BuildRequires: libdb-devel %else BuildRequires: db4-devel %endif %endif # Packages needed to define _unitdir BuildRequires: systemd-rpm-macros %if 0%{?suse_version} >= 1500 BuildRequires: libnsl-devel %endif BuildRoot: %{_tmppath}/%{name}-%{version}-build Source0: http://ftp.exim.org/pub/exim/exim4/exim-%{version}.tar.bz2 Source1: sysconfig.exim Source2: exim.logrotate Source12: exim.service Source91: http://ftp.de.debian.org/debian/pool/main/e/exim4/exim4_%{debver}.debian.tar.xz Source99: exim-rpmlintrc # Fix building JSON lookup module as a dynamic one Patch: json_dynamic_lookup.patch %define LOOKUP_MODULE_DIR %{_libdir}/exim/%{version}/lookups/ %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. %package devel Group: Development/Libraries/C and C++ Summary: Header files for %{name} %description devel Header files for %{name} %package doc Group: Productivity/Networking/Email/Servers Summary: Documentation for %{name} %description doc Documentation for %{name} %package json Group: Productivity/Networking/Email/Servers Summary: JSON lookup for %{name} %description json JSON lookup library for %{name} %package mysql Group: Productivity/Networking/Email/Servers Summary: MySQL lookup for %{name} %description mysql MySQL lookup library for %{name} %package pgsql Group: Productivity/Networking/Email/Servers Summary: PostgreSQL lookup for %{name} %description pgsql PostgreSQL lookup library for %{name} %package redis Group: Productivity/Networking/Email/Servers Summary: Redis lookup for %{name} %description redis Redis lookup library for %{name} %package sqlite Group: Productivity/Networking/Email/Servers Summary: Sqlite lookup for %{name} %description sqlite sqlite lookup library for %{name} %prep %setup -q -T -b 0 -a 91 %patch -p1 # Create Makefile with build options # To get list of all available options execute command: # grep -E '^(#\s+)?[A-Z0-9_]+=' src/EDITME cat <<-EOF > Local/Makefile # see src/EDITME for comments. BIN_DIRECTORY=/usr/sbin CONFIGURE_FILE=%{_sysconfdir}/exim/exim.conf EXIM_USER=ref:mail EXIM_GROUP=ref:mail SPOOL_DIRECTORY=/var/spool/exim USE_OPENSSL=yes USE_OPENSSL_PC=openssl 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_MODULE_DIR=%{LOOKUP_MODULE_DIR} CFLAGS_DYNAMIC=-shared -fPIC EXTRALIBS=-export-dynamic -ldl LOOKUP_DBM=yes LOOKUP_LSEARCH=yes LOOKUP_DNSDB=2 # LOOKUP_CDB=yes # LOOKUP_DSEARCH=yes # LOOKUP_IBASE=yes LOOKUP_JSON=2 LOOKUP_JSON_PC=jansson LOOKUP_LDAP=yes LOOKUP_MYSQL=2 LOOKUP_MYSQL_PC=libmariadb # LOOKUP_NIS=yes # LOOKUP_NISPLUS=yes # LOOKUP_ORACLE=yes LOOKUP_PASSWD=2 LOOKUP_PGSQL=2 LOOKUP_PGSQL_PC=libpq LOOKUP_REDIS=2 LOOKUP_REDIS_PC=hiredis LOOKUP_SQLITE=2 LOOKUP_SQLITE_PC=sqlite3 # LOOKUP_WHOSON=yes # LOOKUP_WILDLSEARCH=yes # LOOKUP_NWILDLSEARCH=yes LDAP_LIB_TYPE=OPENLDAP2 PCRE2_CONFIG=yes # PCRE_LIBS=-lpcre2 SUPPORT_DANE=yes # You do not need to use this for any lookup information added via pkg-config. LOOKUP_LIBS=-lldap -llber # EXIM_MONITOR=eximon.bin WITH_CONTENT_SCAN=yes # DISABLE_MAL_FFROTD=yes # DISABLE_MAL_FFROT6D=yes # DISABLE_MAL_DRWEB=yes # DISABLE_MAL_FSECURE=yes # DISABLE_MAL_SOPHIE=yes # DISABLE_MAL_CLAM=yes # DISABLE_MAL_AVAST=yes # DISABLE_MAL_SOCK=yes # DISABLE_MAL_CMDLINE=yes DISABLE_MAL_AVE=yes DISABLE_MAL_KAV=yes DISABLE_MAL_MKS=yes # DISABLE_DKIM=yes # DISABLE_PRDR=yes # DISABLE_OCSP=yes # DISABLE_DNSSEC=yes # DISABLE_EVENT=yes # SUPPORT_PIPE_CONNECT=yes # EXPERIMENTAL_DCC=yes # EXPERIMENTAL_SRS=yes # EXPERIMENTAL_DMARC=yes # DMARC_TLD_FILE=/etc/exim/opendmarc.tlds EXPERIMENTAL_ARC=yes # EXPERIMENTAL_BRIGHTMAIL=yes EXPERIMENTAL_DSN_INFO=yes # EXPERIMENTAL_LMDB=yes # EXPERIMENTAL_QUEUEFILE=yes EXPERIMENTAL_TLS_RESUME=yes FIXED_NEVER_USERS=root:bin:daemon # CONFIGURE_OWNER= # CONFIGURE_GROUP= ALT_CONFIG_PREFIX=%{_sysconfdir}/exim/ # TRUSTED_CONFIG_LIST=/etc/exim/trusted_configs # DISABLE_D_OPTION=yes # WHITELIST_D_MACROS=TLS:SPOOL AUTH_CRAM_MD5=yes AUTH_CYRUS_SASL=yes # AUTH_DOVECOT=yes # AUTH_EXTERNAL=yes # AUTH_GSASL=yes # AUTH_GSASL_PC=libgsasl # AUTH_HEIMDAL_GSSAPI=yes # AUTH_HEIMDAL_GSSAPI_PC=heimdal-gssapi AUTH_PLAINTEXT=yes AUTH_SPA=yes AUTH_TLS=yes AUTH_LIBS=-lsasl2 HEADERS_CHARSET="ISO-8859-1" HAVE_ICONV=yes # DEFAULT_CRYPT=crypt16 INFO_DIRECTORY=%{_infodir} LOG_FILE_PATH=/var/log/exim/%%s.log # SYSLOG_LONG_LINES=yes SYSLOG_LOG_PID=yes EXICYCLOG_MAX=10 COMPRESS_COMMAND=/usr/bin/bzip2 COMPRESS_SUFFIX=bz2 ZCAT_COMMAND=/usr/bin/bzcat # EXIM_PERL=perl.o EXPAND_DLFUNC=yes # SUPPORT_PAM=yes # SUPPORT_SOCKS=yes # SUPPORT_PROXY=yes # SUPPORT_I18N=yes # SUPPORT_I18N_2008=yes SUPPORT_SPF=yes LDFLAGS += -lspf2 # RADIUS_CONFIG_FILE=/etc/radiusclient/radiusclient.conf # RADIUS_LIB_TYPE=RADIUSCLIENTNEW # CYRUS_PWCHECK_SOCKET=/var/pwcheck/pwcheck # CYRUS_SASLAUTHD_SOCKET=/var/state/saslauthd/mux # USE_TCP_WRAPPERS=yes # TCP_WRAPPERS_DAEMON_NAME="exim" # NO_SYMLINK=yes SYSTEM_ALIASES_FILE=/etc/aliases USE_READLINE=yes HAVE_IPV6=yes ############################################################################### # THINGS YOU ALMOST NEVER NEED TO MENTION # ############################################################################### CHOWN_COMMAND=/bin/true # CHGRP_COMMAND=/usr/bin/chgrp # CHMOD_COMMAND=/usr/bin/chmod # MV_COMMAND=/bin/mv # RM_COMMAND=/bin/rm # TOUCH_COMMAND=/usr/bin/touch # PERL_COMMAND=/usr/bin/perl # AR=ar cq TMPDIR="/tmp" # APPENDFILE_MODE=0600 # APPENDFILE_DIRECTORY_MODE=0700 # APPENDFILE_LOCKFILE_MODE=0600 # CONFIGURE_FILE_USE_NODE=yes # CONFIGURE_FILE_USE_EUID=yes # DELIVER_IN_BUFFER_SIZE=8192 # DELIVER_OUT_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/sh MAX_NAMED_LIST=64 # MAXINTERFACES=250 # MSGLOG_DIRECTORY_MODE=0750 # PERL_CC= # PERL_CCOPTS= # PERL_LIBS= NVALGRIND=1 PID_FILE_PATH=/var/spool/exim/exim.pid # SPOOL_DIRECTORY_MODE=0750 # SPOOL_MODE=0640 # SUPPORT_MOVE_FROZEN_MESSAGES=yes # EXPAND_LISTMATCH_RHS=yes # ENABLE_DISABLE_FSYNC=yes CFLAGS += %{optflags} -DNUL=NULL LDFLAGS += -Wl,--as-needed -Wl,--strip-all -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,now -Wl,-z,relro LDFLAGS += -lrt EOF # Set path to saslauthd socket %if 0%{?suse_version} echo "CYRUS_SASLAUTHD_SOCKET=/var/run/sasl2/mux" >> Local/Makefile %else echo "CYRUS_SASLAUTHD_SOCKET=/var/run/saslauthd/mux" >> Local/Makefile %endif %build %{__make} -e FULLECHO='' %install %{__make} install DESTDIR=%{buildroot} # Install lookup modules %{__install} -d -m755 %{buildroot}%{LOOKUP_MODULE_DIR} %{__install} -m755 build-*/lookups/*.so %{buildroot}%{LOOKUP_MODULE_DIR} # Prepare sysconfig file %if "%{expand:%_vendor}" == "suse" %define dest_sysconfig %{buildroot}%{_fillupdir}/sysconfig.exim %else %define dest_sysconfig %{buildroot}%{_sysconfdir}/sysconfig/exim %endif %{__install} -d -m755 $(dirname "%{dest_sysconfig}") %{__sed} -r '/^EXIM_ARGS/ s/-bd/-bdf/' %SOURCE1 > %{dest_sysconfig} %{__install} -D -m644 %SOURCE12 %{buildroot}%{_unitdir}/exim.service # Install logrotate configuration %{__install} -D -m644 %SOURCE2 %{buildroot}%{_sysconfdir}/logrotate.d/exim # Add/install missed directories and symlinks %{__install} -d -m755 %{buildroot}%{_bindir} %{__install} -d -m755 %{buildroot}/usr/lib/ %{__ln_s} %{_sbindir}/exim %{buildroot}/usr/lib/sendmail %{__ln_s} exim %{buildroot}%{_sbindir}/sendmail %{__install} -d -m755 %{buildroot}/var/log/exim # Install headerss required to build local scan modules %{__install} -d -m755 %{buildroot}%{_includedir}/exim/ %{__install} -m644 src/local_scan.h %{buildroot}%{_includedir}/exim/ %{__install} -m644 build-*/config.h %{buildroot}%{_includedir}/exim/ %{__install} -m644 src/mytypes.h %{buildroot}%{_includedir}/exim/ %{__install} -m644 src/store.h %{buildroot}%{_includedir}/exim/ # Fix script permissions %{__chmod} a-x build-Linux-*/convert4r{3,4} %{__chmod} a-x util/* # Install manpage %{__install} -D -m644 doc/exim.8 %{buildroot}%{_mandir}/man8/exim-%{realver}%{?variant}-%{compnum}.8 %{__ln_s} exim-%{realver}%{?variant}-%{compnum}.8 %{buildroot}%{_mandir}/man8/exim.8 # Create symlinks with generic names for exim binaries and manpages for exim_bin in mailq newaliases rmail rsmtp runq; do %{__ln_s} ../sbin/exim-%{realver}%{?variant}-%{compnum} %{buildroot}%{_bindir}/${exim_bin} %{__ln_s} exim-%{realver}%{?variant}-%{compnum}.8 %{buildroot}%{_mandir}/man8/${exim_bin}.8 done # Disable router "userforward" and configure local delivery to enable running without root privileges %{__sed} -ri \ -e '/^userforward:$/,/^$/ s/^(.+)$/#\1/' \ -e '/transport = local_delivery/ a\ transport_home_directory = /var/spool/exim' \ -e '/driver = appendfile/ a\ mode = 660\n user = mail\n group = mail\n no_check_owner\n file_must_exist' \ %{buildroot}%{_sysconfdir}/exim/exim.conf # Install manpages from Debian distribution for manpage in debian/manpages/exi*.8; do %{__install} -m644 ${manpage} %{buildroot}%{_mandir}/man8/${manpage##*/} done for exim_db_bin in exim_dumpdb exim_fixdb exim_tidydb; do %{__ln_s} exim_db.8 %{buildroot}%{_mandir}/man8/${exim_db_bin}.8 done # Make crontab creating user mailboxes %{__install} -d -m755 %{buildroot}/etc/cron.hourly cat > %{buildroot}/etc/cron.hourly/exim_mailboxes <<EOF #!/bin/bash getent passwd \\ | awk -F: '\$3 == 0 || \$3 >= 1000 && \$1 != "nobody" {print \$1}' \\ | while read username; do test -f /var/mail/\${username} || install -m660 -o\${username} -gmail /dev/null /var/mail/\${username} done EOF %clean [ "%{buildroot}" != "/" ] && rm -rf %{buildroot} %files %defattr(-,root,root) %doc ACKNOWLEDGMENTS CHANGES LICENCE NOTICE README.UPDATING README %doc doc/ChangeLog doc/NewStuff doc/README.SIEVE doc/*.txt %doc src/configure.default %doc build-Linux-*/convert4r{3,4} %doc util %{_bindir}/* %{_sbindir}/* %caps(cap_net_bind_service=ep) %attr(0755, root, root) %{_sbindir}/exim-%{realver}%{?variant}-%{compnum} %dir %{_sysconfdir}/exim %{_unitdir}/exim.service %config(noreplace) %{_sysconfdir}/exim/exim.conf %config(noreplace) /etc/logrotate.d/exim %attr(0755,root,root) %config(noreplace) /etc/cron.hourly/exim_mailboxes %exclude /etc/aliases /usr/lib/sendmail %dir %{_libdir}/exim/ %dir %{_libdir}/exim/%{version}/ %dir %{LOOKUP_MODULE_DIR} %{LOOKUP_MODULE_DIR}/dnsdb.so %{LOOKUP_MODULE_DIR}/passwd.so %if "%{expand:%_vendor}" == "suse" %{_fillupdir}/sysconfig.exim %else %config(noreplace) /etc/sysconfig/exim %endif %attr(755,mail,mail) %dir /var/log/exim %doc %{_mandir}/man8/*.8* %files devel %defattr(-,root,root) %{_includedir}/exim/ %files doc %defattr(-,root,root) %doc doc/* %files json %defattr(-,root,root) %dir %{_libdir}/exim/ %{LOOKUP_MODULE_DIR}/json.so %files mysql %defattr(-,root,root) %dir %{_libdir}/exim/ %{LOOKUP_MODULE_DIR}/mysql.so %files pgsql %defattr(-,root,root) %dir %{_libdir}/exim/ %{LOOKUP_MODULE_DIR}/pgsql.so %files redis %defattr(-,root,root) %dir %{_libdir}/exim/ %{LOOKUP_MODULE_DIR}/redis.so %files sqlite %defattr(-,root,root) %dir %{_libdir}/exim/ %{LOOKUP_MODULE_DIR}/sqlite.so %if 0%{?suse_version} %pre %{service_add_pre %{name}.service} %post %{service_add_post %{name}.service} %preun %{service_del_preun %{name}.service} %postun %{service_del_postun %{name}.service} %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor