blob: b53f7b58ddfee41052528ca6cec6a6466179afb4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit flag-o-matic toolchain-funcs prefix
DESCRIPTION="Mail delivery agent/filter"
HOMEPAGE="http://www.procmail.org/"
SRC_URI="http://www.procmail.org/${P}.tar.gz"
LICENSE="|| ( Artistic GPL-2 )"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos"
IUSE="mbox selinux"
DEPEND="
acct-group/mail
virtual/mta
"
RDEPEND="
${DEPEND}
selinux? ( sec-policy/selinux-procmail )
"
src_prepare() {
# disable flock, using both fcntl and flock style locking
# doesn't work with NFS with 2.6.17+ kernels, bug #156493
sed -e "s|/\*#define NO_flock_LOCK|#define NO_flock_LOCK|" \
-i config.h || die "sed failed"
if ! use mbox ; then
echo "# Use maildir-style mailbox in user's home directory" > "${S}"/procmailrc || die
echo 'DEFAULT=$HOME/.maildir/' >> "${S}"/procmailrc || die
cd "${S}" || die
eapply "${FILESDIR}/gentoo-maildir3.diff"
else
echo '# Use mbox-style mailbox in /var/spool/mail' > "${S}"/procmailrc || die
echo 'DEFAULT=${EPREFIX}/var/spool/mail/$LOGNAME' >> "${S}"/procmailrc || die
fi
# Do not use lazy bindings on lockfile and procmail
if [[ ${CHOST} != *-darwin* ]]; then
eapply -p0 "${FILESDIR}/${PN}-lazy-bindings.diff"
fi
# Fix for bug #102340
eapply -p0 "${FILESDIR}/${PN}-comsat-segfault.diff"
# Fix for bug #119890
eapply -p0 "${FILESDIR}/${PN}-maxprocs-fix.diff"
# Prefixify config.h
eapply -p0 "${FILESDIR}"/${PN}-prefix.patch
eprefixify config.h Makefile src/autoconf src/recommend.c
# Fix for bug #200006
eapply "${FILESDIR}/${PN}-pipealloc.diff"
# Fix for bug #270551
eapply "${FILESDIR}/${PN}-3.22-glibc-2.10.patch"
# Fix security bugs #522114 and #638108
eapply "${FILESDIR}/${PN}-3.22-CVE-2014-3618.patch"
eapply "${FILESDIR}/${PN}-3.22-CVE-2017-16844.patch"
eapply "${FILESDIR}/${PN}-3.22-crash-fix.patch"
eapply_user
}
src_compile() {
# bug #875251, bug #896052
append-flags -std=gnu89
# bug #859517
filter-lto
# -finline-functions (implied by -O3) leaves strstr() in an infinite loop.
# To work around this, we append -fno-inline-functions to CFLAGS
# Since GCC 4.7 we also need -fno-ipa-cp-clone (bug #466552)
# If it's clang, ignore -fno-ipa-cp-clone, as clang doesn't support this
append-flags -fno-inline-functions
tc-is-clang || append-flags -fno-ipa-cp-clone
sed -e "s|CFLAGS0 = -O|CFLAGS0 = ${CFLAGS}|" \
-e "s|LDFLAGS0= -s|LDFLAGS0 = ${LDFLAGS}|" \
-e "s|LOCKINGTEST=__defaults__|#LOCKINGTEST=__defaults__|" \
-e "s|#LOCKINGTEST=/tmp|LOCKINGTEST=/tmp|" \
-i Makefile || die "sed failed"
emake CC="$(tc-getCC)"
}
src_install() {
cd "${S}"/new || die
insinto /usr/bin
insopts -m 6755
doins procmail
doins lockfile
fowners root:mail /usr/bin/lockfile
fperms 2755 /usr/bin/lockfile
dobin formail mailstat
insopts -m 0644
doman *.1 *.5
cd "${S}" || die
dodoc FAQ FEATURES HISTORY INSTALL KNOWN_BUGS README
insinto /etc
doins procmailrc
docinto examples
dodoc examples/*
}
pkg_postinst() {
if ! use mbox ; then
elog "Starting with mail-filter/procmail-3.22-r9 you'll need to ensure"
elog "that you configure a mail storage location using DEFAULT in"
elog "/etc/procmailrc, for example:"
elog "\tDEFAULT=\$HOME/.maildir/"
fi
if has sfperms ${FEATURES}; then
ewarn "FEATURES=sfperms removes the read-bit for others from"
ewarn " /usr/bin/procmail"
ewarn " /usr/bin/lockfile"
ewarn "If you use procmail from an MTA like Exim, you need to"
ewarn "re-add the read-bit or avoid the MTA checking the binary"
ewarn "exists."
fi
}
|