exim.spec 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. ##
  2. ## exim.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
  4. ## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
  5. ## Copyright (c) 2000-2003 Cable & Wireless <http://www.cw.com/>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # FIXME: mlelstv -- problems with config and permissions
  26. # package information
  27. Name: exim
  28. Summary: Exim Mail Transfer Agent
  29. URL: http://www.exim.org/
  30. Vendor: Philip Hazel
  31. Packager: The OpenPKG Project
  32. Distribution: OpenPKG [JUNK]
  33. Group: Mail
  34. License: GPL
  35. Version: 4.30
  36. Release: 20031203
  37. # package options
  38. %option with_fsl yes
  39. # list of sources
  40. Source0: ftp://ftp.csx.cam.ac.uk/pub/software/email/exim/exim4/exim-%{version}.tar.bz2
  41. Source1: exim-man.tar.gz
  42. Source2: rc.exim
  43. Source3: fsl.exim
  44. # build information
  45. Prefix: %{l_prefix}
  46. BuildRoot: %{l_buildroot}
  47. BuildPreReq: OpenPKG, openpkg >= 20030909, perl, gzip
  48. PreReq: OpenPKG, openpkg >= 20030909, perl, gzip
  49. BuildPreReq: openssl, db >= 4.1.24, libiconv
  50. PreReq: openssl, db >= 4.1.24, libiconv
  51. %if "%{with_fsl}" == "yes"
  52. BuildPreReq: fsl >= 1.3.0
  53. PreReq: fsl >= 1.3.0
  54. %endif
  55. AutoReq: no
  56. AutoReqProv: no
  57. Provides: MTA
  58. Conflicts: postfix, sendmail, ssmtp
  59. %description
  60. Exim is a message transfer agent (MTA) developed at the University
  61. of Cambridge for use on Unix systems connected to the Internet.
  62. In style it is similar to Smail 3, but its facilities are more
  63. extensive, and in particular it has some defences against mail
  64. bombs and unsolicited junk mail in the form of options for refusing
  65. messages from particular hosts, networks, or senders. It can be
  66. installed in place of sendmail, although the configuration of Exim
  67. is quite different to that of Sendmail.
  68. %prep
  69. %setup -q
  70. %{l_gzip} -d -c %{SOURCE exim-man.tar.gz} | %{l_tar} xvf -
  71. %build
  72. cp src/EDITME Local/Makefile
  73. ( echo 'CC=%{l_cc}'
  74. echo 'CFLAGS=%{l_cflags -O}'
  75. echo 'LDFLAGS=%{l_fsl_ldflags}'
  76. echo 'LIBS+=%{l_ldflags} %{l_fsl_libs} -liconv'
  77. echo 'EXIM_UID=%{l_muid}'
  78. echo 'EXIM_GID=%{l_mgid}'
  79. echo 'EXIM_USER=%{l_nusr}'
  80. echo 'EXIM_GROUP=%{l_ngrp}'
  81. echo 'LOG_FILE_PATH=%{l_prefix}/var/exim/log/%s.log'
  82. echo 'PID_FILE_PATH=%{l_prefix}/var/exim/run/%s.pid'
  83. echo 'SPOOL_DIRECTORY=%{l_prefix}/var/exim/spool'
  84. echo 'INFO_DIRECTORY=%{l_prefix}/info'
  85. echo 'SUPPORT_MOVE_FROZEN_MESSAGES=yes'
  86. echo 'SUPPORT_TLS=yes'
  87. echo 'TLS_INCLUDE=%{l_cppflags}'
  88. echo 'TLS_LIBS=%{l_ldflags} -lssl -lcrypto'
  89. echo 'TRANSPORT_LMTP=yes'
  90. echo 'INCLUDE=%{l_cppflags}'
  91. echo 'DBMLIB=%{l_ldflags} -ldb'
  92. echo 'USE_DB=yes'
  93. echo 'PERL_COMMAND=%{l_prefix}/bin/perl'
  94. echo 'CHOWN_COMMAND=true'
  95. echo 'NO_SYMLINK=yes'
  96. ) >>Local/Makefile
  97. %{l_shtool} subst \
  98. -e 's;^\(BIN_DIRECTORY=\).*;\1%{l_prefix}/bin;' \
  99. -e 's;^\(COMPRESS_COMMAND=\).*;\1%{l_prefix}/bin/gzip;' \
  100. -e 's;^\(ZCAT_COMMAND=\).*;\1%{l_prefix}/bin/zcat;' \
  101. -e 's;^\(CONFIGURE_FILE=\).*;\1%{l_prefix}/etc/exim/exim.conf;' \
  102. -e 's;^\(EXIM_MONITOR=.*\);#\1;' \
  103. Local/Makefile
  104. %{l_shtool} subst \
  105. -e 's;^\(CHOWN_COMMAND=\).*;\1true;' \
  106. OS/Makefile-`uname`
  107. make="%{l_make}"
  108. mflags="%{l_mflags}"
  109. case "%{l_platform -t}" in
  110. *-freebsd* ) make="make"; mflags=""; PATH="/usr/bin:$PATH" ;;
  111. esac
  112. $make $mflags makefile
  113. $make $mflags
  114. %install
  115. rm -rf $RPM_BUILD_ROOT
  116. %{l_shtool} mkdir -f -p -m 755 \
  117. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
  118. $RPM_BUILD_ROOT%{l_prefix}/bin \
  119. $RPM_BUILD_ROOT%{l_prefix}/sbin \
  120. $RPM_BUILD_ROOT%{l_prefix}/etc/exim \
  121. $RPM_BUILD_ROOT%{l_prefix}/var/exim \
  122. $RPM_BUILD_ROOT%{l_prefix}/var/exim/run \
  123. $RPM_BUILD_ROOT%{l_prefix}/var/exim/log \
  124. $RPM_BUILD_ROOT%{l_prefix}/man/man8
  125. %{l_shtool} install -c -m 644 \
  126. exim-man/*.8 $RPM_BUILD_ROOT%{l_prefix}/man/man8/
  127. INST_CHOWN=true; export INST_CHOWN
  128. INST_BIN_DIRECTORY=$RPM_BUILD_ROOT%{l_prefix}/bin; export INST_BIN_DIRECTORY
  129. INST_CONFIGURE_FILE=$RPM_BUILD_ROOT%{l_prefix}/etc/exim/exim.conf; export INST_CONFIGURE_FILE
  130. INST_INFO_DIRECTORY=$RPM_BUILD_ROOT%{l_prefix}/info; export INST_INFO_DIRECTORY
  131. make="%{l_make}"
  132. mflags="%{l_mflags}"
  133. case "%{l_platform -t}" in
  134. *-freebsd* ) make="make"; mflags=""; PATH="/usr/bin:$PATH" ;;
  135. esac
  136. $make $mflags install
  137. mv $RPM_BUILD_ROOT%{l_prefix}/bin/exim-%{version}* \
  138. $RPM_BUILD_ROOT%{l_prefix}/bin/exim
  139. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  140. ( cd $RPM_BUILD_ROOT%{l_prefix}/sbin
  141. ln -s ../bin/exim sendmail
  142. ln -s ../bin/exim mailq
  143. ln -s ../bin/exim rmail
  144. ) || exit $?
  145. ( echo "#!/bin/sh"
  146. echo "%{l_prefix}/sbin/sendmail -bi"
  147. ) >$RPM_BUILD_ROOT%{l_prefix}/sbin/newaliases
  148. chmod 755 $RPM_BUILD_ROOT%{l_prefix}/sbin/newaliases
  149. # install run-command script
  150. %{l_shtool} mkdir -f -p -m 755 \
  151. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  152. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  153. %{SOURCE rc.exim} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  154. # install OSSP fsl configuration
  155. %{l_shtool} mkdir -f -p -m 755 $RPM_BUILD_ROOT%{l_prefix}/etc/fsl
  156. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  157. %{SOURCE fsl.exim} \
  158. $RPM_BUILD_ROOT%{l_prefix}/etc/fsl/
  159. # determine installation files
  160. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  161. %{l_files_std} \
  162. '%not %dir %{l_prefix}/etc/fsl' \
  163. '%config %{l_prefix}/etc/fsl/fsl.exim' \
  164. '%attr(4755,%{l_susr},%{l_mgrp}) %{l_prefix}/bin/exim'
  165. %files -f files
  166. %clean
  167. rm -rf $RPM_BUILD_ROOT
  168. %post
  169. # after upgrade, restart service
  170. [ $1 -eq 2 ] || exit 0
  171. eval `%{l_rc} exim status 2>/dev/null`
  172. [ ".$exim_active" = .yes ] && %{l_rc} exim restart
  173. exit 0
  174. %preun
  175. # before erase, stop service and remove log files
  176. [ $1 -eq 0 ] || exit 0
  177. %{l_rc} exim stop 2>/dev/null
  178. rm -f $RPM_INSTALL_PREFIX/var/exim/* >/dev/null 2>&1 || true
  179. exit 0