diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /mail-mta/exim |
reinit the tree, so we can have metadata
Diffstat (limited to 'mail-mta/exim')
25 files changed, 2071 insertions, 0 deletions
diff --git a/mail-mta/exim/Manifest b/mail-mta/exim/Manifest new file mode 100644 index 000000000000..18f8ee6c587f --- /dev/null +++ b/mail-mta/exim/Manifest @@ -0,0 +1,29 @@ +AUX auth_conf.sub 790 SHA256 d0631d487f115c07a178d48bc7168cd16d7b22c8879b1e926923152cde95ba78 SHA512 c0799a44e0fabdd4eb33c9c4a009c7abed80d5b2ab773206b11d644e54bb79004c5741fc510df77fe9856bdff979a14f1cf9a58da19fb00aaae05c623da287b3 WHIRLPOOL 54a457732851ec3154b38e161728f932e52166e0a3debe3f4672208207eb3070056a473bd6b73977ecda2d8d6c7348cbaf4870ee3d4b3250e64f2da5f58c5153 +AUX exim-4.14-tail.patch 446 SHA256 74d1044bb94e167180fd8f8aba7449ca3d2b09b1ce170a1a2e4e54ca0cd660da SHA512 a0365b15f0a48076f9660ebc424d48f68995ac21bbf77f407bdca5103ca65758d7f2241d0151eb5c78476557e240b24a95c23d3b12cfffc1b34ab6f89f2c2110 WHIRLPOOL c6e7e1d183c7669a745b33643c61b672a2c2800a0f1eeff380afa5cafe6d97a91106a4f08273ed154a87cfc7ee807cef8308422b53092083fcc12030403786a5 +AUX exim-4.20-maildir.patch 478 SHA256 2704c4db67bb7c58c2421656d942f533d1eedf1df187e76297ab72d2c2a2fb4c SHA512 2c6f68e3c162a51e62ce6e391db8e79733f11bba20cc8778737650158203b88f9a77b7bbbd2a32b2cf8ae50f039b794fb0996f198acec6a50b94cad6a111f432 WHIRLPOOL 4cf3638b7c7b05badeebbb65151f5d8e847fe2324ca5f88bcca87b8bf7e01ae290a9deccb26dec6abec89f105d00625efe99874e9ea2edf4a557b3d831c3b9f0 +AUX exim-4.69-r1.27021.patch 1447 SHA256 dc81115be1324cf2d61ff2e2393462bd31aa63551a8b58d9dac39293bec058d5 SHA512 45a5b833c698da4690485716c7c45d762a9194d5ae41514028bbad548bbd44373cf7a3a3c6a1c4f635f3f50d1695ac7ead098bf8be15cd1f691c7cc6c7f8d715 WHIRLPOOL ddf5a97d6d2c7220ebbca8ae5377a2c177c75bbed82a2e356f71582839021fe32eb6001d099fa4fb9c4afd55e7a74249d54997cdf691eb6b6aa44a8f834b1d64 +AUX exim-4.74-localscan_dlopen.patch 9280 SHA256 dcd44f552e9b9b79facc988c9efad3ab1609a4e4209e9276323f49d1ea00e462 SHA512 bfd35b8fcc7b8bd50a28b2bb7865d358ed1af3978b057da1c83a0be38ba30a737d983b6b5cf829559ba8c490709d28bdb7d679eb825fe7e24798ec223bedc94e WHIRLPOOL 7140c45782d8611638f3aecc960f890963b1d34fd1cca7a5b78058a616607d10c1a50d4110498e9c3d700ca04df8797c184ce816bfd1cab8931bd4eb9ef3aa8a +AUX exim-4.74-radius-db-ENV-clash.patch 667 SHA256 a4150c9b73203dd284faa646a67e39f431d07c6a378af8fabc97a4ad9e078437 SHA512 040bbdb2259df882569a428b7fef03f89c3685428654ac29e93360a4791bdabe66e52d33d14f0822461fac119295bd31aad5998f63d59d4af057bd26b310a568 WHIRLPOOL 3ef9641fc821be5d7477ccc41f8656f987a896e883a7aa3a627b92e64e2663a87f345bd0fc46ae1b4b9f6ac09a560c951c0396dd135305c97821374d8aa08806 +AUX exim-4.76-crosscompile.patch 462 SHA256 25ba013858b0fc239e24166554c1e28832d3d25801b53ca633f289bc4ae72b8e SHA512 d4fd4417c1ce727f139999c399795312cdbbb9735d0793d68f8e3150240bc53b31277cb26f9946ba549b34c661fc0a61147d376bda09aa6763cab55d80d62343 WHIRLPOOL 22026d355888efb2f823842c596fb670f0821076fe6faaae9d0a6ecf57a4a6de52af9f720e784e8d7bbcf681494a020f22e75f4a2aa079d30880f5c9af759405 +AUX exim-4.80-spool-mail-group.patch 946 SHA256 4f013e30f6f96360baa7d5d7818eaf5247984ab0eb43b8b5ba8d1bd8704b811b SHA512 24f30e9a9d90dc0f1fe8b3db26f8bc2649182b4e78110dc28a9c0f3a3feb7589f923144a4f1c54a1c46ff8cfe40826a1f2212787753be752f4d15a72d54a143b WHIRLPOOL aa34f4e721fda796ebeb091514ec35ffcf153e813b7760245d25da5d6f27590734d28032498a0ffb2262e170355b0a99b53947818e669d1f79bd0393ae85a2d6 +AUX exim-4.82-makefile-freebsd.patch 1252 SHA256 c407ea37ff8125f20f535ddb02793d5242a12582b9ab388d2ba956f932af2f3d SHA512 fb440ad3e46b90d4c2e4826841944f4006390ccebee08154a39e46f6854be15edd7d0b028333b41451a0511f886ad3a30cb4b86e7ba8be99f12616a137f09d56 WHIRLPOOL 72132bdce44ba23fb162a5afaed33ea72ef2c917d020f5ddf920ce16991f02411c0bbcb23526b0e09753ab84cf2f258108aa2283ce5f9529810844497df29501 +AUX exim-4.89-CVE-2017-1000369.patch 2043 SHA256 6dc564e94d18a04ed8a31efc4ccb3d6cb183a8ead3b9b7eda558f42b6f7fa038 SHA512 6c4a227bb3a6ba8178cd13c796b10c031c39114749746ac236269b104fb2c22c6388e0a99ca7915ba48203e332714518bd865efd5ec226ffdec9334f882c9a5d WHIRLPOOL 58b08e2fa14f522c62d2265aa950d8b3aebe511b3c77ca915c96d9f051a6aac3136d51d5aeee3a8d13fb49c2c0caecdd724cb95b52126656cfb9345da8279e18 +AUX exim-4.89-address-expando-crash.patch 3655 SHA256 bda3a37c301343f883c7fca19b647e33470986bdcc426335b9d15a502d020dc8 SHA512 79623b920c4447daa607ceee5c6c0b4a178185f2768d2a8d2cd9d23b31714d06b2b5134db654156df66eec57fbf24b2129c32016c4a3800819c7638391e78c05 WHIRLPOOL b69bb88e9f9d44a38aa31a0a582f05fd9d9338fe6fb9d8acaf5966e6496de10630b8e17cabff618bb8b562884f47d3f01e33f782d29f4234514a966896956bfe +AUX exim-4.89-as-needed-ldflags.patch 6048 SHA256 d162f0c29704f353f1a9bedc90b375fb8e08fff492b414e156b6cd5076102367 SHA512 a0ac891c2708afdf8be339a15e6c74d27a19ac87ab63e97de71b5b5d4fab63b898018f7f0ad1dc2e22a86d71c05c1a1b250d598d7622e6172f187ac36e5c3adf WHIRLPOOL 5a3b6886fc2c932cfdf5da8a0a11b4fcd6bd75ce8feafbb5c60e05b5b994b332c631cb5264a032c247f21c9488eff67335b320684900eb760156a84a7174ca39 +AUX exim-4.89-transport-crash.patch 2416 SHA256 f811f70485adf87c61cb70704237bb90e662d258ca400688934524323464ac4f SHA512 52bd267e748d92ea92ce4944acc8ec7f49e8b1cb74fc473af618fe4fafb68a961ff2b849fc508ff95340ba7bd2851500082a05a54403fa484c9b9a23c0aa787d WHIRLPOOL 553b1bd59709dc28fb11b6b7570dd4bfe609fa6bc024f2fcbcb215412757d801cdb51262ef6916425211e06624da71f9c7304335120d8619bbadd4ea97928d14 +AUX exim-submission.socket 161 SHA256 d3bb58f0fbeaaa33c812a823708664bbcd828da7d24e2a098f84a15aee443fee SHA512 4a233761793e3510e9efa5aad3a6098c41b757f13133a7ea825680f2b393aba8d7935f16bf1dd065dde884fe7ba45639a8d398333a7d9bf0a6b72f88c8f2a09d WHIRLPOOL 7fe2a157ae3361440d8a85c8eca44a97a289be1689261efda943076c9a76ab74ef9d5f01ec0eecdde940ae30ccb46530c95d7223cf62b78e8eb2bde5268288e2 +AUX exim-submission_at.service 360 SHA256 55719e8b823702b0054584326ca28349b7487e5be9e567ddc7a6e6259767e05b SHA512 dc28698f15e8eaa4614ae81fc8cb76d92fed1110ce02f7a6ee8feace418dbb194711eb2d4dd444cf818628c11721e21d80b7b974879ab6ddd78cc717cce17c2f WHIRLPOOL 8e907250dc6be75a252b0a6880004b05fccb2ebeb044a4538bc88eae6ed81f5a537a319188320657d43b3ae1850e11cfa0d86393b038d2d0d1e9a0ce7a7543fc +AUX exim.confd 141 SHA256 352c48d5302d122d75b821395933150e1fc6e16004b0d28e99a14b60f160ee6e SHA512 cb5e4aa71d3f0b7945e9806064f6a3ab64cb894381654ead40c73a49ae2d1bbb3dc587919952a09b2c81b9fcf8784f73d59c12081cda96a5b7210442f5088998 WHIRLPOOL 078764d27c5c7614120ac0f531b97ac4b65a68ee741fe11fd3ae68e8e89307cc3aaab6d7ee651ec5969479cf9f752933c54faef1e068efa3fda85360343f4d39 +AUX exim.logrotate 116 SHA256 755eab8631ebc103fff111b0c37ff104a34f8fdff349d383d62cd91db3bc0984 SHA512 24bb8dcfadb1204c2ab0316d57de287b5092754731949390cfb3c88fa6827d45acfe1048cf9e26f615ca0449e8d780d0c98ea55ed61be9d1558755d3e53b9ec8 WHIRLPOOL 7c3092e99e20a038fe21f10ada71bae39faa31de6d032b0bd02a373a92b34f3972ab68642cca072364b28d3c0cbe3f35787f137681b8d8093105fb56abd9c7ed +AUX exim.rc10 1135 SHA256 8fbe1f687414a75c325d2d636431a818546126770efdfe5230f2d672a0f1ff3b SHA512 5c7cee6139145983c62df8f5ef6c401d34d2eb7eae3146c28045129ba40868ca4d3d10d4b7056887cf4d4d8a83271592f7fa0a527663f727fa8694b621eb5624 WHIRLPOOL f7f67d0d411a3ad7f72dae2942529d20cc70dd592f020d95d28d8406264007ed6a335294673dc1d1f0690d805a03420470f3a9446bf1206ca1a0589c929cbd11 +AUX exim.service 229 SHA256 6e5372338d93b75d96bf571d892b167ac812378bcf978dcd3f3324d7e612463a SHA512 a071e9fb74b5fc2fdf0c73ad64ddfbc3954d8f7095d6a363dacf8c75d72a479fbf6821822ec5c8f3846d7687342e1bd447b97f91ca7b0582e5c98008aac30cca WHIRLPOOL 5f2ccd6898c95599f8e801aa111c53dbb50b7ec9f6ba6552fe195ad07d41efdcbff765cba1d696df6acb564bca29830d0bf61bcda9a244a3b48354318914bbd5 +AUX exim.socket 139 SHA256 3e3d8b6be2741d2587a496196c08b3f2ffa05b5803b2bf9fb49359cef3a98d26 SHA512 db621116907ceb573e6f34581f47c91f751bff593054d7ddc32397b34c7f2405bec184bdb0589d2ac457fa3a61bcba072761e3a6293a99c9c764d2d9fd6069ae WHIRLPOOL 6ddceaa1bf31d995afa2dc49ab4d8e1068321ab12b158e075f6ea3f2cc4dff35c2052da2a85fe998813354755e574670086880ef7e42e2a02877d4f766706d3c +AUX exim_at.service 140 SHA256 faad96dadbb2750faa5652d830f10d5a14be487a42e8db1cec797164acf14b73 SHA512 11c8133ee15b3e5193c9b1c59aed66c81b6e045dd23310bede9fcde6c88905db5ef08afdb798b53b75a7465915ea1247e980edf95db07a7f9b7bb58ce95fbb5a WHIRLPOOL 78f0c825526ae890458c4e71df2bd724d77d508081c6d6c2e3493732f11576ffeed755968dd2f3bcfb1cc6e0b0d61ea9fc175cd71340d908646f1a9ccbc7406e +DIST exim-4.89.tar.bz2 1844430 SHA256 912f2ee03c8dba06a3a4c0ee40522d367e1b65dc59e38dfcc1f5d9eecff51ab0 SHA512 1e059966a93b47f055ab4ec2a4556f2c918aff56ea0367585f3a853f00411e9c275e13be4f9ae615a468fa06263135cd6a138fa1753f1b7fb3259a3321fcca65 WHIRLPOOL d0b30cde5cf2dbe278d393eae70e40a3861a153a2411f98f73a7ae43881032cc3e0f15163b09e17d61c09e673c2e766371c80533908af3460f483a5c18dff80f +DIST exim-pdf-4.89.tar.bz2 1924606 SHA256 17d70ef5b2814f725633efcf339bcb49ac9564ecd648e0e3d010b5e43d6c167d SHA512 b04ea2e4dcdb1aaf52ef77ccd76e6599c68c4c6e5a98090720dbd3c50f7191bf3f6cd7dc2089a765c47576311780809cff547f85f004caec411d0f1ac9985299 WHIRLPOOL 4ab5bc7bdbbfc998ae7ee63f19449d051a1d7183f9b70297db100f44b82df2cca0853c309ddfccafee2d44cd1228258e06628ed82dab76de851bec856321c58f +DIST system_filter.exim.gz 3075 SHA256 3a3471b486a09e0a0153f7b520e1eaf26d21b97d73ea8348bdc593c00eb1e437 SHA512 cb358d3ce2499a0bb5920d962a06f2af8486e55ec90c8c928bd8e3aefb279aa57f5f960d5adfcef68bd94110b405eaa144e9629cfe6014a529c79c544600bbf3 WHIRLPOOL ce68d9c18b24eca3ef97ea810964cc1ada5f85b795a7c432ad39b5788188a16419101c92fb52b418738d760e1d658f7a41485e5561079a667d84d276c71be5a4 +EBUILD exim-4.89-r1.ebuild 12241 SHA256 47b6e8a97d39cc082221d74c7db092b50779f006fc6ec406fcf908020ece8ca9 SHA512 7ff6fa9d2b968a65e4b1e014f4bc1c53d7d1282a45893132aafdbceb403172a02c1455242a266960b4d403db3ca981fffaa8cc82028964e2c72dac8a0da347dc WHIRLPOOL c5cc4a4c4950da958a6b73859c24b50fcbcea05ec5bc5531300d6077c3ca4abebc6709d0533c68bc8e1f819f670d4052304ad8c7ddf0b253962b5d2fa531ebb3 +EBUILD exim-4.89-r3.ebuild 12401 SHA256 92f8ec13452af2d9825ba64b18ff002fd7d348338a8a6c8463942e60986ae1d9 SHA512 4a529526216963f566d5c30ecdfadbfdbeac276d8187b90b8e6aa6be17b6bffda64ae66e9ae7b77ada193812125669d72a524fd9095af58ee2561cfd7df0d76a WHIRLPOOL dbc0014e8225e55dc11503355c90f1879543259e7d409b77382d1ea2c58fc57400283218868d1c880f9202295b69418c2c3f1dd67b539755d512ab43bfdf28f2 +MISC ChangeLog 13030 SHA256 5686d9f0d2be8158ab3c640f0e0d2c15442db59f0dfbffaebb260f1f96e219d8 SHA512 6e0a8aecdee434eb1c7fa9420de9a1ba07ee7b629232c2ba9a03e33adfb75b049656a85fa42e972bec6e1c466f07d0f92ff77599a01ba3893348406898f84093 WHIRLPOOL 79642a92025c6cd8686ec1c0855ad44783a833875e2133a7457c19bb3a4baeb7f117ac5dffba270ef92309caaf3231551906c9817c48fd38e9d3fa744741c504 +MISC ChangeLog-2015 59473 SHA256 0867a4dc55a8e07aa1405df7cf42cb81b69ac23448033497fc1e320a3f495e8e SHA512 9617c4567c0186089802445a8457fc3ccd087285a7075a30e5072a6d53aba47a5820d391f149e9b3dfd9e576848888172a05d1a7073136dd4720fee5a43da289 WHIRLPOOL 14e758c28088f809a6052016e09f3c6e556716ce254d59bdadf1ffed8824d9cd88f435940743193332f3d9a2da6bf4be98d24be04f0602e017ff59c05c85ee28 +MISC metadata.xml 2482 SHA256 ec45d3ec75d244d4e842d76157f927deb78c933d01fabbefd1dc3f3a1666494d SHA512 dcda0d8164098a41d7defa30b84b36bfdc6fc1fecce2dc680aa22341f67be9dad281bdee0b6f9028459b4a62d4f3a83a16bd1cdca99238b114532c7b06f5c25f WHIRLPOOL 5bdfc907c3fe72cfa3846a183737de42315ebee92e168835347a419366049daab2b9ad236bc24889828d96dac8cd6d44711ccbe8de895ec9da909f5ec1c4d72c diff --git a/mail-mta/exim/exim-4.89-r1.ebuild b/mail-mta/exim/exim-4.89-r1.ebuild new file mode 100644 index 000000000000..affe15065466 --- /dev/null +++ b/mail-mta/exim/exim-4.89-r1.ebuild @@ -0,0 +1,528 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit eutils toolchain-funcs multilib pam systemd + +IUSE="dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl dsn exiscan-acl gnutls ipv6 ldap libressl lmtp maildir mbx mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux spf sqlite srs ssl syslog tcpd tpda X elibc_glibc" +REQUIRED_USE=" + dane? ( !gnutls ) + dmarc? ( spf dkim ) + pkcs11? ( gnutls ) + spf? ( exiscan-acl ) + srs? ( exiscan-acl ) +" + +COMM_URI="ftp://ftp.exim.org/pub/exim/exim4$([[ ${PV} == *_rc* ]] && echo /test)" + +DESCRIPTION="A highly configurable, drop-in replacement for sendmail" +SRC_URI="${COMM_URI}/${P//rc/RC}.tar.bz2 + mirror://gentoo/system_filter.exim.gz + doc? ( ${COMM_URI}/${PN}-pdf-${PV//rc/RC}.tar.bz2 )" +HOMEPAGE="http://www.exim.org/" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="alpha amd64 ~arm hppa ia64 ppc ppc64 sparc x86 ~x86-fbsd ~x86-solaris" + +COMMON_DEPEND=">=sys-apps/sed-4.0.5 + >=sys-libs/db-3.2:= + dev-libs/libpcre + perl? ( dev-lang/perl:= ) + pam? ( virtual/pam ) + tcpd? ( sys-apps/tcp-wrappers ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:= ) + ) + gnutls? ( net-libs/gnutls[pkcs11?] + dev-libs/libtasn1 ) + ldap? ( >=net-nds/openldap-2.0.7 ) + nis? ( elibc_glibc? ( || ( + <sys-libs/glibc-2.23 + >=sys-libs/glibc-2.23[rpc] + ) ) ) + mysql? ( virtual/libmysqlclient ) + postgres? ( dev-db/postgresql:= ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 ) + redis? ( dev-libs/hiredis ) + spf? ( >=mail-filter/libspf2-1.2.5-r1 ) + dmarc? ( mail-filter/opendmarc ) + srs? ( mail-filter/libsrs_alt ) + X? ( x11-proto/xproto + x11-libs/libX11 + x11-libs/libXmu + x11-libs/libXt + x11-libs/libXaw + ) + sqlite? ( dev-db/sqlite ) + radius? ( net-dialup/freeradius-client ) + virtual/libiconv + " + # added X check for #57206 +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig" +RDEPEND="${COMMON_DEPEND} + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/mini-qmail + !<mail-mta/msmtp-1.4.19-r1 + !>=mail-mta/msmtp-1.4.19-r1[mta] + !mail-mta/netqmail + !mail-mta/nullmailer + !mail-mta/postfix + !mail-mta/qmail-ldap + !mail-mta/sendmail + !mail-mta/opensmtpd + !<mail-mta/ssmtp-2.64-r2 + !>=mail-mta/ssmtp-2.64-r2[mta] + !net-mail/mailwrapper + >=net-mail/mailbase-0.00-r5 + virtual/logger + dcc? ( mail-filter/dcc ) + selinux? ( sec-policy/selinux-exim ) + " + +S=${WORKDIR}/${P//rc/RC} + +src_prepare() { + epatch "${FILESDIR}"/exim-4.14-tail.patch + epatch "${FILESDIR}"/exim-4.74-localscan_dlopen.patch + epatch "${FILESDIR}"/exim-4.69-r1.27021.patch + epatch "${FILESDIR}"/exim-4.74-radius-db-ENV-clash.patch # 287426 + epatch "${FILESDIR}"/exim-4.82-makefile-freebsd.patch # 235785 + epatch "${FILESDIR}"/exim-4.89-as-needed-ldflags.patch # 352265, 391279 + epatch "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591 + epatch "${FILESDIR}"/exim-4.89-CVE-2017-1000369.patch # 622212 + + if use maildir ; then + epatch "${FILESDIR}"/exim-4.20-maildir.patch + else + epatch "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606 + fi + + eapply_user + + # user Exim believes it should be + MAILUSER=mail + MAILGROUP=mail + if use prefix && [[ ${EUID} != 0 ]] ; then + MAILUSER=$(id -un) + MAILGROUP=$(id -gn) + fi +} + +src_configure() { + # general config and paths + + sed -i.orig \ + -e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${EPREFIX}/etc/mail/aliases'" \ + "${S}"/src/configure.default || die + + sed -i -e 's/^buildname=.*/buildname=exim-gentoo/g' Makefile || die + + sed -e "48i\CFLAGS=${CFLAGS}" \ + -e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \ + -e "s:EXIM_USER=:EXIM_USER=${MAILUSER}:" \ + -e "s:CONFIGURE_FILE=/usr/exim/configure:CONFIGURE_FILE=${EPREFIX}/etc/exim/exim.conf:" \ + -e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \ + -e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \ + src/EDITME > Local/Makefile + + if use elibc_musl; then + sed -e 's/^LIBS = -lnsl/LIBS =/g' \ + -i OS/Makefile-Linux + fi + + cd Local + + cat >> Makefile <<- EOC + INFO_DIRECTORY=${EPREFIX}/usr/share/info + PID_FILE_PATH=${EPREFIX}/run/exim.pid + SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim + HAVE_ICONV=yes + EOC + + # if we use libiconv, now is the time to tell so + use !elibc_glibc && use !elibc_musl && echo "EXTRALIBS_EXIM=-liconv" >> Makefile + + # support for IPv6 + if use ipv6; then + cat >> Makefile <<- EOC + HAVE_IPV6=YES + EOC + fi + + # + # mail storage formats + + # mailstore is Exim's traditional storage format + cat >> Makefile <<- EOC + SUPPORT_MAILSTORE=yes + EOC + + # mbox + if use mbx; then + cat >> Makefile <<- EOC + SUPPORT_MBX=yes + EOC + fi + + # maildir + if use maildir; then + cat >> Makefile <<- EOC + SUPPORT_MAILDIR=yes + EOC + fi + + # + # lookup methods + + # use the "native" interfaces to the DBM and CDB libraries, support + # passwd and directory lookups by default + cat >> Makefile <<- EOC + USE_DB=yes + DBMLIB=-ldb + LOOKUP_CDB=yes + LOOKUP_PASSWD=yes + LOOKUP_DSEARCH=yes + EOC + + if ! use dnsdb; then + # DNSDB lookup is enabled by default + sed -i "s:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:" Makefile + fi + + if use ldap; then + cat >> Makefile <<- EOC + LOOKUP_LDAP=yes + LDAP_LIB_TYPE=OPENLDAP2 + LOOKUP_INCLUDE += -I"${EROOT}"usr/include/ldap + LOOKUP_LIBS += -lldap -llber + EOC + fi + + if use mysql; then + cat >> Makefile <<- EOC + LOOKUP_MYSQL=yes + LOOKUP_INCLUDE += $(mysql_config --include) + LOOKUP_LIBS += $(mysql_config --libs) + EOC + fi + + if use nis; then + cat >> Makefile <<- EOC + LOOKUP_NIS=yes + LOOKUP_NISPLUS=yes + EOC + fi + + if use postgres; then + cat >> Makefile <<- EOC + LOOKUP_PGSQL=yes + LOOKUP_INCLUDE += -I$(pg_config --includedir) + LOOKUP_LIBS += -L$(pg_config --libdir) -lpq + EOC + fi + + if use sqlite; then + cat >> Makefile <<- EOC + LOOKUP_SQLITE=yes + LOOKUP_SQLITE_PC=sqlite3 + EOC + fi + + if use redis; then + cat >> Makefile <<- EOC + LOOKUP_REDIS=yes + LOOKUP_LIBS += -lhiredis + EOC + fi + + # + # Exim monitor, enabled by default, controlled via X USE-flag, + # disable if not requested, bug #46778 + if use X; then + cp ../exim_monitor/EDITME eximon.conf || die + else + sed -i -e '/^EXIM_MONITOR=/s/^/# /' Makefile + fi + + # + # features + + # content scanning support + if use exiscan-acl; then + cat >> Makefile <<- EOC + WITH_CONTENT_SCAN=yes + WITH_OLD_DEMIME=yes + EOC + fi + + # DomainKeys Identified Mail, RFC4871 + if ! use dkim; then + # DKIM is enabled by default + cat >> Makefile <<- EOC + DISABLE_DKIM=yes + EOC + fi + + # Per-Recipient-Data-Response + if ! use prdr; then + # PRDR is enabled by default + cat >> Makefile <<- EOC + DISABLE_PRDR=yes + EOC + fi + + # log to syslog + if use syslog; then + sed -i "s:LOG_FILE_PATH=/var/log/exim/exim_%s.log:LOG_FILE_PATH=syslog:" Makefile + cat >> Makefile <<- EOC + LOG_FILE_PATH=syslog + EOC + else + cat >> Makefile <<- EOC + LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log + EOC + fi + + # starttls support (ssl) + if use ssl; then + echo "SUPPORT_TLS=yes" >> Makefile + if use gnutls; then + echo "USE_GNUTLS=yes" >> Makefile + echo "USE_GNUTLS_PC=gnutls" >> Makefile + use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile + else + echo "USE_OPENSSL_PC=openssl" >> Makefile + fi + fi + + # TCP wrappers + if use tcpd; then + cat >> Makefile <<- EOC + USE_TCP_WRAPPERS=yes + EXTRALIBS_EXIM += -lwrap + EOC + fi + + # Light Mail Transport Protocol + if use lmtp; then + cat >> Makefile <<- EOC + TRANSPORT_LMTP=yes + EOC + fi + + # embedded Perl + if use perl; then + cat >> Makefile <<- EOC + EXIM_PERL=perl.o + EOC + fi + + # dlfunc + if use dlfunc; then + cat >> Makefile <<- EOC + EXPAND_DLFUNC=yes + EOC + fi + + # Proxy Protocol + if use proxy; then + cat >> Makefile <<- EOC + SUPPORT_PROXY=yes + EOC + fi + + # + # experimental features + + # DANE + if use dane; then + cat >> Makefile <<- EOC + EXPERIMENTAL_DANE=yes + EOC + fi + + # Distributed Checksum Clearinghouse + if use dcc; then + echo "EXPERIMENTAL_DCC=yes">> Makefile + fi + + # Sender Policy Framework + if use spf; then + cat >> Makefile <<- EOC + EXPERIMENTAL_SPF=yes + EXTRALIBS_EXIM += -lspf2 + EOC + fi + + # Sender Rewriting Scheme + if use srs; then + cat >> Makefile <<- EOC + EXPERIMENTAL_SRS=yes + EXTRALIBS_EXIM += -lsrs_alt + EOC + fi + + # DMARC + if use dmarc; then + cat >> Makefile <<- EOC + EXPERIMENTAL_DMARC=yes + EXTRALIBS_EXIM += -lopendmarc + EOC + fi + + # Transport post-delivery actions + if use tpda; then + cat >> Makefile <<- EOC + EXPERIMENTAL_EVENT=yes + EOC + fi + + # Delivery Sender Notifications + if use dsn; then + cat >> Makefile <<- EOC + EXPERIMENTAL_DSN=yes + EOC + fi + + # + # authentication (SMTP AUTH) + + # standard bits + cat >> Makefile <<- EOC + AUTH_SPA=yes + AUTH_CRAM_MD5=yes + AUTH_PLAINTEXT=yes + EOC + + # Cyrus SASL + if use sasl; then + cat >> Makefile <<- EOC + CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux + AUTH_CYRUS_SASL=yes + AUTH_LIBS += -lsasl2 + EOC + fi + + # Dovecot + if use dovecot-sasl; then + cat >> Makefile <<- EOC + AUTH_DOVECOT=yes + EOC + fi + + # Pluggable Authentication Modules + if use pam; then + cat >> Makefile <<- EOC + SUPPORT_PAM=yes + AUTH_LIBS += -lpam + EOC + fi + + # Radius + if use radius; then + cat >> Makefile <<- EOC + RADIUS_CONFIG_FILE=${EPREFIX}/etc/radiusclient/radiusclient.conf + RADIUS_LIB_TYPE=RADIUSCLIENTNEW + AUTH_LIBS += -lfreeradius-client + EOC + fi +} + +src_compile() { + emake CC="$(tc-getCC)" HOSTCC="$(tc-getCC $CBUILD)" \ + AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO='' \ + || die "make failed" +} + +src_install () { + cd "${S}"/build-exim-gentoo || die + dosbin exim + if use X; then + dosbin eximon.bin + dosbin eximon + fi + fperms 4755 /usr/sbin/exim + + dosym exim /usr/sbin/sendmail + dosym exim /usr/sbin/rsmtp + dosym exim /usr/sbin/rmail + dosym /usr/sbin/exim /usr/bin/mailq + dosym /usr/sbin/exim /usr/bin/newaliases + dosym /usr/sbin/sendmail /usr/lib/sendmail + + for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \ + exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \ + convert4r3 convert4r4 exipick + do + dosbin $i + done + + dodoc "${S}"/doc/* + doman "${S}"/doc/exim.8 + use dsn && dodoc "${S}"/README.DSN + use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf + + # conf files + insinto /etc/exim + newins "${S}"/src/configure.default exim.conf.dist + if use exiscan-acl; then + newins "${S}"/src/configure.default exim.conf.exiscan-acl + fi + doins "${WORKDIR}"/system_filter.exim + doins "${FILESDIR}"/auth_conf.sub + + pamd_mimic system-auth exim auth account + + # headers, #436406 + if use dlfunc ; then + # fixup includes so they actually can be found when including + sed -i \ + -e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \ + local_scan.h || die + insinto /usr/include/exim + doins {config,local_scan}.h ../src/{mytypes,store}.h + fi + + insinto /etc/logrotate.d + newins "${FILESDIR}/exim.logrotate" exim + + newinitd "${FILESDIR}"/exim.rc10 exim + newconfd "${FILESDIR}"/exim.confd exim + + systemd_dounit "${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket} + systemd_newunit "${FILESDIR}"/exim_at.service 'exim@.service' + systemd_newunit "${FILESDIR}"/exim-submission_at.service 'exim-submission@.service' + + diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP} + dodir /var/log/${PN} +} + +pkg_postinst() { + if [[ ! -f ${EROOT}etc/exim/exim.conf ]] ; then + einfo "${EROOT}etc/exim/system_filter.exim is a sample system_filter." + einfo "${EROOT}etc/exim/auth_conf.sub contains the configuration sub for using smtp auth." + einfo "Please create ${EROOT}etc/exim/exim.conf from ${EROOT}etc/exim/exim.conf.dist." + fi + use dane && einfo "DANE support is experimental" + if use dcc ; then + einfo "DCC support is experimental, you can find some limited" + einfo "documentation at the bottom of this prerelease message:" + einfo "http://article.gmane.org/gmane.mail.exim.devel/3579" + fi + use spf && einfo "SPF support is experimental" + use srs && einfo "SRS support is experimental" + if use dmarc ; then + einfo "DMARC support is experimental. See global settings to" + einfo "configure DMARC, for usage see the documentation at " + einfo "experimental-spec.txt." + fi + use tpda && einfo "TPDA/EVENT support is experimental" + use dsn && einfo "DSN support is experimental" + elog "The obsolete acl condition 'demime' is removed, the replacements" + elog "are the ACLs acl_smtp_mime and acl_not_smtp_mime" +} diff --git a/mail-mta/exim/exim-4.89-r3.ebuild b/mail-mta/exim/exim-4.89-r3.ebuild new file mode 100644 index 000000000000..69652375c313 --- /dev/null +++ b/mail-mta/exim/exim-4.89-r3.ebuild @@ -0,0 +1,530 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit eutils toolchain-funcs multilib pam systemd + +IUSE="dane dcc +dkim dlfunc dmarc +dnsdb doc dovecot-sasl dsn exiscan-acl gnutls ipv6 ldap libressl lmtp maildir mbx mysql nis pam perl pkcs11 postgres +prdr proxy radius redis sasl selinux spf sqlite srs ssl syslog tcpd tpda X elibc_glibc" +REQUIRED_USE=" + dane? ( !gnutls ) + dmarc? ( spf dkim ) + pkcs11? ( gnutls ) + spf? ( exiscan-acl ) + srs? ( exiscan-acl ) +" + +COMM_URI="ftp://ftp.exim.org/pub/exim/exim4$([[ ${PV} == *_rc* ]] && echo /test)" + +DESCRIPTION="A highly configurable, drop-in replacement for sendmail" +SRC_URI="${COMM_URI}/${P//rc/RC}.tar.bz2 + mirror://gentoo/system_filter.exim.gz + doc? ( ${COMM_URI}/${PN}-pdf-${PV//rc/RC}.tar.bz2 )" +HOMEPAGE="http://www.exim.org/" + +SLOT="0" +LICENSE="GPL-2" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-solaris" + +COMMON_DEPEND=">=sys-apps/sed-4.0.5 + >=sys-libs/db-3.2:= + dev-libs/libpcre + perl? ( dev-lang/perl:= ) + pam? ( virtual/pam ) + tcpd? ( sys-apps/tcp-wrappers ) + ssl? ( + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:= ) + ) + gnutls? ( net-libs/gnutls[pkcs11?] + dev-libs/libtasn1 ) + ldap? ( >=net-nds/openldap-2.0.7 ) + nis? ( elibc_glibc? ( || ( + <sys-libs/glibc-2.23 + >=sys-libs/glibc-2.23[rpc] + ) ) ) + mysql? ( virtual/libmysqlclient ) + postgres? ( dev-db/postgresql:= ) + sasl? ( >=dev-libs/cyrus-sasl-2.1.26-r2 ) + redis? ( dev-libs/hiredis ) + spf? ( >=mail-filter/libspf2-1.2.5-r1 ) + dmarc? ( mail-filter/opendmarc ) + srs? ( mail-filter/libsrs_alt ) + X? ( x11-proto/xproto + x11-libs/libX11 + x11-libs/libXmu + x11-libs/libXt + x11-libs/libXaw + ) + sqlite? ( dev-db/sqlite ) + radius? ( net-dialup/freeradius-client ) + virtual/libiconv + " + # added X check for #57206 +DEPEND="${COMMON_DEPEND} + virtual/pkgconfig" +RDEPEND="${COMMON_DEPEND} + !mail-mta/courier + !mail-mta/esmtp + !mail-mta/mini-qmail + !<mail-mta/msmtp-1.4.19-r1 + !>=mail-mta/msmtp-1.4.19-r1[mta] + !mail-mta/netqmail + !mail-mta/nullmailer + !mail-mta/postfix + !mail-mta/qmail-ldap + !mail-mta/sendmail + !mail-mta/opensmtpd + !<mail-mta/ssmtp-2.64-r2 + !>=mail-mta/ssmtp-2.64-r2[mta] + !net-mail/mailwrapper + >=net-mail/mailbase-0.00-r5 + virtual/logger + dcc? ( mail-filter/dcc ) + selinux? ( sec-policy/selinux-exim ) + " + +S=${WORKDIR}/${P//rc/RC} + +src_prepare() { + epatch "${FILESDIR}"/exim-4.14-tail.patch + epatch "${FILESDIR}"/exim-4.74-localscan_dlopen.patch + epatch "${FILESDIR}"/exim-4.69-r1.27021.patch + epatch "${FILESDIR}"/exim-4.74-radius-db-ENV-clash.patch # 287426 + epatch "${FILESDIR}"/exim-4.82-makefile-freebsd.patch # 235785 + epatch "${FILESDIR}"/exim-4.89-as-needed-ldflags.patch # 352265, 391279 + epatch "${FILESDIR}"/exim-4.76-crosscompile.patch # 266591 + epatch "${FILESDIR}"/exim-4.89-CVE-2017-1000369.patch # 622212 + epatch "${FILESDIR}"/${P}-transport-crash.patch # from git/in next release + epatch "${FILESDIR}"/${P}-address-expando-crash.patch # from git/in next release + + if use maildir ; then + epatch "${FILESDIR}"/exim-4.20-maildir.patch + else + epatch "${FILESDIR}"/exim-4.80-spool-mail-group.patch # 438606 + fi + + eapply_user + + # user Exim believes it should be + MAILUSER=mail + MAILGROUP=mail + if use prefix && [[ ${EUID} != 0 ]] ; then + MAILUSER=$(id -un) + MAILGROUP=$(id -gn) + fi +} + +src_configure() { + # general config and paths + + sed -i.orig \ + -e "/SYSTEM_ALIASES_FILE/s'SYSTEM_ALIASES_FILE'${EPREFIX}/etc/mail/aliases'" \ + "${S}"/src/configure.default || die + + sed -i -e 's/^buildname=.*/buildname=exim-gentoo/g' Makefile || die + + sed -e "48i\CFLAGS=${CFLAGS}" \ + -e "s:BIN_DIRECTORY=/usr/exim/bin:BIN_DIRECTORY=${EPREFIX}/usr/sbin:" \ + -e "s:EXIM_USER=:EXIM_USER=${MAILUSER}:" \ + -e "s:CONFIGURE_FILE=/usr/exim/configure:CONFIGURE_FILE=${EPREFIX}/etc/exim/exim.conf:" \ + -e "s:ZCAT_COMMAND=.*$:ZCAT_COMMAND=${EPREFIX}/bin/zcat:" \ + -e "s:COMPRESS_COMMAND=.*$:COMPRESS_COMMAND=${EPREFIX}/bin/gzip:" \ + src/EDITME > Local/Makefile + + if use elibc_musl; then + sed -e 's/^LIBS = -lnsl/LIBS =/g' \ + -i OS/Makefile-Linux + fi + + cd Local + + cat >> Makefile <<- EOC + INFO_DIRECTORY=${EPREFIX}/usr/share/info + PID_FILE_PATH=${EPREFIX}/run/exim.pid + SPOOL_DIRECTORY=${EPREFIX}/var/spool/exim + HAVE_ICONV=yes + EOC + + # if we use libiconv, now is the time to tell so + use !elibc_glibc && use !elibc_musl && echo "EXTRALIBS_EXIM=-liconv" >> Makefile + + # support for IPv6 + if use ipv6; then + cat >> Makefile <<- EOC + HAVE_IPV6=YES + EOC + fi + + # + # mail storage formats + + # mailstore is Exim's traditional storage format + cat >> Makefile <<- EOC + SUPPORT_MAILSTORE=yes + EOC + + # mbox + if use mbx; then + cat >> Makefile <<- EOC + SUPPORT_MBX=yes + EOC + fi + + # maildir + if use maildir; then + cat >> Makefile <<- EOC + SUPPORT_MAILDIR=yes + EOC + fi + + # + # lookup methods + + # use the "native" interfaces to the DBM and CDB libraries, support + # passwd and directory lookups by default + cat >> Makefile <<- EOC + USE_DB=yes + DBMLIB=-ldb + LOOKUP_CDB=yes + LOOKUP_PASSWD=yes + LOOKUP_DSEARCH=yes + EOC + + if ! use dnsdb; then + # DNSDB lookup is enabled by default + sed -i "s:^LOOKUP_DNSDB=yes:# LOOKUP_DNSDB=yes:" Makefile + fi + + if use ldap; then + cat >> Makefile <<- EOC + LOOKUP_LDAP=yes + LDAP_LIB_TYPE=OPENLDAP2 + LOOKUP_INCLUDE += -I"${EROOT}"usr/include/ldap + LOOKUP_LIBS += -lldap -llber + EOC + fi + + if use mysql; then + cat >> Makefile <<- EOC + LOOKUP_MYSQL=yes + LOOKUP_INCLUDE += $(mysql_config --include) + LOOKUP_LIBS += $(mysql_config --libs) + EOC + fi + + if use nis; then + cat >> Makefile <<- EOC + LOOKUP_NIS=yes + LOOKUP_NISPLUS=yes + EOC + fi + + if use postgres; then + cat >> Makefile <<- EOC + LOOKUP_PGSQL=yes + LOOKUP_INCLUDE += -I$(pg_config --includedir) + LOOKUP_LIBS += -L$(pg_config --libdir) -lpq + EOC + fi + + if use sqlite; then + cat >> Makefile <<- EOC + LOOKUP_SQLITE=yes + LOOKUP_SQLITE_PC=sqlite3 + EOC + fi + + if use redis; then + cat >> Makefile <<- EOC + LOOKUP_REDIS=yes + LOOKUP_LIBS += -lhiredis + EOC + fi + + # + # Exim monitor, enabled by default, controlled via X USE-flag, + # disable if not requested, bug #46778 + if use X; then + cp ../exim_monitor/EDITME eximon.conf || die + else + sed -i -e '/^EXIM_MONITOR=/s/^/# /' Makefile + fi + + # + # features + + # content scanning support + if use exiscan-acl; then + cat >> Makefile <<- EOC + WITH_CONTENT_SCAN=yes + WITH_OLD_DEMIME=yes + EOC + fi + + # DomainKeys Identified Mail, RFC4871 + if ! use dkim; then + # DKIM is enabled by default + cat >> Makefile <<- EOC + DISABLE_DKIM=yes + EOC + fi + + # Per-Recipient-Data-Response + if ! use prdr; then + # PRDR is enabled by default + cat >> Makefile <<- EOC + DISABLE_PRDR=yes + EOC + fi + + # log to syslog + if use syslog; then + sed -i "s:LOG_FILE_PATH=/var/log/exim/exim_%s.log:LOG_FILE_PATH=syslog:" Makefile + cat >> Makefile <<- EOC + LOG_FILE_PATH=syslog + EOC + else + cat >> Makefile <<- EOC + LOG_FILE_PATH=${EPREFIX}/var/log/exim/exim_%s.log + EOC + fi + + # starttls support (ssl) + if use ssl; then + echo "SUPPORT_TLS=yes" >> Makefile + if use gnutls; then + echo "USE_GNUTLS=yes" >> Makefile + echo "USE_GNUTLS_PC=gnutls" >> Makefile + use pkcs11 || echo "AVOID_GNUTLS_PKCS11=yes" >> Makefile + else + echo "USE_OPENSSL_PC=openssl" >> Makefile + fi + fi + + # TCP wrappers + if use tcpd; then + cat >> Makefile <<- EOC + USE_TCP_WRAPPERS=yes + EXTRALIBS_EXIM += -lwrap + EOC + fi + + # Light Mail Transport Protocol + if use lmtp; then + cat >> Makefile <<- EOC + TRANSPORT_LMTP=yes + EOC + fi + + # embedded Perl + if use perl; then + cat >> Makefile <<- EOC + EXIM_PERL=perl.o + EOC + fi + + # dlfunc + if use dlfunc; then + cat >> Makefile <<- EOC + EXPAND_DLFUNC=yes + EOC + fi + + # Proxy Protocol + if use proxy; then + cat >> Makefile <<- EOC + SUPPORT_PROXY=yes + EOC + fi + + # + # experimental features + + # DANE + if use dane; then + cat >> Makefile <<- EOC + EXPERIMENTAL_DANE=yes + EOC + fi + + # Distributed Checksum Clearinghouse + if use dcc; then + echo "EXPERIMENTAL_DCC=yes">> Makefile + fi + + # Sender Policy Framework + if use spf; then + cat >> Makefile <<- EOC + EXPERIMENTAL_SPF=yes + EXTRALIBS_EXIM += -lspf2 + EOC + fi + + # Sender Rewriting Scheme + if use srs; then + cat >> Makefile <<- EOC + EXPERIMENTAL_SRS=yes + EXTRALIBS_EXIM += -lsrs_alt + EOC + fi + + # DMARC + if use dmarc; then + cat >> Makefile <<- EOC + EXPERIMENTAL_DMARC=yes + EXTRALIBS_EXIM += -lopendmarc + EOC + fi + + # Transport post-delivery actions + if use tpda; then + cat >> Makefile <<- EOC + EXPERIMENTAL_EVENT=yes + EOC + fi + + # Delivery Sender Notifications + if use dsn; then + cat >> Makefile <<- EOC + EXPERIMENTAL_DSN=yes + EOC + fi + + # + # authentication (SMTP AUTH) + + # standard bits + cat >> Makefile <<- EOC + AUTH_SPA=yes + AUTH_CRAM_MD5=yes + AUTH_PLAINTEXT=yes + EOC + + # Cyrus SASL + if use sasl; then + cat >> Makefile <<- EOC + CYRUS_SASLAUTHD_SOCKET=${EPREFIX}/run/saslauthd/mux + AUTH_CYRUS_SASL=yes + AUTH_LIBS += -lsasl2 + EOC + fi + + # Dovecot + if use dovecot-sasl; then + cat >> Makefile <<- EOC + AUTH_DOVECOT=yes + EOC + fi + + # Pluggable Authentication Modules + if use pam; then + cat >> Makefile <<- EOC + SUPPORT_PAM=yes + AUTH_LIBS += -lpam + EOC + fi + + # Radius + if use radius; then + cat >> Makefile <<- EOC + RADIUS_CONFIG_FILE=${EPREFIX}/etc/radiusclient/radiusclient.conf + RADIUS_LIB_TYPE=RADIUSCLIENTNEW + AUTH_LIBS += -lfreeradius-client + EOC + fi +} + +src_compile() { + emake CC="$(tc-getCC)" HOSTCC="$(tc-getCC $CBUILD)" \ + AR="$(tc-getAR) cq" RANLIB="$(tc-getRANLIB)" FULLECHO='' \ + || die "make failed" +} + +src_install () { + cd "${S}"/build-exim-gentoo || die + dosbin exim + if use X; then + dosbin eximon.bin + dosbin eximon + fi + fperms 4755 /usr/sbin/exim + + dosym exim /usr/sbin/sendmail + dosym exim /usr/sbin/rsmtp + dosym exim /usr/sbin/rmail + dosym ../sbin/exim /usr/bin/mailq + dosym ../sbin/exim /usr/bin/newaliases + dosym ../sbin/sendmail /usr/lib/sendmail + + for i in exicyclog exim_dbmbuild exim_dumpdb exim_fixdb exim_lock \ + exim_tidydb exinext exiwhat exigrep eximstats exiqsumm exiqgrep \ + convert4r3 convert4r4 exipick + do + dosbin $i + done + + dodoc "${S}"/doc/* + doman "${S}"/doc/exim.8 + use dsn && dodoc "${S}"/README.DSN + use doc && dodoc "${WORKDIR}"/${PN}-pdf-${PV//rc/RC}/doc/*.pdf + + # conf files + insinto /etc/exim + newins "${S}"/src/configure.default exim.conf.dist + if use exiscan-acl; then + newins "${S}"/src/configure.default exim.conf.exiscan-acl + fi + doins "${WORKDIR}"/system_filter.exim + doins "${FILESDIR}"/auth_conf.sub + + pamd_mimic system-auth exim auth account + + # headers, #436406 + if use dlfunc ; then + # fixup includes so they actually can be found when including + sed -i \ + -e '/#include "\(config\|store\|mytypes\).h"/s:"\(.\+\)":<exim/\1>:' \ + local_scan.h || die + insinto /usr/include/exim + doins {config,local_scan}.h ../src/{mytypes,store}.h + fi + + insinto /etc/logrotate.d + newins "${FILESDIR}/exim.logrotate" exim + + newinitd "${FILESDIR}"/exim.rc10 exim + newconfd "${FILESDIR}"/exim.confd exim + + systemd_dounit "${FILESDIR}"/{exim.service,exim.socket,exim-submission.socket} + systemd_newunit "${FILESDIR}"/exim_at.service 'exim@.service' + systemd_newunit "${FILESDIR}"/exim-submission_at.service 'exim-submission@.service' + + diropts -m 0750 -o ${MAILUSER} -g ${MAILGROUP} + dodir /var/log/${PN} +} + +pkg_postinst() { + if [[ ! -f ${EROOT}etc/exim/exim.conf ]] ; then + einfo "${EROOT}etc/exim/system_filter.exim is a sample system_filter." + einfo "${EROOT}etc/exim/auth_conf.sub contains the configuration sub for using smtp auth." + einfo "Please create ${EROOT}etc/exim/exim.conf from ${EROOT}etc/exim/exim.conf.dist." + fi + use dane && einfo "DANE support is experimental" + if use dcc ; then + einfo "DCC support is experimental, you can find some limited" + einfo "documentation at the bottom of this prerelease message:" + einfo "http://article.gmane.org/gmane.mail.exim.devel/3579" + fi + use spf && einfo "SPF support is experimental" + use srs && einfo "SRS support is experimental" + if use dmarc ; then + einfo "DMARC support is experimental. See global settings to" + einfo "configure DMARC, for usage see the documentation at " + einfo "experimental-spec.txt." + fi + use tpda && einfo "TPDA/EVENT support is experimental" + use dsn && einfo "DSN support is experimental" + elog "The obsolete acl condition 'demime' is removed, the replacements" + elog "are the ACLs acl_smtp_mime and acl_not_smtp_mime" +} diff --git a/mail-mta/exim/files/auth_conf.sub b/mail-mta/exim/files/auth_conf.sub new file mode 100644 index 000000000000..24434a7164a1 --- /dev/null +++ b/mail-mta/exim/files/auth_conf.sub @@ -0,0 +1,25 @@ +###################################################################### +# AUTHENTICATION CONFIGURATION # +###################################################################### +# If you're using PAM to authenticate, lifes real simple. +# This plain directive works for nearly everything except windows MUA's the +# login directive will allow you to authenticate your Outlook 2000 and +# outlook express clients. + + + +plain: + driver = plaintext + public_name = PLAIN + server_condition = "${if pam{$2:$3}{1}{0}}" + server_set_id = $2 + +login: + driver = plaintext + public_name = LOGIN + server_prompts = "Username:: : Password::" + server_condition = "${if pam{$1:${sg{$2}{:}{::}}}{1}{0}}" + server_set_id = $1 +# +# FIXME +# Need to add authenticator for SPA!! diff --git a/mail-mta/exim/files/exim-4.14-tail.patch b/mail-mta/exim/files/exim-4.14-tail.patch new file mode 100644 index 000000000000..481dca9b80d4 --- /dev/null +++ b/mail-mta/exim/files/exim-4.14-tail.patch @@ -0,0 +1,11 @@ +--- scripts/Configure-config.h.orig 2003-07-17 18:01:19.000000000 -0400 ++++ scripts/Configure-config.h 2003-07-17 18:01:25.000000000 -0400 +@@ -41,7 +41,7 @@ + + # Double-check that config.h is complete. + +-if [ "`tail -1 config.h`" != "/* End of config.h */" ] ; then ++if [ "`tail -n 1 config.h`" != "/* End of config.h */" ] ; then + echo "*** config.h appears to be incomplete" + echo "*** unexpected failure in buildconfig program" + exit 1 diff --git a/mail-mta/exim/files/exim-4.20-maildir.patch b/mail-mta/exim/files/exim-4.20-maildir.patch new file mode 100644 index 000000000000..3cb198d545c1 --- /dev/null +++ b/mail-mta/exim/files/exim-4.20-maildir.patch @@ -0,0 +1,14 @@ +diff -urN ./exim-4.20.orig/src/configure.default exim-4.20/src/configure.default +--- ./exim-4.20.orig/src/configure.default 2003-06-27 16:48:22.000000000 -0700 ++++ exim-4.20/src/configure.default 2003-06-27 16:52:20.000000000 -0700 +@@ -451,7 +451,9 @@ + + local_delivery: + driver = appendfile +- file = /var/mail/$local_part ++# file = /var/mail/$local_part ++ directory = /home/$local_part/.maildir ++ maildir_format + delivery_date_add + envelope_to_add + return_path_add diff --git a/mail-mta/exim/files/exim-4.69-r1.27021.patch b/mail-mta/exim/files/exim-4.69-r1.27021.patch new file mode 100644 index 000000000000..804e16d6acde --- /dev/null +++ b/mail-mta/exim/files/exim-4.69-r1.27021.patch @@ -0,0 +1,48 @@ +diff -urN exim-4.69.orig/src/configure.default exim-4.69/src/configure.default +--- exim-4.69.orig/src/configure.default 2008-05-05 10:17:44.000000000 +0100 ++++ exim-4.69/src/configure.default 2008-05-05 10:18:26.000000000 +0100 +@@ -592,6 +592,22 @@ + pipe_transport = address_pipe + reply_transport = address_reply + ++# This router runs procmail if users have a .procmailrc file ++procmail: ++ check_local_user ++ driver = accept ++ transport = procmail_pipe ++ require_files = ${local_part}:+${home}:+${home}/.procmailrc:+/usr/bin/procmail ++ no_verify ++ ++# This router runs maildrop if users have a .mailfilter file ++maildrop: ++ check_local_user ++ driver = accept ++ transport = maildrop_pipe ++ require_files = ${local_part}:+${home}:+${home}/.mailfilter:+/usr/bin/maildrop ++ no_verify ++ + + # This router matches local user mailboxes. If the router fails, the error + # message is "Unknown user". +@@ -676,6 +692,21 @@ + address_reply: + driver = autoreply + ++# This transport is used for procmail ++procmail_pipe: ++ driver = pipe ++ command = "/usr/bin/procmail -d ${local_part}" ++ return_path_add ++ delivery_date_add ++ envelope_to_add ++ ++# This transport is used for courier-maildrop filtering (Maildir filter system) ++maildrop_pipe: ++ driver = pipe ++ command = "/usr/bin/maildrop -d ${local_part}" ++ return_path_add ++ delivery_date_add ++ envelope_to_add + + + ###################################################################### diff --git a/mail-mta/exim/files/exim-4.74-localscan_dlopen.patch b/mail-mta/exim/files/exim-4.74-localscan_dlopen.patch new file mode 100644 index 000000000000..3bb57c1637c6 --- /dev/null +++ b/mail-mta/exim/files/exim-4.74-localscan_dlopen.patch @@ -0,0 +1,262 @@ +diff -Naur exim-4.32/src/EDITME exim-4.32-dlopen/src/EDITME +--- src/EDITME 2004-04-15 08:27:01.000000000 +0000 ++++ src/EDITME 2004-05-06 16:15:47.000000000 +0000 +@@ -505,6 +505,24 @@ + + + #------------------------------------------------------------------------------ ++# On systems which support dynamic loading of shared libraries, Exim can ++# load a local_scan function specified in its config file instead of having ++# to be recompiled with the desired local_scan function. For a full ++# description of the API to this function, see the Exim specification. ++ ++DLOPEN_LOCAL_SCAN=yes ++ ++# If you set DLOPEN_LOCAL_SCAN, then you need to include -rdynamic in the ++# linker flags. Without it, the loaded .so won't be able to access any ++# functions from exim. ++ ++LFLAGS = -rdynamic ++ifeq ($(OSTYPE),Linux) ++LFLAGS += -ldl ++endif ++ ++ ++#------------------------------------------------------------------------------ + # The default distribution of Exim contains only the plain text form of the + # documentation. Other forms are available separately. If you want to install + # the documentation in "info" format, first fetch the Texinfo documentation +diff -Naur exim-4.32/src/config.h.defaults exim-4.32-dlopen/src/config.h.defaults +--- src/config.h.defaults 2004-04-15 08:27:01.000000000 +0000 ++++ src/config.h.defaults 2004-05-06 16:16:30.000000000 +0000 +@@ -20,6 +20,8 @@ + #define AUTH_PLAINTEXT + #define AUTH_SPA + ++#define DLOPEN_LOCAL_SCAN ++ + #define BIN_DIRECTORY + + #define CONFIGURE_FILE +diff -Naur exim-4.32/src/globals.c exim-4.32-dlopen/src/globals.c +--- src/globals.c 2004-04-15 08:27:01.000000000 +0000 ++++ src/globals.c 2004-05-06 16:17:07.000000000 +0000 +@@ -109,6 +109,10 @@ + uschar *tls_verify_hosts = NULL; + #endif + ++#ifdef DLOPEN_LOCAL_SCAN ++uschar *local_scan_path = NULL; ++#endif ++ + + /* Input-reading functions for messages, so we can use special ones for + incoming TCP/IP. The defaults use stdin. We never need these for any +diff -Naur exim-4.32/src/globals.h exim-4.32-dlopen/src/globals.h +--- src/globals.h 2004-04-15 08:27:01.000000000 +0000 ++++ src/globals.h 2004-05-06 16:17:50.000000000 +0000 +@@ -73,6 +73,9 @@ + extern uschar *tls_verify_hosts; /* Mandatory client verification */ + #endif + ++#ifdef DLOPEN_LOCAL_SCAN ++extern uschar *local_scan_path; /* Path to local_scan() library */ ++#endif + + /* Input-reading functions for messages, so we can use special ones for + incoming TCP/IP. */ +diff -Naur exim-4.32/src/local_scan.c exim-4.32-dlopen/src/local_scan.c +--- src/local_scan.c 2004-04-15 08:27:01.000000000 +0000 ++++ src/local_scan.c 2004-05-06 16:21:57.000000000 +0000 +@@ -5,60 +5,131 @@ + /* Copyright (c) University of Cambridge 1995 - 2004 */ + /* See the file NOTICE for conditions of use and distribution. */ + ++#include "exim.h" + +-/****************************************************************************** +-This file contains a template local_scan() function that just returns ACCEPT. +-If you want to implement your own version, you should copy this file to, say +-Local/local_scan.c, and edit the copy. To use your version instead of the +-default, you must set +- +-LOCAL_SCAN_SOURCE=Local/local_scan.c +- +-in your Local/Makefile. This makes it easy to copy your version for use with +-subsequent Exim releases. +- +-For a full description of the API to this function, see the Exim specification. +-******************************************************************************/ +- +- +-/* This is the only Exim header that you should include. The effect of +-including any other Exim header is not defined, and may change from release to +-release. Use only the documented interface! */ +- +-#include "local_scan.h" +- +- +-/* This is a "do-nothing" version of a local_scan() function. The arguments +-are: +- +- fd The file descriptor of the open -D file, which contains the +- body of the message. The file is open for reading and +- writing, but modifying it is dangerous and not recommended. +- +- return_text A pointer to an unsigned char* variable which you can set in +- order to return a text string. It is initialized to NULL. +- +-The return values of this function are: +- +- LOCAL_SCAN_ACCEPT +- The message is to be accepted. The return_text argument is +- saved in $local_scan_data. +- +- LOCAL_SCAN_REJECT +- The message is to be rejected. The returned text is used +- in the rejection message. +- +- LOCAL_SCAN_TEMPREJECT +- This specifies a temporary rejection. The returned text +- is used in the rejection message. +-*/ ++#ifdef DLOPEN_LOCAL_SCAN ++#include <dlfcn.h> ++static int (*local_scan_fn)(int fd, uschar **return_text) = NULL; ++static int load_local_scan_library(void); ++#endif + + int + local_scan(int fd, uschar **return_text) + { + fd = fd; /* Keep picky compilers happy */ + return_text = return_text; +-return LOCAL_SCAN_ACCEPT; ++#ifdef DLOPEN_LOCAL_SCAN ++/* local_scan_path is defined AND not the empty string */ ++if (local_scan_path && *local_scan_path) ++ { ++ if (!local_scan_fn) ++ { ++ if (!load_local_scan_library()) ++ { ++ char *base_msg , *error_msg , *final_msg ; ++ int final_length = -1 ; ++ ++ base_msg=US"Local configuration error - local_scan() library failure\n"; ++ error_msg = dlerror() ; ++ ++ final_length = strlen(base_msg) + strlen(error_msg) + 1 ; ++ final_msg = (char*)malloc( final_length*sizeof(char) ) ; ++ *final_msg = '\0' ; ++ ++ strcat( final_msg , base_msg ) ; ++ strcat( final_msg , error_msg ) ; ++ ++ *return_text = final_msg ; ++ return LOCAL_SCAN_TEMPREJECT; ++ } ++ } ++ return local_scan_fn(fd, return_text); ++ } ++else ++#endif ++ return LOCAL_SCAN_ACCEPT; ++} ++ ++#ifdef DLOPEN_LOCAL_SCAN ++ ++static int load_local_scan_library(void) ++{ ++/* No point in keeping local_scan_lib since we'll never dlclose() anyway */ ++void *local_scan_lib = NULL; ++int (*local_scan_version_fn)(void); ++int vers_maj; ++int vers_min; ++ ++local_scan_lib = dlopen(local_scan_path, RTLD_NOW); ++if (!local_scan_lib) ++ { ++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library open failed - " ++ "message temporarily rejected"); ++ return FALSE; ++ } ++ ++local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_major"); ++if (!local_scan_version_fn) ++ { ++ dlclose(local_scan_lib); ++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain " ++ "local_scan_version_major() function - message temporarily rejected"); ++ return FALSE; ++ } ++ ++/* The major number is increased when the ABI is changed in a non ++ backward compatible way. */ ++vers_maj = local_scan_version_fn(); ++ ++local_scan_version_fn = dlsym(local_scan_lib, "local_scan_version_minor"); ++if (!local_scan_version_fn) ++ { ++ dlclose(local_scan_lib); ++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain " ++ "local_scan_version_minor() function - message temporarily rejected"); ++ return FALSE; ++ } ++ ++/* The minor number is increased each time a new feature is added (in a ++ way that doesn't break backward compatibility) -- Marc */ ++vers_min = local_scan_version_fn(); ++ ++ ++if (vers_maj != LOCAL_SCAN_ABI_VERSION_MAJOR) ++ { ++ dlclose(local_scan_lib); ++ local_scan_lib = NULL; ++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible major" ++ "version number, you need to recompile your module for this version" ++ "of exim (The module was compiled for version %d.%d and this exim provides" ++ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR, ++ LOCAL_SCAN_ABI_VERSION_MINOR); ++ return FALSE; ++ } ++else if (vers_min > LOCAL_SCAN_ABI_VERSION_MINOR) ++ { ++ dlclose(local_scan_lib); ++ local_scan_lib = NULL; ++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() has an incompatible minor" ++ "version number, you need to recompile your module for this version" ++ "of exim (The module was compiled for version %d.%d and this exim provides" ++ "ABI version %d.%d)", vers_maj, vers_min, LOCAL_SCAN_ABI_VERSION_MAJOR, ++ LOCAL_SCAN_ABI_VERSION_MINOR); ++ return FALSE; ++ } ++ ++local_scan_fn = dlsym(local_scan_lib, "local_scan"); ++if (!local_scan_fn) ++ { ++ dlclose(local_scan_lib); ++ log_write(0, LOG_MAIN|LOG_REJECT, "local_scan() library doesn't contain " ++ "local_scan() function - message temporarily rejected"); ++ return FALSE; ++ } ++ ++return TRUE; + } + ++#endif /* DLOPEN_LOCAL_SCAN */ ++ + /* End of local_scan.c */ +diff -Naur exim-4.32/src/readconf.c exim-4.32-dlopen/src/readconf.c +--- src/readconf.c 2004-04-15 08:27:01.000000000 +0000 ++++ src/readconf.c 2004-05-06 16:23:12.000000000 +0000 +@@ -223,6 +223,9 @@ + { "local_from_prefix", opt_stringptr, &local_from_prefix }, + { "local_from_suffix", opt_stringptr, &local_from_suffix }, + { "local_interfaces", opt_stringptr, &local_interfaces }, ++#ifdef DLOPEN_LOCAL_SCAN ++ { "local_scan_path", opt_stringptr, &local_scan_path }, ++#endif + { "local_scan_timeout", opt_time, &local_scan_timeout }, + { "local_sender_retain", opt_bool, &local_sender_retain }, + { "localhost_number", opt_stringptr, &host_number_string }, diff --git a/mail-mta/exim/files/exim-4.74-radius-db-ENV-clash.patch b/mail-mta/exim/files/exim-4.74-radius-db-ENV-clash.patch new file mode 100644 index 000000000000..247668ef3da3 --- /dev/null +++ b/mail-mta/exim/files/exim-4.74-radius-db-ENV-clash.patch @@ -0,0 +1,22 @@ +Nasty workaround for +http://bugs.gentoo.org/show_bug.cgi?id=287426 + +--- src/auths/call_radius.c ++++ src/auths/call_radius.c +@@ -10,6 +10,16 @@ + /* This file was originally supplied by Ian Kirk. The libradius support came + from Alex Kiernan. */ + ++/* ugly hack to work around redefinition of ENV by radiusclient.h and ++ * db.h: define _DB_H_ so the db.h include thinks it's already included, ++ * we can get away with it like this, since this file doesn't use any db ++ * functions. */ ++#ifndef _DB_H_ ++#define _DB_H_ 1 ++#define _DB_EXT_PROT_IN_ 1 ++#define DB void ++#endif ++ + #include "../exim.h" + + /* This module contains functions that call the Radius authentication diff --git a/mail-mta/exim/files/exim-4.76-crosscompile.patch b/mail-mta/exim/files/exim-4.76-crosscompile.patch new file mode 100644 index 000000000000..cf47adee6265 --- /dev/null +++ b/mail-mta/exim/files/exim-4.76-crosscompile.patch @@ -0,0 +1,15 @@ +https://bugs.gentoo.org/show_bug.cgi?id=266591 + +--- OS/Makefile-Base ++++ OS/Makefile-Base +@@ -114,8 +114,8 @@ + + # Targets for special-purpose configuration header builders + buildconfig: buildconfig.c +- @echo "$(CC) buildconfig.c" +- $(FE)$(CC) $(CFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS) ++ @echo "$(HOSTCC) buildconfig.c" ++ $(FE)$(HOSTCC) $(HOSTCFLAGS) $(INCLUDE) -o buildconfig buildconfig.c $(LIBS) + + + # Target for the exicyclog utility script diff --git a/mail-mta/exim/files/exim-4.80-spool-mail-group.patch b/mail-mta/exim/files/exim-4.80-spool-mail-group.patch new file mode 100644 index 000000000000..6f88d8533e8b --- /dev/null +++ b/mail-mta/exim/files/exim-4.80-spool-mail-group.patch @@ -0,0 +1,27 @@ +Change default such that we run on a stock Gentoo system. Bug #438606 + +--- src/configure.default ++++ src/configure.default +@@ -674,8 +674,9 @@ + # BSD mailbox format. By default it will be run under the uid and gid of the + # local user, and requires the sticky bit to be set on the /var/mail directory. + # Some systems use the alternative approach of running mail deliveries under a +-# particular group instead of using the sticky bit. The commented options below +-# show how this can be done. ++# particular group instead of using the sticky bit. This is also the ++# default case on Gentoo, therefore group and mode are set below. ++# Comment them out, to get the default behaviour. + + local_delivery: + driver = appendfile +@@ -683,8 +684,8 @@ + delivery_date_add + envelope_to_add + return_path_add +-# group = mail +-# mode = 0660 ++ group = mail ++ mode = 0660 + + + # This transport is used for handling pipe deliveries generated by alias or diff --git a/mail-mta/exim/files/exim-4.82-makefile-freebsd.patch b/mail-mta/exim/files/exim-4.82-makefile-freebsd.patch new file mode 100644 index 000000000000..9693d4945ad9 --- /dev/null +++ b/mail-mta/exim/files/exim-4.82-makefile-freebsd.patch @@ -0,0 +1,45 @@ +--- OS/Makefile-FreeBSD.orig 2013-09-30 19:59:09.000000000 +0200 ++++ OS/Makefile-FreeBSD 2013-09-30 20:01:22.000000000 +0200 +@@ -1,10 +1,8 @@ +-# Exim: OS-specific make file for FreeBSD +-# There's no setting of CFLAGS here, to allow the system default +-# for "make" to be the default. +- +-CHOWN_COMMAND=/usr/sbin/chown +-STRIP_COMMAND=/usr/bin/strip +-CHMOD_COMMAND=/bin/chmod ++# Exim: OS-specific FreeBSD make file, modified for Gentoo Prefix ++ ++CHOWN_COMMAND=look_for_it ++STRIP_COMMAND= ++CHMOD_COMMAND=look_for_it + + HAVE_SA_LEN=YES + +@@ -15,17 +13,9 @@ + CFLAGS_DYNAMIC=-shared -rdynamic -fPIC + + # FreeBSD always ships with Berkeley DB ++DBMLIB = -ldb + USE_DB=yes + +-# This code for building outside ports suggested by Richard Clayton +-.ifdef X11BASE +-X11=${X11BASE} +-.elifdef LOCALBASE +-X11=$(LOCALBASE) +-.else +-X11=/usr/local +-.endif +- + # nb: FreeBSD is entirely elf; objformat was removed prior to FreeBSD 7 + # http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/objformat/Attic/objformat.c + # deleted Jan 2007. +@@ -37,6 +27,7 @@ + # switch to default to ELF came with FreeBSD 3. elf(5) claims ELF support + # introduced in FreeBSD 2.2.6. + # ++X11=/usr/X11R6 + XINCLUDE=-I$(X11)/include + XLFLAGS=-L$(X11)/lib -Wl,-rpath,${X11}/lib + X11_LD_LIB=$(X11)/lib diff --git a/mail-mta/exim/files/exim-4.89-CVE-2017-1000369.patch b/mail-mta/exim/files/exim-4.89-CVE-2017-1000369.patch new file mode 100644 index 000000000000..c3d976a2b907 --- /dev/null +++ b/mail-mta/exim/files/exim-4.89-CVE-2017-1000369.patch @@ -0,0 +1,58 @@ +CVE-2017-1000369 + +https://github.com/Exim/exim/commit/65e061b76867a9ea7aeeb535341b790b90ae6c21 + +--- a/doc/exim.8 ++++ b/doc/exim.8 +@@ -1350,7 +1350,7 @@ option sets the received protocol value that is stored in + or \fB\-bs\fP is used. For \fB\-bh\fP, the protocol is forced to one of the standard + SMTP protocol names. For \fB\-bs\fP, the protocol is always "local\-" followed by + one of those same names. For \fB\-bS\fP (batched SMTP) however, the protocol can +-be set by \fB\-oMr\fP. ++be set by \fB\-oMr\fP. Repeated use of this option is not supported. + .TP 10 + \fB\-oMs\fP <\fIhost name\fP> + See \fB\-oMa\fP above for general remarks about the \fB\-oM\fP options. The \fB\-oMs\fP +@@ -1418,6 +1418,7 @@ host name and its colon can be omitted when only the protocol is to be set. + Note the Exim already has two private options, \fB\-pd\fP and \fB\-ps\fP, that refer + to embedded Perl. It is therefore impossible to set a protocol value of d + or s using this option (but that does not seem a real limitation). ++Repeated use of this option is not supported. + .TP 10 + \fB\-q\fP + This option is normally restricted to admin users. However, there is a +--- a/src/exim.c ++++ b/src/exim.c +@@ -3092,7 +3092,14 @@ for (i = 1; i < argc; i++) + + /* -oMr: Received protocol */ + +- else if (Ustrcmp(argrest, "Mr") == 0) received_protocol = argv[++i]; ++ else if (Ustrcmp(argrest, "Mr") == 0) ++ ++ if (received_protocol) ++ { ++ fprintf(stderr, "received_protocol is set already\n"); ++ exit(EXIT_FAILURE); ++ } ++ else received_protocol = argv[++i]; + + /* -oMs: Set sender host name */ + +@@ -3188,7 +3195,15 @@ for (i = 1; i < argc; i++) + + if (*argrest != 0) + { +- uschar *hn = Ustrchr(argrest, ':'); ++ uschar *hn; ++ ++ if (received_protocol) ++ { ++ fprintf(stderr, "received_protocol is set already\n"); ++ exit(EXIT_FAILURE); ++ } ++ ++ hn = Ustrchr(argrest, ':'); + if (hn == NULL) + { + received_protocol = argrest; diff --git a/mail-mta/exim/files/exim-4.89-address-expando-crash.patch b/mail-mta/exim/files/exim-4.89-address-expando-crash.patch new file mode 100644 index 000000000000..2a868490a426 --- /dev/null +++ b/mail-mta/exim/files/exim-4.89-address-expando-crash.patch @@ -0,0 +1,85 @@ +ignoring parts which don't match due to repo reorg post release + +From 1b7cf216d933b395dee691f05becca4dd44b26f7 Mon Sep 17 00:00:00 2001 +From: "Heiko Schlittermann (HS12-RIPE)" <hs@schlittermann.de> +Date: Wed, 4 Oct 2017 22:25:45 +0200 +Subject: [PATCH] Check for proper output separator in expanding + ${addresses:STRING} (Closes 2171) + +Better yet would be to force setting the output separator literally, +and not after expansion of the STRING. But this would be an incompatible +change. +--- + doc/doc-docbook/spec.xfpt | 10 +++++++++- + src/src/expand.c | 8 +++++++- + test/scripts/0000-Basic/0002 | 1 + + test/stdout/0002 | 1 + + 4 files changed, 18 insertions(+), 2 deletions(-) + +ignored - diff --git a/doc/doc-docbook/spec.xfpt b/doc/doc-docbook/spec.xfpt +ignored - index 4a8e1d0..c140945 100644 +ignored - --- a/doc/doc-docbook/spec.xfpt +ignored - +++ b/doc/doc-docbook/spec.xfpt +ignored - @@ -10118,7 +10118,15 @@ character. For example: +ignored - .code +ignored - ${addresses:>& Chief <ceo@up.stairs>, sec@base.ment (dogsbody)} +ignored - .endd +ignored - -expands to &`ceo@up.stairs&&sec@base.ment`&. Compare the &*address*& (singular) +ignored - +expands to &`ceo@up.stairs&&sec@base.ment`&. The string is expanded +ignored - +first, so if the expanded string starts with >, it may change the output +ignored - +separator unintentionally. This can be avoided by setting the output +ignored - +separator explicitly: +ignored - +.code +ignored - +${addresses:>:$h_from:} +ignored - +.endd +ignored - + +ignored - +Compare the &*address*& (singular) +ignored - expansion item, which extracts the working address from a single RFC2822 +ignored - address. See the &*filter*&, &*map*&, and &*reduce*& items for ways of +ignored - processing lists. +diff --git a/src/src/expand.c b/src/src/expand.c +index 353b8ea..67b3d65 100644 +--- a/src/src/expand.c ++++ b/src/src/expand.c +@@ -6797,7 +6797,13 @@ while (*s != 0) + int start, end, domain; /* Not really used */ + + while (isspace(*sub)) sub++; +- if (*sub == '>') { *outsep = *++sub; ++sub; } ++ if (*sub == '>') ++ if (*outsep = *++sub) ++sub; ++ else { ++ expand_string_message = string_sprintf("output separator " ++ "missing in expanding ${addresses:%s}", --sub); ++ goto EXPAND_FAILED; ++ } + parse_allow_group = TRUE; + + for (;;) +ignored - diff --git a/test/scripts/0000-Basic/0002 b/test/scripts/0000-Basic/0002 +ignored - index cb0bb18..dd9cea2 100644 +ignored - --- a/test/scripts/0000-Basic/0002 +ignored - +++ b/test/scripts/0000-Basic/0002 +ignored - @@ -133,6 +133,7 @@ addresses: ${addresses:>+ Exim Person <local-part@dom.ain> (that's me),\ +ignored - addresses: ${addresses:Exim Person <local-part@dom.ain> (that's me), \ +ignored - xyz@abc, nullgroupname:;, group: p@q, r@s; } +ignored - addresses: ${addresses:local-part@dom.ain <local-part@dom.ain>} +ignored - +addresses: ${addresses:>} +ignored - +ignored - escape: ${escape:B7·F2ò} +ignored - excape8bit: ${escape8bit:undisturbed text\ttab\nnewline\ttab\\backslash \176tilde\177DEL\200\x81.} +ignored - diff --git a/test/stdout/0002 b/test/stdout/0002 +ignored - index 5593f06..1422289 100644 +ignored - --- a/test/stdout/0002 +ignored - +++ b/test/stdout/0002 +ignored - @@ -123,6 +123,7 @@ +ignored - > addresses: local-part@dom.ain+xyz@abc +ignored - > addresses: local-part@dom.ain:xyz@abc:p@q:r@s +ignored - > addresses: +ignored - +> Failed: output separator missing in expanding ${addresses:>} +ignored - > +ignored - > escape: B7\267F2\362 +ignored - > excape8bit: undisturbed text tab +-- +1.9.1 + diff --git a/mail-mta/exim/files/exim-4.89-as-needed-ldflags.patch b/mail-mta/exim/files/exim-4.89-as-needed-ldflags.patch new file mode 100644 index 000000000000..49e430939fcd --- /dev/null +++ b/mail-mta/exim/files/exim-4.89-as-needed-ldflags.patch @@ -0,0 +1,145 @@ +https://bugs.gentoo.org/show_bug.cgi?id=352265 + +Make sure LDFLAGS comes first, such that all libraries are considered, +and not discarded when --as-needed is in effect. + +https://bugs.gentoo.org/show_bug.cgi?id=391279 + +Use LDFLAGS for all targets, not just the exim binary, such that +--as-needed works as well. + + +--- OS/Makefile-Base ++++ OS/Makefile-Base +@@ -346,12 +346,12 @@ + buildrouters buildtransports \ + $(OBJ_EXIM) version.o + @echo "$(LNCC) -o exim" +- $(FE)$(PURIFY) $(LNCC) -o exim $(LFLAGS) $(OBJ_EXIM) version.o \ ++ $(FE)$(PURIFY) $(LNCC) -o exim $(LDFLAGS) $(OBJ_EXIM) version.o \ + routers/routers.a transports/transports.a lookups/lookups.a \ + auths/auths.a pdkim/pdkim.a \ + $(LIBRESOLV) $(LIBS) $(LIBS_EXIM) $(IPV6_LIBS) $(EXTRALIBS) \ + $(EXTRALIBS_EXIM) $(DBMLIB) $(LOOKUP_LIBS) $(AUTH_LIBS) \ +- $(PERL_LIBS) $(TLS_LIBS) $(PCRE_LIBS) $(LDFLAGS) ++ $(PERL_LIBS) $(TLS_LIBS) $(PCRE_LIBS) $(LFLAGS) + @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ + echo $(STRIP_COMMAND) exim; \ + $(STRIP_COMMAND) exim; \ +@@ -367,8 +367,8 @@ + + exim_dumpdb: $(OBJ_DUMPDB) + @echo "$(LNCC) -o exim_dumpdb" +- $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_dumpdb $(LFLAGS) $(OBJ_DUMPDB) \ +- $(LIBS) $(EXTRALIBS) $(DBMLIB) ++ $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_dumpdb $(LDFLAGS) $(OBJ_DUMPDB) \ ++ $(LIBS) $(EXTRALIBS) $(DBMLIB) $(LFLAGS) + @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ + echo $(STRIP_COMMAND) exim_dumpdb; \ + $(STRIP_COMMAND) exim_dumpdb; \ +@@ -382,8 +382,8 @@ + + exim_fixdb: $(OBJ_FIXDB) buildauths + @echo "$(LNCC) -o exim_fixdb" +- $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_fixdb $(LFLAGS) $(OBJ_FIXDB) \ +- auths/auths.a $(LIBS) $(EXTRALIBS) $(DBMLIB) ++ $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_fixdb $(LDFLAGS) $(OBJ_FIXDB) \ ++ auths/auths.a $(LIBS) $(EXTRALIBS) $(DBMLIB) $(LFLAGS) + @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ + echo $(STRIP_COMMAND) exim_fixdb; \ + $(STRIP_COMMAND) exim_fixdb; \ +@@ -397,8 +397,8 @@ + + exim_tidydb: $(OBJ_TIDYDB) + @echo "$(LNCC) -o exim_tidydb" +- $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_tidydb $(LFLAGS) $(OBJ_TIDYDB) \ +- $(LIBS) $(EXTRALIBS) $(DBMLIB) ++ $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_tidydb $(LDFLAGS) $(OBJ_TIDYDB) \ ++ $(LIBS) $(EXTRALIBS) $(DBMLIB) $(LFLAGS) + @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ + echo $(STRIP_COMMAND) exim_tidydb; \ + $(STRIP_COMMAND) exim_tidydb; \ +@@ -410,8 +410,8 @@ + + exim_dbmbuild: exim_dbmbuild.o + @echo "$(LNCC) -o exim_dbmbuild" +- $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_dbmbuild $(LFLAGS) exim_dbmbuild.o \ +- $(LIBS) $(EXTRALIBS) $(DBMLIB) ++ $(FE)$(LNCC) $(CFLAGS) $(INCLUDE) -o exim_dbmbuild $(LDFLAGS) exim_dbmbuild.o \ ++ $(LIBS) $(EXTRALIBS) $(DBMLIB) $(LFLAGS) + @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ + echo $(STRIP_COMMAND) exim_dbmbuild; \ + $(STRIP_COMMAND) exim_dbmbuild; \ +@@ -425,8 +425,8 @@ + @echo "$(CC) exim_lock.c" + $(FE)$(CC) -c $(CFLAGS) $(INCLUDE) exim_lock.c + @echo "$(LNCC) -o exim_lock" +- $(FE)$(LNCC) -o exim_lock $(LFLAGS) exim_lock.o \ +- $(LIBS) $(EXTRALIBS) ++ $(FE)$(LNCC) -o exim_lock $(LDFLAGS) exim_lock.o \ ++ $(LIBS) $(EXTRALIBS) $(LFLAGS) + @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ + echo $(STRIP_COMMAND) exim_lock; \ + $(STRIP_COMMAND) exim_lock; \ +@@ -462,9 +462,9 @@ + $(FE)$(CC) -o em_version.o -c \ + $(CFLAGS) $(XINCLUDE) -I. ../exim_monitor/em_version.c + @echo "$(LNCC) -o eximon.bin" +- $(FE)$(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LFLAGS) $(XLFLAGS) \ ++ $(FE)$(PURIFY) $(LNCC) -o eximon.bin em_version.o $(LDFLAGS) $(XLFLAGS) \ + $(OBJ_MONBIN) -lXaw -lXmu -lXt -lXext -lX11 $(PCRE_LIBS) \ +- $(LIBS) $(LIBS_EXIMON) $(EXTRALIBS) $(EXTRALIBS_EXIMON) -lc ++ $(LIBS) $(LIBS_EXIMON) $(EXTRALIBS) $(EXTRALIBS_EXIMON) -lc $(LFLAGS) + @if [ x"$(STRIP_COMMAND)" != x"" ]; then \ + echo $(STRIP_COMMAND) eximon.bin; \ + $(STRIP_COMMAND) eximon.bin; \ +@@ -780,9 +780,9 @@ + string.o tod.o version.o utf8.o + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE dbfn.c + $(CC) -c $(CFLAGS) $(INCLUDE) -DCOMPILE_UTILITY store.c +- $(LNCC) -o test_dbfn $(LFLAGS) dbfn.o \ ++ $(LNCC) -o test_dbfn $(LDFLAGS) dbfn.o \ + dummies.o sa-globals.o sa-os.o store.o string.o \ +- tod.o version.o utf8.o $(LIBS) $(DBMLIB) $(LDFLAGS) ++ tod.o version.o utf8.o $(LIBS) $(DBMLIB) $(LFLAGS) + rm -f dbfn.o store.o + + test_host: config.h child.c host.c dns.c dummies.c sa-globals.o os.o \ +@@ -790,29 +790,29 @@ + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE -DTEST_HOST host.c + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE -DTEST_HOST dns.c + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE -DTEST_HOST dummies.c +- $(LNCC) -o test_host $(LFLAGS) \ ++ $(LNCC) -o test_host $(LDFLAGS) \ + host.o child.o dns.o dummies.o sa-globals.o os.o store.o string.o \ +- tod.o tree.o $(LIBS) $(LIBRESOLV) ++ tod.o tree.o $(LIBS) $(LIBRESOLV) $(LFLAGS) + rm -f child.o dummies.o host.o dns.o + + test_os: os.h os.c dummies.o sa-globals.o store.o string.o tod.o utf8.o + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE os.c +- $(LNCC) -o test_os $(LFLAGS) os.o dummies.o \ +- sa-globals.o store.o string.o tod.o utf8.o $(LIBS) $(LDFLAGS) ++ $(LNCC) -o test_os $(LDFLAGS) os.o dummies.o \ ++ sa-globals.o store.o string.o tod.o utf8.o $(LIBS) $(LFLAGS) + rm -f os.o + + test_parse: config.h parse.c dummies.o sa-globals.o \ + store.o string.o tod.o version.o utf8.o + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE parse.c +- $(LNCC) -o test_parse $(LFLAGS) parse.o \ ++ $(LNCC) -o test_parse $(LDFLAGS) parse.o \ + dummies.o sa-globals.o store.o string.o tod.o version.o \ +- utf8.o $(LDFLAGS) ++ utf8.o $(LFLAGS) + rm -f parse.o + + test_string: config.h string.c dummies.o sa-globals.o store.o tod.o utf8.o + $(CC) -c $(CFLAGS) $(INCLUDE) -DSTAND_ALONE string.c +- $(LNCC) -o test_string $(LFLAGS) -DSTAND_ALONE string.o \ +- dummies.o sa-globals.o store.o tod.o utf8.o $(LIBS) $(LDFLAGS) ++ $(LNCC) -o test_string $(LDFLAGS) -DSTAND_ALONE string.o \ ++ dummies.o sa-globals.o store.o tod.o utf8.o $(LIBS) $(LFLAGS) + rm -f string.o + + # End diff --git a/mail-mta/exim/files/exim-4.89-transport-crash.patch b/mail-mta/exim/files/exim-4.89-transport-crash.patch new file mode 100644 index 000000000000..94a1d6b15525 --- /dev/null +++ b/mail-mta/exim/files/exim-4.89-transport-crash.patch @@ -0,0 +1,62 @@ +This is a manual backport of the following commit which fixes the +original bug as well as https://bugs.exim.org/show_bug.cgi?id=2166: + +From e69636bc9ddf3617be688b07941d7d659d50eaa7 Mon Sep 17 00:00:00 2001 +From: Jeremy Harris <jgh146exb@wizmail.org> +Date: Sat, 3 Jun 2017 13:39:18 +0100 +Subject: [PATCH 1/1] Fix crash in transport, on second smtp-connect fail for a + list of target hosts + +Reported as the sequence: + 1MX: 554 on connect (banner) + 2MX: TCP conn timeout + +diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c +index 454c0f7..dc9e03b 100644 +--- a/src/src/transports/smtp.c ++++ b/src/src/transports/smtp.c +@@ -2177,25 +2177,34 @@ return OK; + + /* The failure happened while setting up the call; see if the failure was + a 5xx response (this will either be on connection, or following HELO - a 5xx +- after EHLO causes it to try HELO). If so, fail all addresses, as this host is +- never going to accept them. For other errors during setting up (timeouts or +- whatever), defer all addresses, and yield DEFER, so that the host is not +- tried again for a while. */ ++ after EHLO causes it to try HELO). If so, and there are no more hosts to try, ++ fail all addresses, as this host is never going to accept them. For other ++ errors during setting up (timeouts or whatever), defer all addresses, and ++ yield DEFER, so that the host is not tried again for a while. ++ ++ XXX This peeking for another host feels like a layering violation. We want ++ to note the host as unusable, but down here we shouldn't know if this was ++ the last host to try for the addr(list). Perhaps the upper layer should be ++ the one to do set_errno() ? The problem is that currently the addr is where ++ errno etc. are stashed, but until we run out of hosts to try the errors are ++ host-specific. Maybe we should enhance the host_item definition? */ + + FAILED: + sx->ok = FALSE; /* For when reached by GOTO */ +- +- yield = code == '5' ++ set_errno(sx->addrlist, errno, message, ++ sx->host->next ++ ? DEFER ++ : code == '5' + #ifdef SUPPORT_I18N +- || errno == ERRNO_UTF8_FWD ++ || errno == ERRNO_UTF8_FWD + #endif +- ? FAIL : DEFER; +- +- set_errno(sx->addrlist, errno, message, yield, pass_message, sx->host ++ ? FAIL : DEFER, ++ pass_message, sx->host + #ifdef EXPERIMENTAL_DSN_INFO + , sx->smtp_greeting, sx->helo_response + #endif + ); ++ yield = DEFER; + } + + diff --git a/mail-mta/exim/files/exim-submission.socket b/mail-mta/exim/files/exim-submission.socket new file mode 100644 index 000000000000..b9593e2ef7b2 --- /dev/null +++ b/mail-mta/exim/files/exim-submission.socket @@ -0,0 +1,10 @@ +[Unit] +Description=Exim Mail Transfer Agent (message submission) +Conflicts=exim.service + +[Socket] +ListenStream=587 +Accept=yes + +[Install] +WantedBy=sockets.target diff --git a/mail-mta/exim/files/exim-submission_at.service b/mail-mta/exim/files/exim-submission_at.service new file mode 100644 index 000000000000..4f90cd83dc8d --- /dev/null +++ b/mail-mta/exim/files/exim-submission_at.service @@ -0,0 +1,11 @@ +# It doesn't make sense for this to be separate from exim@.service +# However, I couldn't think of a way to have two .socket files point +# to it ([Socket] Service= is rejected if Accept=yes is set). + +[Unit] +Description=Exim Mail Daemon per-connection server (message submission) + +[Service] +ExecStart=-/usr/bin/exim -bs +StandardInput=socket +StandardError=syslog diff --git a/mail-mta/exim/files/exim.confd b/mail-mta/exim/files/exim.confd new file mode 100644 index 000000000000..1534d9dfaf08 --- /dev/null +++ b/mail-mta/exim/files/exim.confd @@ -0,0 +1,5 @@ +# Command-line options for running exim +EXIM_OPTS="-bd -q15m" + +# Additional flags passed to exim_tidydb upon start (e.g. -t 7d) +TIDY_OPTS="" diff --git a/mail-mta/exim/files/exim.logrotate b/mail-mta/exim/files/exim.logrotate new file mode 100644 index 000000000000..f54f8c479af9 --- /dev/null +++ b/mail-mta/exim/files/exim.logrotate @@ -0,0 +1,9 @@ +/var/log/exim/exim*.log { + daily + missingok + rotate 28 + compress + delaycompress + notifempty + create 640 mail mail +} diff --git a/mail-mta/exim/files/exim.rc10 b/mail-mta/exim/files/exim.rc10 new file mode 100644 index 000000000000..c44dba16ce2d --- /dev/null +++ b/mail-mta/exim/files/exim.rc10 @@ -0,0 +1,47 @@ +#!/sbin/openrc-run +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +depend() { + need logger + use antivirus net + provide mta +} + +tidy_dbs() { + local spooldir=$(/usr/sbin/exim -C /etc/exim/${SVCNAME}.conf -bP -n spool_directory) + local db + local ret=0 + ebegin "Tidying hints databases in ${spooldir}/db" + for db in "${spooldir}"/db/* ; do + case "${db}" in + *".lockfile"|*"*") continue ;; + esac + /usr/sbin/exim_tidydb ${TIDY_OPTS} "${spooldir}" ${db##*/} > /dev/null + : $((ret += $?)) + done + eend ${ret} +} + +start() { + # if you use multiple instances, make sure you set spool_directory + # in the configfile + tidy_dbs + ebegin "Starting ${SVCNAME}" + start-stop-daemon --start --exec /usr/sbin/exim --pidfile /run/${SVCNAME}.pid -- -C /etc/exim/${SVCNAME}.conf ${EXIM_OPTS:--bd -q15m} + eend $? +} + +stop() { + ebegin "Stopping ${SVCNAME}" + start-stop-daemon --stop --pidfile /run/${SVCNAME}.pid --name exim + eend $? +} + +reload() { + ebegin "Reloading ${SVCNAME}" + start-stop-daemon --signal HUP --pidfile /run/${SVCNAME}.pid --name exim + eend $? +} diff --git a/mail-mta/exim/files/exim.service b/mail-mta/exim/files/exim.service new file mode 100644 index 000000000000..c8a61cdc4a4a --- /dev/null +++ b/mail-mta/exim/files/exim.service @@ -0,0 +1,12 @@ +[Unit] +Description=Exim Mail Transport Agent +After=network.target + +[Service] +Environment=QUEUE=15m +ExecStart=/usr/sbin/exim -bdf -q${QUEUE} +ExecReload=/bin/kill -HUP $MAINPID +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/mail-mta/exim/files/exim.socket b/mail-mta/exim/files/exim.socket new file mode 100644 index 000000000000..36d28684f18a --- /dev/null +++ b/mail-mta/exim/files/exim.socket @@ -0,0 +1,10 @@ +[Unit] +Description=Exim Mail Transfer Agent +Conflicts=exim.service + +[Socket] +ListenStream=25 +Accept=yes + +[Install] +WantedBy=sockets.target diff --git a/mail-mta/exim/files/exim_at.service b/mail-mta/exim/files/exim_at.service new file mode 100644 index 000000000000..19c07a51b063 --- /dev/null +++ b/mail-mta/exim/files/exim_at.service @@ -0,0 +1,7 @@ +[Unit] +Description=Exim Mail Daemon per-connection server + +[Service] +ExecStart=-/usr/bin/exim -bs +StandardInput=socket +StandardError=syslog diff --git a/mail-mta/exim/metadata.xml b/mail-mta/exim/metadata.xml new file mode 100644 index 000000000000..8a96bf761572 --- /dev/null +++ b/mail-mta/exim/metadata.xml @@ -0,0 +1,54 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>grobian@gentoo.org</email> + </maintainer> + <maintainer type="project"> + <email>net-mail@gentoo.org</email> + <name>Net-Mail</name> + </maintainer> + <longdescription> + Exim is a message transfer 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 general. + There is a great deal of flexibility in the way mail can be routed, and + there are extensive facilities for checking incoming mail. Exim can be + installed in place of sendmail, although the configuration of exim is + quite different to that of sendmail. + </longdescription> + <use> + <flag name="dcc">Adds support for Distributed Checksum Clearinghouse + (DCC)</flag> + <flag name="dane">Adds support for DNS-based Authentication of Named Entities</flag> + <flag name="dkim">Adds support for DomainKeys Identified Mail + (DKIM)</flag> + <flag name="dnsdb">Adds support for a DNS search for a record whose + domain name is the supplied query</flag> + <flag name="dovecot-sasl">Adds support for Dovecot's + authentication</flag> + <flag name="dlfunc">Install local_scan.h header to compile separate + dlfunc libraries</flag> + <flag name="dmarc">Adds support for DMARC</flag> + <flag name="dsn">Adds support for Delivery Status Notifications + (DSN)</flag> + <flag name="exiscan-acl">Patch providing support for content + scanning</flag> + <flag name="lmtp">Adds support for lmtp</flag> + <flag name="mbx">Adds support for UW's mbx format</flag> + <flag name="spf">Adds support for Sender Policy Framework</flag> + <flag name="srs">Adds support for Sender Rewriting Scheme</flag> + <flag name="proxy">Add support for being behind a proxy, such as HAProxy</flag> + <flag name="pkcs11">Require pkcs11 support in <pkg>net-libs/gnutls</pkg> with USE=gnutls</flag> + <flag name="redis">Adds support for querying <pkg>dev-db/redis</pkg></flag> + <flag name="prdr">Adds support for Per-Recipient Data Response</flag> + <flag name="tpda">Adds support for Transport Post-Delivery Actions</flag> + </use> + <upstream> + <bugs-to>http://bugs.exim.org/</bugs-to> + <!-- stupid DTD doesn't allow this + <vcs>http://git.exim.org/exim.git</vcs> + --> + </upstream> +</pkgmetadata> |